CSC-502 Principles of OS & Distributed Systems : MINIX 3
As part of CSC 502 Principles of OS & Distributed Systems course, I have customized an open source operating system, MINIX 3, to display custom banner on startup and shutdown, add a new system command that can be used on terminal and add a new system call and user library that can be used for calling internal kernel methods.
MINIX 3 is a free Open-Source Operating System designed to be highly flexible, secure and reliable. MINIX runs on x86 and ARM CPUs. It is compatible with NetBSD and runs numerous NetBSD packages. It is designed as a tiny microkernel (kernel mode) running with rest of Operating System which is running as numerous isolated and protected processes (user mode).
In order to install MINIX 3 Operating System on local machine over a Virtual Machine, following are steps:
Here is how VirtualBox main screen will look like and you can see new Minix3.2.1 VM listed in left panel.
Below are the installation steps for MINIX 3 Operating System.
Once installation completes, you can select Ethernet card and network configuration (select default). Once setup is completed, type poweroff at MINIX VM prompt. Now it is time to boot from the VM disk and not the CD ISO image so do the following:
Now it will boot into newly installed MINIX 3 operating system.
As MINIX console does not have scroll bars, you can use ssh and sftp to login to MINIX for file editing, lets first install openssh.
Use ssh (e.g. Putty), scp (e.g. WinScp) or remote connect eclipse to connect to VirtualBox VM. Configure VM port forwarding in VirtualBox VM settings as follows:
Using ipconfig command at the MINIX command prompt, Guest IP address of VM can be found. ssh to the VM from host machine after setting up the port forwarding.
ssh -p 2222 root@127.0.0.1
Type the above command in a terminal on host machine or in a ssh/scp client. With this configuration, port forwarding will enable the VM to start listening on port #2222 on the local host (127.0.0.1). If port 2222 is in use, then some other high port number.
NOTE: these instructions were executed on Mac OS (Sierra Version 10.12.6) but it should work on Windows OS (Windows 10) machine too.
Below are the tree hierarchy of the files, which were modified for this project
Request Type | Custom Banner |
---|---|
Startup | ![]() |
Shutdown | ![]() |
Request Type | System Command |
---|---|
MULTIPLICATION TABLE | ![]() |
SQUARE TABLE | ![]() |
SUMMATION TABLE | ![]() |
CUBIC TABLE | ![]() |
When making changes for following, use the highlighted commands at /usr/src/releasetools
- make clean install
- reboot
When making changes for following, use the highlighted commands at /usr/src
- make build
- reboot
I have taken help from the following websites and links for the installation of MINIX and understanding the operating system files but all the implementations are entirely done by me.
This is just a course project and it is not a replica or replacement of the MINIX 3 Operating System.
It is just an attempt by a student to learn and customize an open source operating system.
Please do not use this as a replacement for publicly published MINIX 3 operating system.