DLX OS Project
DLX OS Project Overview
Checkout GitHub Repo.
Project Summary
During my CS314 (Operating System) course, I had the opportunity to work on enhancing an old operating system called DLX-os. Our primary focus was to improve its functionality by incorporating essential features commonly found in modern operating systems. Throughout the project, I utilized my proficiency in the C programming language and gained a deeper understanding of operating system principles, particularly in the Linux environment.
Technologies Used
- Operating System: Linux
- Programming Language: C
Project Objectives
The project comprised three main phases, each aimed at enhancing different aspects of the DLX-os operating system:
- Project 1: Implementing getPID()
- Added appropriate traps and processes to integrate the
getPID()
function into the DLX-os system. This involved understanding the system’s architecture and implementing mechanisms to retrieve process identifiers effectively.
- Added appropriate traps and processes to integrate the
- Project 2: Improving Process Scheduling
- Upgraded the processing system from a Round Robin algorithm to a lottery system. This enhancement aimed to optimize process scheduling for better resource utilization and performance. It involved redesigning the scheduling mechanism and implementing the lottery algorithm to allocate CPU time efficiently.
- Project 3: Creating a File System
- Developed a Unix-like file system to provide file management capabilities within DLX-os. This involved designing data structures, implementing file operations such as copy (
cp
), concatenate (cat
), and search (grep
), and ensuring seamless integration with the existing system architecture.
- Developed a Unix-like file system to provide file management capabilities within DLX-os. This involved designing data structures, implementing file operations such as copy (
Learning Outcomes
Through this project, I honed my skills in:
- System-level programming in C
- Understanding and modifying operating system internals
- Process scheduling algorithms
- File system design and implementation
- Debugging and troubleshooting in a Linux environment
Key Takeaways
- Adaptability: I learned to adapt to the challenges of working with legacy systems and implementing modern features within their constraints.
- Collaboration: Collaborating with peers on a complex project taught me the importance of effective communication and teamwork in achieving project goals.
- Problem-solving: I developed strong problem-solving skills by identifying issues within the existing system and implementing efficient solutions.
Conclusion
This project provided me with valuable hands-on experience in operating system development and deepened my understanding of system-level programming concepts. I am confident that the skills and knowledge gained through this project make me a strong candidate for roles requiring expertise in operating systems, system programming, and software development.
For further details or to discuss this project in more depth, please feel free to reach out to me. Thank you for considering my application.