Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commit764e6650a754b9258faabc6cdab47b0923651cca (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-02-27 19:24:18 +0200
Committer
 Syndamia <kamen@syndamia.com>
2023-02-27 19:24:18 +0200
Filesd3ec7d70699f260db863ac2f0b069c6183f687a2 /src
syndamia.com-764e6650a754b9258faabc6cdab47b0923651cca.tar
syndamia.com-764e6650a754b9258faabc6cdab47b0923651cca.tar.gz
syndamia.com-764e6650a754b9258faabc6cdab47b0923651cca.zip
Parentb5beb795727e80a99e109045d4dc6d173ec71866 (diff)
[talks/lbs] Fixed grammar mistakes and typos
1 files changed, 19 insertions, 19 deletions
-rw-r--r--src/talks/linuxgraphy-by-strabo/index.md38
diff --git a/src/talks/linuxgraphy-by-strabo/index.md b/src/talks/linuxgraphy-by-strabo/index.md
index 1442c3a..2ad6638 100644
--- a/src/talks/linuxgraphy-by-strabo/index.md
+++ b/src/talks/linuxgraphy-by-strabo/index.md
@@ -150,7 +150,7 @@ Some of it's novel ideas include, but are not limited to:
#### 1969: Death of Multics and birth of UNIX
-Ultimately Multics grew too large, becaming unusable and unmaintainable.
+Ultimately Multics grew too large, becoming unusable and unmaintainable.
In the beginning, programming was done mostly by [Bell Labs](https://en.wikipedia.org/wiki/Bell_Labs), with [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson) being one of the developers.
&&lineb1 &&ftable
@@ -220,7 +220,7 @@ While on the topic of UNIX, we'll only discuss the former.
### Command-line shells
-Command-line shells operate solely with text, usually with only ASCII characters.
+Command-line shells operate solely with text, often only with ASCII characters.
Usually connecting to a computer (to the shell) is said to be done with either a "terminal" ("console") or "teleprinter" ("teletype").
&&table
@@ -271,9 +271,9 @@ Today we don't usually use such specialised hardware, but the names persist with
Most commands are regular programs, which exist somewhere on the system.
When entering a command name, the shell searches for an executable with that name.
-Searching the whole drive is very inneficient, so the search is limited to the few directories, listed in a variable called "PATH".
+Searching the whole drive is very inefficient, so the search is limited to the few directories, listed in a variable called "PATH".
-You can give a full or relative path, and that will be execute directly.
+You can give a full or relative path, and that will be executed directly.
Each command can be given parameters, separated by spaces, each (by convention) being either text values or options (switches).
@@ -302,7 +302,7 @@ The two major features that every other shell supports are:
- pipelines: being able to redirect the output from one command to another without limit
```
- command1 [args...] | command 2 [args...] | ...
+ command1 [args...] | command2 [args...] | ...
```
&&/clide
@@ -332,7 +332,7 @@ The two major features that every other shell supports are:
&&lineb1
+ **regular**: just a plain old file
+ **directory**: as explained, a file containing hard links to other files. Each directory is allowed to appear *only once* in a single parent.
- + **symbolic link**: points to any file (or directory). It contains the (relative) path to that object (as a simple string), so a symlink could even not be valid.
+ + **symbolic link**: points to any file (or directory). It contains the (relative) path to that object (as a simple string), so a symlink not could even be valid.
Think of a C++ pointer (pseudocode).
```
@@ -373,7 +373,7 @@ The two major features that every other shell supports are:
&&clide
- + **sockets**: file for inter-process communication. Compared to FIFO specials, they can be used by more than two processes, used in both direction and support [file descriptors](https://en.wikipedia.org/wiki/File_descriptor) and packets
+ + **sockets**: file for inter-process communication. Compared to FIFO specials, they can be used by more than two processes, used in both directions and support [file descriptors](https://en.wikipedia.org/wiki/File_descriptor) and packets
```
[Process A] <--read&write--> [Socket 1]
@@ -414,7 +414,7 @@ Every user has their own "home" folder (under "/home/USERNAME/", except for root
Each is represented by a bit in the order above (`101` means you *can* read, *cannot* write, *can* execute) and the overall permissions are often shown as a three digit number or character string.
Example: `111101100` will be shown as `754` or `rwxr-xr--`
-- link count: the amount of hard links that point to the inode. Every directory inode contains (normally) exactly two: one from the parent and one from itself ("."), though the latter isn't added to the count*^[citation ^needed]* . A file is only deleted where there are no hard links left to it.
+- link count: the count of hard links that point to the inode. A file is deleted **only when there are no hard links left to it**. Every directory inode has at least two - one from parent and one from itself ("."), though the latter **isn't** counted. Child and parent directories also **add** to the count.
- User ID of owner, Group ID, file size and timestamps
@@ -452,7 +452,7 @@ Two of the important things a kernel does is manage **processes** and **memory**
&&lineb1
-A program is some collection of code and other data, stored in a file (or uncompiled code).
+A program is some collection of code and other data, stored in a file (or noncompiled code).
A process is the program in motion, the program itself *alongside* certain system states.
The system states include (but are not limited to):
@@ -489,7 +489,7 @@ A PCB's data can be split into three categories:
1. **Process identification** - the ID of the process itself, of it's parent process, of it's owner (user), etc.
2. **Process state** - as described, the processor state, etc.
- On a context switch, values in register are put into the stopped PCB and then are loaded from the running PCB.
+ On a context switch, values in registers are put into the stopped PCB and then are loaded from the running PCB.
3. **Process control information** - process state, memory map, privileges, etc.
A process can be **forked**, meaning a new process is created, with the same underlying code (but not process states and ...).
@@ -553,9 +553,9 @@ Some bad ideas include: depending on the code of all processes to not use the sa
&&font18 *Image by [Ehamberg](https://commons.wikimedia.org/wiki/File:Virtual_memory.svg)* &&/font
&&/fright
-A process work with some (sequential) addresses, and the OS (with the help of [hardware](https://en.wikipedia.org/wiki/Memory_management_unit)) translates/maps the process' addresses (logical/[virtual addresses](https://en.wikipedia.org/wiki/Virtual_address_space)) to real ones (physical addresses).
+A program (process) works with some (sequential) addresses, and the OS (with the help of [hardware](https://en.wikipedia.org/wiki/Memory_management_unit)) translates/maps the process' addresses (logical/[virtual addresses](https://en.wikipedia.org/wiki/Virtual_address_space)) to real ones (physical addresses).
-We simplify memory management for the program, protects each process' address space and is very flexible.
+Simplified memory management for the program, protected address space for each process and improved flexibility.
&&/font &&/slide
@@ -583,7 +583,7 @@ In the modern day, segmentation isn't used by itself, since resizing segments co
&&lineb3
-The virtual and physical memory is divided into fixed-sized chunks of consequtive addresses.
+The virtual and physical memory is divided into fixed-sized chunks of consecutive addresses.
A virtual memory chunk is called a **page**, while a physical memory chunk is called a (page) **frame**.
Usually both have the same size of (at least) 4 KiB.
@@ -619,7 +619,7 @@ Disadvantages include:
Enough theory, time to have some fun and learn Linux!
-We'll be using [Linux Minimal Live](https://ivandavidov.github.io/minimal/#home) (just a bootable ISO) because:
+We'll be using [Linux Minimal Live](https://ivandavidov.github.io/minimal/#home) (just a bootable ISO) because it's:
- very small, comprised of only the Linux kernel, GNU C library and Busybox
- made by a fellow Bulgarian &&bg
@@ -685,13 +685,13 @@ Where `name` is either a combination of letters (upper and lower case), numbers
Some of the [special parameters](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Special-Parameters) are:
-- `0`, correspoinding to the shell's or script's name,
+- `0`, corresponding to the shell's or script's name,
- `@` is all positional parameters, separated by spaces
- `#` is the number of positional parameters
- `?` is the last executed (foreground) process
- `$` is process ID of the current shell.
-`value`, without any special surounding characters (more on that later), is treated as a string (but it mustn't have spaces!), however it may also be omitted, in which case it is the empty string `""`.
+`value`, without any special surrounding characters (more on that later), is treated as a string (but it mustn't have spaces!), however it may also be omitted, in which case it is the empty string `""`.
&&/font &&/slide
@@ -701,7 +701,7 @@ Some of the [special parameters](https://www.gnu.org/savannah-checkouts/gnu/bash
#### Data types
-In most shells, there are 3 data types: strings, integers and (one-dimentional) indexed arrays.
+In most shells, there are 3 data types: strings, integers and (one-dimensional) indexed arrays.
[bash has more](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#index-declare), like references and associative arrays, but those aren't universal.
A value is a **string** when surrounded by single `'` or double `"` quotes,
@@ -750,7 +750,7 @@ Some parameter expansions in bash:
- `${#parameter}` length of characters
- `${parameter:offset}` and `${parameter:offset:length}` return substring from index offset
- `${parameter/pattern/string}` return a string, where every match on pattern is replaced by string
-- `${!name[@]}` a (space separated) sequence of indecies from 0 to length (for defined values) of array name
+- `${!name[@]}` a (space separated) sequence of indices from 0 to length (for defined values) of array name
&&/slide
@@ -772,7 +772,7 @@ Some useful expressions are:
- `!`, `&&`, `||` logical not, and, or
- `expr ? exprTrue : exprFalse` conditional
- `=`, `+=`, ..., `<<=`, ... assignment operators
-- `expr1 , expr2` consequtive expressions and `(expr)` bracing
+- `expr1 , expr2` consecutive expressions and `(expr)` bracing
Expressions work with both variable names and integers.