summaryrefslogtreecommitdiffstats
path: root/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'index.md')
-rw-r--r--index.md88
1 files changed, 88 insertions, 0 deletions
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..bd6fffb
--- /dev/null
+++ b/index.md
@@ -0,0 +1,88 @@
1% WTF is Linux
2
3> What I cannot create, I do not understand.
4>
5> --- <cite>Richard Feynman, 1988</cite>
6
7TODO: add the LM fonts referenced in the CSS
8
9TODO: reference a mono font in the CSS
10
11TODO: fix TOC CSS
12
13TODO: have a POSIX / UNIX / Linux section
14
15TODO: have a QEMU section
16
17TODO: specify dependencies
18
19TODO: Add a plan checklist?
20
21TODO: fix pandoc\'s vimwiki (syntax highlighting, quotes)
22
23TODO: Link manpages
24
25TODO: Add pretty pictures
26
27The Linux Kernel
28----------------
29
30Main article: [kernel](kernel.md)
31
32The Linux kernel is the glue between the hardware and the user space
33programs.
34
35Each time a user program needs to access the hardware (e.g. hard drives,
36network card), it has to go through the kernel through system calls (e.g.
37read/write on a file, `sendto`/`recvfrom` on a socket).
38
39It also decides how processes are run, and is in charge of enforcing
40security.
41
42The filesystem
43--------------
44
45TODO: link to main article
46
47A filesystem is a way of organizing data in the form of files and
48directories. Another way to see it is that since hard drives stores only
49bytes, it is the responsibility of the filesystem to organize these
50bytes such that the kernel can interpret them as files and directories
51and present them to the user (TODO: link mount).
52
53Init
54----
55
56TODO: link to main article
57
58The init program is the first user-space program that the kernel
59launches on boot. Every other program is launched either by init or a
60child of init (direct child or transitive child). Since init is the
61first program launched it always has a PID of 1.
62
63TODO: link to first steps to "user-space booting"
64
65The Shell
66---------
67
68TODO: link to main article
69
70A shell is a programming language whose main goal is to launch other
71programs.
72
73Special filesystems
74-------------------
75
76Some filesystem aren't used to store data, but instead to communicate
77with the kernel. This allows doing various things using only the
78`read`, `write`, and other file-related system calls.
79
80For example, you can list USB devices by listing the content of the
81directory `/sys/bus/usb/devices/`.
82
83TODO: add links to article with list of common special filesystems.
84
85Networking
86----------
87
88TODO: quickly explain static IP vs DHCP, networking interfaces