summaryrefslogtreecommitdiffstats
path: root/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'index.md')
-rw-r--r--index.md50
1 files changed, 26 insertions, 24 deletions
diff --git a/index.md b/index.md
index c2a7141..0cb15c5 100644
--- a/index.md
+++ b/index.md
@@ -7,6 +7,8 @@
7 7
8TODO: reference a mono font in the CSS 8TODO: reference a mono font in the CSS
9 9
10TODO: do figures properly in CSS
11
10TODO: fix TOC CSS 12TODO: fix TOC CSS
11 13
12TODO: have a POSIX / UNIX / Linux section 14TODO: have a POSIX / UNIX / Linux section
@@ -30,37 +32,37 @@ The objective is to deeply understand the Linux ecosystem: how it boots, what
30are the different pieces, how do they integrate with one-another, what are the 32are the different pieces, how do they integrate with one-another, what are the
31different choices available to us when building such a system, etc. 33different choices available to us when building such a system, etc.
32 34
33Even though it is very rare to build these kinds of things "manually", I do 35Even though it's very rare to build these kinds of things "manually," I do
34think it is better to do it this way for educative purposes. 36think it's better to do it this way for educative purposes.
35 37
36However, in the practical work part, we will build a Linux system in an 38However, in the practical work part, we will build a Linux system in an
37automated fashion, using [Buildroot](https://buildroot.org/), an well-known 39automated fashion, using [Buildroot](https://buildroot.org/), a well-known
38software in the industry for building embedded Linux systems. 40software in the industry for building embedded Linux systems.
39 41
40This document is intended to serve several functions: 42This document is intended to serve several functions:
41 43
42- As notes, if I talk too fast, or if you don't like to take 44- As notes, if I talk too fast, or if you don't like to take
43 notes[^take-notes], or miss classes 45 notes[^take-notes], or miss classes.
44- It's likely that this website is going to be more detailed than the course, 46- It's likely that this website is going to be more detailed than the course,
45 so it's useful you want to go further. You can also follow the links to go 47 so it's useful you want to go further. You can also follow the links to go
46 even further 48 even further.
47- Should I miss some things while talking, this website should fix it 49- Should I miss some things while talking, this website should fix it.
48 50
49[^take-notes]: 51[^take-notes]:
50 {-} You really should be taking notes, it does help remembering 52 {-} You really should be taking notes, it does help remember.
51 53
52The Linux command-line 54The Linux command-line
53---------------------- 55----------------------
54 56
55Main article: [CLI](cli.md) 57Main article: [CLI](cli.md)
56 58
57When we say "command-line interface", we usually mean the text-based program 59When we say "command-line interface," we usually mean the text-based program
58whose main purpose is to execute other commands. You input a program name, enter 60whose main purpose is to execute other commands. You input a program name, enter
59its arguments, press enter, and it will execute the said program with said 61its arguments, press enter, and it will execute the said program with said
60arguments. 62arguments.
61 63
62In reality, the UNIX command-line is more complicated than that, but that also 64In reality, the UNIX command-line is more complicated than that, but that also
63makes it much more powerful. See the main article if you want to unlocking this 65makes it much more powerful. See the main article if you want to unlock this
64power. 66power.
65 67
66<!-- 68<!--
@@ -77,23 +79,23 @@ Main article: [kernel](kernel.md)
77The Linux kernel is the glue between the hardware and the user space 79The Linux kernel is the glue between the hardware and the user space
78programs. 80programs.
79 81
80Each time a user program needs to access the hardware (e.g. hard drives, 82Each time a user program needs to access the hardware (for example, hard
81network card), it has to go through the kernel through system calls (e.g. 83drives, network card), it has to go through the kernel through system calls
82read/write on a file, `sendto`/`recvfrom` on a socket). 84(for example, read/write on a file, `sendto`/`recvfrom` on a socket).
83 85
84It also decides how processes are run, and is in charge of enforcing 86It also decides how processes are run, and is in charge of enforcing
85security. 87security.
86 88
87The filesystem 89The file system
88-------------- 90---------------
89 91
90TODO: link to main article 92Main article: [file system](file-system.md)
91 93
92A filesystem is a way of organizing data in the form of files and 94A file system is a way of organizing data in the form of files and
93directories. Another way to see it is that since hard drives stores only 95directories. Another way to see it, is that since hard drives stores only
94bytes, it is the responsibility of the filesystem to organize these 96bytes, it's the responsibility of the file system to organize these
95bytes such that the kernel can interpret them as files and directories 97bytes such that the kernel can interpret them as files and directories
96and present them to the user (TODO: link mount). 98and present them to the user.
97 99
98Init 100Init
99---- 101----
@@ -103,21 +105,21 @@ TODO: link to main article
103The init program is the first user-space program that the kernel 105The init program is the first user-space program that the kernel
104launches on boot. Every other program is launched either by init or a 106launches on boot. Every other program is launched either by init or a
105child of init (direct child or transitive child). Since init is the 107child of init (direct child or transitive child). Since init is the
106first program launched it always has a PID of 1. 108first program launched, it always has a PID of 1.
107 109
108TODO: link to first steps to "user-space booting" 110TODO: link to first steps to "user-space booting"
109 111
110Special filesystems 112Special file systems
111------------------- 113--------------------
112 114
113Some filesystem aren't used to store data, but instead to communicate 115Some file systems aren't used to store data, but instead to communicate
114with the kernel. This allows doing various things using only the 116with the kernel. This allows doing various things using only the
115`read`, `write`, and other file-related system calls. 117`read`, `write`, and other file-related system calls.
116 118
117For example, you can list USB devices by listing the content of the 119For example, you can list USB devices by listing the content of the
118directory `/sys/bus/usb/devices/`. 120directory `/sys/bus/usb/devices/`.
119 121
120TODO: add links to article with list of common special filesystems. 122More info in the [file system](file-system.md#special-file-systems) article.
121 123
122Networking 124Networking
123---------- 125----------