# Operating Systems

TODO

## Articles

* [Обзор принципиально новой ОС Bolgenos](https://habr.com/ru/post/95107/) - must-read `[RU]`
* [Let’s build an LC-3 Virtual Machine](https://www.rodrigoaraujo.me/posts/lets-build-an-lc-3-virtual-machine/)
* [Guix: A most advanced operating system](https://ambrevar.xyz/guix-advance/)
* [OS Overview](https://andrewharvey4.wordpress.com/2010/07/31/operating-systems-notes/)
* [The Wrong Way to Switch Operating Systems on Your Server](https://figbert.com/posts/wrong-way-to-switch-server-os/)
* [I wrote a linker everyone can understand!](https://briancallahan.net/blog/20210609.html)
* [Urbit :: the good, the bad, and the insane](https://wejn.org/2021/02/urbit-good-bad-insane/)
* [Unikraft: Fast, Specialized Unikernels the Easy Way](https://arxiv.org/abs/2104.12721)
* [User mode VS Kernel mode](https://medium.com/@SagiDana/kernel-mode-vs-user-mode-784a5b1f4911)
* [Why mmap is faster than system calls](https://sasha-f.medium.com/why-mmap-is-faster-than-system-calls-24718e75ab37)
* [From Zero to main(): How to Write a Bootloader from Scratch](https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch)
* [Writing an x86 bootloader in Rust that can launch vmlinux](https://vmm.dev/en/rust/krabs.md)
* [The Evolution and Future of Hypervisors](https://medium.com/@penberg/the-evolution-and-future-of-hypervisors-999f568f9a5d)
* [Sol — a sunny little virtual machine](https://rsms.me/sol-a-sunny-little-virtual-machine)
* [Tutorial - Write a System Call](https://brennan.io/2016/11/14/kernel-dev-ep3/)
* [1001 Ways of Implementing a System Call](https://x86.lol/generic/2019/07/04/kernel-entry.html)
* [A dream of an ultimate OS](https://okmij.org/ftp/papers/DreamOSPaper.html)
* [Introducing Mercury OS](https://uxdesign.cc/introducing-mercury-os-f4de45a04289)
* [Operating Systems: From 0 to 1](https://tuhdo.github.io/os01/)
* [UEFI vs BIOS: What's the Difference?](https://www.freecodecamp.org/news/uefi-vs-bios/)

## Books

* [Pilot: An Operating System for a Personal Computer](https://courses.cs.washington.edu/courses/cse550/20au/papers/CSE550.Pilot.pdf)
* [The operating system: should there be one?](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.715.9197\&rep=rep1\&type=pdf)
* [The MINIX book (Operating systems)](http://index-of.es/EBooks/Operating%20Systems%20Design%20&%20Implementation%203rd%20Edition\(1\).pdf)
* [The Benefits and Costs of Writing a POSIX Kernel in a High-Level Language (Cody Cutler)](https://pdos.csail.mit.edu/papers/biscuit:thesis.pdf)
* [GENODE Operating System Framework 20.05](https://genode.org/documentation/genode-foundations-20-05.pdf)
* [Notes on the Plan 9tm 3rd edition Kernel Source (Francisco J Ballesteros)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.5409\&rep=rep1\&type=pdf)
* [The little book about OS development](https://littleosbook.github.io/)
* [The intermezzOS book](http://intermezzos.github.io/book/)
* BIOS - Дизассемблирование, модификация, программирование (Дармаван Салихан)

## Courses / Videos

* [Revolution OS - 2001 - Multilingual (16 languages)](https://youtu.be/Eluzi70O-P4)
* [16-Bit Virtual Machine](https://youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b)
* [DLS: Functional Foundations for Operating Systems](https://blogs.cs.st-andrews.ac.uk/csblog/2018/01/24/dls-functional-foundations-for-operating-systems/)
* [Commute talk: How to start building an OS?](https://youtu.be/fqllFKjEZAo)
* [Write your own Operating System](https://youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M)

## Links

* [Writing an OS in Rust](https://os.phil-opp.com/)
* [How to create an operating system](https://samypesse.gitbook.io/how-to-create-an-operating-system/)
* [OS-tutorial](https://github.com/cfenollosa/os-tutorial)
* [PLAN 9 DESKTOP GUIDE](https://pspodcasting.net/dan/blog/2019/plan9_desktop.html)
* [Operating System Development Series](http://www.brokenthorn.com/Resources/OSDevIndex.html)
* [The Distributed Operating System Void](https://nivenly.com/lib/2021-04-02-operating-system-interface/)
* [Lecture Notes for CS 537](http://pages.cs.wisc.edu/~bart/537/lecturenotes/titlepage.html)
* [Roll your own toy UNIX-clone OS](http://www.jamesmolloy.co.uk/tutorial_html/)
* [Learning operating system development using Linux kernel and Raspberry Pi](https://s-matyukevich.github.io/raspberry-pi-os/)
* [Awesome Virtualization Awesome](https://github.com/Wenzel/awesome-virtualization)
* [OSDev.org](https://wiki.osdev.org/Main_Page)
* [Distrowatch](https://distrowatch.com/) - news, distribution pages hit rankings, etc. about various Linux distributions as well as other free software/open source Unix-like operating systems.
* [Learning operating system development using Linux kernel and Raspberry Pi](https://github.com/s-matyukevich/raspberry-pi-os)
* [Awesome Plan9](https://github.com/henesy/awesome-plan9)
* [Build your own: linker](https://github.com/andrewhalle/byo-linker)
* [Write Your Own 64-bit Operating System Kernel From Scratch](https://github.com/davidcallanan/os-series)
* [bootOS](https://github.com/nanochess/bootOS)
* [Test your sysadmin skills](https://github.com/trimstray/test-your-sysadmin-skills)
* [Operating Systems: Timeline and Family Tree](https://eylenburg.github.io/os_familytree.htm)
