Skip to content

srg-ics-uplb/ics-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alt Text

About

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.

Downloads

Latest floppy image: ics-os-floppy.img

Test the floppy image in qemu.

$qemu-system-i386 -fda ics-os-floppy.img

Build Environment

Ubuntu 16.04 64-bit is the last tested working build environment. Virtualbox can be used to run this version of Ubuntu. However, docker is the recommended build environment since new versions of Ubuntu do not work anymore.

Using Docker to build

ICS-OS is a 32-bit operating system and requires a 32-bit build environment. You need to install docker and docker-compose to build the ICS-OS kernel and user applications.

Run the following command to enter the build environment:

$docker-compose run ics-os-build

or if you are using the docker-compose plugin:

$docker compose run ics-os-build

You will be dropped to a shell where you can perform the build. The ics-os folder is mapped inside the container. Thus, you can perform the edits outside the container(in another terminal) and the changes will be reflected inside the build environment.

#cd /home/ics-os
#make clean
#make
#exit

Make the floppy image then boot.

$sudo make floppy
$make boot-floppy

Alternatively, you can boot the floppy image directly using qemu.

$qemu-system-i386 -fda ics-os-floppy.img

See Lab 01 for a more complete discussion of how to set up the build environment.

Development and Support

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.

Citation

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}
}