alexfru wrote:It was quite hard to find the necessary info in the early nineties in Russia.
That was probably more or less because of the political crisis / economic downturn (to put it lightly) in Russia at that time. Linus Torvalds and ast lived in Europe, yet they had access to everything needed to build OSes.
As for the topic itself, I most certainly wasn't OSDev'ing then, hence it's hard for me to say. But I personally think that OSDev itself is significantly more difficult now than it was then. Torvalds developed Linux initially in a few months, try developing an OS that runs GCC and Bash in that timeframe these days. Of course, I've seen his code at the time, it was mediocre (to say the least), but still, it was a lot easier to get something decent running then.
Nonetheless, one thing is easier about now than then: it's easier to find information. True, in those days, you could order books, or order manuals and so on, but today, you can find pretty much all the HW docs / specs (at least for PC) you need on the internet. The only real stumbling blocks are PCI, SATA, and the various non-standardized host controllers (NICs, sound cards, graphics cards, WiFi cards, Bluetooth cards, SCSI HBAs, and so on). Also, in those days, if you weren't professionally trained and encountered something in a spec such as, "this checksum is computed using CRC32", then chances are, you were toast. You couldn't pull out Google and search for "crc32 algorithm", you had to either a) have attended university or b) know someone who did or c) were lucky and had read a book such as "Algorithms in C" and learned about CRC32.
Finally, in those days it was more likely people would build better OSes. This is because of the lack of tutorials. One may argue that the widespread tutorials make OSDev easier, I disagree. I think they make it easier to print "Hello world" to the screen, but make it harder to do anything useful. I used to just follow tutorials; I'd say that the bad "knowledge" I got from them set me back about a year with my OSDev'ing. At a point I can't quite remember, I committed to doing things the
right way. I ordered several of the classics on OS design (namely "Unix Internals" by Uresh Vahalia, which I truly consider the turning point for me in OSDev, "Inside Windows 2000" by Microsoft Press, and of course ast's classic "Operating Systems: Design and Implementation". I have a couple others, I just haven't really read them yet). It sure is more difficult, but I've gained good knowledge that is beneficial to OS design, not bad knowledge that will get me to write something, but not write something that works. Of course, there are disadvantages; the last time I wrote kernel code was January 2021
. But that's partially due to other projects that distracted me for a while.