FUNDAMENTAL | 02. Linux ์šด์˜์ฒด์ œ

yeonkยท2021๋…„ 9์›” 9์ผ
0

aiffel-ai-bootcamp

๋ชฉ๋ก ๋ณด๊ธฐ
3/38
post-thumbnail

20210908 ๐Ÿ˜‚



1. OS

์ปค๋„: CPU, Memory, SDD ๋“ฑ ๊ฐ์ข… ๋””๋ฐ”์ด์Šค๋ฅผ ํ†ตํ•ฉ๊ด€๋ฆฌํ•˜๋ฉฐ, ์—ฐ์‚ฐ ์ž์›์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์—๊ฒŒ ๋ถ„๋ฐฐํ•˜๋Š” ์—ญํ• .
์šฐ๋ฆฌ๋Š” ์‰˜์„ ํ†ตํ•ด ์ปค๋„ฌ๊ณผ ์†Œํ†ต

https://en.wikipedia.org/wiki/Kernel_(operating_system)

GUI(Graphical User Interface) shell:
Windows shell, Aqua(MacOS), GNOME, Unity(Linux)

CLI(Command Line Interface) shell:
cmd.exe, PowerShell, sh, bash






ํ”„๋กœ์„ธ์Šค

์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU์—ฐ์‚ฐ ๋“ฑ ์ปดํ“จํŒ… ์ž์› ๋ถ„๋ฐฐ



๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ(process isolation):
OS๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ(virtual memory)๋กœ์จ ์ผ๋ถ€๋งŒ ๋–ผ์–ด์„œ ์ œ๊ณต๋„๋ก ํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ํ•จ.

IPC ๊ธฐ๋ฒ•(Inter-Process Communication): ํ”„๋กœ์„ธ์Šค๋“ค๊ฐ„ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„๋กœ ํ—ˆ์šฉ๋œ ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹  ๊ธฐ๋ฒ•



CPU ์ž์› ๊ด€๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋กœ ํ”„๋กœ์„ธ์Šค์— ์ œ๊ณต
CPU ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์ฝ”์–ด ๋‹จ์œ„๋กœ ํ”„๋กœ์„ธ์Šค์— ์ œ๊ณต
์Šค๋ ˆ๋“œ(thread): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์œ„



ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค: ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ž‘์—…๋‹จ์œ„
์Šค๋ ˆ๋“œ: ํ”„๋กœ์„ธ์Šค๊ฐ€ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„






2. Linux OS



ํ™˜๊ฒฝ๋ณ€์ˆ˜(environment variable)

ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜.
์…ธ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ์ฐธ์กฐํ•  ๊ฒฝ๋กœ๋“ค์„ ๋‚˜ํƒ€๋ƒ„.
์…ธ์—์„œ ๋‹จ์–ด ์•ž์— $๋ฅผ ๋ถ™์—ฌ ๋‚˜ํƒ€๋ƒ„.

export: ์…ธ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ํ˜„์žฌ ํ™˜๊ฒฝ์œผ๋กœ ๋‚ด๋ณด๋‚ธ๋‹ค.

$ echo $PATH
$ export PATH=/aiffel:$PATH
$ echo $PATH



ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž(package manager)

๊ณต์ธ ์ €์žฅ์†Œ์—์„œ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํŒจํ‚ค์ง€ ๋‹จ์œ„๋กœ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
์šฐ๋ถ„ํˆฌ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž: APT(Advanced Package Tool)
cf. ํŒŒ์ด์ฌ์€ PIP(Python Package Installer)



์‚ฌ์šฉ์ž์™€ ๊ถŒํ•œ

๋ชจ๋“  ๊ถŒํ•œ์€ ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ธ์ฆ.

์ตœ๊ณ  ๊ด€๋ฆฌ์ž(superuser): ๋ณด์•ˆ ๋ฐ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ์™„์ „ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง
(์œˆ๋„์šฐ: administrator / ์œ ๋‹‰์Šค ๊ณ„์—ด: root)

sudo: Switch User Do. ๊ด€๋ฆฌ์ž์˜ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰

chmod: ๋Œ€์ƒ ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝ






3. ํ•˜๋“œ์›จ์–ด

๊ธฐ๊ณ„์–ด & ์ปดํŒŒ์ผ

CPU๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ํ†ตํ•ด ๋ช…๋ น ์ฒ˜๋ฆฌ.
๊ธฐ๊ณ„์–ด๋Š” ๋น„ํšจ์œจ์ ์ด๊ณ  ๋ณต์žกํ•จ.
์ปดํŒŒ์ผ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ณ  ์ตœ์ ํ™” ํ•˜๋Š” ๊ณผ์ •



CPU, ๋ฉ”๋ชจ๋ฆฌ

CPU 32bit ? 64bit?
โ†’ CPU๊ฐ€ ํ•œ๋ฒˆ์— ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ
โ†’ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ๋ฒ”์œ„์— ์˜ํ–ฅ

ํด๋Ÿญ(clock): ์ดˆ๋‹น ์ฒ˜๋ฆฌ ์†๋„ ๊ธฐ์ค€



GPU(Graphical Processing Unit)

  • ์ƒ๋Œ€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋Š” ์ ์Œ
  • ์ฝ”์–ด์ˆ˜๋ฅผ ๋Š˜๋ ค ๋‹ค์ฐจ์› ํ–‰๋ ฌ ์—ฐ์‚ฐ์— ํŠนํ™”
  • ๊ทธ๋ž˜ํ”ฝ ์—ฐ์‚ฐ, ๋”ฅ๋Ÿฌ๋‹์— ๋งŽ์ด ์‚ฌ์šฉ

TPU(Tensor Processing Unit): ๊ตฌ๊ธ€์—์„œ ๋งŒ๋“  ๋”ฅ๋Ÿฌ๋‹ ์ „์šฉ ์นฉ

ASIC:์ž‘์—…์— ๋งž๊ฒŒ ์ง์ ‘ ์„ค๊ณ„ํ•˜์—ฌ ์ƒ์‚ฐํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠนํ™” ์ง‘์ ํšŒ๋กœ.

FPGA: ํ•„์š”ํ•  ๋•Œ ํšŒ๋กœ๋ฅผ ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•ด์„œ ์‚ฌ์šฉ



์ €์žฅ ์žฅ์น˜

RAM: ์ฃผ ์ €์žฅ์žฅ์น˜. ์šฉ๋Ÿ‰์„ ์‰ฝ๊ฒŒ ๋Š˜๋ฆฌ๊ธฐ ์–ด๋ ต๊ณ  ์ „์›์ด ๊บผ์ง€๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํŠน์ง•

HDD, SDD: ๋ณด์กฐ ์ €์žฅ์žฅ์น˜. ๊ฐ€๊ฒฉ์ด ์ €๋ ดํ•˜๊ณ  ์ „์›์ด ๊บผ์ ธ๋„ ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋ณด์กด๋˜๋Š” ํŠน์ง•

๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋œ๋‹ค๋ฉด ์ €์žฅ์žฅ์น˜๋ฅผ ๋ณด์กฐ ์ €์žฅ์žฅ์น˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์Œ.



ํด๋ผ์šฐ๋“œ ๊ฐ€์ƒํ™”

๊ฐ€์ƒํ™”(virtualization): ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๋ฅผ ๋‚˜๋ˆ  ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ 
ํ˜ธ์ŠคํŠธ(host): ๊ฐ€์ƒํ™”์—์„œ ์‹ค์ œ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„
๊ฒŒ์ŠคํŠธ(guest): ๊ฐ€์ƒ ์„œ๋ฒ„

๊ฐ€์ƒ๋จธ์‹ (Virtual Machine) ๊ฐ€์ƒํ™”: ๊ฒŒ์ŠคํŠธ ์ž์ฒด์— ์šด์˜์ฒด์ œ ์‹คํ–‰
์ปจํ…Œ์ด๋„ˆ(Container) ๊ฐ€์ƒํ™”: ๊ฒŒ์ŠคํŠธ๋“ค์ด ํ˜ธ์ŠคํŠธ์˜ ์šด์˜์ฒด์ œ ์ปค๋„์„ ๊ณต์œ (์ปค๋„ ๊ธฐ๋Šฅ ๊ณต์œ . ํ”„๋กœ์„ธ์Šค๋‚˜ ์ž์› ๋“ฑ์€ ๋ถ„๋ฆฌ)

๋„์ปค(Docker): ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ฅผ ์†์‰ฝ๊ฒŒ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ.
์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ์ž‘์—… ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ.






4. shell

ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ

Ctrl+Shift+C, Ctrl+Shift+V: ๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐ
history: ๊ธฐ์กด์— ์‹คํ–‰ํ•œ ๋ช…๋ น ํ‘œ์‹œ
!๋ฒˆํ˜ธ: ํ•ด๋‹น ๋ฒˆํ˜ธ์˜ ๋ช…๋ น์ด ๋‹ค์‹œ ์‹คํ–‰
Ctrl+A, Ctrl+E: ์ปค์„œ ์ด๋™
clear, Ctrl+L: ์ถœ๋ ฅ ๊ธฐ๋ก ์‚ญ์ œ
Ctrl+z: ํ”„๋กœ์„ธ์Šค ์ค‘์ง€
fg:ํ”„๋กœ์„ธ์Šค ์žฌ๊ฐœ
vi ํŽธ์ง‘๊ธฐ์—์„œ ๋‚˜์˜ฌ ๋•Œ๋Š” Ctrl+C๋‚˜ Esc ๋ˆ„๋ฅธ ํ›„:q!์ž…๋ ฅ
sudo apt install curl, curl parrot.live: ์ถค์ถ”๋Š” ์•ต๋ฌด์ƒˆ ๐Ÿฆ

0๊ฐœ์˜ ๋Œ“๊ธ€