Xv6, a simple Unix-like teaching operating system
pdos.csail.mit.edu
pdos.csail.mit.edu
I have an antique server with qemu set up to run Xv6.[1] I wanted somebody to go through the course with me.[2] So far nobody has come aboard, and I haven't really started. If anyone here might be interested, please feel free to get in touch: notoles@metalvps.com. It would be super great to have a few friends along! Thank you!
Best wishes and kindest regards,
Tom
[1] https://lowendbox.com/blog/how-to-compile-the-3-items-needed...
[2] https://lowendbox.com/blog/invitation-to-join-me-for-mits-fr...
Already have one person for our Xv6 study circle! Thank you HN! Anybody else?
I'm going to sleep now, but if anybody emails me, I will for sure reply in the morning.
Best!
Tom
Thanks for your kind words.
I read your comment[1] which explains what you are doing and suggests by implication why you might think you are insufficiently prepared.
However, no law requires perfect preparedness. Why not take a few small bites of delicious dessert and see how they taste?
Best wishes and kindest regards,
Tom
We might even have room for even a few more!
Thanks guys! Thank you HN <3
My idea is to start on the course itself tomorrow or the next day. I expect to invest at least an hour a day in the course itself. I also expect to post my notes and progress somewhere.
We can fill in the group structure as we go along. Maybe we all can keep in touch via email, irc, Jitsi, an HN thread, or set up our own Xv6 study group forum?
I am delighted to be in contact with so many other students! We have room for a few more if anyone else wants to join. Thank you all so much!
I wasn't expecting such a big response! Thank you to all the guys who joined! Thank you HN!
I didn't find a mention of the original copyright.
[1] https://pages.cs.wisc.edu/~remzi/OSTEP/ [2] https://github.com/remzi-arpacidusseau/ostep-projects
The book isn’t free, but I’ve found it to be fun to work through. The projects are centered around building and running on small boards like beaglebone, Galileo, and more recently raspi (although this isn’t covered in the book.)
When looking at the Xinu book index, it's not clear to me if the Xinu book is different. Does the Xinu book show how to write an OS from scratch or is the book also about making small changes to an existing OS?
---
[0]: https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pd...
I've taken the class at Purdue. The way the class works it was divided into 4 "projects" where you had to add features to Xinu. In my semester those were: a more advanced scheduler, locks, process permissions, and a file-system.
Running a Unix-like OS on a home-built CPU with a home-built C compiler - https://news.ycombinator.com/item?id=24680109 - Oct 2020 (69 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=24567993 - Sept 2020 (21 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=22511569 - March 2020 (32 comments)
Xv6 for RISC-V - https://news.ycombinator.com/item?id=21040057 - Sept 2019 (8 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=17592560 - July 2018 (79 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=10798523 - Dec 2015 (14 comments)
Xv6 - https://news.ycombinator.com/item?id=10566312 - Nov 2015 (47 comments)
Ask HN: What are the best resources for learning Operating Systems with xv6? - https://news.ycombinator.com/item?id=8877714 - Jan 2015 (1 comment)
Xv6 – A Simple Unix-Like Teaching Operating System - https://news.ycombinator.com/item?id=8620589 - Nov 2014 (28 comments)
Xv6 - https://news.ycombinator.com/item?id=7558081 - April 2014 (36 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=6971127 - Dec 2013 (78 comments)
Xv6 - Unix V6 rewritten in modern, ANSI C for MIT 6.828 - https://news.ycombinator.com/item?id=3753216 - March 2012 (14 comments)
Unix v6 Ported to ANSI C - https://news.ycombinator.com/item?id=3212515 - Nov 2011 (50 comments)
Xv6, a simple Unix-like teaching operating system - https://news.ycombinator.com/item?id=2335824 - March 2011 (4 comments)
Anyone able to explain why networking was left out?
Why I ask? I've seen a bunch of projects on GitHub for implementing xv6 networking.
Tru64 UNIX and MacOS are UNIX certified.
>for a start
https://en.wikipedia.org/wiki/Unix
Varies; monolithic, microkernel, hybrid
You're reading too much into my comment. The original PDP-7 (and later PDP-11) Unix are monolithic kernels. The most popular Unix variants or clones today (Linux, Free/Net/OpenBSD) are all monolithic kernels.
Tru64 is long dead. QNX has a niche market. DragonFly ... not much market share. MacOS? As you say, hybrid, not microkernel, and is hardly successful in the same space that the monolithic kernel Unices are (ie. servers).
It's not hard to argue that Unix has historically been a monolithic design, and that those have been the most successful, even if you can certify various microkernels. Of course this comment may not hold for another 50 years, but it is certainly true of the last 50.
And its really not my problem if you think a unix has to be mono..thats just wrong and you know it.
It's not really my problem if you think I said UNIX has to be a monolith, since I never said that.
Xv6 is a reimplementation based on the original v6 UNIX design. As a teaching tool for the historical design of UNIX, it's a great place to start. If you want to study Unix-like microkernels, then MINIX and Tanenbaum's books are a great place to start.
If you want to study hybrid Unix-like systems, then the Darwin source code might be a good place to start. MacOS as a popular, hybrid, desktop Unix is pretty much an anomaly in the course of Unix history.
Study whatever you want, but for beginners to OS design, it's easier to understand hybrid and microkernel systems if you first know what a monolithic kernel is, and how various modern versions of Unix evolved from that in my personal opinion.
Nobody really gives a rat's ass about UNIX certification in the real world ... except MacOS fans.
Sure you said that:
>Right - for a start xv6 is a monolithic kernel, and MINIX is (mostly) not.
>Nobody really gives a rat's ass about UNIX certification in the real world ... except MacOS fans.
Then don't call it Unix, your a liar and i stop here.
Can you please tell me why do you come to such a wrong conclusion?
https://wiki.minix3.org/doku.php?id=www:documentation:licens...
https://fossbytes.com/linus-torvaldss-famous-email-first-lin...
$ find minix -name \*.[chsS] | grep -v '^minix/external' | xargs cat | wc -l
3347361
$ find xv6-public/ -name \*.[chsS] | xargs cat | wc -l
9778Do we really want a new generation of people who think Unix was born perfect and cannot be improved upon?
I look forward to more insightful comments from you in this vein:
"I'm not sure how I feel about universities (which should be teaching modern history) teaching ancient 27BC stuff like the Roman Empire. Do you really want a new generation of people who think the Roman Empire was perfect and cannot be improved upon?"
I'm sure students would benefit more from MIT running courses such as "7.1729: An Introduction to 23 Not-Invented-Here JavaScript Frameworks" /s
> 23 Not-Invented-Here JavaScript Frameworks
We're talking about operating systems. Do you know the difference between an operating system and a Javascript framework?
So your student have to tell Linus:
Sorry cant help you with your kernel that's not how you're supposed to do it, please learn Rust and rewrite your kernel RN! I don't know in what wannabe rainbow world you live.
BTW Students can think for themself, they honestly DONT believe you if you tell them unix or c nor rust are flawless, teaching something does not mean it's perfect but one way to do it.
https://source.android.com/setup/build/rust/building-rust-mo...
Btw for politics essence of decision on many historical lesson are still great.
Ah yeah. Modern=good Ancient=Bad, that's why your car still has wheels right?
Let's see how good your tire's are in a chariot race:
https://www.seeker.com/secret-of-roman-race-chariots-found-2...
>>Any iron tire for racing would be a very thin strip of iron on the outside of the wooden rim, best when heat-shrunk on the wood, to consolidate the whole wheel.
Your base is ~unix=wheel and on top your pressure-sensor=Kubernetes (for example), below is your always on disk-brake=x86 ;)
I would suggest looking up how Fuchsia works for example.
Why learn a Bullshit OS (fuchsia) when you can learn ~unix and cover 90% of usage.
Again Students are not stupid they can read and learn for themselves after learning the basics of a OS...what Xv6 is for.
But maybe you are that hidden genius professor from MIT that could teach everything much better. But then, why do we even talk, right?
I would agree with you...after Fuschsia has proven itself in the real world for a few decades. At this point -it has not.
Yes. "Perfect" may be debatable (what is "perfect" anyway?), but it has lasted over half a century so they must have done something well!