Skip to content

Cooperative Multitasking 64-bit Operating System for Intel x86 processor. Functionalities include Shell with pipe, Background Process, Interrupt Handling, Dynamic Memory Allocation, 4-level Paging, Scheduling, tarfs , ELF loading, Memory Mapping, COW fork, SEGV handling, System calls.

License

Notifications You must be signed in to change notification settings

SwethasriKavuri/Kernel-Development-64bit-x86-OS

Repository files navigation

* The provided Makefile:
  1) builds a kernel
  2) copies it into rootfs/boot/kernel/kernel
  3) creates an ISO CD image with the rootfs/ contents

* To boot the system in QEMU, run:
qemu-system-x86_64 -curses -drive id=boot,format=raw,file=$USER.img,if=none -drive id=data,format=raw,file=$USER-data.img,if=none -device ahci,id=ahci -device ide-drive,drive=boot,bus=ahci.0 -device ide-drive,drive=data,bus=ahci.1 -gdb tcp::9999

Explanation of parameters:
  -curses         use a text console (omit this to use default SDL/VNC console)
  -drive ...      connect a CD-ROM or hard drive with corresponding image
  -device ...     configure an AHCI controller for the boot and data disks
  -gdb tcp::9999  listen for "remote" debugging connections on port NNNN
  -S              wait for GDB to connect at startup
  -no-reboot      prevent reboot when OS crashes

* When using the -curses mode, switch to the qemu> console with ESC-2.

* To connect a remote debugger to the running qemu VM, from a different window:
gdb ./kernel

At the (gdb) prompt, connect with:
target remote localhost:9999

This is a 50-point project named Bl"OS"somS <Blossoms> which involved builing a co-operative multi-tasking 64bit x86 operating system with features like a Memory Subsystem, a Process Subsystem, User-level Subsystem , a I/O subsystem and binaries ls, cat, sleep, ps and kill.
Core syscalls implemented are fork and exec. It has its own terminal. The shell is named SBUnix.




------------------------------------------ Features -------------------------------------------

1. Warm up:: Kernel printf, Timer, Keyboard, IDT, handlers
2. Physical Memory, Virtual Memory, Mapping
3. 4-Level Paging, CR3 setup
4. Ring 0 to Ring 3 switch, Context Switch, COW fork
5. Tarfs and Elf Loading
6. Auto grow stack and Dynamic heap allocation
9. cd,ls,ps,kill -9, cat. 

Syscall supported:
=================
1. open
2. read
3. write
4. close
5. opendir
6. readdir
7.closedir
8.sleep
9.getcwd
10.waitpid
11.execve
12.getpid
13.getppid
14.fork
15.exit
16.chdir
17.clearscreen
18. kill


--------------------------------- References ---------------------------------

1. BrokenThorn
2. Osdevwiki and Forum
3. AMD64 Architecture Programmer's Manual Volume 2: System Programming
4. Bran(OSDEVER)
5. JamesM's kernel development tutorials 

Reference OS (x64):
1. HelenOS-0.5.0
2. Shovelos






























Instructor: Michael Ferdman

 

About

Cooperative Multitasking 64-bit Operating System for Intel x86 processor. Functionalities include Shell with pipe, Background Process, Interrupt Handling, Dynamic Memory Allocation, 4-level Paging, Scheduling, tarfs , ELF loading, Memory Mapping, COW fork, SEGV handling, System calls.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published