muradm / SBUnix

64-bit Operating system developed as a part of the CSE-506 (Operating Systems) course under Prof. Mike Ferdman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

                                                CSE-506 : Operating Systems
                                         ------------------------------------------
                                        
--------------------------------------------------------------------------------------------------

The project includes the following implementations:

Warm up projects:
a) Kernel printf(kprintf)
b) Interrupt handling : Keyboard and Timer Interrrupts
c) Walking the PCI configuration space
d) Discovering the AHCI controller
e) Finding the first disk connected via AHCI
f) Writing 100 4KB blocks to the disk, filling each block with corresponding byte (block 0 filled with byte 0, block 1 filled with byte 1, etc.)
and reading the data back to verify it was written to disk correctly

--------------------------------------------------------------------------------------------------

Final Project:
a) Freelist implementation
b) Paging
c) Handling Page faults
d) Context switching between the kernel threads
e) Ring 0 to Ring 3 switch
f) Terminals
g) System calls (read, write)
h) Loading an ELF by reading the tarfs
i) Echo command works on shell.

--------------------------------------------------------------------------------------------------

References:
a) OSdev.
b) James Molloy tutorials.
c) Bran's tutorials.


About

64-bit Operating system developed as a part of the CSE-506 (Operating Systems) course under Prof. Mike Ferdman

License:Other


Languages

Language:C 62.7%Language:Forth 32.1%Language:Assembly 3.1%Language:Makefile 2.1%Language:C++ 0.0%