From c246adaad066d7192527a95ffaa49f8668d10d15 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sat, 18 May 2019 13:50:55 -0400 Subject: Moved my research notes from Trello to the repo. * On math. * On operating systems.--- documentation/research/operating_system.md | 253 +++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 documentation/research/operating_system.md (limited to 'documentation/research/operating_system.md') diff --git a/documentation/research/operating_system.md b/documentation/research/operating_system.md new file mode 100644 index 000000000..4997a3cb2 --- /dev/null +++ b/documentation/research/operating_system.md @@ -0,0 +1,253 @@ +# Architecture + +1. [TabulaROSA: Tabular Operating System Architecture for Massively Parallel Heterogeneous Compute Engines](https://arxiv.org/abs/1807.05308) + +# Graphics | Rendering + +1. https://fuchsia.googlesource.com/garnet/+/master/docs/ui/scenic.md + +# Exemplar + +## Operating system + +1. http://lsneff.me/why-nebulet/ ||| https://github.com/nebulet/nebulet +1. http://exposnitc.github.io/index.html +1. https://www.gocosmos.org/ +1. http://www.microkernel.info/ +1. http://webosose.org/ +1. https://ostree.readthedocs.io/en/latest/manual/introduction/ +1. http://www.helenos.org/ +1. http://nixos.org/ +1. https://github.com/klange/toaruos +1. http://greenteapress.com/thinkos/ +1. http://kolibrios.org/en/ +1. http://menuetos.net/ +1. https://sailfishos.org/ +1. http://www.barrelfish.org/index.html +1. https://samypesse.gitbooks.io/how-to-create-an-operating-system/ +1. https://lumina-desktop.org/ +1. 2015 01 GNU Guix The Emacs of Distros &&& https://www.youtube.com/watch?v=AzebnJkfdvM +1. The Synthesis Kernel &&& https://www.usenix.org/legacy/publications/compsystems/1988/win_pu.pdf +1. http://zoo.cs.yale.edu/classes/cs422/pios +1. https://fuchsia.googlesource.com/docs/+/HEAD/book.md +1. https://externos.io/ +1. http://www.shadowdefender.com/ +1. https://pureos.net/ +1. http://progmp.net/ +1. http://www.uruk.org/emu/Taos.html +1. http://www.dickpountain.co.uk/home/computing/byte-articles/the-taos-operating-system-1991?hn +1. https://www.redox-os.org/ +1. https://system76.com/pop +1. http://habitatchronicles.com/2017/05/what-are-capabilities/ &&& ( Start reading where it says "Embedded systems" ) +1. http://genode.org/documentation/general-overview/index +1. https://camlistore.org/ +1. https://opensource.com/article/17/10/flintos +1. https://sortix.org/ +1. https://www.kickstarter.com/projects/xiki/xikihub-the-social-command-line +1. https://www.tockos.org/ +1. http://hydros-project.org/ +1. Twizzler: An Operating System for Next-Generation Memory Hierarchies &&& https://www.ssrc.ucsc.edu/Papers/ssrctr-17-01.pdf +1. http://www.includeos.org/ +1. https://harvey-os.org/ +1. https://github.com/jvburnes/node9 +1. http://unleashed-os.org/ +1. https://github.com/GreenteaOS/Greentea +1. https://xinu.cs.purdue.edu/ +1. https://browsix.org/ +1. https://github.com/frzb/coinboot +1. http://www.jbox.dk/sanos/index.htm +1. https://www.osrtos.com/ +1. [CLOSOS Specification of a Lisp operating system.](http://metamodular.com/lispos.pdf) +1. http://metamodular.com/Common-Lisp/lispos.html +1. http://riot-os.org/ +1. http://www.scs.stanford.edu/histar/ +1. http://sel4.systems/ + +## Unikernel + +1. https://hermitcore.org/2018/06/06/A-Rust-based-Unikernel/ +1. http://unikernel.org/ +1. https://xenproject.org/linux-foundation/80-developers/207-unikraft.html +1. https://fourlightyears.blogspot.com/2018/08/what-i-could-not-undiscover-about.html +1. https://mirage.io/ +1. [Unikernels: No Longer an Academic Exercise](http://250bpm.com/blog:138) +1. https://github.com/hermitcore/libhermit-rs +1. https://next.redhat.com/2018/11/14/ukl-a-unikernel-based-on-linux/ +1. https://github.com/joekoolade/JOE +1. https://ssrg-vt.github.io/hermitux/ +1. https://nanovms.com/dev/tutorials/running-forth-unikernels +1. [Unikernels: The Next Stage of Linux’s Dominance](https://www.cs.bu.edu/~jappavoo/Resources/Papers/unikernel-hotos19.pdf) +1. https://grapheneproject.io/ +1. https://ops.city/ + +# Reference + +1. [Writing an OS in Rust (Second Edition)](https://os.phil-opp.com/) +1. https://archiveos.org/ +1. https://lwn.net/Articles/615809/ +1. https://www.tweag.io/posts/2018-03-15-bazel-nix.html +1. Type-Safe Operating System Abstractions &&& https://www.cs.dartmouth.edu/~trdata/reports/TR2004-526.pdf +1. https://www.hillelwayne.com/post/nix/ +1. https://github.com/pervognsen/bitwise +1. True parallelism, with no concept of threads - Alfred Bratterud - Meeting C++ 2017 &&& https://www.youtube.com/watch?v=9IXivbSA_5A +1. http://ccl.cse.nd.edu/software/parrot/ +1. http://greenteapress.com/wp/think-os/ +1. https://gustavus.edu/mcs/max/os-book/ +1. https://sywtwaosir.wordpress.com/ +1. https://communityblog.fedoraproject.org/modularity-dead-long-live-modularity/ +1. https://en.wikipedia.org/wiki/WinFS +1. An alternative device-tree source language &&& https://lwn.net/SubscriberLink/730217/556c557e8a3bf0a0/ +1. https://joshondesign.com/2017/08/18/idealos_essay +1. https://tuhdo.github.io/os01/ +1. https://www.usenix.org/legacy/events/usenix03/tech/full_papers/padioleau/padioleau_html/index.html +1. https://medium.com/@ifesdjeen/on-disk-io-part-3-lsm-trees-8b2da218496f +1. https://medium.com/@ifesdjeen/on-disk-storage-part-4-b-trees-30791060741 +1. http://fare.tunes.org/LispM.html +1. http://queue.acm.org/detail.cfm?id=1317400 +1. The Art of Unix Programming &&& http://www.catb.org/esr/writings/taoup/html/index.html +1. https://shivambharuka.wordpress.com/2017/10/25/arrakis-the-operating-system-is-the-control-plane/ +1. https://sortix.org/os-test/ +1. https://existentialtype.wordpress.com/2016/07/11/pclsring-in-semantics/ +1. Database/Operating System Co-Design &&& https://www.research-collection.ethz.ch/handle/20.500.11850/136 +1. YOW! Lambda Jam 2017 Brian McKenna - Nix for Functional Systems &&& https://www.youtube.com/watch?v=mIxtBVKo7JE +1. [Mouse Programming with libgpm](https://www.linuxjournal.com/article/4600) +1. https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/CPluPlusRuntime/CPlusPlusRuntime.html +1. https://yarchive.net/comp/linux/everything_is_file.html +1. [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) +1. http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699 +1. [The Jury Is In: Monolithic OS Design Is Flawed: Microkernel-based Designs Improve Security](http://ts.data61.csiro.au/publications/csiro_full_text/Biggs_LH_18.pdf) +1. https://medium.com/@enkiv2/composability-homogeneity-and-language-based-systems-fb00e2c2458 +1. [Write your own Operating System](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) +1. [Light-weight Contexts: An OS Abstraction for Safety and Performance](https://people.mpi-sws.org/~druschel/publications/osdi16.pdf) +1. https://augustl.com/blog/2014/an_immutable_operating_system/ + +# Higher-Order + +1. https://www.yoctoproject.org/ + +# Formats + +1. http://iokit.racing/machotricks.pdf + +# Error-handling + +1. http://joeduffyblog.com/2016/02/07/the-error-model/ +1. https://code.fb.com/production-engineering/open-sourcing-oomd-a-new-approach-to-handling-ooms/ +1. https://os.phil-opp.com/double-fault-exceptions/ + +# Tools + +1. https://osquery.io/ +1. https://github.com/facebook/osquery + +# Shell + +1. https://latacora.singles/2018/06/21/loud-subshells.html +1. https://github.com/ipetkov/conch-runtime +1. https://www.spinellis.gr/sw/dgsh/ + +# File-system + +1. https://medium.com/@siddontang/use-fuse-to-inject-failure-to-i-o-deb5f2e7800a +1. [Spiffy: Enabling File-System Aware Storage Applications](https://www.usenix.org/conference/fast18/presentation/sun) +1. https://github.com/bindh3x/libnicko +1. https://github.com/floyernick/fleep-py +1. https://brauner.github.io/2018/08/05/unprivileged-file-capabilities.html +1. http://louwrentius.com/the-sorry-state-of-cow-file-systems.html +1. https://www.notthewizard.com/2014/06/17/are-files-appends-really-atomic/ +1. https://medium.com/datadriveninvestor/writing-your-own-file-system-is-not-as-hard-as-you-may-think-aa4af09329cd +1. http://www.betrfs.org/ +1. https://docs.microsoft.com/en-us/windows/desktop/projfs/projected-file-system +1. [The Lustre Storage Architecture](https://arxiv.org/abs/1903.01955) + +# Shared libraries | Dynamic Loading + +1. https://www.kix.in/2008/06/19/an-alternative-to-shared-libraries/ +1. https://www.akkadia.org/drepper/no_static_linking.html +1. https://amir.rachum.com/blog/2016/09/17/shared-libraries/ + +# Packages + +1. https://snapcraft.io/ +1. https://code.fb.com/data-infrastructure/xars-a-more-efficient-open-source-system-for-self-contained-executables/ + +# System Calls + +1. https://eli.thegreenplace.net/2018/basics-of-futexes/ +1. [FlexSC: Flexible System Call Scheduling with Exception-Less System Calls](https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Soares.pdf) + +# Security + +1. https://en.wikipedia.org/wiki/Reference_monitor +1. [FINE-CFI: Fine-grained Control-Flow Integrity for Operating System Kernels](http://www.cs.wayne.edu/fengwei/paper/fine-cfi-tifs18.pdf) +1. https://unsat.cs.washington.edu/projects/hyperkernel/ +1. [Capsicum](https://oshogbo.vexillium.org/blog/57/) +1. [OS-level Attacks and Defenses: from Software to Hardware-based Exploits](http://tuprints.ulb.tu-darmstadt.de/8482/1/gens_diss.pdf) +1. [Time Protection: The Missing OS Abstraction](https://ts.data61.csiro.au/publications/csiro_full_text//Ge_YCH_19.pdf) +1. [Light-weight Contexts: An OS Abstraction for Safety and Performance](https://www.usenix.org/system/files/conference/osdi16/osdi16-litton.pdf) + +# Driver + +1. https://blogs.windows.com/buildingapps/2018/08/15/introducing-driver-module-framework/#J6CWEbpcH0OwgWbP.97 +1. [Toward Compositional Verification of Interruptible OS Kernels and Device Drivers](http://flint.cs.yale.edu/flint/publications/device-journal.pdf) +1. [Writing Network Drivers in Haskell](https://www.net.in.tum.de/fileadmin/bibtex/publications/theses/2019-ixy-haskell.pdf) + +# Networking + +1. [Computer Networks: A Systems Approach](https://github.com/SystemsApproach/book) + +# Kernel + +1. [A new kernel polling interface](https://lwn.net/Articles/743714/) +1. [Composing Abstractions using the null-Kernel](https://people.mpi-sws.org/~dg/papers/hotosxvii.pdf) + +# I/O + +1. [The block I/O latency controller](https://lwn.net/Articles/758963/) +1. [I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions](https://penberg.org/parakernel-hotos19.pdf) + +# Init System + +1. https://davmac.wordpress.com/2018/10/26/on-the-vagaries-of-init-systems/ + +# Homogeneous Operating Systems + +1. https://ecc-comp.blogspot.com/2014/12/homogeneous-operating-systems-are-better.html + +# Update System + +1. https://theupdateframework.github.io/overview.html + +# Signal + +1. http://delyan.me/code-review-signals/ + +# Daemon + +1. https://chaoticlab.io/c/c++/unix/2018/10/01/daemonize.html + +# Memory + +1. [Memory Systems and Memory-Centric Computing Systems](http://people.inf.ethz.ch/omutlu/acaces2018.html) +1. https://en.wikipedia.org/wiki/Page_replacement_algorithm + +# Hardware + +1. [There's No Such Thing as a General-purpose Processor](https://queue.acm.org/detail.cfm?id=2687011) + +# Reliability + +1. [CuriOS: Improving Reliability through Operating System Structure](http://people.cs.ksu.edu/~danielwang/Investigation/System_Security/curios.pdf) + +# Booting | Bootstrapping + +1. https://puri.sm/posts/pureboot-the-high-security-boot-process/ + +# Virtualization + +1. [virtio: Towards a De-Facto Standard For Virtual I/O Devices](https://www.ozlabs.org/~rusty/virtio-spec/virtio-paper.pdf) + +# Separation kernel + +1. [High-Assurance Separation Kernels: A Survey on Formal Methods](https://arxiv.org/abs/1701.01535) + -- cgit v1.2.3