xv6: A Simple, Unix-like Teaching Operating System

by | Jan 6, 2019 | Operating Systems | 0 comments

The job of an operating system is to share a computer among multiple programs and to provide a more useful set of services than the hardware alone supports. The operating system manages and abstracts the low-level hardware, so that, for example, a word processor need not concern itself with which type of disk hardware is being used. It also multiplexes the hardware, allowing many programs to share the computer and run (or appear to run) at the same time. Finally, operating systems provide controlled ways for programs to interact, so that they can share data or work together.

This is a draft text intended for a class on operating systems. It explains the main concepts of operating systems by studying an example kernel, named xv6. xv6 is a re-implementation of Dennis Ritchie’s and Ken Thompson’s Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is implemented in ANSI C for an x86- based multiprocessor.

The text should be read along with the source code for xv6. This approach is inspired by John Lions’s Commentary on UNIX 6th Edition (Peer to Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14, 2000)).

xv6: A Simple, Unix-like Teaching Operating System

by Russ Cox, Frans Kaashoek, Robert Morris (PDF) – 102 pages

xv6: A Simple, Unix-like Teaching Operating System by Russ Cox, Frans Kaashoek, Robert Morris

Related Posts

x86-64 Assembly Language Programming with Ubuntu

x86-64 Assembly Language Programming with Ubuntu

The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS).

Linux Kernel in a Nutshell

Linux Kernel in a Nutshell

This book is intended to cover everything that is needed to know in order to properly build, customize, and install the Linux kernel. No programming experience is needed to understand and use this book.