|
CSL373/CS333N Assignment 4: Building your own OS (Part 2)
Background reading
- Read the documentation of Bochs (a free X86 emulator) and OSKit.
Check out the
Bochs and
OSKit documentation mirrored locally.
Building your own OS (Part 2)
- Use Bochs (a free X86 emulator) to
develop your own OS. Use
OSKit to boot your
machine (or emulator) in to protected mode and first run a "hello world"
application.
- Change the "hello world" application in to an init process
that sets up the interrupt vector table and initializes the timer and the
CPU registers and passes control to a scheduler.
- Implement a round-robin preemptive scheduler and context
switching. Initialize the timer appropriately and
explicitly save the register contents during
context switch (unlike the scheme used in Assignment 3).
- Port your semaphore implementation of Assignment 3
on to your new OS and intregrate it with the new context switching
mechanism. semaphores can now be implemented as spin-lock
critical sections using compare and exchange.
- Use a flat memory model. Use OSKit's malloc, printf etc.
Do not use any external devices (including keyboard) except the
monitor screen.
- Re-implement the applications of Assignment 3
in your new OS.
Note:
- Soumyadeb's pointers to OsKit
- Some tips for context switching in A4
- The last date of submission is Feb 26.
That should give you adequate time to build something useful (an mp3 player, may be?) with your own OS.
Subhashis Banerjee / Dept. Computer Science and Engineering / IIT Delhi /
Hauz Khas/ New Delhi 110016 / suban@cse.iitd.ernet.in
|