Hacker News new | comments | show | ask | jobs | submit login
Operating Systems: Three Easy Pieces (wisc.edu)
189 points by rubinelli on Jan 17, 2014 | hide | past | web | favorite | 35 comments

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.

MIT has an open course on Operating systems[1]. It's the one reasource I keep going back to.

The textbook for the class is available free online. I pull it out at least once a year.

[1] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

Malloc is not a syscall.

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 :)

Neither is fopen, for that matter. Of course, many library functions end up doing syscalls underneath, which may be the source of the OP's confusion (e.g. malloc may do brk or mmap; fopen usually does open; etc.)

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".

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.

The Deathrow cluster offers a demo account and (free) accounts to an OpenVMS V8.4 cluster; on an Alpha and an Itanium. Some of the old VMS games are available online there, as well. http://deathrow.vistech.net

If you want to re-live VMS on your own x86 hardware, the simh emulator (free) includes VAX support. There are various other emulators available. http://labs.hoffmanlabs.com/node/70

For OpenVMS, HP offers (free) OpenVMS hobbyist licenses and disk image downloads for all three OpenVMS architectures; for VAX, Alpha and Itanium. http://www.openvms.org/Hobbyist

Here's a setup of a (slightly older) version of simh on OS X: http://labs.hoffmanlabs.com/node/922

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 ...

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.

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). Lots of folks are using these boards, they are pretty awesome.

do you mean "Operating System Concepts" by Silberschatz, http://www.amazon.com/dp/1118063333/ and "Introduction to Operating System Design and Implementation" by Kifer and Smolka http://www.springer.com/computer/swe/book/978-1-84628-842-5 ?

Actually I meant this one : http://www.amazon.com/Operating-Systems-Computer-Science-Mad... I mis-remembered it as a Springer book. Instead it was part of the McGraw-Hill Computer Science series.

Silberschatz is the probably the seminal work though.

Wow, this was the textbook for the OS class I took in college in 1981. Brings back memories...

Thank you for the references.

Or sign up at polarhome.com for $10 (sorry to steal your sale)

That is awesome! Unusual name for the site though. I'll point folks at this as a way to get to play with VMS on my "House of VAX" page :-)

Physical or virtual VAX?

Oh I've got a number of actual physical VAXen, (its sort of a Y2K story). Considering setting one the herd up and/or donating it to the Hacker Dojo. The CHM has the "important" vaxes already in the collection, mine are mostly the QBUS vaxen and the desktop ones (VLC, /35, /40, /90, /105, etc)

I've been thinking about getting some more DEC hardware, right now I have a VT-102 and the CPU card from a PDP-11/23

I would love to see them donated to the Dojo!

I'll see if they will let me set one up there.

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.

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!

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.

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.

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.

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.

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.

<3 Remzi. Best Professor ever.

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

xv6 is one awesome OS understanding resource. http://pdos.csail.mit.edu/6.828/2012/xv6.html

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.

This is fantastic! Thanks for posting this!

thanks for sharing it for free :D

Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact