Bananymous
Joined 1 year ago
Joined 1 year ago
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.
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...
I'm not really familiar with how Linux nor Windows handle drivers. While compiling the Linux kernel you specify which drivers you want to build into the kernel and which ones you want as modules. Usually most common ones compiled along side the kernel so there isn't really need to install them later, just load the driver modules. There are also devices that work with just a generic driver but would have more features with a specific one (e.g. led settings on a gaming mouse). I think Windows is maybe installing these optional drivers.
That's what I hope at least. This is something I would want to do for my career in the future. Good portfolio never hurts :)
Generally I decide a feature I want to add. Then I do a general overview of the corresponding specifications and sometimes look at how already existing OSs handle that. I try to make some kind of mental model about the system and what it needs. Then I basically just write what ever I come up on the spot.
I have a really bad habit of not writing docs or taking notes. Basically I just hold everything in my head (and forget about it when I would need that information again). For some more complex stuff I do draw diagrams and write notes but I pretty much only keep those locally for myself.
I think it became actually fun after I got all the basic requirements done and could start deviating from more or less standard OS code. When I could actually decide what I want to work on. Maybe after couple of months it was in that state. It was also fun at the beginning. it was just way harder as I didn't have any prior knowledge and I was trying to wrap my head around some basic concepts :D
I'm not familiar with other architectures than x86 so I can't really say what it will take. At least a lot of work :D