μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ubuntu
- java
- λ°±μ€ λ¬μ€νΈ
- μ€λΌν΄
- μλ°
- μ΄μ체μ
- λ¬μ€νΈ νλ‘κ·Έλλ° κ³΅μ κ°μ΄λ
- νμ΄μ¬ μ²Όλ¦°μ§
- Reversing
- OS
- μλ° κ°λ
- μ°λΆν¬
- λ°μ΄ν°λ² μ΄μ€
- λ°±μ€
- Python
- C
- λ°μ΄ν° ν΅μ
- Rust
- λ¬μ€νΈ
- μ€λΌν΄DB
- μλ° κΈ°μ΄
- νμ΄μ¬ μ±λ¦°μ§
- λ¬μ€νΈ μμ
- Python challenge
- Database
- data communication
- μκ³ λ¦¬μ¦
- Operating System
- νμ΄μ¬ μκ³ λ¦¬μ¦
- νμ΄μ¬
- Today
- Total
ITβs Portfolio
[Lecture] Operating System with Ubuntu - Day 7~8 λ³Έλ¬Έ
π₯ Operating System - Day 7~8
π νΉμ μ κ·Ό κΆν μ€μ
umask
μ λ€ μ리 μ«μ μ€ λ§¨ μμ리 μ«μλ νΉμ μ κ·Ό κΆνμ λνλ- 0μ΄λ©΄ μΌλ°μ μΈ μ κ·Ό κΆν
- 1, 2, 4μ΄λ©΄ νΉμ μ κ·Ό κΆν
SetUID
: 4SetGID
: 2μ€ν°ν€ λΉνΈ(sticky bit)
: 1
π€ SetUID
SetUID
κ° μ€μ λ νμΌμ μ€ννλ©΄ ν΄λΉ νμΌμ΄ μ€νλλ λμμλ νμΌμ μ€νν μ¬μ©μμ κΆνμ΄ μλλΌ νμΌ μμ μμ κΆνμ΄ μ μ©λ¨SetUID
κ° μ€μ λλ©΄ μμ μμ μ€ν κΆνμ 's'κ° νμλ¨- νμΌμ μ€ννλ©΄ νμ νμΌ μμ μμ κΆνμ΄ μ μ©λ¨
passwd
: μ¬μ©μ κ³μ μ μνΈλ₯Ό λ°κΏ- μΌλ° μ¬μ©μκ°
passwd
λͺ λ ΉμΌλ‘ μνΈλ₯Ό λ³κ²½ν μ λ³ΈμΈμ κΆνμΌλ‘ μ€ννλ©΄ μνΈλ₯Ό λ³κ²½ν μ μμroot
κ³μ λ§/etc/shadow
νμΌμ λ³κ²½ν μ μκΈ° λλ¬Έ
passwd
λͺ λ ΉμλSetUID
κ° μ€μ λμ΄ μκΈ° λλ¬Έμ μμ μμΈroot
κΆνμΌλ‘ μ€νλμ΄/etc/shadow
νμΌμ μμ ν΄ μνΈλ₯Ό λ³κ²½ν μ μμ
- μΌλ° μ¬μ©μκ°
π€ SetGID
SetGID
κ° μ€μ λ νμΌμ μ€ννλ©΄ ν΄λΉ νμΌμ΄ μ€νλλ λμμλ νμΌ μμ κ·Έλ£Ήμ κΆνμΌλ‘ μ€νλ¨SetGID
κ° μ€μ λλ©΄ κ·Έλ£Ήμ μ€ν κΆνμ 's'κ° νμλ¨
π€ μ€ν°ν€ λΉνΈ
- μ€ν°ν€ λΉνΈλ λλ ν°λ¦¬μ μ€μ νλ©°, λλ ν°λ¦¬μ μ€ν°ν€ λΉνΈκ° μ€μ λμ΄ μμΌλ©΄ μ΄ λλ ν°λ¦¬μλ λꡬλ νμΌμ μμ±ν μ μμ
- νμΌμ νμΌμ μμ±ν κ³μ μΌλ‘ μμ μκ° μ€μ λκ³ , λ€λ₯Έ μ¬μ©μκ° μμ±ν νμΌμ μμ ν μ μμ
- μ€ν°ν€ λΉνΈκ° μ€μ λλ©΄ κΈ°ν μ¬μ©μμ μ€ν κΆνμ 't'κ° νμλ¨
π€ νΉμ μ κ·Ό κΆν μ€μ μ€λ₯
- νΉμ κΆνμ μ€μ νλ νμΌμ΄λ λλ ν°λ¦¬ λͺ¨λ μ€ν κΆνμ κ°μ§κ³ μμ΄μΌ ν¨
- μ€ν κΆνμ΄ μλ νμΌμ
SetUID
λSetGID
λ₯Ό μ€μ νλ©΄ 'S'κ° νμλ¨ - λλ ν°λ¦¬μ μ€ν κΆνμ΄ μλλ° μ€ν°ν€ λΉνΈλ₯Ό μ€μ νλ©΄ 'T'κ° νμλ¨
ππ» [Chapter 06] νλ‘μΈμ€ κ΄λ¦¬
π νλ‘μΈμ€μ κ°λ
νλ‘μΈμ€(process)
: νμ¬ μμ€ν μμ μ€ν μ€μΈ νλ‘κ·Έλ¨- 리λ μ€λ λ€μ€ νλ‘μΈμ€ μμ€ν
π€ νλ‘μΈμ€μ λΆλͺ¨-μμ κ΄κ³
- 리λ
μ€μμ λͺ¨λ νλ‘μΈμ€λ λΆλͺ¨-μμ κ΄κ³λ₯Ό κ°μ§
- νμμ λ°λΌ
λΆλͺ¨ νλ‘μΈμ€(parent process)
λμμ νλ‘μΈμ€(child process)
λ₯Ό μμ±νκ³ , μμ νλ‘μΈμ€λ λ λ€λ₯Έ μμ νλ‘μΈμ€λ₯Ό μμ±ν μ μμ
- νμμ λ°λΌ
- 리λ
μ€ μμ€ν
μ λΆν
μ μ€μΌμ€λ¬κ° μ€νν νλ‘μΈμ€μΈ
systemd
μkthreadd
νλ‘μΈμ€λ₯Ό μ μΈνλ©΄ λͺ¨λ νλ‘μΈμ€λ λΆλͺ¨ νλ‘μΈμ€λ₯Ό κ°μ§
π€ νλ‘μΈμ€μ λ²νΈ
PID(Process IDentification number)
: κ° νλ‘μΈμ€μ κ³ μ ν λ²νΈ- PIDλ 1λ²λΆν° μμνλ©° νλ‘μΈμ€κ° μ€νλλ©΄μ νλμ© μ¦κ°νμ¬ λΆμ¬λ¨
- 리λ
μ€ μ€ν μ PID 1λ²
systemd
, PID 2λ²kthreadd
κ° μ°¨λ‘λ‘ μ€νλ¨ - 1λ² νλ‘μΈμ€λ λλ¨Έμ§ λͺ¨λ μμ€ν νλ‘μΈμ€μ λΆλͺ¨ νλ‘μΈμ€κ° λκ³ , 2λ² νλ‘μΈμ€λ λͺ¨λ μ€λ λμ λΆλͺ¨ νλ‘μΈμ€κ° λ¨
- 리λ
μ€ μ€ν μ PID 1λ²
- μ ν΅μ μΌλ‘ μ λμ€μμ 1λ² νλ‘μΈμ€λ
init
- μ°λΆν¬μ κ²½μ°
init
μ κΈ°λ₯μsystemd
λ‘ λ°κΏ - μ΄μ μμ€ν
κ³Ό νΈνλλλ‘ 1λ² νλ‘μΈμ€μ μ΄λ¦μ
init
μΌλ‘ μ μ§νκ³ μμinit
μsystemd
μ μ¬λ²λ¦ λ§ν¬
- μ°λΆν¬μ κ²½μ°
π€ νλ‘μΈμ€μ μ’ λ₯
- μ¬μ©μκ° μ€νν μΌλ°μ μΈ νλ‘μΈμ€λ μ κΉ μ€νλμλ€κ° λ°λ‘ μ’ λ£λ¨
λ°λͺ¬ νλ‘μΈμ€(daemon process)
: νΉμ μλΉμ€λ₯Ό μ 곡νκΈ° μν΄ μ‘΄μ¬νλ©° 리λ μ€ μ»€λμ μν΄ μ€νλ¨- νμ λκΈ° μνλ‘ μλ€κ° μλΉμ€ μμ²μ΄ λ€μ΄μ€λ©΄ μλΉμ€ μ 곡
- μ격 μ μ μλΉμ€λ₯Ό μ 곡νκΈ° μν΄ λμνλ
sshd
νλ‘μΈμ€κ° μλλ° μ΄λ₯Όssh
μλ² λ°λͺ¬μ΄λΌκ³ ν¨
κ³ μ νλ‘μΈμ€(orphan process)
- μμ νλ‘μΈμ€λ μ’
λ£λλ©΄ λΆλͺ¨ νλ‘μΈμ€λ‘ λμκ°μ§λ§ μμ νλ‘μΈμ€κ° μμ§ μ€ν μ€μΈλ° λΆλͺ¨ νλ‘μΈμ€κ° λ¨Όμ μ’
λ£λλ©΄ κ³ μ νλ‘μΈμ€κ° λ¨
- 1λ² νλ‘μΈμ€κ° κ³ μ νλ‘μΈμ€μ μλ‘μ΄ λΆλͺ¨ νλ‘μΈμ€κ° λμ΄ κ³ μ νλ‘μΈμ€κ° μμ μ λ§μΉκ³ μ’ λ£λ μ μκ² ν¨
- μμ νλ‘μΈμ€λ μ’
λ£λλ©΄ λΆλͺ¨ νλ‘μΈμ€λ‘ λμκ°μ§λ§ μμ νλ‘μΈμ€κ° μμ§ μ€ν μ€μΈλ° λΆλͺ¨ νλ‘μΈμ€κ° λ¨Όμ μ’
λ£λλ©΄ κ³ μ νλ‘μΈμ€κ° λ¨
μ’λΉ νλ‘μΈμ€(zombie process)
- μμ νλ‘μΈμ€λ μ’
λ£λ λ λΆλͺ¨ νλ‘μΈμ€μ
μ’ λ£ μ 보(exit status)
λ₯Ό 보λ΄κ³ , λΆλͺ¨ νλ‘μΈμ€κ° μ΄ μ 보λ₯Ό λ°μΌλ©΄ μμ νλ‘μΈμ€λ νλ‘μΈμ€ ν μ΄λΈ λͺ©λ‘μμ μμ λ¨ - μμ νλ‘μΈμ€κ° μ€νμ μ’
λ£νλλ°λ νλ‘μΈμ€ ν
μ΄λΈ λͺ©λ‘μ λ¨μ μλ κ²½μ°μ μ’λΉ νλ‘μΈμ€λΌκ³ ν¨
- μμ νλ‘μΈμ€μ μ’ λ£ μ 보λ₯Ό λΆλͺ¨ νλ‘μΈμ€κ° μ½μ΄ κ°κΈ°λ₯Ό κΈ°λ€λ¦¬κ³ μλ κ²
- νλ‘μΈμ€ λͺ©λ‘μ
defunct
νλ‘μΈμ€λΌκ³ λμ€κΈ°λ ν¨ - μ€μ λ‘ μ€νλμ§λ μμ§λ§ λμ μ€μΈ νλ‘μΈμ€ ν μ΄λΈ λͺ©λ‘μ μ°¨μ§νκ³ μμ
kill
λͺ λ ΉμΌλ‘ μ κ±°ν μ μμSIGCHLD
μκ·Έλμ λΆλͺ¨ νλ‘μΈμ€μ λ³΄λ΄ λΆλͺ¨ νλ‘μΈμ€κ° μμ νλ‘μΈμ€λ₯Ό μ 리νλλ‘ νκ±°λ λΆλͺ¨ νλ‘μΈμ€ μ체λ₯Ό μ’ λ£ν΄μΌ ν¨- λΆλͺ¨ νλ‘μΈμ€κ° μ’ λ£λλ©΄ μ’λΉ νλ‘μΈμ€λ κ³ μ νλ‘μΈμ€κ° λκ³ , 1λ² νλ‘μΈμ€λ μ£ΌκΈ°μ μΌλ‘ μμ νλ‘μΈμ€μ μ’ λ£ μ 보λ₯Ό νμΈνμ¬ μ 리ν¨
- μμ νλ‘μΈμ€λ μ’
λ£λ λ λΆλͺ¨ νλ‘μΈμ€μ
π νλ‘μΈμ€ κ΄λ¦¬ λͺ λ Ή
π€ νλ‘μΈμ€ λͺ©λ‘ νμΈ
ps
- νμ :
ps [option]
- νμ¬ μ€ν μ€μΈ νλ‘μΈμ€μ λν μ 보λ₯Ό μΆλ ₯ν¨
PID
: νλ‘μΈμ€ λ²νΈTTY
: νμ¬ ν°λ―Έλ λ²νΈTIME
: νλ‘μΈμ€μ μ€ν μκ°CMD
: νλ‘μΈμ€κ° μ€ν μ€μΈ λͺ λ Ή- <μ λμ€ μ΅μ
> : λ¬Άμ΄μ μ¬μ©ν μ μκ³ ,
-
μΌλ‘ μμ-e
: μμ€ν μμ μ€ν μ€μΈ λͺ¨λ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯TTY
μ κ°μ΄ ?μΈ κ²μ λλΆλΆ λ°λͺ¬μΌλ‘ μμ€ν μ΄ μ€νν νλ‘μΈμ€
-f
: νλ‘μΈμ€μ λν μμΈν μ 보λ₯Ό μΆλ ₯UID
: νλ‘μΈμ€λ₯Ό μ€νν μ¬μ©μ IDPPID
: λΆλͺ¨ νλ‘μΈμ€ λ²νΈC
: CPU μ¬μ©λ(%)STIME
: νλ‘μΈμ€μ μμ λ μ§λ μκ°
-u uid
: νΉμ μ¬μ©μμ λν λͺ¨λ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯-fu uid
: λμ± μμΈν μ 보 νμΈ
-p pid
: pidλ‘ μ§μ ν νΉμ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯-fp pid
: λμ± μμΈν μ 보 νμΈ
-ef
: μ 체 νλ‘μΈμ€μ λ μμΈν μ 보 νμΈ
- <BSD μ΅μ
> : λ¬Άμ΄μ μ¬μ©ν μ μκ³ ,
-
μΌλ‘ μμνμ§ μμa
: ν°λ―Έλμμ μ€νμν¨ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯STAT
: νλ‘μΈμ€μ μνλ₯Ό λνλR
: μ€ν μ€(running)S
: μΈν°λ½νΈκ° κ°λ₯ν λκΈ°(sleep) μνT
: μμ μ μ΄μ μν΄ μ μ§λ(stopped) μνZ
: μ’λΉ νλ‘μΈμ€(defunct)STIME
: νλ‘μΈμ€μ μμ λ μ§λ μκ°s
: μΈμ 리λ νλ‘μΈμ€+
: ν¬κ·ΈλΌμ΄λ νλ‘μΈμ€ κ·Έλ£Ήl
: λ©ν°μ€λ λ
u
: νλ‘μΈμ€ μμ μ μ΄λ¦, CPU μ¬μ©λ, λ©λͺ¨λ¦¬ μ¬μ©λ λ± μμΈ μ 보λ₯Ό μΆλ ₯x
: μμ€ν μμ μ€ν μ€μΈ λͺ¨λ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯au
: ν°λ―Έλμμ μ€νν νλ‘μΈμ€μ μμΈ μ 보 μΆλ ₯USER
: μ¬μ©μ κ³μ μ΄λ¦%CPU
: νΌμΌνΈλ‘ νμν CPU μ¬μ©λ&MEM
: νΌμΌνΈλ‘ νμν 물리μ λ©λͺ¨λ¦¬ μ¬μ©λVSZ
: μ¬μ© μ€μΈ κ°μ λ©λͺ¨λ¦¬μ ν¬κΈ°(KB)RSS
: μ¬μ© μ€μΈ 물리μ λ©λͺ¨λ¦¬μ ν¬κΈ°(KB)START
: νλ‘μΈμ€ μμ μκ°
ax
=-e
aux
=-ef
- <GNU μ΅μ
> :
-
λ κ°λ‘ μμ--pid PID λͺ©λ‘
: λͺ©λ‘μΌλ‘ μ§μ ν νΉμ PID μ 보λ₯Ό μΆλ ₯
- νμ :
π€ νΉμ νλ‘μΈμ€ μ 보 κ²μ
ps -ef | grep [command]
ps
μgrep
λͺ λ Ήμ|
λ‘ μ°κ²°νμ¬ νΉμ νλ‘μΈμ€μ λν μ 보λ₯Ό κ²μ
pgrep
- νμ :
pgrep [option] [pattern]
- μ§μ ν ν¨ν΄κ³Ό μΌμΉνλ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯
- μ΅μ
-x
: ν¨ν΄κ³Ό μ νν μΌμΉνλ νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯-n
: ν¨ν΄μ ν¬ν¨νκ³ μλ κ°μ₯ μ΅κ·Ό νλ‘μΈμ€μ μ 보λ₯Ό μΆλ ₯-u user_name
: νΉμ μ¬μ©μμ λν λͺ¨λ νλ‘μΈμ€λ₯Ό μΆλ ₯-l
: PIDμ νλ‘μΈμ€ μ΄λ¦ μΆλ ₯-t term
: νΉμ λ¨λ§κΈ°μ κ΄λ ¨λ νλ‘μΈμ€μ μ 보 μΆλ ₯
- λ μμΈν μ 보λ₯Ό κ²μνλ €λ©΄
pgrep
μps
μ μ°κ²°ν΄μ μ¬μ©ps -fp $(pgrep -x bash)
ps -fp $(pgrep -u user1 bash)
- νμ :
π€ νλ‘μΈμ€ μ’ λ£
- νλ‘μΈμ€ κ°μ μ’
λ£ μ ν΄λΉ νλ‘μΈμ€μ PIDλ₯Ό μμμΌ ν¨
ps -ef
μps aux
- νλ‘μΈμ€ μ’
λ£ μ
kill
,pkill
μ¬μ©- νλ‘μΈμ€μ μκ·Έλμ λ³΄λ΄ νλ‘μΈμ€λ₯Ό μ’ λ£ν¨
μκ·Έλ(signal)
: νλ‘μΈμ€μ 무μΈκ° λ°μνμμ μ리λ κ°λ¨ν λ©μμ§μκ·Έλ λ²νΈ κΈ°λ³Έ μ²λ¦¬ μλ―Έ SIGHUP 1 μ’ λ£ ν°λ―Έλκ³Ό μ°κ²°μ΄ λκ²Όμ λ λ°μ SIGINT 2 μ’ λ£ μΈν°λ½νΈλ‘ μ¬μ©μκ° ^c
λ₯Ό μ λ ₯νλ©΄ λ°μSIGQUIT 3 μ’ λ£, μ½μ΄λ€ν μ’ λ£ μ νΈλ‘ μ¬μ©μκ° ^\
λ₯Ό μ λ ₯νλ©΄ λ°μSIGKILL 9 μ’ λ£ μ΄ μκ·Έλμ λ°μ νλ‘μΈμ€λ 무μν μ μμΌλ©° κ°μ λ‘ μ’ λ£λ¨ SIGALRM 14 μ’ λ£ μλμ μν΄ λ°μ SIGTERM 15 μ’ λ£ kill λͺ λ Ήμ΄ λ³΄λ΄λ κΈ°λ³Έ μκ·Έλ
kill
- νμ :
kill [-signal] PID...
- μ§μ ν μκ·Έλμ νλ‘μΈμ€μκ² λ³΄λ
- μκ·Έλ
- 2 : μΈν°λ½νΈ μκ·Έλμ 보λ(
^c
) - 9 : νλ‘μΈμ€λ₯Ό κ°μ λ‘ μ’
λ£ν¨
- κ°μ μ’ λ£ μκ·Έλμ΄μ§λ§, μ’λΉ νλ‘μΈμ€μ κ²½μ° μκ·Έλμ λ°μλ μ’ λ£λμ§ μμ μ μμ
- 15 : νλ‘μΈμ€μ κ΄λ ¨λ νμΌλ€μ μ 리νκ³ μ’
λ£ν¨. μ’
λ£λμ§ μλ νλ‘μΈμ€κ° μμ μ μμ
- μΌλ°μ μΌλ‘ νλ‘μΈμ€ μ’ λ£μ΄μ§λ§, μκ·Έλμ 무μνκ±°λ λ€λ₯Έ λμμ νλλ‘ μ§μ λμ΄ μλ€λ©΄ νλ‘μΈμ€κ° μ’ λ£λμ§ μμ μ μμ
- 2 : μΈν°λ½νΈ μκ·Έλμ 보λ(
- μκ·Έλμ μ§μ νμ§ μμ κ²½μ° 15λ² μκ·Έλλ‘ κ°μ£Όν¨
- νμ :
pkill
pkill
μkill
κ³Ό λ§μ°¬κ°μ§λ‘ μκ·Έλμ 보λ΄μ§λ§, PIDκ° μλ νλ‘μΈμ€μ λͺ λ Ή μ΄λ¦(CMD)μΌλ‘ νλ‘μΈμ€λ₯Ό μ°Ύμ μ’ λ£ν¨- λͺ λ Ή μ΄λ¦μΌλ‘ μ°Ύμ μ’ λ£νκΈ°μ κ°μ λͺ λ Ήμ΄ μ¬λ¬ κ° κ²μλ κ²½μ° ν λ²μ λͺ¨λ μ’ λ£ν¨
killall
killall
λpkill
μ²λΌ νλ‘μΈμ€μ λͺ λ Ή μ΄λ¦(CMD)μΌλ‘ νλ‘μΈμ€λ₯Ό μ°Ύμ μ’ λ£ν¨- ν΄λΉ λͺ λ Ή μ΄λ¦μΌλ‘ μ€ν μ€μΈ λͺ¨λ νλ‘μΈμ€λ₯Ό ν λ²μ μ’ λ£
π€ νλ‘μΈμ€ κ΄λ¦¬ λꡬ
top
- νμ¬ μ€ν μ€μΈ νλ‘μΈμ€μ μ 보λ₯Ό μ£ΌκΈ°μ μΌλ‘ μΆλ ₯
- νλ‘μΈμ€μ μμΈν μμ½ μ 보λ₯Ό μλ¨μ μΆλ ₯
- κ° νλ‘μΈμ€μ μ 보λ₯Ό νλ¨μ μΆλ ₯
- μΆλ ₯ μ 보
νλͺ© μλ―Έ PID νλ‘μΈμ€ ID USER μ¬μ©μ κ³μ PR μ°μ μμ NI Nice κ° VIRT νλ‘μΈμ€κ° μ¬μ©νλ κ°μ λ©λͺ¨λ¦¬μ ν¬κΈ° RES νλ‘μΈμ€κ° μ¬μ©νλ λ©λͺ¨λ¦¬μ ν¬κΈ° SHR νλ‘μΈμ€κ° μ¬μ©νλ 곡μ λ©λͺ¨λ¦¬μ ν¬κΈ° %CPU νΌμΌνΈλ‘ νμν CPU μ¬μ©λ %MEM νΌμΌνΈλ‘ νμν λ©λͺ¨λ¦¬ μ¬μ©λ TIME+ CPU λμ μ΄μ© μκ° COMMAND λͺ λ Ή μ΄λ¦ - λ΄λΆ λͺ
λ Ή
λ΄λΆ λͺ λ Ή κΈ°λ₯ Enter
,Space Bar
νλ©΄μ μ¦μ λ€μ μΆλ ₯ h, ? λμλ§ νλ©΄ μΆλ ₯ k νλ‘μΈμ€ μ’ λ£, μ’ λ£ν νλ‘μΈμ€μ PID μ§μ n μΆλ ₯νλ νλ‘μΈμ€μ κ°μλ₯Ό λ°κΏ u μ¬μ©μμ λ°λΌ μ λ ¬νμ¬ μΆλ ₯ M μ¬μ©νλ λ©λͺ¨λ¦¬ ν¬κΈ°μ λ°λΌ μ λ ¬νμ¬ μΆλ ₯ p CPU μ¬μ©λμ λ°λΌ μ λ ¬νμ¬ μΆλ ₯ q top λͺ λ Ή μ’ λ£
- νμ¬ μ€ν μ€μΈ νλ‘μΈμ€μ μ 보λ₯Ό μ£ΌκΈ°μ μΌλ‘ μΆλ ₯
μμ€ν κ°μ
- μ°λΆν¬μ GUIμΈ κ·Έλμμ κΈ°λ³ΈμΌλ‘ μ 곡νλ λꡬ μ€
μμ€ν κ°μ
- νλ‘μΈμ€ μ΄λ¦, μ¬μ©μ, CPU μ¬μ©λ, λ©λͺ¨λ¦¬ μ¬μ©λ λ±μ μ 보λ₯Ό 보μ¬μ€
- μμ€ν μ΄λ νμΌ μμ€ν κ΄λ ¨ μ 보λ νμΈ κ°λ₯
- μ°λΆν¬μ GUIμΈ κ·Έλμμ κΈ°λ³ΈμΌλ‘ μ 곡νλ λꡬ μ€
π ν¬κ·ΈλΌμ΄λοΉλ°±κ·ΈλΌμ΄λ νλ‘μΈμ€μ μμ μ μ΄
π€ ν¬κ·ΈλΌμ΄λ μμ κ³Ό λ°±κ·ΈλΌμ΄λ μμ
μμ μ μ΄(job control) λꡬ
: ν ν°λ―Έλμμ λμμ μ¬λ¬ νλ‘μΈμ€λ₯Ό μ€ννκ³ κ΄λ¦¬νκΈ° μν΄ κ°λ°λ¨ν¬κ·ΈλΌμ΄λ(foreground) μμ
- μ¬μ©μκ° μ λ ₯ν λͺ λ Ήμ΄ μ€νλμ΄ κ²°κ³Όκ° μΆλ ₯λ λκΉμ§ κΈ°λ€λ¦¬λ λ°©μμΌλ‘ μ²λ¦¬λλ νλ‘μΈμ€λ₯Ό ν¬κ·ΈλΌμ΄λ νλ‘μΈμ€λΌκ³ νλ©°, μμ μ μ΄μμλ μ΄λ₯Ό ν¬κ·ΈλΌμ΄λ μμ μ΄λΌκ³ ν¨
- μΌλ°μ μΌλ‘ μ¬μ©μκ° λͺ λ Ήμ μ€ννλ λ°©μμΌλ‘, ν둬ννΈκ° μΆλ ₯λμ§ μμ λ€λ₯Έ λͺ λ Ήμ μ λ ₯ν μ μμΌλ―λ‘ κΈ°λ€λ €μΌ ν¨
λ°±κ·ΈλΌμ΄λ(background) μμ
- λ°±κ·ΈλΌμ΄λ λ°©μμΌλ‘ λͺ λ Ήμ μ€ννλ©΄ λͺ λ Ήμ μ²λ¦¬κ° λλλ κ²κ³Ό κ΄κ³μμ΄ κ³§λ°λ‘ ν둬ννΈκ° μΆλ ₯λμ΄ μ¬μ©μκ° λ€λ₯Έ μμ μ κ³μν μ μμ
- λ°±κ·ΈλΌμ΄λ λ°©μμΌλ‘ μ²λ¦¬λλ νλ‘μΈμ€λ₯Ό λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λΌκ³ νλ©°, μμ μ μ΄μμλ μ΄λ₯Ό λ°±κ·ΈλΌμ΄λ μμ μ΄λΌκ³ ν¨
- λͺ
λ Ήμ λ§μ§λ§μ
&
κΈ°νΈλ₯Ό μΆκ°νλ©΄ λ°±κ·ΈλΌμ΄λλ‘ μ€νν μ μμ - λ°±κ·ΈλΌμ΄λ μμ
μ μ€νμ΄ λλλ©΄ κΈ°μ‘΄μ μμ
νλ©΄κ³Ό λ°±κ·ΈλΌμ΄λ μμ
κ²°κ³Όκ° λ€μμΈ μ± ν°λ―Έλ νλ©΄μ μΆλ ₯λ¨
find / -name passwd > pw.dat 2>&1 &
->pw.dat
μ κ²°κ³Όμ μ€λ₯ μ μ₯- μΆλ ₯κ³Ό μ€λ₯ λ°©ν₯μ μ ννκ³ , μ€ν κ²°κ³Όμ μ€λ₯ λ©μμ§λ νμΌλ‘ μ μ₯νλ λ°©λ²
π€ μμ μ μ΄
μμ μ μ΄
- μμ μ ν : ν¬κ·ΈλΌμ΄λ μμ μ λ°±κ·ΈλΌμ΄λ μμ μΌλ‘ μ ν, λ°±κ·ΈλΌμ΄λ μμ μ ν¬κ·ΈλΌμ΄λ μμ μΌλ‘ μ ν
- μμ μΌμ μ€μ§
- μμ μ’ λ£
jobs
- νμ :
jobs [%job number]
- λ°±κ·ΈλΌμ΄λ μμ μ λͺ¨λ 보μ¬μ€
- νΉμ μμ λ²νΈλ₯Ό μ§μ νλ©΄ ν΄λΉ μμ μ μ λ³΄λ§ λ³΄μ¬μ€
%job number
- %λ²νΈ : ν΄λΉ λ²νΈμ μμ μ 보λ₯Ό μΆλ ₯
- %+ or %% : μμ μμκ° +μΈ μμ μ 보 μΆλ ₯
- %- : μμ μμκ° -μΈ μμ μ 보 μΆλ ₯
- μΆλ ₯ μ 보
νλͺ© μΆλ ₯ μ μλ―Έ μμ λ²νΈ [1] μμ λ²νΈλ‘μ λ°±κ·ΈλΌμ΄λλ‘ μ€νν λλ§λ€ μμ°¨μ μΌλ‘ μ¦κ° μμ μμ + μμ μμ νμ
+ : κ°μ₯ μ΅κ·Όμ μ κ·Όν μμ
- : + μμ λ°λ‘ μ μ μ κ·Όν μμ
곡백 : κ·Έ μΈμ μμμν μ€νμ€ μμ μν νμ λͺ λ Ή sleep 100 & λ°±κ·ΈλΌμ΄λλ‘ μ€ν μ€μΈ λͺ λ Ή
- νμ :
μμ μ ννκΈ°
μμ μ ν λͺ λ Ή
λͺ λ Ή κΈ°λ₯ ^z
orstop %job number
ν¬κ·ΈλΌμ΄λ μμ μ μ€μ§ν¨(μ’ λ£κ° μλ μ μ μ€λ¨) bg %job number
μμ λ²νΈκ° μ§μνλ μμ μ λ°±κ·ΈλΌμ΄λ μμ μΌλ‘ μ ν fg %job number
μμ λ²νΈκ° μ§μνλ μμ μ ν¬κ·ΈλΌμ΄λ μμ μΌλ‘ μ ν - μμ
λ²νΈλ₯Ό μ§μ νμ§ μκ³
bg
νΉμfg
λ₯Ό μ¬μ©νλ©΄ μμ μμκ° +μΈ μμ μ μ μ©λ¨
- μμ
λ²νΈλ₯Ό μ§μ νμ§ μκ³
μμ μ’ λ£νκΈ°
- ν¬κ·ΈλΌμ΄λ μμ
^c
: μΈν°λ½νΈ μκ·Έλμ ν¬κ·ΈλΌμ΄λ νλ‘μΈμ€μ μ λ¬- λ€λ₯Έ ν°λ―Έλμμ ν΄λΉ νλ‘μΈμ€μ΄ PIDλ₯Ό μ°Ύμ κ°μ λ‘ μ’ λ£
- λ°±κ·ΈλΌμ΄λ μμ
kill
λͺ λ ΉμΌλ‘ κ°μ μ’ λ£- PID λμ
%job number
μ§μ κ°λ₯
- PID λμ
- ν¬κ·ΈλΌμ΄λ μμ
nohup
- νμ :
nohup command &
- λ‘κ·Έμμν νμλ λ°±κ·ΈλΌμ΄λ μμ μ κ³μ μ€νν¨
- λ°λμ λ°±κ·ΈλΌμ΄λλ‘ μ€νν΄μΌ ν¨
- λ³λλ‘ μΆλ ₯ λ°©ν₯ μ νμ νμ§ μμΌλ©΄ λͺ
λ Ήμ μ€ν κ²°κ³Όμ μ€λ₯ λ©μμ§κ° νμ¬ λλ ν°λ¦¬μ
nohup.out
νμΌλ‘ μλ μ μ₯λ¨
- νμ :
π μμ μμ½
π€ μ ν΄μ§ μκ°μ ν λ² μ€ν
at
- νμ :
at [option] [time]
- μμ½ν λͺ λ Ήμ μ ν΄μ§ μκ°μ μ€ν
- μ΅μ
-l
: νμ¬ μ€ν λκΈ° μ€μΈ λͺ λ Ήμ μ 체 λͺ©λ‘μ μΆλ ₯ν¨atq
: νμ¬ μ¬μ©μμ λ±λ‘λ μμ λͺ©λ‘μ 보μ¬μ£Όλ©° μνΌμ μ μΌ κ²½μ° λͺ¨λ μ¬μ©μμ μμ λͺ©λ‘μ 보μ¬μ€
-r job number
: νμ¬ μ€ν λκΈ° μ€μΈ λͺ λ Ή μ€ ν΄λΉ μμ λ²νΈλ₯Ό μμ atrm
: μ§μ λ μμ λ²νΈμ μμ μ μμ
-m
: μΆλ ₯ κ²°κ³Όκ° μλλΌλ μμ μ΄ μλ£λλ©΄ μ¬μ©μμκ² λ©μΌλ‘ μλ €μ€-f file
: νμ€ μ λ ₯ λμ μ€νν λͺ λ Ήμ νμΌλ‘ μ§μ
- λͺ
λ Ή μ€μ
at
λ€μ μκ° λͺ μ -> ν둬ννΈκ°at>
μΌλ‘ λ°λλ©° μμ μμ½ κ°λ₯- μ€ν λͺ λ Ήμ κΈ°λ³Έμ μΌλ‘ νμ€ μ λ ₯μΌλ‘ μ§μ
- λͺ
λ Ήμ μ
λ ₯ λ§μΉ μ
^d
- μκ° μ§μ μ
HH:MM
ννλΏλ§ μλλΌHHMM
ννλ μ§μνλ©° today, tomorrow, hours, days, weeksμ κ°μ΄ μ§μ κ°λ₯at 4pm + 3 days
: μ§κΈλΆν° 3μΌ ν μ€ν 4μμ μμ μνat 10am Jul 31
: 7μ 31μΌ μ€μ 10μμ μμ μνat 1am tomorrow
: λ΄μΌ μ€μ 1μμ μμ μνat 10:00am today
: μ€λ μ€μ 10μμ μμ μν
- μ€μ μμ
κ²°κ³Όλ μ§μ λ νμΌμ μ μ₯λ¨
- νμ€ μΆλ ₯μ νμΌλ‘ μ ννμ§ μμΌλ©΄ λ©μΌλ‘ μ λ¬λ¨
- μμ
νμΌ νμΈ
at
μΌλ‘ μμ±λ μμ νμΌμ/var/spool/cron/atjobs
λλ ν°λ¦¬μ μ μ₯λ¨- μμ λ²νΈλ‘ νμΌμ΄ μμ±λ¨
- ν΄λΉ λλ ν°λ¦¬ λ΄μ©μ daemon κ·Έλ£Ήμ μ¬μ©μλ§ νμΈν μ μμΌλ―λ‘
sudo
μ¬μ©
sudo
- root κ³μ μΌλ‘ μ€ν κ°λ₯ν λͺ
λ Ήμ μΌλ° μ¬μ©μκ° μ€νν μ μλλ‘ ν΄μ€
- λͺ λ Ή μ¬μ© μ root κ³μ μ μνΈκ° μλ λͺ λ Ήμ μ€νν κ³μ μ μνΈλ₯Ό μ λ ₯ν¨
- μ¬μ©μκ°
sudo
λ₯Ό μ¬μ©ν μ μλλ‘/etc/sudoers
νμΌμ μ μ₯λμ΄ μμ΄μΌ ν¨
- root κ³μ μΌλ‘ μ€ν κ°λ₯ν λͺ
λ Ήμ μΌλ° μ¬μ©μκ° μ€νν μ μλλ‘ ν΄μ€
- λͺ
λ Ή μ¬μ© μ ν
/etc/at.allow
: λͺ λ Ή μ¬μ© νμ© μ¬μ©μ μ§μ νμΌ- νμ μ κ΄λ¦¬μκ° μμ±ν΄μΌ ν¨
/etc/at.deny
: λͺ λ Ή μ¬μ© κΈμ§ μ¬μ©μ μ§μ νμΌ- κΈ°λ³Έμ μΌλ‘ μμ
- λ νμΌμλ μ¬μ©μ μ΄λ¦μ ν μ€μ νλμ©λ§ μ λ ₯ν΄μΌ ν¨
- μ μ© κΈ°μ€
/etc/at.allow
μ‘΄μ¬ μ ν΄λΉ νμΌμ μ§μ λ μ¬μ©μλ§ λͺ λ Ή μ¬μ© κ°λ₯- μ΄ κ²½μ°
/etc/at.deny
λ 무μλ¨
- μ΄ κ²½μ°
/etc/at.allow
μμ μ/etc/at.deny
μ μ§μ λ μ¬μ©λ₯Ό μ μΈν λͺ¨λ μ¬μ©μκ° λͺ λ Ή μ¬μ© κ°λ₯- λ νμΌ μμ μ rootλ§ λͺ λ Ή μ¬μ© κ°λ₯
- μ¬μ©μκ° λ νμΌ λͺ¨λ μν΄ μλ€λ©΄ λͺ
λ Ή μ¬μ© κ°λ₯
/etc/at.allow
μ μ©
/etc/at.deny
λ₯Ό λΉ νμΌλ‘ λλ©΄ λͺ¨λ μ¬μ©μκ° λͺ λ Ή μ¬μ© κ°λ₯- μ΄κΈ° μ€μ
- νμ :
π€ μ ν΄μ§ μκ°μ λ°λ³΅ μ€ν
crontab
νμ :
crontab [-u user_ID] [option] [file_name]
μ¬μ©μμ crontab νμΌμ κ΄λ¦¬ν¨
μ΅μ
-e
: μ¬μ©μμ crontab νμΌμ νΈμ§- crontab νΈμ§κΈ°λ‘λ κΈ°λ³Έμ μΌλ‘
VISUAL
orEDITOR
νκ²½ λ³μμ μ§μ λ νΈμ§κΈ° μ¬μ© - ν΄λΉ μ΅μ
μΌλ‘ νΈμ§ν νμΌ μ μ₯ μ μλμΌλ‘
/var/spool/cron/crontabs
λλ ν°λ¦¬μ μ¬μ©μ μ΄λ¦μΌλ‘ μμ±λ¨- ν΄λΉ λλ ν°λ¦¬λ μΌλ° μ¬μ©μκ° μ κ·Ό λΆκ°νλ©° μμ€ν κ΄λ¦¬μλ§ μ κ·Ό κ°λ₯
- crontab νΈμ§κΈ°λ‘λ κΈ°λ³Έμ μΌλ‘
-l
: crontab νμΌμ λͺ©λ‘ μΆλ ₯-r
: crontab νμΌ μμ - μμ€ν
κ΄λ¦¬μκ° νΉμ μ¬μ©μμ crontabμ μμ ν μ
crontab -u user1 -r
κ³Ό κ°μ΄ μμ νλ €λ μ¬μ©μ IDλ₯Ό μ§μ ν¨
- μμ€ν
κ΄λ¦¬μκ° νΉμ μ¬μ©μμ crontabμ μμ ν μ
νμΌ νμ
crontab
νμΌμλ μ¬λ¬ κ°μ μμ μ μ μ₯ν μ μμΌλ©° ν νμ νλμ μμ μ μ€μ ν¨ν νμ μ¬μ― νλͺ©
λΆ(0~59) μ(0~23) μΌ(1~31) μ(1~12) μμΌ(0~6) μμ λ΄μ© - κ° νλͺ© 곡백문μ ꡬλΆ
*
μ¬μ© μ ν΄λΉ νλͺ©μ λͺ¨λ κ°μ μλ―Έν¨
λͺ λ Ή μ¬μ© μ ν
/etc/cron.allow
: λͺ λ Ή μ¬μ© νμ© μ¬μ©μ μ§μ νμΌ- νμ μ κ΄λ¦¬μκ° μμ±ν΄μΌ ν¨
/etc/cron.deny
: λͺ λ Ή μ¬μ© κΈμ§ μ¬μ©μ μ§μ νμΌ- νμ μ κ΄λ¦¬μκ° μμ±ν΄μΌ ν¨
- λ νμΌμλ μ¬μ©μ μ΄λ¦μ ν μ€μ νλμ©λ§ μ λ ₯ν΄μΌ ν¨
- μ μ© κΈ°μ€
/etc/cron.allow
μ‘΄μ¬ μ μ΄ νμΌμ μ§μ λ μ¬μ©μλ§ λͺ λ Ή μ¬μ© κ°λ₯/etc/cron.allow
μκ³/etc/cron.deny
μ‘΄μ¬ μ μ΄ νμΌμ μ¬μ©μ κ³μ μ΄ μμ΄μΌ λͺ λ Ή μ¬μ© κ°λ₯- λ νμΌ λͺ¨λ μμ μ μμ€ν μ€μ μ λ°λΌ μμ€ν κ΄λ¦¬μλ§ λͺ λ Ήμ μ¬μ©ν μλ, λͺ¨λ μ¬μ©μκ° μ¬μ©ν μλ μμ
- λ νμΌμ΄ λͺ¨λ μ‘΄μ¬ μ
/etc/cron.allow
μ μ©λλ©°,/etc/cron.deny
무μ
ππ» [Chapter 07] νμΌ μμ€ν κ³Ό λμ€ν¬ κ΄λ¦¬
π 리λ μ€ νμΌ μμ€ν μ’ λ₯
π€ 리λ μ€ κ³ μ μ λμ€ν¬ κΈ°λ° νμΌ μμ€ν
- μ΄κΈ°μ
λ―Έλμ€μ νμΌ μμ€ν (MFS; Minix File System)
μ μ΄μ©νμΌλ κ³§ext νμΌ μμ€ν
μΌλ‘ μλ €μ§ λ¦¬λ μ€ κ³ μ μ νμΌ μμ€ν μ λ§λ€μ΄ μ¬μ© ext(ext1)
- λ λ―Έ μΉ΄λκ° κ°λ°
ext; Extended File System
Extfs
λΌκ³ λ νλ©°MFS
κΈ°λ₯μ νμ₯νλ€λ μλ―Έκ° μμ
MFS
- 16λΉνΈ μ£Όμ μ²΄κ³ μ¬μ©
- νμΌ μμ€ν μ μ΅λ ν¬κΈ° : 64MB
- νμΌ μ΄λ¦μ κΈΈμ΄ : 14B
ext
νμΌ μμ€ν μ μ΅λ ν¬κΈ° : 2GBext
νμΌ μ΄λ¦μ κΈΈμ΄ : 255B
- inodeμ μμ κ³Ό λ°μ΄ν°μ μμ μκ° μ§μμ΄ λμ§ μμ
- λ§ν¬λ 리μ€νΈλ‘ νμΌ μμ€ν μ ꡬμ±νμ¬ νμΌ μμ€ν μ΄ λ³΅μ‘ν΄μ§κ³ ννΈνλλ λ¬Έμ μΌκΈ°
ext2; Second Extended File System(Ext2fs)
- λ λ―Έ μΉ΄λκ° κ°λ°
ext
νμΌ μμ€ν κΈ°λ°μΌλ‘ νμ₯μ± κ³ λ €νμ¬ λ§λ€μ΄μ§- νμΌ μμ€ν μ μ΅λ ν¬κΈ°κ° μ΄λ‘ μ μΌλ‘ 32TBκΉμ§ μ§μ κ°λ₯
- λΆν κ°λ₯ν USB νλμ λλΌμ΄λΈμ κΈ°ν SSD μ₯μΉμ μ¬μ©λκ³ μμ
ext3; Third Extended File System
- μ€ν°λΈ νΈμλκ° κ°λ°
ext2
κΈ°λ°μΌλ‘ κ°λ°λμ΄ νΈν κ°λ₯μ λλ§(journaling)
κΈ°λ₯ λμ- λμ€ν¬μ κΈ°λ‘λλ λ°μ΄ν°μ 볡ꡬ κΈ°λ₯μ κ°νν κ²
- λ°μ΄ν°λ₯Ό λμ€ν¬μ κΈ°λ‘νκΈ° μ μ λ¨Όμ μ λμ μμ μ¬νμ κΈ°λ‘ν¨
- inodeμ λμ ν λΉμ΄λ λ€μν λΈλ‘ ν¬κΈ°μ κ°μ μ΅μ νμΌ μμ€ν κΈ°λ₯ λΆμ‘±
- μ¨λΌμΈ μ‘°κ° λͺ¨μ κΈ°λ₯ μμ
- νμΌ μμ€ν μ μ΅λ ν¬κΈ° : λΈλ‘ ν¬κΈ°μ λ°λΌ 2~32TBκΉμ§ μ§μ
ext4; Fourth Extended File System
- λ°λ° μΉ΄μ€, μλλ λκ±°, μλ μ€ μ£ΌλΌλΈλ ν, λ°μ΄λΈ ν΄λ μ΄μΊ ν, ν μ€λμ΄ μΈ μ€, μλ¦ μλ, μ λκ·Έμλ€ λ±μ΄ κ°λ°
- 1EB μ΄μμ λ³Όλ₯¨κ³Ό 16TB μ΄μμ νμΌμ μ§μνλ©°,
ext2
λ°ext3
κ³Ό νΈνμ± μ μ§ ext3
μμλ μλΈ λλ ν°λ¦¬μ μκ° 32,000κ°λ‘ μ νλμμΌλext4
μμλ 64,000κ°λ‘ λμ΄λ¬μΌλ©°, μ¨λΌμΈ μ‘°κ° λͺ¨μ κΈ°λ₯μ μ§μν¨
XFS; eXtended File System
- μ€λ¦¬μ½ κ·Έλν½μ€κ° κ°λ°ν κ³ μ±λ₯ μ λλ§ νμΌ μμ€ν
- 64λΉνΈ νμΌ μμ€ν μΌλ‘ μ΅λ 16EBκΉμ§ μ§μ
π€ 리λ μ€μμ μ§μνλ λ€μν νμΌ μμ€ν
- κΈ°ν νμΌ μμ€ν
νμΌ μμ€ν κΈ°λ₯ msdos MS-DOS νν°μ μ μ¬μ©νκΈ° μν νμΌ μμ€ν iso9660 CD-ROM, DVDμ νμ€ νμΌ μμ€ν μ΄λ©° μ½κΈ° μ μ©μΌλ‘ μ¬μ© nfs Network File SystemμΌλ‘ μ격 μλ²μ λμ€ν¬λ₯Ό μ°κ²°ν λ μ¬μ© ufs Unix File SystemμΌλ‘ μ λμ€μ νμ€ νμΌ μμ€ν vfat μλ 95, 98, NTλ₯Ό μ§μνκΈ° μν νμΌ μμ€ν hpfs HPFSλ₯Ό μ§μνκΈ° μν νμΌ μμ€ν ntfs μλμ NTFSλ₯Ό μ§μνκΈ° μν νμΌ μμ€ν sysv μ λμ€ μμ€ν Vλ₯Ό μ§μνκΈ° μν νμΌ μμ€ν hfs λ§₯ μ»΄ν¨ν°μ hfs νμΌ μμ€ν μ μ§μνκΈ° μν νμΌ μμ€ν
π€ νΉμ μ©λμ κ°μ νμΌ μμ€ν
- κ°μ νμΌ μμ€ν
νμΌ μμ€ν κΈ°λ₯ swap μ€μ μμμ κ΄λ¦¬νκΈ° μν μ€μ νμΌ μμ€ν tmpfs Temporary File SystemμΌλ‘ λ©λͺ¨λ¦¬μ μμ νμΌμ μ μ₯νκΈ° μν νμΌ μμ€ν μ΄λ©°, μμ€ν μ΄ μ¬μμν λλ§λ€ κΈ°μ‘΄ λ΄μ©μ΄ μμ΄μ§
/tmp
λλ ν°λ¦¬κ° μμμproc proc νμΌ μμ€ν μΌλ‘ /proc
λλ ν°λ¦¬μ
컀λμ νμ¬ μνλ₯Ό λνλ΄λ νμΌμ κ°μ§ramfs λ¨λμ€ν¬λ₯Ό μ§μνλ νμΌ μμ€ν rootfs Root File SystemμΌλ‘ /
λλ ν°λ¦¬μ
μμ€ν μ΄κΈ°ν λ° κ΄λ¦¬μ νμν λ΄μ©μ κ΄λ¦¬
π€ νμ¬ μμ€ν μ΄ μ§μνλ νμΌ μμ€ν νμΈ
proc/filesystems
: νμ¬ μ»€λμ΄ μ§μνλ νμΌ μμ€ν μ μ’ λ₯λ₯Ό μλ €μ€- 리λ μ€ λ²μ μ λ°λΌ λ€λ₯Ό μ μμ
π 리λ μ€ νμΌ μμ€ν ꡬ쑰
- 리λ
μ€μ λͺ¨λ νμΌ μμ€ν
μ κΈ°λ³Έμ μΌλ‘ μ λμ€ μ΄μ체μ μμ μ λλ 곡ν΅μ κ°λ
μ λ°νμΌλ‘ ꡬνλ¨
- νμΌμ inodeλ‘ κ΄λ¦¬λ¨
- λλ ν°λ¦¬λ λ¨μν νμΌ λͺ©λ‘μ κ°μ§κ³ μλ νμΌμΌ λΏμ
- νΉμ νμΌμ ν΅ν΄ μ₯μΉμ μ κ·Ό κ°λ₯
π€ ext4 νμΌ μμ€ν μ ꡬ쑰
ext4 νμΌ μμ€ν μ ν¨μ¨μ μΌλ‘ λμ€ν¬λ₯Ό μ¬μ©νκΈ° μν΄ μ μ₯ μ₯μΉλ₯Ό λ Όλ¦¬μ μΈ λΈλ‘μ μ§ν©(λΈλ‘ κ·Έλ£Ή)μΌλ‘ ꡬλΆ
- μΌλ°μ μΈ λΈλ‘μ ν¬κΈ°λ 4KB, μ€μ ν¬κΈ°λ μμ€ν μ μ€μ μ λ°λΌ λ€λ₯Ό μ μμ
- λΈλ‘ κ·Έλ£Ήμ κ°μλ μ₯μΉμ ν¬κΈ°λ₯Ό λΈλ‘ κ·Έλ£Ήμ ν¬κΈ°λ‘ λλ κ°
λΈλ‘ κ·Έλ£Ή
κ·Έλ£Ή 0 ν¨λ© ext4 μνΌλΈλ‘ κ·Έλ£Ή λμ€ν¬λ¦½ν° GDT μμ½ λΈλ‘ λ°μ΄ν° λΈλ‘ λΉνΈλ§΅ inode λΉνΈλ§΅ inode ν μ΄λΈ λ°μ΄ν° λΈλ‘ 1,024B 1 λΈλ‘ n λΈλ‘ n λΈλ‘ 1 λΈλ‘ 1 λΈλ‘ n λΈλ‘ n λΈλ‘ - λΈλ‘ κ·Έλ£Ή 0 : νμΌ μμ€ν μ 첫 λ²μ§Έ λΈλ‘ κ·Έλ£ΉμΌλ‘ νΉλ³νκ² κ·Έλ£Ή 0 ν¨λ©κ³Ό μνΌλΈλ‘, κ·Έλ£Ή λμ€ν¬λ¦½ν°λ₯Ό κ°κ³ μμ
ext4 μνΌλΈλ‘ κ·Έλ£Ή λμ€ν¬λ¦½ν° GDT μμ½ λΈλ‘ λ°μ΄ν° λΈλ‘ λΉνΈλ§΅ inode λΉνΈλ§΅ inode ν μ΄λΈ λ°μ΄ν° λΈλ‘ 1 λΈλ‘ n λΈλ‘ n λΈλ‘ 1 λΈλ‘ 1 λΈλ‘ n λΈλ‘ n λΈλ‘ - λΈλ‘ κ·Έλ£Ή a : νμΌ μμ€ν μμ 첫 λ²μ§Έ λΈλ‘ κ·Έλ£Ήμ΄ μλ λΈλ‘ κ·Έλ£ΉμΌλ‘ κ·Έλ£Ή 0 ν¨λ©μ΄ μμΌλ μνΌλΈλ‘κ³Ό κ·Έλ£Ή λμ€ν¬λ¦½ν°μ 볡μ¬λ³Έμ κ°κ³ μμ
λ°μ΄ν° λΈλ‘ λΉνΈλ§΅ inode λΉνΈλ§΅ inode ν μ΄λΈ λ°μ΄ν° λΈλ‘ 1 λΈλ‘ 1 λΈλ‘ n λΈλ‘ n λΈλ‘ - λΈλ‘ κ·Έλ£Ή b : νμΌ μμ€ν μμ 첫 λ²μ§Έ λΈλ‘ κ·Έλ£Ήμ΄ μλ λΈλ‘ κ·Έλ£ΉμΌλ‘ κ·Έλ£Ή 0 ν¨λ©, μνΌλΈλ‘, κ·Έλ£Ή λμ€ν¬λ¦½ν°κ° μκ³ λ°λ‘ λ°μ΄ν° λΈλ‘ λΉνΈλ§΅μΌλ‘ μμν¨
κ·Έλ£Ή 0 ν¨λ©
- λΈλ‘ κ·Έλ£Ή 0μ 첫 1,024Bλ νΉλ³ν λͺ©μ μΌλ‘ μ¬μ©λ¨
- x86 λΆνΈ μΉν°μ λΆκ° μ 보λ₯Ό μ μ₯
- λΈλ‘ κ·Έλ£Ή 0μ 첫 1,024Bλ νΉλ³ν λͺ©μ μΌλ‘ μ¬μ©λ¨
μνΌλΈλ‘
- νμΌ μμ€ν
κ³Ό κ΄λ ¨λ λ€μν μ 보 μ μ₯
- μ 체 inodeμ κ°μ
ν λΉλμ§ μμ λΈλ‘(free block)
μ κ°μ- 첫 λ²μ§Έ λ°μ΄ν° λΈλ‘μ μ£Όμ
- κ·Έλ£ΉλΉ λΈλ‘μ κ°μ
- νμΌ μμ€ν μ μν
- μ 체 λΈλ‘μ κ°μ
ν λΉλμ§ μμ inode(free inode)
μ κ°μ- λΈλ‘μ ν¬κΈ°
- λ§μ΄νΈ μκ°
- κ·Έλ£Ή λμ€ν¬λ¦½ν°μ ν¬κΈ°
- μνΌλΈλ‘ λ¬Έμ λ°μ μ μ 체 νμΌ μμ€ν μ΄μ© λΆκ°
- νμΌ μμ€ν
κ³Ό κ΄λ ¨λ λ€μν μ 보 μ μ₯
κ·Έλ£Ή λμ€ν¬λ¦½ν°
- κ·Έλ£Ή λμ€ν¬λ¦½ν°μ μ μ₯λλ λ€μν μ 보
- λΈλ‘ λΉνΈλ§΅μ μ£Όμ
- inode λΉνΈλ§΅μ μ£Όμ
- inode ν μ΄λΈμ μ£Όμ
- ν λΉλμ§ μμ λΈλ‘μ κ°μ
- ν λΉλμ§ μμ inodeμ κ°μ
- λλ ν°λ¦¬μ κ°μ
- λΈλ‘ λΉνΈλ§΅, inode λΉνΈλ§΅ 체ν¬μ¬
- κ·Έλ£Ή λμ€ν¬λ¦½ν°μ μ μ₯λλ λ€μν μ 보
GDT μμ½ λΈλ‘ : κ·Έλ£Ή λμ€ν¬λ¦½ν°μ νμ₯μ μν μλΉ κ³΅κ°
λ°μ΄ν° λΈλ‘ λΉνΈλ§΅ : λΈλ‘ κ·Έλ£Ήμ ν¬ν¨λ λ°μ΄ν° λΈλ‘μ μ¬μ© μ¬λΆλ₯Ό νμΈ
inode λΉνΈλ§΅ : inode ν μ΄λΈμ νλͺ©μ΄ μ¬μ© μ€μΈμ§λ₯Ό νμ
inode ν μ΄λΈ : νμΌ μ 보 μ μ₯
λ°μ΄ν° λΈλ‘ : μ€μ λ°μ΄ν° μ μ₯
- μΌλ° νμΌμ λ°μ΄ν° λΈλ‘μ νμΌ λ΄μ©μ μ μ₯
- λλ ν°λ¦¬λ λ°μ΄ν° λΈλ‘μ ν΄λΉ λλ ν°λ¦¬μ μλ νμΌμ΄λ μλΈ λλ ν°λ¦¬μ μ 보(μ΄λ¦, inode)λ₯Ό μ μ₯
π€ inode ꡬ쑰
- νμΌ μ 보λ₯Ό μ μ₯νλ λΆλΆ
- νμΌ μ’ λ₯, νμΌ μ κ·Ό κΆν, νμΌ ν¬κΈ°, μμ μ, μ κ·Ό λ° μμ μκ° λ±
- μ¬μ©μκ°
ls -l
λ‘ νμΈνλ μ 보
- μ€μ νμΌ λ΄μ©μ΄ μ μ₯λ λ°μ΄ν° λΈλ‘μ μ£Όμλ₯Ό μ μ₯νλ λΆλΆ
μ§μ λΈλ‘(direct block)
: λ°μ΄ν° λΈλ‘μ λν μ£Όμλ₯Ό μ§μ κ°μ§κ³ μμκ°μ λΈλ‘(indirect block)
κ³Όμ΄μ€ κ°μ λΈλ‘(double indirect block)
- λ°μ΄ν° λΈλ‘μ λν μ£Όμλ₯Ό κ°μ§κ³ μλ λΈλ‘μ μ£Όμκ° μ μ₯λ¨
- λ°μ΄ν° λΈλ‘μ ν¬κΈ°λ μμ€ν μ€μ μ λ°λΌ 1~8KBκΉμ§ μ§μ κ°λ₯
π€ νμΌ μμ€ν κ³Ό λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰
- ν νμΌ μμ€ν
μΌλ‘ ꡬμ±
- νλμ νμΌ μμ€ν
μΌλ‘ ꡬμ±ν κ²½μ°
/
λλ ν°λ¦¬μ ν΄λΉ νμΌ μμ€ν μ μ°κ²°ν¨
- νλμ νμΌ μμ€ν
μΌλ‘ ꡬμ±ν κ²½μ°
- μ¬λ¬ νμΌ μμ€ν
μΌλ‘ ꡬμ±
- νμΌ μμ€ν
1 ->
/
λλ ν°λ¦¬- λ£¨νΈ νμΌ μμ€ν
- νμΌ μμ€ν
2 ->
/usr
λλ ν°λ¦¬ - νμΌ μμ€ν
3 ->
/home
λλ ν°λ¦¬ - μ¬λ¬ νμΌ μμ€ν μΌλ‘ λλμ΄ λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰λ₯Ό ꡬμ±ν κ²½μ°, μΌλΆ νμΌ μμ€ν μ λ¬Έμ κ° λ°μν΄λ λ€λ₯Έ νμΌ μμ€ν μ νμΌμ μμ ν¨
- μλμ λμ€ν¬μ νν°μ μ λλλ κ²κ³Ό μ μ¬
- νμΌ μμ€ν
1 ->
π νμΌ μμ€ν λ§μ΄νΈ
λ§μ΄νΈ(mount)
: νμΌ μμ€ν μ λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰μ νΉμ λλ ν°λ¦¬μ μ°κ²°νλ κ²
π€ λ§μ΄νΈ ν¬μΈνΈ
- λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰μ νμΌ μμ€ν μ λ§μ΄νΈνμ§ μμΌλ©΄ μ¬μ©μκ° μ κ·Όν μ μμΌλ―λ‘, λ§μ΄νΈνμ§ μμ νμΌ μμ€ν μ λλ ν°λ¦¬λ‘ μ΄λ λΆκ°
- λλ ν°λ¦¬ κ³μΈ΅ ꡬ쑰μμ νμΌ μμ€ν μ΄ μ°κ²°λλ λλ ν°λ¦¬λ₯Ό λ§μ΄νΈ ν¬μΈνΈλΌκ³ ν¨
π€ νμΌ μμ€ν λ§μ΄νΈ μ€μ νμΌ
리λ μ€μμ μμ€ν μ΄ λΆν λ λ μλμΌλ‘ νμΌ μμ€ν μ΄ λ§μ΄νΈλκ² νλ €λ©΄
/etc/fstab
νμΌμ κ΄λ ¨ μ¬νμ μ€μ ν΄μΌ ν¨/etc/fstab
νμΌμ κΈ°λ₯- νμΌ μμ€ν μ λ§μ΄νΈ μ€μ μ 보λ₯Ό κ°μ§κ³ μμ
- ν΄λΉ νμΌμ μ€λ₯κ° μμΌλ©΄ μμ€ν λΆν μ΄ μ€μ§λ μ μμ
- νμΌ μμ€ν μ μ₯μΉλͺ κ³Ό λ§μ΄νΈ ν¬μΈνΈ, λ§μ΄νΈν λ μ€μ ν μ΅μ μ§μ
/etc/fstab
νμΌμ ꡬ쑰μ₯μΉλͺ λ§μ΄νΈ ν¬μΈνΈ νμΌ μμ€ν μ μ’ λ₯ μ΅μ λ€ν κ΄λ ¨ μ€μ νμΌ μ κ² μ΅μ - μ₯μΉλͺ : νμΌ μμ€ν μ₯μΉλͺ μ€μ
- λ§μ΄νΈ ν¬μΈνΈ : νμΌ μμ€ν μ΄ λ§μ΄νΈλ λ§μ΄νΈ ν¬μΈνΈ μ€μ
- νμΌ μμ€ν μ μ’ λ₯ : νμΌ μμ€ν μ μ’ λ₯ μ€μ
- μ΅μ
μ΅μ μλ―Έ defaults μΌλ°μ μΈ νμΌ μμ€ν μ μ§μ νλ μμ±
rw, nouser, auto, exec, suid μμ± λͺ¨λ ν¬ν¨auto λΆν μ μλμΌλ‘ λ§μ΄νΈ exec μ€ν νμΌμ΄ μ€νλλ κ²μ νμ© suid setuid, setgidμ μ¬μ© νμ© ro μ½κΈ° μ μ© νμΌ μμ€ν rw μ½κΈ°, μ°κΈ°κ° κ°λ₯ν νμΌ μμ€ν user μΌλ° μ¬μ©μλ λ§μ΄νΈ κ°λ₯ nouser μΌλ° μ¬μ©μμ λ§μ΄νΈ λΆκ°λ₯
rootλ§ κ°λ₯noauto λΆν μ μλμΌλ‘ λ§μ΄νΈνμ§ μμ noexec μ€ν νμΌμ΄ μ€νλλ κ²μ νμ©νμ§ μμ nosuid setuid, setgidμ μ¬μ© κΈμ§ usrquota μ¬μ©μλ³λ‘ λμ€ν¬ μΏΌν° μ€μ κ°λ₯ grpquota κ·Έλ£Ήλ³λ‘ λμ€ν¬ μΏΌν° μ€μ κ°λ₯ - λ€ν κ΄λ ¨ μ€μ : 0 λλ 1 μ§μ
- 0μ
dump
λ‘ νμΌ μμ€ν μ λ΄μ©μ΄ λ€νλμ§ μλ νμΌ μμ€ν - 1μ λ°μ΄ν° λ°±μ
λ±μ μν΄
dump
μ μ¬μ©μ΄ κ°λ₯ν νμΌ μμ€ν
- 0μ
- νμΌ μ κ² μ΅μ
: 0, 1, 2 μ€ νλ μ§μ
- 0μ λΆν
μ
fsck
λ‘ νμΌ μμ€ν μ μ κ²νμ§ μλλ‘ ν¨ - 1μ λ£¨νΈ νμΌ μμ€ν
- 2λ λ£¨νΈ νμΌ μμ€ν μ΄μΈμ νμΌ μμ€ν μλ―Έ
- 0μ λΆν
μ
π€ λ§μ΄νΈ κ΄λ ¨ λͺ λ Ή
mount
- νμ :
mount [option] [dev_name mount_point]
- νμΌ μμ€ν μ λ§μ΄νΈν¨
- μ΅μ
-t νμΌ μμ€ν μ’ λ₯
: νμΌ μμ€ν μ’ λ₯ μ§μ -o λ§μ΄νΈ μ΅μ
: λ§μ΄νΈ μ΅μ μ§μ -f
: λ§μ΄νΈλ₯Ό ν μ μλμ§ μ κ²λ§ ν¨-r
: μ½κΈ°λ§ κ°λ₯νκ² λ§μ΄νΈν¨-o ro
- μ΅μ μ΄λ μΈμ μ§μ μμ΄ λͺ λ Ή μ¬μ© μ νμ¬ λ§μ΄νΈλμ΄ μλ μ λ³΄κ° μΆλ ₯λ¨
- νμ :
unmount
- νμ :
unmount [option] dev_name or mount_point
- νμΌ μμ€ν μ μΈλ§μ΄νΈν¨
- μ΅μ
-t νμΌ μμ€ν μ’ λ₯
: νμΌ μμ€ν μ’ λ₯ μ§μ
- λͺ λ Ή μ€νν λ 'busy'κ° μΆλ ₯λλ©΄ ν΄λΉ λλ ν°λ¦¬λ₯Ό λκ΅°κ° μ¬μ© μ€μ΄κΈ° λλ¬Έμ λ§μ΄νΈλ₯Ό ν΄μ ν μ μλ€λ λ»
- νμ :
π λμ€ν¬ μΆκ° μ€μΉ
- λμ€ν¬ μΆκ° λ¨κ³
- μ λμ€ν¬ μ₯μ°©
- λμ€ν¬ νν°μ λλκΈ°
- νν°μ μ νμΌ μμ€ν μμ±(ν¬λ©§)
- λμ€ν¬ λ§μ΄νΈ
π€ κ°μλ¨Έμ μ λμ€ν¬λ₯Ό μΆκ°νλ λ°©λ²
- κ°μλ¨Έμ ꡬμ±
- IDE λμ€ν¬ 컨νΈλ‘€λ¬ λ κ°
- SATA λμ€ν¬ 컨νΈλ‘€λ¬ λ€ κ°
- SCSI λμ€ν¬ 컨νΈλ‘€λ¬ λ€ κ°
- NVMe 컨νΈλ‘€λ¬ λ€ κ°
- IDE, SATA, SCSI, NVMe : λμ€ν¬ κ°μ μ₯μΉλ₯Ό μ°κ²°νλ μΈν°νμ΄μ€ λ°©μ
- SCSIλ μ£Όλ‘ μλ²κΈ μ₯μΉμμ μ¬μ©
π€ λμ€ν¬ νν°μ μ λλλ λ°©λ²
νν°μ (partition)
: νλμ λμ€ν¬λ₯Ό λ 립λ μμμΌλ‘ ꡬλΆνλ κ²- λμ€ν¬ μ₯μΉμ μ΄λ¦κ³Ό νν°μ
νμ
/dev/sd
λ‘ μμνλ λμ€ν¬ μ₯μΉ μ΄λ¦ μ¬μ©- 컨νΈλ‘€λ¬μ μ°κ²°λλ λμ€ν¬μ μμμ λ°λΌ
/dev/sd
λ€μ μνλ²³ μμλ‘/dev/sda
μ κ°μ΄ μμλλ‘ μΆκ°λ¨ - μΌλ°μ μΌλ‘ IDE 컨νΈλ‘€λ¬μ μ₯μ°©λ λμ€ν¬κ° SCSIμ μ₯μ°©λ λμ€ν¬λ³΄λ€ μμ λ°°μ λ¨
- νν°μ
μ
/dev/sda0
κ³Ό κ°μ΄ λμ€ν¬ μ₯μΉλͺ μ λ€μ μ«μλ₯Ό λΆμ¬μ νμ - μ₯μΉλͺ μ μ«μκ° λΆμ§ μμΌλ©΄ λμ€ν¬ μ₯μΉ μ 체λ₯Ό κ°λ¦¬ν€κ³ , μ«μκ° λΆμΌλ©΄ ν΄λΉ λμ€ν¬μ ꡬλΆλ κ° νν°μ μ λ»ν¨
fdisk
- νμ :
fdisk [option] [dev_name]
- λμ€ν¬μ νν°μ μμ±, μμ , 보기 λ± νν°μ μ κ΄λ¦¬ν¨
- μ΅μ
-b ν¬κΈ°
: μΉν° ν¬κΈ°λ₯Ό μ§μ (512, 1024, 2048, 4096)-l
: νν°μ ν μ΄λΈ μΆλ ₯
- λ΄λΆ λͺ
λ Ή
λͺ λ Ή κΈ°λ₯ a λΆν νν°μ μ€μ b BSD λμ€ν¬ λΌλ²¨ νΈμ§ c λμ€ νΈνμ± μ€μ d νν°μ μμ l μ¬μ© κ°λ₯ν νν°μ μ μ’ λ₯ μΆλ ₯ m λμλ§ μΆλ ₯ n μλ‘μ΄ νν°μ μΆκ° o μλ‘μ΄ λΉ DOS νν°μ μμ± p νν°μ ν μ΄λΈ μΆλ ₯ q μμ λ΄μ©μ μ μ₯νμ§ μκ³ μ’ λ£ s μλ‘μ΄ λΉ Sun λμ€ν¬ λΌλ²¨ μμ± t νν°μ μ μμ€ν ID λ³κ²½(νμΌ μμ€ν μ’ λ₯ λ³κ²½) u νλͺ© μ 보λ₯Ό λ³κ²½, μΆλ ₯ v νν°μ ν μ΄λΈ κ²μ¬ w νν°μ μ 보λ₯Ό λμ€ν¬μ μ μ₯ ν μ’ λ£ x μ€λ¦°λ κ°μ λ³κ²½ λ± μ λ¬Έκ°λ₯Ό μν λΆκ°μ κΈ°λ₯
- νμ :
π€ νμΌ μμ€ν μ μμ±νλ λ°©λ²
- νμΌ μμ€ν μμ± : νν°μ μμ νμΌκ³Ό λλ ν°λ¦¬λ₯Ό κ΄λ¦¬νκΈ° μν ꡬ쑰λ₯Ό λ§λλ κ²
mkfs
- νμ :
mkfs [option] [dev_name]
- 리λ μ€ νμΌ μμ€ν μμ±
- μ΅μ
-t μ’ λ₯
: νμΌ μμ€ν μ μ’ λ₯ μ§μ - κΈ°λ³Έκ°μ ext2
mkfs.ext2
,mkfs.ext3
,mkfs.ext4
μ λμΌνκ² λμ
- νμ :
mke2fs
- νμ :
mke2fs [option] [dev_name]
- 리λ μ€ κ°μ ν νμ₯ νμΌ μμ€ν μμ±
- μ΅μ
-t μ’ λ₯
: νμΌ μμ€ν μ μ’ λ₯ μ§μ - κΈ°λ³Έκ°μ ext2
-b λΈλ‘ ν¬κΈ°
: λΈλ‘ ν¬κΈ°λ₯Ό λ°μ΄νΈ μλ‘ μ§μ -c
: λ°°λ λΈλ‘ 체ν¬-f νλκ·Έλ¨ΌνΈ ν¬κΈ°
: νλκ·Έλ¨ΌνΈ ν¬κΈ°λ₯Ό λ°μ΄νΈ μλ‘ μ§μ -i inodeλΉ λ°μ΄νΈ μ
: inodeλΉ λ°μ΄νΈ μλ₯Ό μ§μ - κΈ°λ³Έκ°μ 4,096B
-m μμ½ λΈλ‘ νΌμΌνΈ
: μνΌμ μ μκ² μμ½ν΄λ λΈλ‘μ νΌμΌνΈ μ§μ - κΈ°λ³Έκ°μ 5%
/etc/mke2fs.conf
νμΌ :mke2fs
μ λ³λ μ€μ νμΌ- νμΌ μμ€ν μ’ λ₯μ λ°λΌ κΈ°λ³Έμ μΌλ‘ μ€μ ν κ°μ΄ μ μλμ΄ μμ
- νμ :
'Development Study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Lecture] Data Communication - Day 11 (0) | 2023.06.01 |
---|---|
[Lecture] Data Communication - Day 9~10 (0) | 2023.05.28 |
[Lecture] DataBase - Day 9 (0) | 2023.05.22 |
[Lecture] DataBase - Day 8 (0) | 2023.05.15 |
[Lecture] Data Communication - Day 8 (0) | 2023.05.14 |