Operating Systems

Different Resources used in my Blog for Learning Operating Systems

  1. Operating System in 3 Easy Pieces by University of Wisconsin Madison, they have a good Operating Systems course.

UW Operating Systems

  1. MIT is another good resource for Operating Systems

Operating Systems Engineering Course (MIT)

Lecture Videos of MIT on Youtube

  1. From the Famous T-Rex Operating Systems Book here is some notes from the University of Illinois Chicago

Operating Systems Course Notes Main Page

  1. Harvey Mudd College Operating Systems class

  2. Lastly my Alma mater Michigan State University (Go Green!) CSE 325 Class is another good resource for Notes and Code for learning Operating Systems

Setting things up for the Operating System

  • I’ll be using the XV6 Operating System from MIT to learn

Steps to download/install XV6 on macos

  1. Clone XV6
git clone https://github.com/mit-pdos/xv6-public
  1. Run/Compile OS using make then make qemu-nox
make
make qemu-nox

Note on Compling:

For some reason I had to open *usertests.c** file and “/” out *lastaddr = 99; for the program to compile.

Good Video Showing how to Compile XV6 on Mac

How to Exit out of OS

  1. control + a
  2. x

Operating System Booting

Booting from Hard Disk..xv6...
cpu0: starting 0
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh

Run ls

$ ls
.              1 1 512
..             1 1 512
README         2 2 2286
cat            2 3 15412
echo           2 4 14296
forktest       2 5 8700
grep           2 6 18248
init           2 7 14920
kill           2 8 14372
ln             2 9 14280
ls             2 10 16836
mkdir          2 11 14400
rm             2 12 14380
sh             2 13 28424
stressfs       2 14 15308
usertests      2 15 62760
wc             2 16 15836
zombie         2 17 13956
console        3 18 0
test.txt       2 19 20

Definition of Operating System:

  • An operating system is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware.

Part Zero

Part 1: Introduction

Part One

Part 2: Virtualization

Virtualization Notes

Part Two

Part 3: Process Management

Part 4: Memory Management

Extras: Security


Projects

Project 1

Project 2

Project 3

Project 4

Project 5