Live data from Hacker News

Xv6, a simple Unix-like teaching operating system

pdos.csail.mit.edu

21–30 of 34 posts

Re: Xv6, a simple Unix-like teaching operating system

#22
post #20
post #14

Earlier quoted context omitted.

OpenBSD is huge (just like any general-purpose OS would be today). It's not a "teaching OS." Minix would be a better alternative, IMHO.

agree - possibly any of the BSD's might be a good follow up for 'advanced' study since the codebase & kernel structures have a direct lineage. Maybe doing the 'base' course on like 4.2BSD which is still smaller and close to v7 might make sense

4.4BSD-Lite2 is the earliest they could do without risking some legal issues[1].

[1] https://virtuallyfun.com/wordpress/2018/11/26/why-bsd-os-is-...

Re: Xv6, a simple Unix-like teaching operating system

#23
post #9
post #6

Similar teaching operating systems include: Blog OS, an operating system written in Rust constructed through a series of independent tutorials.[0] The CS140E embedded operating system.[1] This OS comes from an experimental course taught by Dawson Engler at Standford. The instruction is lab-based with no lectures. The student builds the OS on a Raspberry Pi through the use of primary-source technical references like d…

The nice thing about xv6 is it gets a lot farther to be a full OS. User mode, ELF loader, an ascetic but usable system call table, etc.

If you want an even fuller OS for teaching purposes, early versions of Minix were designed with teaching in mind, and there’s a book to go along with it.

Re: Xv6, a simple Unix-like teaching operating system

#24
post #9

Earlier quoted context omitted.

The nice thing about xv6 is it gets a lot farther to be a full OS. User mode, ELF loader, an ascetic but usable system call table, etc.

If you want an even fuller OS for teaching purposes, early versions of Minix were designed with teaching in mind, and there’s a book to go along with it.

Yeah, but they used a much more confusing architecture for early Minix (16-bit protected mode) that I'm of the opinion it obfuscates a lot of the underlying concepts.

And xv6 has a book that goes along with it as well.

Re: Xv6, a simple Unix-like teaching operating system

#25
post #6

Similar teaching operating systems include: Blog OS, an operating system written in Rust constructed through a series of independent tutorials.[0] The CS140E embedded operating system.[1] This OS comes from an experimental course taught by Dawson Engler at Standford. The instruction is lab-based with no lectures. The student builds the OS on a Raspberry Pi through the use of primary-source technical references like d…

also, don’t forget about [0] (another rust-based learning mini for risc-v)

[0] http://osblog.stephenmarz.com/

Re: Xv6, a simple Unix-like teaching operating system

#26
The MIT Operating Systems opencourseware class labs has some great exercises when learning about operating systems[0]. I've also found older linux kernels, like v1.0, are easier to follow for learning [1].

[0]https://ocw.mit.edu/courses/electrical-engineering-and-compu...

[1]https://mirrors.edge.kernel.org/pub/linux/kernel/v1.0/

Re: Xv6, a simple Unix-like teaching operating system

#28

Earlier quoted context omitted.

>>regex library using finite automata >Ehh By which you mean?

I remember learning RE in the context of finite automata so I'm gathering that they are questioning the novelty of that implementation strategy?

Exactly

Re: Xv6, a simple Unix-like teaching operating system

#29
post #8

PintOS is also a nice learning OS that's been used in classes. It is initially incomplete and there are 4 projects to implement process schedulling, paging, files. It simplifies the learning process since the hardware related initialization code is already implemented and is readable enough to be understood, while allowing you to focus on implementing the main ideas in OSs. Currently I'm doing project 1 on my own. It…

[deleted]

Re: Xv6, a simple Unix-like teaching operating system

#30

What am I supposed to do with it?

not sure what all the downvotes are for - it was a legitimate question. The instructions just say to clone the github repo. The github repo just says it's for learning - no instructions.

How is one to learn without instructions? Or it only to teach those whom already know the answers?

Post reply on HN