InfOS is a complete operating system, developed from scratch for research and teaching purposes. Its aim is to provide an operating system built on modern programming paradigms, employing object oriented principles, modularity, and ease-of-use. It is used as the primary coursework component of the Operating Systems course, at the School of Informatics.
InfOS is available as open-source software on github: https://github.com/tspink/infos.
Quick Start
You should be able to quickly try out InfOS, if you have the following packages installed:
- Linux (or Windows Subsystem for Linux)
- Qemu (with the x86-64 system emulation model)
- A modern g++
Then, you’ll need to check-out both the Kernel and the user-space repository:
$ git clone https://github.com/tspink/infos
$ git clone https://github.com/tspink/infos-user
Then, build each project:
$ cd infos
$ make
$ cd ../infos-user
$ make fs
And, run (from the infos-user
directory):
$ qemu-system-x86_64 -m 8G \
-kernel ../infos/out/infos-kernel \
-debugcon stdio \
-hda bin/rootfs.tar \
-append 'pgalloc.debug=0 pgalloc.algorithm=simple objalloc.debug=0 sched.debug=0 sched.algorithm=cfs syslog=serial boot-device=ata0 init=/usr/init'
Also, if you’re interested in using InfOS for teaching, let me know and I can provide a practical coursework specification that I developed with my PhD student Kim Stonehouse. It comes with a repository that is designed to be used by students for getting started quickly, i.e. it contains both the kernel and user-space, along with the skeletons for the coursework implementations.