5
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΡΠ»ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ UNIX ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ASCII ("American Standard Code for Information Interchange" β Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ), Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠΈΡΠΌΠΎΠΉ IBM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ EBCDIC ("Extended Binary Coded Decimal Interchange Code" β ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°). ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ASCII; Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cat /usr/pub/ascii ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΈΡΠ΅ ascii(7), ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
6
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π. ΠΠ°ΠΊΠΠ»ΡΠΎΠ΅ΠΌ. UNIX Π»Π΅Π³ΠΊΠΎ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ Π€ΠΎΡΡΡΠ°Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Ρ Π€ΠΎΡΡΡΠ°Π½Π°? ΠΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
7
ΠΡΠΈΠ·Π½Π°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ uid Π²Π²Π΅Π΄Π΅Π½ Π. Π ΠΈΡΡΠΈ
8
ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ inode ("index node") ΠΈΠ»ΠΈ i-node. β ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².
9
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
10
ΠΡΠΎ ΡΡΠ°ΡΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ UUNET ΡΠ΅ΡΠ΅ΠΉ
11
Π Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ UNIX Π±ΡΠ»Π° ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π½Π°ΡΡΡΠΈΠ²ΡΠ΅ΠΉ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠΉ, ΡΠ°ΡΠΏΠΈΡΠ°Π»Π° Π²Π΅ΡΡ Π΄ΠΈΡΠΊ.
12
ΠΠΎΠ·Π΄Π½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , Π³Π΄Π΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° test.
13
Π‘Π΅ΠΉΡΠ°Ρ Π²ΡΠΏΡΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΡΠ°ΠΊ ΠΈ Π½ΠΎΠ²ΠΎΠ΅, ΡΡΠ΅ΡΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅
14
ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π. Π’ΠΎΠΌΠΏΡΠΎΠ½Π° ΡΠΏΡΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ Π±Ρ ΠΎΠ½ Ρ ΠΎΡΠ΅Π» ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π΅ΡΠ»ΠΈ Π±Ρ Π΅ΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π·Π°Π½ΠΎΠ²ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ UNIX. ΠΠ½ ΠΎΡΠ²Π΅ΡΠΈΠ»: "Π― Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π» creat Ρ Π΅."
15
ΠΠ²ΡΠΎΡ yacc Π‘. ΠΠΆΠΎΠ½ΡΠΎΠ½ Π½Π°Π·Π²Π°Π» ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ "Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²" (yet another compiler-compiler), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (1972 Π³.) ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, yacc β ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ , ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅.
16
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ yacc: "shift/reduce conflict" ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΏΡΠΎΠΌΠΎΠΌ Π½Π΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ, Π° ΡΠ²Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅.
17
ΠΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ms Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /usr/lib/tmac/tmac.s, Π° ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ man Π² ΡΠ°ΠΉΠ»Π΅ /usr/lib/tmac/tmac.an
18
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° eqn Π²ΡΡΠ΄ Π»ΠΈ ΡΠΌΠΎΠ³Π»Π° Π±Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΠΆΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π° yacc.