From 6e464edd36141ef323fb8876a46875616d0360a1 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 20 Sep 2026 16:08:49 +0200 Subject: [PATCH] [CS] Intro to OS --- core/cs/parts/00_os/00_intro.tex | 6 ++++++ core/cs/parts/00_os/01_bootstrapping.tex | 7 +++++++ core/cs/parts/main.tex | 2 ++ core/cs/summary.tex | 1 + 4 files changed, 16 insertions(+) create mode 100644 core/cs/parts/00_os/00_intro.tex create mode 100644 core/cs/parts/00_os/01_bootstrapping.tex create mode 100644 core/cs/parts/main.tex diff --git a/core/cs/parts/00_os/00_intro.tex b/core/cs/parts/00_os/00_intro.tex new file mode 100644 index 0000000..239b014 --- /dev/null +++ b/core/cs/parts/00_os/00_intro.tex @@ -0,0 +1,6 @@ +\subsection{Introduction} +This course uses the xv6 operating system, developed at MIT, for teaching how operating systems work. +This is a cleaned up, simplified version of UNIX v6. Since it is a very simple, yet (basic) feature-complete operating system, +reading its source code is much more straight forward than reading say Linux's source code, which at the time of writing is approximately 40 million lines of code. + +You can find the entire source code of the operating system \hlurl{https://github.com}{here} % TODO: Input link here diff --git a/core/cs/parts/00_os/01_bootstrapping.tex b/core/cs/parts/00_os/01_bootstrapping.tex new file mode 100644 index 0000000..0cd431a --- /dev/null +++ b/core/cs/parts/00_os/01_bootstrapping.tex @@ -0,0 +1,7 @@ +\subsection{Bootstrapping} +Bootstrapping is the first operation any operating system performs. +This typically involves setting up the stack in assembly for the respective language, then intializing devices, etc. in a higher level language, such as \texttt{C} or \texttt{Rust}. + +Contrary to popular believe, setting up the stack can be achieved in just a few instructions and the rest is mostly ``box-standard'' \texttt{C} code. +Of course, you still have to read lots of manuals to figure out how each device needs to be initialized. +At this point, you also set up Virtual Memory and all the memory structures needed to operate. diff --git a/core/cs/parts/main.tex b/core/cs/parts/main.tex new file mode 100644 index 0000000..f886aae --- /dev/null +++ b/core/cs/parts/main.tex @@ -0,0 +1,2 @@ +\section{Operating Systems} +\input{parts/00_os/00_intro.tex} diff --git a/core/cs/summary.tex b/core/cs/summary.tex index f0aea1e..2d8580f 100644 --- a/core/cs/summary.tex +++ b/core/cs/summary.tex @@ -39,6 +39,7 @@ \printtoc{Aquamarine} +\input{parts/main.tex}