OSTEP by Remzi and Andrea Arpaci-Dusseau is a great read for anybody interested in operating systems (<a href="https://pages.cs.wisc.edu/~remzi/OSTEP/" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP/</a>). The projects in their class at the University of Wisconsin-Madison were mainly making edits to the xv6 OS.
I came across this course after going through the 6.824 from RTM last year and enjoying the hands on approach a lot! Teaching using the xv6 OS (<a href="https://pdos.csail.mit.edu/6.828/2012/xv6.html" rel="nofollow">https://pdos.csail.mit.edu/6.828/2012/xv6.html</a>) is super valuable. I do not consider myself an expert in operating systems or C, but digging through the xv6 source code is quite fun, the code is easily readable and very newby friendly.
I'm not familiar with xv6, but I remember using Pintos for my undergraduate level Operating Systems course around a dozen years ago.<p>I still chuckle at another student's description of the class... "a crash course in enabling and disabling interrupts in order to prevent segfaults and pagefaults.
Cool, when I was enrolled in the OS class at university, we worked with JOS (exokernel) instead and I relied heavily also on the great OSTEP[0] learning resources!<p>[0]: <a href="https://pages.cs.wisc.edu/~remzi/OSTEP/" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP/</a>
I did this course after someone mentioned in here a year ago, and have recommended it to a lot of people since. It's a very well structured and also up to date providing a good intro to RISC-V.<p>I came across a compiler bug when doing the course with gcc outputting incorrect ASM which was quite exciting as I've never come across one in the wild before. I really should check if that's been fixed and report it if not.
Does studying toy operating systems teach strictly more, or just different skills, than studying bare-metal embedded frameworks like <a href="https://github.com/rsta2/circle" rel="nofollow">https://github.com/rsta2/circle</a> (which powers <a href="https://github.com/dwhinham/mt32-pi" rel="nofollow">https://github.com/dwhinham/mt32-pi</a>, unlike Zynthian which is Linux-based (<a href="https://zynthian.org/#software" rel="nofollow">https://zynthian.org/#software</a>))? I dropped out of uni before completing my OS course, and I planned to look into mt32-pi, but sadly struggled with hardware and software setup (game MIDIs wouldn't play right, and in terms of sound design, all the good MT-32 patch editors are for obsolete platforms and many are gone from the Internet).
The best universities in the world make their courses available online for free - what a time to be alive! I wonder if it's still possible to make money selling online courses in CS.
"CS111: Operating System Principles" at UCLA is open-coursed. They're using OSTEP as their textbook: <a href="https://laforge.cs.ucla.edu/cs111/" rel="nofollow">https://laforge.cs.ucla.edu/cs111/</a>
I've taught this course a long time ago. Envied the students for all the fun they had implementing the homeworks. Highly recommended for anybody interested in computer systems.
For those wanting to move more into lower level stacks, after completing a class like OS, what might be some good entry jobs? What kind of job description would I be looking for? What next after entry?
The course is really neat.
Some of the candidate projects involving 9p virtio integration are suoerb ideas.
Did the CoW lab exersice for one of my courses.
The xv6 manual is very detailed as well.
I understand that this is a weird question, I've never coded in C, are there any online resources that help me grok OS concepts without a lot of emphasis on hands-on coding assignments.
Most body of knowledge built from working with Linux and Windows can be wholly ignored when building the New Operating System. There is barely anything worth of salvaging in either of the 'operating systems' or their lessons learned (besides not doing what they did).<p>I guess some of the GUI stuff is worth something, but you can just make a ray traced OS with Unity so.