mirror of
https://github.com/janishutz/eth-summaries.git
synced 2026-10-09 05:46:20 +02:00
[CS] Intro to OS
This commit is contained in:
1 parent
5cf2a63e73
commit
6e464edd36
4 files changed
+16
No files matched your search
@@ -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
|
||||||
@@ -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.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
\section{Operating Systems}
|
||||||
|
\input{parts/00_os/00_intro.tex}
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
\printtoc{Aquamarine}
|
\printtoc{Aquamarine}
|
||||||
|
|
||||||
|
|
||||||
|
\input{parts/main.tex}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user