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