Welcome to Operating Systems: Three Easy Pieces, a free online operating systems book! The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence. In understanding the conceptual, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, and store files persistently. Lots of fun stuff!
I’m definitely bookmarking this! I don’t really do any kernel hacking, but I love understanding how all this underlying/boilerplate stuff works. I’ve read a few other online OS resources, mostly from osdev.org, and this will be a great addition to my “library”.
I wish more resources like this would exist, but can understand why it doesn’t.
Good that I have an upcoming flight to Japan.
(I am predicting that this 100% OSAlert topic will get less than 10% of the comments of anything Apple related tomorrow)
I was asked this question a very long time ago. circa 1975 to be exact.
IMHO, the core OS should have nothing directly to do with files.
The Core OS should deal with Scheduling, resources and oh, stuff like Interrupts and device control.
Outside of that other processes can deal with files, networking etc.
Back then we could have a complete OS Kernel in 3Kb including device drivers. (RT-11)
That said, I could have done with documents like this over the years when I’ve been deep inside OS code.
Thankfully, those days are long gone.
Depends on where you draw the line between “core” OS and the rest of the OS.
Personally, I’d consider file management a core OS function, as it ensures security policy is enforced to maintain isolation between processes. If the filesystem is required to load any components at run time, then it absolutely has to be part of the core operating system.
Note, though, that my “core” means services provided by the operating system to any process (the system call interface). The actual filesystem implementation could be in user space via a micro-kernel, in which your “core” would then be the kernel space services that require privilege execution to manage hardware.
But for an embedded kernel with fixed function and little or no provision for persistent storage, a micro-kernel core would certainly be appropriate, and kernels such as contiki would certainly fit that bill.
What I don’t understand however, is that the page looks like it’s straight from the 90s. Is that 1337 somehow?
What are you talking about?
But yes, book styles does not go outdated. This appears to be a good classic LaTex style, and all serious CS books are written in LaTex.
The book fragments themselves look fine, but the home page is really quite horrible. Are you colour blind?
They are not trying to sell anything and, as such, don’t need to pander to the “ooh, shiny” crowd. The website’s main concern is clearly the educational content, as should be obvious by its .edu TLD.
Honestly, I think it looks a whole lot better than other professor-created websites I’ve seen.
Presenting information in a clear and comprehensive way is not “pandering to the ooh, shiny crowd”, it is being respectful to your customers. Let me guess, you are in the “Linux is free so f*ck the users and let’s give ‘m crap or else they can program their own OS” crowd?
I agree that the university connection is the source of the website design. They probably learned HTML in the early days and still don’t see a need to update, since they content is present and can be navigated without difficulty.
Wonder how it compares with classics like “Understanding the Linux Kernel” (other than that the latter deals with a specific OS).
Which one is rather worth the read?
I retired from university teaching four years ago. Before that, I’d been teaching OS classes for over 25 years. I mostly used Silberschatz, etc. but I also used Tannebaum’s Minix based book.
Given the very high costs of textbooks, I found and used books like ‘Operating Systems: Three Easy Pieces’ in several of my other courses, but I never found one that was good enough in OS. After sampling the pdf of this text, If I were still teaching, I’d use this text in my OS class.