Linux Operating System

Explore LLL OS: A UIUC Student-Crafted OS with GUI, Dynamic Allocation, and Real-Time Display Features.

LLL OS

We welcome you to the home of the LLL OS project! This repository hosts the culmination of our final Machine Problems (MP) of ECE 391, undertaken in Spring 2022 at the University of Illinois at Urbana-Champaign (UIUC). With much dedication and passion, we have successfully implemented our own operating system from scratch, brimming with impressive features that demonstrate the power and potential of our creation.

Demo of LLL OS

Core Features

LLL OS comes with a host of essential features that underpin its functionality:

  1. System Calls: LLL OS fully supports kernel-level operations, allowing processes to request services from the kernel.
  2. Virtual Memory (Paging): The OS employs an efficient paging mechanism for memory management, allowing for optimal utilization of the system’s physical memory.
  3. Read-Only File System: Our OS comes with a built-in read-only file system, providing secure and reliable storage for user data.
  4. Exception Handlers: We’ve implemented robust exception handlers to ensure system stability, even when faced with unexpected scenarios.
  5. RTC, Keyboard, and PIT Interrupt Handlers: These integral handlers ensure that the OS can interact smoothly with hardware components.
  6. Multiple Terminals: LLL OS supports the operation of multiple terminals simultaneously, paving the way for multitasking.

Extra Features

Beyond the core functionalities, our Group 64 has added extra spice to LLL OS to further enhance the user experience:

  1. Boot Animation: We’ve integrated an automatic boot animation that features hard-coded images (RGB 565 - numpy) and text, including text animations.
  2. Graphical User Interface (GUI): LLL OS supports a visually appealing GUI, including customizable backgrounds for both the desktop and the terminal (RGB 565), and the ability to switch the terminal from text to graphic mode.
  3. Dynamic Allocation: Our OS uses a buddy system and slab cache for dynamic memory allocation, improving overall system performance.
  4. Signal: LLL OS supports normal signal functionalities (sigtest passed), with right and left mouse clicks employed to initiate sleep and continue actions, respectively.
  5. Time Display (Real CT.): The OS displays real-time, enhancing user interaction.
  6. Mouse Display: LLL OS showcases a graphical mouse, adding a modern touch to the user interface.
  7. Command History Retrieval: Users can easily navigate through command history using the up and down keys.
  8. Command Auto-complete: LLL OS supports command auto-completion upon pressing the tab key, enhancing the speed and efficiency of user input.
  9. Round-Robin Scheduler: As an extra credit for our 3-person team, we’ve implemented a round-robin scheduling algorithm, allowing for fair CPU time allocation amongst processes.

For a closer look at our work, feel free to explore our GitHub repository. The team at Group 64 eagerly anticipates your feedback and suggestions! Enjoy exploring the LLL OS!