
Ask HN: Learn OS fundamentals - aportnoy
What is the best way to learn the fundamentals of operating systems, with a focus on UNIX&#x2F;Linux? I am a recent graduate in mathematics and I&#x27;ve taken basic CS courses but stopped short of taking OS&#x2F;Compilers.<p>Not looking for a 600+ page tome, a book in the 200-300 page range or a lecture series would be optimal.
======
NeedMoreTea
The Design and Implementation of the FreeBSD Operating System, which is the
gold standard on Unix and BSD. You won't be pleased to learn the 2nd edition
is 900 pages though. :p

The author Kirk McKusick has some excellent videos on YT too. May not cover
all you want as he used to sell a video course on his home page (his site
isn't loading for me, so I can't check). Should give you a start though.
Trivia: The magic number of the UFS2 filesystem is his birthday as Easter egg
:)

The first edition is freely available on FreeBSD's site
[https://www.freebsd.org/doc/en_US.ISO8859-1/books/design-44b...](https://www.freebsd.org/doc/en_US.ISO8859-1/books/design-44bsd/)
Note that this is based around 4.4 BSD so some recent features will be
missing.

Bach's Design of the Unix Operating system is horribly outdated these days.

I'm not aware of anything shorter that I'd recommend.

~~~
aportnoy
Thank you!

------
IcePic
I think 'tomes' is where it's at these days.

An operating system covers quite a lot these days so a short book would either
skip a lot of topics or be very shallow in the specifics and the specifics is
very much at the core of coding an OS. You need to know a lot of the
environment it runs in, so it becomes detailed rather quickly.

~~~
aportnoy
> a short book would either skip a lot of topics or be very shallow in the
> specifics and the specifics is very much at the core of coding an OS

I'm ok with that! I'm not planning to write an OS, just want to have a
programmer's mental model of how an OS works.

