{"id":19098222,"url":"https://github.com/danijelaskov/microkernel","last_synced_at":"2025-04-30T15:25:17.330Z","repository":{"id":121268356,"uuid":"222741214","full_name":"danijelaskov/microkernel","owner":"danijelaskov","description":"An implementation of a small, but fully functional multithreaded operating system kernel with time sharing.","archived":false,"fork":false,"pushed_at":"2019-12-21T00:00:44.000Z","size":8871,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-19T04:41:52.097Z","etag":null,"topics":["8086","dos","etf","kernel","multithreading","operating-system","operativni-sistem","operativni-sistemi-1","os1","projekat","time-sharing","x86"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danijelaskov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-19T16:33:05.000Z","updated_at":"2024-12-15T03:44:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb3af266-2697-4474-80bf-f83b05298e7a","html_url":"https://github.com/danijelaskov/microkernel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danijelaskov%2Fmicrokernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danijelaskov%2Fmicrokernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danijelaskov%2Fmicrokernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danijelaskov%2Fmicrokernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danijelaskov","download_url":"https://codeload.github.com/danijelaskov/microkernel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251730374,"owners_count":21634373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["8086","dos","etf","kernel","multithreading","operating-system","operativni-sistem","operativni-sistemi-1","os1","projekat","time-sharing","x86"],"created_at":"2024-11-09T03:44:31.364Z","updated_at":"2025-04-30T15:25:17.306Z","avatar_url":"https://github.com/danijelaskov.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MicroKernel\n\n![Demonstration](demo/demo.gif)\n\n## Description\n\nThis project is an implementation of a small, but *fully functional* **multithreaded operating system kernel** with **time sharing**.\nMore precisely, it contains the source code of kernel's **thread management subsystem**.\n\nUser application ([`user.cpp`](src/user.cpp)) and the kernel are compiled and linked into a single console application (`m-kernel.exe`).\nStatic library `lib/APPLICAT.lib` contains the implementation of system's *scheduler*.\nYou can see *scheduler*'s interface in [`scheduler.h`](h/schedule.h).\n\nThe full project specification can be found [here](https://1drv.ms/b/s!AuZ7wmWsDfythjdUikBibqfRTVH2) (Serbian language only).\n\n## Setup\n\nThis project uses a very old C++ compiler, **B**orland **C**++ **C**ompiler (BCC), version 3.1, from 1992.\nBCC 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.\n\n1. Make sure you have 32-bit Windows (installed or available as a virtual machine)\n2. Download BCC 3.1 from [here](https://1drv.ms/u/s!AuZ7wmWsDfythjZTNW7PU0fB466C?e=Xtk0uW)\n3. Extract the archive to `C:\\bc31\\`\n4. Move the content of this repository to `C:\\project\\`\n5. Open command prompt, navigate to `C:\\project\\` and run `compile.bat`\n6. Run `run.bat`\n\n## Note to the reader of this README\n\nIf you have any question, suggestion or collaboration offer, please feel free to [contact me](mailto:danijel.askov@gmail.com).\n**If you find this repository useful, please consider starring it!**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanijelaskov%2Fmicrokernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanijelaskov%2Fmicrokernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanijelaskov%2Fmicrokernel/lists"}