All Projects → daviddwlee84 → OperatingSystem

daviddwlee84 / OperatingSystem

Licence: other
PKU OS course project and notes based on Nachos and XV6

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects
PostScript
262 projects
c
50402 projects - #5 most used programming language
TeX
3793 projects
assembly
5116 projects

Projects that are alternatives of or similar to OperatingSystem

Advanced-xv6
Modern improvements for MIT's xv6 OS
Stars: ✭ 26 (-77.97%)
Mutual labels:  operating-system, xv6
nachos
Nachos XMU操作系统课程实验
Stars: ✭ 31 (-73.73%)
Mutual labels:  operating-system, nachos
Macaron
A sweet hobby made operating system written in C++ for x86 CPUs with GUI
Stars: ✭ 34 (-71.19%)
Mutual labels:  operating-system
nixos-tutorial
one hour, hands-on
Stars: ✭ 118 (+0%)
Mutual labels:  operating-system
cpu-scheduling-simulator
⚙️Operating System CPU Scheduling Simulator😄
Stars: ✭ 20 (-83.05%)
Mutual labels:  operating-system
pranaOS
A unix operating system written from scratch in c that gives support for arm, x86
Stars: ✭ 138 (+16.95%)
Mutual labels:  operating-system
wiser
🐎 Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.
Stars: ✭ 249 (+111.02%)
Mutual labels:  operating-system
mckernel
McKernel
Stars: ✭ 88 (-25.42%)
Mutual labels:  operating-system
process-scheduling-solver
A web app to generate gantt chart and calculate turnaround time and waiting time for various CPU scheduling algorithms.
Stars: ✭ 90 (-23.73%)
Mutual labels:  operating-system
sanos
Sanos operating system kernel
Stars: ✭ 55 (-53.39%)
Mutual labels:  operating-system
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+111.86%)
Mutual labels:  operating-system
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-67.8%)
Mutual labels:  operating-system
yosild
Yosild is a single shell script that builds a full, minimal Linux distribution based on BusyBox.
Stars: ✭ 97 (-17.8%)
Mutual labels:  operating-system
KSOS
Our very own Operating System built from scratch for x86 architecture systems!
Stars: ✭ 83 (-29.66%)
Mutual labels:  operating-system
Polaris
A WIP 64-bit UNIX-like kernel
Stars: ✭ 72 (-38.98%)
Mutual labels:  operating-system
kerla
A new operating system kernel with Linux binary compatibility written in Rust.
Stars: ✭ 3,077 (+2507.63%)
Mutual labels:  operating-system
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-60.17%)
Mutual labels:  operating-system
Prism-OS
An operating system created in c#, Made possible by the cosmos community!
Stars: ✭ 45 (-61.86%)
Mutual labels:  operating-system
Osmanthus
A developing operating system
Stars: ✭ 36 (-69.49%)
Mutual labels:  operating-system
FoxOS
The FoxOS main repository
Stars: ✭ 48 (-59.32%)
Mutual labels:  operating-system

Operating System

PKU OS course project and notes based on Nachos and XV6.

  • Nachos - An immature OS that we can try to add wings on it.
  • XV6 - A much more functional OS that we can absorb its essence by tracing code.

Schedule

Nachos Lab

Lab Subject Detail
Lab 0 Build Nachos Setup 32bit cross compile dev. env.
Lab 1 Thread Mechanism Multi-thread management
Lab 2 Thread Scheduling CPU scheduling
Lab 3 Synchronization Mechanism Concurrency, mutex lock and semaphore
Lab 4 Virtual Memory TLB, demand paging, replacement algorithm and user program
Lab 5 File System Improve current file system
Lab 6 System Call Implement all system calls

Quick start with docker!! (recommend)

XV6 Source Code Reading

  1. Process and Thread (with Scheduling)
  2. Synchronization Mechanism
  3. Interrupt and System Call
  4. Memory Management
  5. File System

Additional Task

Synchronization using Semaphore and Monitor

Notes

Course Notes

Summary

Algorithm

  • Scheduling Algorithm
    • Process/Thread CPU Scheduling
    • Disk Scheduling
  • Replacement Algorithm
    • Page Replacement
    • TLB Replacement
    • Cache Replacement
  • Other Algorithm
    • Deadlock
      • Deadlock prevention
      • Deadlock avoidance
      • Deadlock discover and recover
  • Solutions
    • Concurrency
      • Semaphore
        • Dekker Solution
        • Peterson Solution
    • Deadlock
      • Banker's Algorithm

Data Structure

  • Free Space Management (for Memory or Disk)
    • Bitmap (Bit vector)
    • Free Table
    • Free Linked List
  • Concurrency
    • Semaphore
    • Monitor
      • Hoare Monitor
      • Mesa Monitor
    • Mutex Lock + Condition Variable

Hardware

  • TLB vs. Cache

Resources

Books

Nachos

MOOCs

Github

Others

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].