https://github.com/danijelaskov/microkernel
An implementation of a small, but fully functional multithreaded operating system kernel with time sharing.
https://github.com/danijelaskov/microkernel
8086 dos etf kernel multithreading operating-system operativni-sistem operativni-sistemi-1 os1 projekat time-sharing x86
Last synced: 6 days ago
JSON representation
An implementation of a small, but fully functional multithreaded operating system kernel with time sharing.
- Host: GitHub
- URL: https://github.com/danijelaskov/microkernel
- Owner: DanijelAskov
- License: gpl-3.0
- Created: 2019-11-19T16:33:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-12-21T00:00:44.000Z (over 5 years ago)
- Last Synced: 2025-03-30T17:22:59.502Z (25 days ago)
- Topics: 8086, dos, etf, kernel, multithreading, operating-system, operativni-sistem, operativni-sistemi-1, os1, projekat, time-sharing, x86
- Language: C++
- Homepage:
- Size: 8.46 MB
- Stars: 9
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MicroKernel

## Description
This project is an implementation of a small, but *fully functional* **multithreaded operating system kernel** with **time sharing**.
More precisely, it contains the source code of kernel's **thread management subsystem**.User application ([`user.cpp`](src/user.cpp)) and the kernel are compiled and linked into a single console application (`m-kernel.exe`).
Static library `lib/APPLICAT.lib` contains the implementation of system's *scheduler*.
You can see *scheduler*'s interface in [`scheduler.h`](h/schedule.h).The full project specification can be found [here](https://1drv.ms/b/s!AuZ7wmWsDfythjdUikBibqfRTVH2) (Serbian language only).
## Setup
This project uses a very old C++ compiler, **B**orland **C**++ **C**ompiler (BCC), version 3.1, from 1992.
BCC provides a simple way of tempering with interrupt vector table (IVT) on MS DOS (Microsoft **D**isk **O**perating **S**ystem), which is necessary in order to implement time-sharing functionality.1. Make sure you have 32-bit Windows (installed or available as a virtual machine)
2. Download BCC 3.1 from [here](https://1drv.ms/u/s!AuZ7wmWsDfythjZTNW7PU0fB466C?e=Xtk0uW)
3. Extract the archive to `C:\bc31\`
4. Move the content of this repository to `C:\project\`
5. Open command prompt, navigate to `C:\project\` and run `compile.bat`
6. Run `run.bat`## Note to the reader of this README
If you have any question, suggestion or collaboration offer, please feel free to [contact me](mailto:[email protected]).
**If you find this repository useful, please consider starring it!**