
Operating Systems: Three Easy Pieces - rubinelli
http://pages.cs.wisc.edu/~remzi/OSTEP/
======
jasonjei
It's great to see resources like this popping up. When I was in school we used
the Tanenbaum book, even if it was heavily skewed to his belief that
microkernels were better (Torvalds and Tanenbaum fought in an epic flame war).

At the University of Arizona, we implemented in our class projects various
stages of an operating system kernel, such as a process/thread scheduler,
user/kernel mode functions, message passing (IPC/mailboxes),
locking/semaphores/mutexes, signals, paged memory, and a file system in this
upper division course. It wasn't as hard as a class like Automata, but it was
tedious.

However, now that I am doing so much low level work, I can appreciate what we
learned in class. In fact, it gives you a strong understanding how critical
sections and locking work (and how this all ties in with the operating
system). It makes you appreciate simple user mode delegate syscalls like
fopen, fork, and malloc and realize that a bunch of things are happening in
kernel mode. It makes you avoid naive design choices like while(true) loops
and look for blocking/event-based equivalents.

So you might groan about taking an operating systems class. Don't! You might
never ever work on operating systems, but you will be able to appreciate how
to make the operating system work for you. Some self taught programmers I have
met don't know the difference between blocking and non-blocking. If anything,
operating systems will drill these concepts into your head to help you
leverage operating systems for your benefit.

~~~
wting
Malloc is not a syscall.

~~~
jasonjei
You're right--if it can't find memory within the heap, it will invoke a call
to brk and it will allocate it from the OS and thereby invoking a syscall.
Apologies for my lumping of malloc as a syscall :)

------
ChuckMcM
Apropos of nothing, if you want a VAX/VMS system to play with (they profile
one in the book) let me know :-)

This is a great book btw and you can't beat the e-price of free. I also
recommend "Operating System Concepts" which is sort of the canonical book on
the topic, or if you can find it a used copy of the Springer-Verlag book
"Operating Systems Design".

~~~
xradionut
VAXen to play with? What type of hardware you running on? I vaguely remember
VMS and DCL from the late 80's and early 90's, we had terminals everywhere on
the floor and in the fab.

~~~
ChuckMcM
I happen to have one each of all but one of every QBUS based VAX DEC made
(maybe too, the MicroVax I's location is in question). Also a half dozen VTxx
terminals, although the fun ones are the VT340's that do REGiS color graphics.
People started sending them to the dump in 1998 because they weren't "Y2K
compliant" and DEC wouldn't sign off on non-current hardware ...

~~~
xradionut
I was given a bunch of DG gear around Y2K. Kept a couple of Aviion boards to
hang on the office wall after having to purge the system collection before
moving.

As much as I love old gear, my interests are currently more modern. Still I'd
like to put an OS on a smaller system, either ARM or MIPS. ST has a nice new
Discovery kit that as a 2.4" QVGA TFT LCD and would serve has a radio
controller prototype.

~~~
ChuckMcM
Aren't those cool? (the STM discovery boards) I got one of the original
butterfly boards ($15 from Digikey) and then one of the DISCO boards (the one
with the LCD) at ARM TechCon. I then started a Google+ "community" (Cortex M
Developers) and started using (and trying to improve in small ways) libopencm3
(see it on Github
[http://github.com/libopencm3/libopencm3](http://github.com/libopencm3/libopencm3)).
Lots of folks are using these boards, they are pretty awesome.

------
somethingnew
UW Madison represent! I took the course with this book, not with Remzi though.
He is an amazing professor and this book gives a very good introduction to OS,
especially Linux OS internals.

~~~
nthitz
Remzi was one of my favorite professors at UW. I took the class with him. He
really made the subject fun and interesting and really liked to challenge his
students. One of my most memorable teachers from UW!

------
ef47d35620c1
When I saw ___" Operating Systems: Three Easy Pieces"_ __I thought... the
shell, the file system and the kernel. And if you know what I mean by that,
then you, too, are old.

------
TheSOB888
First thing I clicked on was the "Dialogue on Virtualization," not being
familiar with why virtualization would necessarily be the first thing taught
in an OS, but then, that's why I'm looking at this, because I know nothing
about building OSes.

Anyways, the dialog was pretty campy, or excessively goofy. Also, I'm probably
hellbanned.

~~~
nkurz
_Also, I 'm probably hellbanned._

No, you are not. If you think you should be, but for some reason that
automatic system has missed you, you can send an email to PG asking him to ban
your account manually.

~~~
TheSOB888
Er, ... What was the point of this post? I was hellbanned before because I got
angry a long time ago.

I mentioned it because I realized I hadn't properly articulated my thoughts.
Then I realized it didn't matter in the end. Of course, I guess that
realization was wrong.

~~~
nkurz
If you read with show-dead, you frequently see people making similar
statements, wondering if the reason no one responds to them is that no one
sees their messages. By responding to your post, I was informing you that no,
you are not currently banned, and your posts are visible.

The second half was a not-to-funny joke inverting the usual advice about "you
should write to PG and ask him to un-ban you". Since you weren't banned, but
seemed to think you should be, I was suggesting you write him and request that
he punish you for whatever transgression you thought you had made.

------
kirizt
<3 Remzi. Best Professor ever.

------
css771
I just had an OS course with this textbook this last semester. Really good
book. I'm surprised to see this on HN.

------
vivekchand19
xv6 is one awesome OS understanding resource.
[http://pdos.csail.mit.edu/6.828/2012/xv6.html](http://pdos.csail.mit.edu/6.828/2012/xv6.html)

------
cadalac
OSs is one of those topics I could never get a handle on. I always felt I
needed a better visualization of the whole thing. Maybe this book will help.

------
haydenevans
This is fantastic! Thanks for posting this!

------
giis
thanks for sharing it for free :D

