fofajardo / ics-os

An instructional operating system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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: CI badge

Test the floppy image in qemu.

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

Prerequisites

Ubuntu 22.04 and above

$ sudo apt-get update
$ sudo apt-get install -y build-essential nasm qemu-kvm tcc git gcc-multilib

Arch Linux

$ sudo pacman -Syu base-devel nasm qemu-full git

Windows (WSL)

  1. Install WSL.
  2. 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

Docker

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

Build instructions

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

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

About

An instructional operating system


Languages

Language:C 95.6%Language:Assembly 2.1%Language:TeX 1.9%Language:Makefile 0.3%Language:Batchfile 0.0%Language:Shell 0.0%Language:Dockerfile 0.0%