OK, I am talking about future of my project here. But I want a decent plan/roadmap for my OS.
What are the most important APIs/ABIs/libraries that my OS should support if I want to port standard applications?
I am aware that everybody has a different taste for this. But what do you think?
I guess these:
- C standard lib
- POSIX system calls
- Python interpreter
- sh or similar
- OpenGL
- PE32+/ELF64
- GDI
- Registry??
- X/Wayland, Gtk/Qt, Gnome/KDE/XFCE
- PowerShell?
But there are more, I am sure. For example which libraries?
Greetings
Peter
Most important ABIs/libs
Re: Most important ABIs/libs
If you are making a Unix OS, you will need the System V ABI, the POSIX API, ELF, understanding of POSIX architecture, and libc for starters. Once you know these, then worry about X, Wayland, OpenGL and that stuff. If you want Windows apps to work, then you should probably port Wine to your OS. I decided against developing an NT or 9x clone, as that would be very difficult. I am making a custom microkernel OS, and a POSIX OS. Windows compatibility would be beyond hard.
Re: Most important ABIs/libs
Thanks.nexos wrote:If you are making a Unix OS, you will need the System V ABI, the POSIX API, ELF, understanding of POSIX architecture, and libc for starters. Once you know these, then worry about X, Wayland, OpenGL and that stuff. If you want Windows apps to work, then you should probably port Wine to your OS. I decided against developing an NT or 9x clone, as that would be very difficult. I am making a custom microkernel OS, and a POSIX OS. Windows compatibility would be beyond hard.
I am considering writing a small core OS which has its own little environment (including graphics and GUI) and two subsystems: Windows and Linux - or a single MinGW style subsystems instead: Which means partial Windows compatibility and Unix style tools and shell.
And yes, Wine seems the way to go for Windows compatibility. Windows compatibility would be only partial, I have no plan to be 100% compatible like ReactOS tries.
Re: Most important ABIs/libs
I think now, that was a stupid idea. I can have Windows compatibiility (partial) or Linux compatibility. But with a mixed Win/Unix subsystem I have no compatibility at all!PeterX wrote:- or a single MinGW style subsystems instead: Which means partial Windows compatibility and Unix style tools and shell.
Greetings
Peter