Modern real-world operating systems are too complex to be taught to undergraduates and other instructional operating systems are not complete and usable and do not work on real hardware. By providing students with a not so complex working operating system to play with, they will be able to appreciate and understand deeper the concepts underlying an operating system.
Thus, this project aims to develop a simple yet operational instructional operating system for teaching undergraduate operating systems courses. ICS-OS is a fork of DEX-OS by Joseph Dayo.
Test the floppy image in qemu.
$ qemu-system-i386 -fda ics-os-floppy.img
$ sudo apt-get update
$ sudo apt-get install -y build-essential nasm qemu-kvm tcc git gcc-multilib
$ sudo pacman -Syu base-devel nasm qemu-full git
- Install WSL.
- Open a Linux/Ubuntu shell and run:
$ sudo apt-get update
$ sudo apt-get install -y build-essential nasm qemu-kvm tcc git gcc-multilib
See Lab 01 for a more complete discussion of how to set up the build environment.
Make the floppy image then boot.
$ sudo make all
$ make run
Alternatively, you can boot the floppy image directly using qemu.
$ qemu-system-i386 -fda ics-os-floppy.img
This project is used at the Institute of Computer Science, University of the Philippines Los Banos for CMSC 125. It is maintained by the Systems Research Group.
Get started by reading the Kernel Developer's Guide.
Don't forget to check the Wiki.
You can ask questions by submitting an issue.
If you find his resource useful in your research or teaching, please cite our paper.
J. A. C. Hermocilla. Ics-os: A kernel programming approach to teaching operating system concepts. Philippine Information Technology Journal, 2(2):25--30, 2009.
You can also use the following bibtex entry.
@article{hermocilla-ics-os-pitj2009,
author = {Hermocilla, J. A. C.},
title = {ICS-OS: A Kernel Programming Approach to Teaching Operating System Concepts},
journal = {Philippine Information Technology Journal},
volume = {2},
number = {2},
year = {2009},
issn = {2012-0761},
pages = {25--30},
publisher = {Philippine Society of Information Technology Educators and Computing Society of the Philippines },
address = {Philippines},
pdf = {https://jachermocilla.org/publications/hermocilla-pitj2009-ics-os.pdf}
}