limeOS

Linux Operating System

Introduction


We work in teams to develop the core of an operating system. We set up the interrupt descriptor table (IDT), basic paging support for tasks, separate 4 MB pages for the kernel and applications, initialize a few devices, write the system call interface along with ten system calls, provide support for six tasks from program images in the file system which interface with the kernel via system calls, multiple terminals and basic scheduling.

The goal for the project is to earn hands-on experience in developing the software used to interface between devices and applications, i.e., operating systems.


Implemented Features


  • Load the Global Descriptor Table (GDT)
  • Initialise the Interrupt Descriptor Table (IDT)
  • Initialise the Devices (PIC, Keyboard, RTC)
  • Initialise Paging
  • Create a Terminal Driver
  • Parse the Read-only File System
  • The Real-Time Clock Driver
  • Support System Calls
  • Support A Loader
  • Executing User-level Code
  • Process Control Block
  • Multiple Terminals and Active Tasks
  • Scheduling
  • Signals
  • Dynamic Memory Allocation
  • Member


    Sean Chung
    sean.chung@wisc.edu
    Mark Lin
    angyang2@illinois.edu
    Thomas McCarthy
    tjmccrt2@illinois.edu
    Lohitaksh Gupta
    lg6@illinois.edu