Live data from Hacker News

Show HN: Banan-OS, an Unix-like operating system written from scratch

github.com

51–60 of 65 posts

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#51

Really enjoyed that you just run and fun from the browser. Doom wasn't loading for me (Brave browser on Ubuntu without javascript disablers). Very good work. It was fun without doubt.

Oh yeah, sorry. I'm missing documentation on how to access the GUI environment. You have to enter the GUI environment using `start-gui` command. After that doom should start by running `doom` in the GUI terminal. Performance in the web emulator is really bad though, so don't expect much :D

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#52
post #36

Earlier quoted context omitted.

I think biggest challenges have to be with reading large specifications. I've never really done that before so it took some time to get used to.

Could you link a random specification you were working against? I'm curious how there are written

Yeah sure!

NVMe base specification https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-S...

xHCI (USB controller) https://www.intel.com/content/dam/www/public/us/en/documents...

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#53

Awesome. I was not expecting something with that feature set. Do you plan on porting more software?

I do plan to port more! I want to keep the base OS free of 3rd party code, but ports are really nice way to get things running that I have not yet written.

I have some ports locally that are not yet working. I have git, binutils, gcc, make all compiling but they are giving some weird errors. Probably a bug in my libc or syscalls.

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#54

This a very cool side project, congratulations! Any tips for anyone that also would like to attempt something similar ? Like where to start or or sources etc

Pretty much what others said. You should read through https://wiki.osdev.org/Getting_Started and note that it will take a lot time if you decide to go for developing an OS.

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#55
post #46

How does one even begin to write drivers for nvme, ata, rtl nics, etc? I know mice and keyboards use HID which is a standard, but are there similar standard protocols for all other devices? Is this how linux manages to avoid needing to "install drivers" in the vast majority of cases? And if there are standard device APIs, why does windows have to go through that whole install driver routine every time I plug somethin…

Yeah basically every commonly used device has its protocol standardized. Although there exist some devices where the manufacturer has to provide the drivers. All of the devices I have written drivers have had their specifications publicly available for free (e.g. NVMe at https://nvmexpress.org/specifications ). I'm not really familiar with how Linux nor Windows handle drivers. While compiling the Linux kernel you spe…

So here's the kicker.

Microsoft, having the resources it does, was able to design and implement a stable driver ABI. In fact, they also have a stable userspace ABI. Both have evolved, but that's not the point.

Linux conversely (whether by design or by limitation) does not have stable ABIs (although userspace compatibility isn't terrible). Even though you can build kernel drivers as modules (and then load/unload), those modules are unique to each specific kernel build.

Remember those guys didn't write the compiler & linker toolchains they were using like Microsoft was able to do.

I will be honest, I understand why Linus & Co. have decided to keep it this way, because it encourages hardware manufacturers to submit either their drivers or their specifications to the upstream kernel, which promotes software freedom. It is a noble goal and has served them well.

BUT - thieir decision has caused me no small amount of consternation over the years as a system administrator. Once you use Linux for something that is not "server software" (be it auth, file sharing, web, etc.), you are generally using it to drive some piece of hardware (CNCs, industrial tools, cough phone systems cough). Vendors, especially those that deal in low-volume / high-margin products, do not want to release their source code. They're allergic to the idea even. So I have gotten stuck in outdated kernel hell on several occasions because the kernel devs have decided to change internal interfaces in a point-point release that my driver software relied upon.

I so wish that Linux would move to a stable driver ABI. It would make administration & upgrades so much easier, especially on the embedded side.

But I also know that it'll never happen.

FWIW, the "no stable kernel ABI" is unique to Linux, although no one really does this like Microsoft (i.e. the BSDs can break between releases, but I do believe NetBSD is superior to FreeBSD in this respect).

Re: Show HN: Banan-OS, an Unix-like operating system written from scratch

#57
post #48
post #42

Rename the project UHHNIX or OOHNIX. Great work!

Are you trying to start a flame war?? :-D

Just paying my respect for what Oskari pulled off. I tried building my own hobby OS and didn't get nearly this far. I just thought that, like Linux, this UNIX-like OS deserved a name that's closer to the source. For example, Linus originally wanted to name Linux "phreax" but Linux is what stuck after his friend changed the folder name when hosting it for him on an FTP server.
Post reply on HN