Browse Source

Replace three dots with etc

Tu Do 11 months ago
parent
commit
54bbf4e92a
1 changed files with 38 additions and 29 deletions
  1. 38
    29
      book_src/Operating Systems From 0 to 1.lyx

+ 38
- 29
book_src/Operating Systems From 0 to 1.lyx View File

@@ -1076,7 +1076,7 @@ Directly
1076 1076
 
1077 1077
  means include anything that the software can control to produce the desired
1078 1078
  effects, e.g.
1079
- keyboards, printers, monitors, other software...
1079
+ keyboards, printers, monitors, other software, etc.
1080 1080
  
1081 1081
 \begin_inset Quotes eld
1082 1082
 \end_inset
@@ -1594,7 +1594,7 @@ linked list
1594 1594
 \end_layout
1595 1595
 
1596 1596
 \begin_layout Itemize
1597
-...
1597
+etc
1598 1598
 \end_layout
1599 1599
 
1600 1600
 \begin_layout Standard
@@ -7147,8 +7147,7 @@ ISA
7147 7147
  languages.
7148 7148
  The design includes all the instructions, registers, interrupts, memory
7149 7149
  models (how memory are arranged to be used by programs), addressing modes,
7150
- I/O...
7151
- of a CPU.
7150
+ I/O, etc., of a CPU.
7152 7151
  The more features (e.g.
7153 7152
  more instructions) a CPU has, the more circuits are required to implement
7154 7153
  it.
@@ -7318,10 +7317,9 @@ I/O Devices
7318 7317
 \end_inset
7319 7318
 
7320 7319
  are devices that give input to a computer i.e.
7321
- keyboard, mouse, sensor...
7322
- and takes the output from a computer i.e.
7320
+ keyboard, mouse, sensor, etc, and takes the output from a computer i.e.
7323 7321
  monitor takes information sent from CPU to display it, LED turns on/off
7324
- according to a pattern computed by CPU...
7322
+ according to a pattern computed by CPU, etc.
7325 7323
 \end_layout
7326 7324
 
7327 7325
 \begin_layout Standard
@@ -8077,7 +8075,7 @@ operations?
8077 8075
 
8078 8076
 \end_inset
8079 8077
 
8080
- data transfer, arithmetic, control, floating-point...
8078
+ data transfer, arithmetic, control, floating-point, etc.
8081 8079
 \end_layout
8082 8080
 
8083 8081
 \begin_layout Itemize
@@ -8116,9 +8114,7 @@ How is the operand location specified?
8116 8114
 
8117 8115
 \end_inset
8118 8116
 
8119
- register, immediate, indirect, .
8120
- .
8121
- .
8117
+ register, immediate, indirect, etc.
8122 8118
 \end_layout
8123 8119
 
8124 8120
 \begin_layout Itemize
@@ -8131,7 +8127,7 @@ What type and size of operands are supported?
8131 8127
 
8132 8128
 \end_inset
8133 8129
 
8134
- byte, int, float, double, string, vector...
8130
+ byte, int, float, double, string, vector, etc.
8135 8131
 \end_layout
8136 8132
 
8137 8133
 \begin_layout Itemize
@@ -8359,8 +8355,7 @@ status open
8359 8355
 
8360 8356
 \end_inset
8361 8357
 
8362
- (for storing program data), debug sections...
8363
- are not displayed.
8358
+ (for storing program data), debug sections, etc, are not displayed.
8364 8359
  We will learn more about section when studying ELF binary file format in
8365 8360
  chapter 
8366 8361
 \begin_inset CommandInset ref
@@ -45459,8 +45454,7 @@ In this section, we will learn different details of section types and the
45459 45454
 \family typewriter
45460 45455
 .bss, .text, .data
45461 45456
 \family default
45462
-...
45463
- by looking at each section one by one.
45457
+, etc, by looking at each section one by one.
45464 45458
  We will also examine the content of each section as a hexdump with the
45465 45459
  commands:
45466 45460
 \end_layout
@@ -45759,8 +45753,7 @@ NOTE
45759 45753
 
45760 45754
 \family default
45761 45755
  marks a section with special information that other programs will check
45762
- for conformance, compatibility...
45763
- by a vendor or a system builder.
45756
+ for conformance, compatibility, etc, by a vendor or a system builder.
45764 45757
 \begin_inset Separator latexpar
45765 45758
 \end_inset
45766 45759
 
@@ -50803,16 +50796,33 @@ section(
50803 50796
 
50804 50797
 )
50805 50798
 \family default
50806
- put a function into a particular section rather then the default 
50799
+ put a function into a particular section rather than the default 
50807 50800
 \family typewriter
50808 50801
 .text
50809 50802
 \family default
50810 50803
 .
50811 50804
  In this example, it is 
50812 50805
 \family typewriter
50813
-.init_arary
50806
+.init_array
50814 50807
 \family default
50815 50808
 .
50809
+ The section name is not necessary the same as the standard header in an
50810
+ ELF file (such as 
50811
+\family typewriter
50812
+.text
50813
+\family default
50814
+ or 
50815
+\family typewriter
50816
+.init_array
50817
+\family default
50818
+, but can be anything.
50819
+ Non-standard section names are often used for controlling the final binary
50820
+ layout of a compiled program.
50821
+ We will explore this techinque in more details when learning the 
50822
+\family typewriter
50823
+GNU ld
50824
+\family default
50825
+ linker and the linking process.
50816 50826
  Again, the program automatically calls the constructors without explicitly
50817 50827
  invoking it:
50818 50828
 \end_layout
@@ -53670,8 +53680,7 @@ ld
53670 53680
 \end_layout
53671 53681
 
53672 53682
 \begin_layout Itemize
53673
-....
53674
- and so on until the last loadable section...
53683
+and so on until the last loadable section.
53675 53684
 \end_layout
53676 53685
 
53677 53686
 \begin_layout Standard
@@ -57081,7 +57090,7 @@ Examining raw memory is useful but usually it is better to have a more human-rea
57081 57090
 dable output.
57082 57091
  This command does precisely the task: it pretty-prints an expression.
57083 57092
  An expression can be a global variable, a local variable in current stack
57084
- frame, a function, a register, a number...
57093
+ frame, a function, a register, a number, etc.
57085 57094
 \end_layout
57086 57095
 
57087 57096
 \begin_layout Section
@@ -83324,13 +83333,13 @@ task
83324 83333
  is a unit of work that an OS needs to do, similar to how human have tasks
83325 83334
  to do daily.
83326 83335
  From a user point of view, a task for a computer to do can be web browsing,
83327
- document editing, gaming, sending and receiving emails...
83336
+ document editing, gaming, sending and receiving emails, etc.
83328 83337
  Since a CPU can only execute sequentially, one instruction after another
83329 83338
  (fetching from main memory), there must be some way to do many meaningful
83330 83339
  tasks at once.
83331 83340
  For that reason, the computer must share the resources e.g.
83332
- registers, stack, memory...
83333
- between tasks, since we have many tasks but single and limited resources.
83341
+ registers, stack, memory, etc, between tasks, since we have many tasks
83342
+ but single and limited resources.
83334 83343
 \end_layout
83335 83344
 
83336 83345
 \begin_layout Subsection
@@ -83348,7 +83357,7 @@ Process
83348 83357
  For example, when you run Firefox, a process structure is created to keep
83349 83358
  track of where the stack and the heap allocated for firefox are, where
83350 83359
  Firefox's code area is and which instruction EIP is holding to execute
83351
- next...
83360
+ next, etc.
83352 83361
  The typical process structure looks like this:
83353 83362
 \end_layout
83354 83363
 
@@ -83392,7 +83401,7 @@ Scheduler
83392 83401
 
83393 83402
 \begin_layout Standard
83394 83403
 An OS needs to perform a wide range of different functionalities, e.g.
83395
- web browsing, document editing, gaming...
83404
+ web browsing, document editing, gaming, etc.
83396 83405
  A 
83397 83406
 \emph on
83398 83407
 scheduler
@@ -83415,7 +83424,7 @@ Context switch
83415 83424
 \begin_layout Standard
83416 83425
 When a process is prepared to be switched out for another process to take
83417 83426
  its place, certain hardware resources i.e.
83418
- current open files, current register values...
83427
+ current open files, current register values, etc.
83419 83428
  must be backed up to later resume that process's execution.
83420 83429
 \end_layout
83421 83430
 

Loading…
Cancel
Save