Most important ABIs/libs

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Most important ABIs/libs

Post by PeterX »

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
nexos
Member
Member
Posts: 1078
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

Re: Most important ABIs/libs

Post by nexos »

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.
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Re: Most important ABIs/libs

Post by PeterX »

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.
Thanks.

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.
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Re: Most important ABIs/libs

Post by PeterX »

PeterX wrote:- or a single MinGW style subsystems instead: Which means partial Windows compatibility and Unix style tools and shell.
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!

Greetings
Peter
Post Reply