ݺߣ
Submit Search
20150502 unix v6? ??? ??? ??? ?? 1 ???
?
7 likes
?
2,022 views
jieun kim
Follow
"unix v6? ??? ??? ??? ??" ???? chapter 1. UNIX V6? ?? ? ?? chapter 2. ????
Read less
Read more
1 of 36
More Related Content
20150502 unix v6? ??? ??? ??? ?? 1 ???
1.
[UNIX V6? ???
??? ??? ??] chapter1. UNIX V6 / chapter2. ???? ??? yeswldms@gmail.com
2.
?? UNIX V6 : UNIX
V6? ??? ??? ??? ?? ???? ???? ?? ??? ??(IAMROOT OB?^^) ?????
3.
???? ? ? 1975??
? ????? ??? Sixth Edition Unix(?? UNIX V6)? ?? ?? ? ???? ?? ??(Kernel) C OS? ??, ??? ???? ???? ? /? ??? ??? ?? ?????(shell program) C ??? ??? ???? ???? SW OS? ????? ??????, ????????? ?? - ??? ???? ? ???? ?? - ???? ? ???? - ??? ???? ???? ??? ?? ? ?? ??? ? ?? - ? ?? ?? ???? ??? ? ?? ? ? UNIX V6? ??? ???? - ? 10,000? ??(??? ?? ??? ????? ? 1,000?) - ??? ??, Lions Commentary on UNIX V6 Edition with Source Code(PDP-11/40? ???? ??? ???? ??? ?? ??? ????? ???? ? ??) - PDP-11?? ???? ?? ??? ??? ?? ? - OS? ?? ???? ??, ??? ???? ??? - ???? ?? ?? ?? - ?? ???? ??? ?? - ?????, ?? ????? ??????? simh?????? ??? PDP-11??? ???? UNIX V6fmf ? ??? ? ?? - ??? ???,.. Pre K&R
4.
???? ? ? ??
?? #2~4? ????? ???? ???? ???? 2 ???? ?? 3 ???? ???? 4 ????? # 5,6? ???? ?? 5 ????? CPU???? ??? ?????? ? ??? ? 6 ???? ?? ? ????? ??? # 7,8? ??? I/O?? 7 ?????? 8 ?? ???? ???? # 9,10? ????? 9 ?????? ???? 10 ?????? ??? ?? # 11? ???? ? ??? ??? ??? # 12? ??????? ?? ??? # 13? ??? # 14? ??? ?? ?? ?? ? Kernel? ????? Kernel ??????? ?? ??? ?????? ??????? ????? ?? ?? ??? CPU ??? ???? ???? ???? ?? process ?? 5?. ??? ? 5?.???? process process 6? ??? 2,3,4? 9,10,11? 7,8,12? 13?
5.
???? ? ? ???? ??
??? ???? ?? ?? ???? ?? ? ???? ?? ???, ??, ??, ????, ??? ?? ?? ?? ? ???? ?? ?? ?? ???, ??? ???? ??? ??? ???? ??, ?????? ??/??????? ??
6.
Part 1. UNIX
V6??
7.
Chapter 1. UNIX
V6? ?? ? ?? 1.1 UNIX V6?? - Kenneth Lane Thompson? Dennis Mac Alistair Richie? ?? - 1975? ? ????? ?? - ?? 1) ???? C??? ?? 2) ???? ??? ????? ??????, ????? ? ??? ?? ???? ?? ?? 3) ???? ???? ????? ???? ????? ??? ???? ?? ??? ? ??, DES?? DPD11/40??? ?????? ???? ??? ?? 1.2 UNIX ?? - ? ????? UNIX V6? ?? - 1979? Seventh Edition Unix(UNIX V7) ?? - 1978? ??? ???? UNIX V6? BSD ?? - ???? ?? : ??? ?? POSIX?? OS?? API ????
8.
Chapter 1. UNIX
V6? ?? ? ?? 1.3 UNIX V6 ?? # ??? ??? ?? > ?????? ??? ?? ?? - ???? ?? - ??? ?? - ?? ??? - ??? ?? ????? ?? ?? I/O - ???? - ??? ?? > ???? ???, CPU, DISK ?? ???? ????? ????? ???? ???? ??? ??? ? ?? > ??? ?(system call)? ???? ??? ??? ?? > ???? ??? ?? ??? ???? ??, ???? ??? ?? ?????? ???? Kernel ?????, ??? ???? ? ??? ? ????? ?? ??, ??? ?? ? UNIX V6? ???? ????? ??? ?????? ????? ?? ???? ??? ??
9.
Chapter 1. UNIX
V6? ?? ? ?? 1.4 UNIX V6? ???? 1.4.1 PDP-11 ???? PDP-11 ???, Digital Equipment Corporation (DES) ??? ??? ???? ? ??? PDP-11/40? ???? ? ? PDP-11/40
10.
Chapter 1. UNIX
V6? ?? ? ?? - 16bit ??, ???? ???? ?? 16bit ??? ?? ? PDP-11/40? 1??? 16bit (word? ????? ????? ??? ??) - ?? I/O??? ?? Unibus? ?/?? (Unibus? 18bit ???? ??) - PDP-11/40? ????? ????? ????? ???? ??? 8KByte? ?? - ???? ?? ??? ? ????? ?? ?, ??? ? ???(Memory Mapped I/O) - MMIO(Memory Mapped I/O)????? : ???? ???? I/O??? ????, ? ??? ???? ?? ? ??? ???? ???? ???? ?? - UNIX V6? ? Unibus? ???? : ? ?? UNIX V6? ??? ?? ???? ? 4???? ??? 2bit?? ??? ????.. 16bit + 2bit(???? ??????) = 18bit?? ??? ???? ??? PDP-11 Memory DISK Terminal unibus ?DISK????? ??? 8KByte? ????? ??, MMIO(Memory Mapped I/O)???? ?? ??? ?? I/O ? ??? 8KByte 0 ????
11.
Chapter 1. UNIX
V6? ?? ? ?? 1.4.2 PSW - Process Status Word, ???? ?? ?? - 16bit ???? bit ?? 15-14 ????(00:??, 11:???) 13-12 ????(00:??, 11:???) 7-5 ???? ????(7~0) 4 ?? ??(trap bit) 3 N. (negative), ??? ??? ??? ??? ??? ? ??? 2 Z. (zero), ??? ??? ?? 1 V. (overflow), ??? ??? ?? ?????? ???? ? ?? 0 C. (Carry), ??? ??? ?? ??? ????? ?? ?Trap bit : ???? ?? ?? ????? ???? ??????? ?? ??? ? ? ??? ?? ??? ?? ????? ctrl+c ?? ??? ???? ??? ????? ??? ???? ???? ???? ????. ??? ??? ???? ? ? ??? ?????? ??? ? ? ?? ??? ?? ??? ??? ????. ?? Trap? ???? ?? ??? ??? ? ? ? ?? ??.. ???? * Carry vs OverFlow ??
12.
Chapter 1. UNIX
V6? ?? ? ?? 1.4.3 ?????? - 8?? ?? ????, r0 ~ r7 - r6????(SP)? ?????, ????? ?? - PSW ????? ????(15-14)?? ??? r6(SP)? ????? ?? ???? ??? ?? 1.4.4 MMU - Memory Management Unit - ???? ??? ?? ??? ?? - PDP-11/40? ???? 8KByte? ????? ??? ??? ?? - ???? ??? ??? ???? MMU?? ?? ?? - MMU? APR????? ??? ? ???? ?? ? ?? ????? ??????? ?? - MMU?? SR0, SR2?? 2?? ?? ????? ?? - . Bit ?? r0, r1 ???, ??? ??? r2, r3, r4 ???? r5 ??????, ????? r6(SP) ????? r7(pc) ???? ???
13.
Chapter 1. UNIX
V6? ?? ? ?? 1.4.4 MMU - - MMU?? SR0, SR2?? 2?? ?? ????? ?? SR0, ??? ?? ??? ???? ????? ??, ?????? ??(SR0[15~13]) SR2 , ??? ????16?? ?? ???? Bit ?? 15 ??? ?? ?? ???? ???? ??? 1 14 PDR? ???? ??? ???? ?? ??? ??? ??? 1 13 ?? ?? ??? ?? ?? ???, 1 8 ?????? 6-5 ??? ???? ???? ??(??:00, ???:11) 3-1 ??? ??, ????? ???? ???? ????? ?? ?? ?? 0 1? ?? MMU?? ??? ??? ??? Bit ?? 15-0 ??? ???? ?? ????? ??? ???? ????? ???? ?? ???? ?? SR0[15-13]? ?? ???? 1??, ?? ???? ?? ?? ????? ?
14.
Chapter 1. UNIX
V6? ?? ? ?? 1.4.5 ??? - PDP-11/40? ???? ???? ?? - 8bit(1byte) ??? ????? ??. - ???? 18bit? ???? ??? ?? - ??? 2^18 = 256KByte - ?? 8KByte? ?? ??? ?? ???? ??? ?? - ????? ???? ??? ???? ???? ?? 1.4.6 ?? ???? - ??? ???? ??? ?? - ??? swap???? ?? - ??? : ??? ??? ??? ?? ????? ???? ?? ??? ???? ????? ??? ???? ?? ???, ???? ??? ???? ???? ?? 1.4.7 ?? ??? - ??? ??? ???? ?? 1.4.8 ??? - ???? ???? ???? ??. ???
15.
Chapter 1. UNIX
V6? ?? ? ?? 1.5 ???? - UNIX V6? ?? BSD ???? - ????? ?? ? ?? 1.6 ??? - UNIX V6? UNIX Programmers Manual(UPM)??? ??? ???? ?? - 9?? ??? ?? - ??? ???? 2?, 4?? ?? - ?? ????? ??(a.out) ??? ???? 5?? ?? - ??? ??? ??? ????? ??? 1,3,5,8?? ??
16.
Chapter 2. ???? 2.1
????? ?? 2.1.1 ?????? - ?? ????? ???? ??? ??? ????? ?????? ? - ??? ?? 1) ???? ?? 2) ?????? ????? ???? ?? 3) ????? ? ????????? ?? 4) MMU?? ??????? ??????? ?? # ???? ID - ??? ???? ID? ?? - ? ????? ???? ?????? ??? ????
17.
Chapter 2. ???? 2.1.2
???? ???? : UNIX V6? ???? ??? ?? # TSS, Time Sharing System - ??CPU? 1?.. ?, ???? ????? ???? ?? ????? ? ?? ? ?? ?? ????? ?? - ?? CPU? ? ?? ????? ?? - ?? ????? ??? ????? ??? ????, ???? ????? ??? ???? ??? ??? ? ?? ???? 1 ???? 2 ???? 3 ?? ????
18.
Chapter 2. ???? 2.1.3
???? ?? - ??? ?? ??? ??? ?? ???? ? ? ?? ?? ????? ?? 2.1.4 ??? ??? ?? ?? # ???? ?? - ??? ???, MMU?? ?? ????? ???? ??? ??? ?? - PSW(Process Status Word)? ???? ?? ?? ?? ?????? ?? ????? ?? ??? ??? ???? ???? ???? - CPU??? ???? ??? ??? - ?? ???? ??? ???? ??? - ??? ?? ???? ?? ???? ?? ?? ???? ??, ???? ????? ??? ??, ??? ???? ???? ?? ??, ?? ????
19.
Chapter 2. ???? #
??? ? - ?? ??? ???? ??? ??? ?? ???? ??? ?? ??? ?? ? ?? ?? - ??? ? ?? ?, ????? ?? - ?? ?? ?? ?, ??? ??? ?? - ??? ?? ?? ?? ?? : fubyte(), fuibyte(), fuword(), fuiword(), subyte(), suibyte(), suword(), suiword() ?? ?? (u :user, s :store, f: fatch, i :interupt) # ?? ?? - ??? ??? ???? - ?? ??? ????? ??? ?? ???? ????? ??? ?? ?? ?? ?? ?? ???? ?? ??? ?? ??? ??? ????
20.
Chapter 2. ???? 2.1.5
??? - ???? ???? ??? ? ??? ????? ?? 2.2 Proc ???? User ??? - ? ???? ????? ????? ? ?? Proc ???? User ???? ?? - ???? ? ?? ? ?? ?? - Proc ??? : ???? ?? ?????? - User ??? : ??? ?? ??? ? ?? ?? Swap out ????? ??? ???? ?????, ??? ?? ??? ?? ????? ????? ?? ????? ????? ??? ???? ?? Swap in ?????? ???? ?, ?? ??? ? ????? ?? ??? ???? ???? ??
21.
Chapter 2. ???? 2.2.1
Proc ??? - proc[] - ? ???? ? ?? ????? ?? - ????? ??? ?? ?, ???? ??? ?? ?????? ??? ?? ? ???? ?? ??? ??(??? ? ?? ??) - proc[]? ??? ? : #define NOROC 50, ???? proc[]? ??? ??? ? ?? ????? ??? ?? ?, proc ??? - Proc[]? ???? ????(50?? ???)????, swap-out?? p_stat? ??? ???, ??? ????? swap-in?? ?? ?? ?? ?? p_stat ??, NULL? ?? ???? PROC[]? ???? ?? p_flag ??? p_pri ????, ?? ???? ?? p_sig ??? ??? p_uid ??? ID p_time ???? ??? ??? ??? ?? p_cpu CPU ????(tick) p_nice ?? ????? ???? ?? ?? ?, ???? 0?? nice ??? ?? ???? ?? ?? p_ttyp ????? ??? ???
22.
Chapter 2. ???? ?,
???? ?? ?, ??? ?? ?? SSLEEP ??, ?? ????? ????? ???? SWAIT ??, ?? ????? 0???? ???? SRUN ???? ?? SIDL ???? ?? ? SZOMB ?? ?? SSTOP ???? ??? ??? ??? ?? SLOAD ???? ??(??? ???? ??) SSYS ??? ?????, ??? ??? ??. UNIX V6?? procp[0]? ?? SLOCK ??? ???? ?? ?? SSWAP ??? ???? user.u_rsav[]? ?? ??? STRC ???? ? SWTED ???? ??? ??
23.
Chapter 2. ???? 2.2.2
user ??? - user[] - ????? ??? ???? ?? ???? ???? ???? - ?? ????? ??? user ?????? ???? ???? ?? ???, ????? ??????? user ???? ?? ??? ?? ?, user ??? ?? ?? u_procp ? user???? ??? proc[]???? ??? u_base ??? ?? ? ? ????? ?? ? ? ?? u_count ??? ?? ? ? ????? ?? ? ? ?? u_offset[] ??? ?? ? ? ????? ?? ? ? ?? u_cdir ?? ????? inode[] ??? u_dirp ??? ????, ?? ?? ?????? ???? ??? ??? ?? ? ?? u_pdir namei()? ???? ??, ????? ?? ????? ?? u_ar0 ??? ? ??? ??? ????? ??????? PSW ??? ? ? ??
24.
Chapter 2. ???? 2.2.2
user ??? ?, ???? (u_error) # ???? u - ??? ???? u? ???? ?? ????? user ???? ?? - u? ???? ???? ?? ??? (? ??? ??) u(conf/m40.s) 1 .globl _u 2 _u = 0140000 ?? ?? EFAULT ??? ??? ?? ?? ??? ??? ??? ???? ? ? EPERM ?? ??? ?? ENOENT ??? ??? ?? ESRCH ???? ?? ????? ??? ?? ??? EINTR ??? ? ?? ?? ??? ??? ?? EIO I/O ??
25.
Chapter 2. ???? 2.3
????? ??? ?? - ??? ????? ??? ????? ??? ?????? ??? ? ?? ?? ??? ??? ?? - ?? ??? ??? ????? ?? ????? ?? 2.3.1 ??? ???? - ????? ???? - ???? - ?? ????? ?? (??? ????? ??? ???? ???? ??) - text[]? ??, ??? ????? ??? uer.u_tsize
26.
Chapter 2. ???? 2.3.2
??? ???? - ????? ???? ???? ???? ?? - ?? ????? ?? ? ? ??, ????? ?? ????? ??? ?? - ??? ????? ?? ????: proc.p_addr, ?? : proc.p_size - ??? ????? ?? ?? ?? PPDA Per Process Data Area User???? ?? ?????? ?? ?? : USIZE x 64byte = 1KByte(??? ????? ??? ? ??) ?????? : ????? ?? ?????? ??. ?????? ??????? ????? ?? Data ?? ????? bss?? ?? ??? ???? ??? ????? ?? ??? ???? ???? ??? ?? ?? ? ?? ?? ? ??? ?? ?? ? ??? ?? ????? ?? ??? ? ??? ?? ?? : user.u_dsize ?? ?? ??? ????? ?? ????? ??? ???? ?? ????? ???? ?? ????? ?? ????? ??? ?????? ?? ??? ?? ?? : user.u_ssize
27.
Chapter 2. ???? #
USIZE(param.h) 1 #define USIZE 16 ??. ??? ???? user ??? ?? ?? ? ? ??? ?? (?) PPDA ?? ?? ?? ??? USIZE user_u.dsize user_u.ssize proc.p_size proc.p_addr
28.
Chapter 2. ???? 2.3.3
?? ???? ?? ?????, - 64KByte? ?? ???? ??? ?? - 16bit? ?? ???? ??? ?? - ??????? MMU?? 18bit ?? ????? ??? ?? ???? ?? ?, ?? ???? ??? ?? ???? ?? - ??? ????(process? ???? ??)? ?? ???? ??? ??? ????(0x0)? ???? - ??? ??? ??? ?????? 8KByte ?? ????? ?? - ?? ??? ??? ???? (0xffff)? ?? ?? ???? ?? ?? ???? ? ? 16?? ?? ???? 64 KByte ?? ???? ? ? 18?? ?? ???? 256 KByte
29.
Chapter 2. ???? 2.3.3
?? ???? ?? cf. ?????? ?????? ??.. ??? ?? ??? ??? ??? ?? ??? ???? ???, ?? ??? ? ?? ? ???? ?? UNIX V6??? ?? ??? ???? ???. ?? ???? ???? ? ?? ?? ???? ? ???. - ?????? ??? ?? ???? ??? ?? - ??? ?????? ?????? ??? ????? ??? APR? ??(??? ??) - ?????: ???????, ????: ?????? # ?????? ?? - ????? ??? ?????? ??? ? ?? - ??? ??? ??? ? ?? - ??? ??? ?? ? ?? 0xffff ?? ???? ?? ??? ??? ? user_u.tsize ?? ?? user_u.ssize ??? ?? user_u.dsize 0 u ??? ????? ??? 0 mod 8k ? ??? ? ?? ??? ? ??? ????
30.
Chapter 2. ???? 2.3.3
?? ???? ?? ??. ??????? ?????? ?? ?? ???? ?? ??? ???? 0x3fff PPDA ??? ?? PPDA ??? ?? ?? ???? 0 ??? ???? ??? ?? ?? ?? ??? ???? ??? ?? ?? ?? ?? ???? 0 0xffff ???? B? ?? ???? ?? ???? A? ?? ???? ?? ?? ???? 0 0xffff
31.
Chapter 2. ???? 2.3.4
???? ?? - MMU : ?? ????? ?? ????? ?? - MMU? ??? ?? ? ?? ????? ??(PAR, PDR) - PAR(Page Address Register) + PDR(Page Description Register) = APR(Active Page Register) - ? ??? ?????? APR?? user???? ??, ????? ???? user ???? ??? ??? APR? ? ?? ????? ? PAR PDR APR User ??? MMU????? ? ??. ???? ?? bit ?? 11~0 ??? ????(64byte ??) bit ?? 14~8 ??? ?? ? 6 ??? ??, ???? ??? 3 ??? 1??, ? ?????? ?? ???? ???? ?? 2~1 ???? 00 : ???? ???. 01: ???? 11 : ???? ?. PAR ?. PDR
32.
Chapter 2. ???? #
PDP-11/40 - 2?? APR? ??: ?????, ??? ??? - PSW? ?? ??? ??? APR? ??????? ????(???? ???? ???? ???? ? ??), MMU? ?? ???? ??? ?? - APR? 0?? 7?? ? 8?? ??. - ?? ????? ??? ??? ?????? APR? ????, ? ??? ????? ??? ?? ???? ?? ? ?? - ? ??? ????? APR ?? user ???? ?? - ??? ????? ?? ????? ??, ??? ??????? APR ?? ??? PSW 15 14 13 0 ??(00) ???(11) APR1 APR0 APR2 APR7 APR1 APR0 APR2 APR7 ??. APR? ??
33.
Chapter 2. ???? -
APR? 0?? 7?? 8? - ????? ?? ???? ??? ???, ?? ???? ??? ?? - ??? APR? ? ???? ?? - PAR? ? ???? ???? ?? ????? ??? ???? ?? - PDR? ? ???? ??(64byte ??)?? ?? ?? ?? ?? ?? - ? ???? ?? 128??(8KByte)? ?? ? ???( or ????) : ????? ?? ???? ?? ? 1?? ????? ? 8?? APR? ?? ? ??(????8?, ?????8?) ? PDR? 128?? ???? ??? ?? ? ? ??. Q. ???? ??? ??? APR? ???, ?? 8?? ????? ????????? ???? ??? ???? ? ? ????? APR? user ???? ???? ??, user???? proc???? ????, ? ?? 50?? ????? ? ? ? ? ??? ?? ??? ? ??? ??
34.
Chapter 2. ???? ??.
?? ???? ?? u (0140000(8)) ?1100 0000 0000 0000(2) - ?? ????? ?? 3?? [15~13]? ???(APR)? ????, - ??? APR? PAR(11~0]??? ?? ????? ??? ?? ????(??? ?? No.)?? ?? - ?? ????? ??? ?? ?????? ??????? [12~6]??(?? ????? ?? No.)? ??? ?? ???? ?? ????(???? No.) [17~6]??? ?? 0 ??? ?? No. 12 1115 ??No. ?? ?? ??? 15 13 12 6 5 0 PAR[0]~[7] ?? ???? ?? ?? ????? ?? No. 17 6 5 0 ?? ???? ADD : 110(2)?6(10), ? PAR[6] : 00 0000: 0 0000 00 ??????? [12~6] PAR[11~0] : ?? ????? ??? ?? ???? ? : ?? ???? ?? ????[17~6] ?????? ?? ???? [17~6]??? ?????? ?? ?? ????[5~0]??? ??? ?? ???? [17~0]??? ??
35.
Chapter 2. ???? ??.
u?? user ??? ??? - ??? ???? u(0140000)? ???? ?? ????? user ???? ?? ?? - ?? ????? ?? ????? 6?? PAR? ??? ????? ?? ????(proc.p_addr)? ?? - ?? ??? APR : ?? APR - ??? ??? APR : ??? APR - 0~n?? ??? APR : APRn - ??? ??? ?? ????? ??(512byte)? ?????, ? ??? ??? ??? 64??? ??? ?? ? ? ? ?? APR APR1 APR0 APR2 APR3 APR7 APR4 APR5 APR6 User ??? ???? ????? ?? ????? ??? ???? 0x00000 0x3FFFF ?? ???? proc.p_addr (? ??? ???? addr) 1100 0000 0000 0000 : u? ????? 6???? ?? ? ???
36.
?????. ???: 2015.05.05