This lesson is only available in Korean for now.
Dr. Son's Operating Systems, First Steps

Becoming the person who
doesn't panic at a black screen

You learn operating systems from the very beginning โ€” analogies instead of jargon, and running things yourself instead of only reading about them.
Your own virtual Ubuntu server comes with the course, and there is an online store inside it for you to look after.

๐Ÿง UbuntuโŒจ๏ธ terminal๐Ÿ” permissions โš™๏ธ systemd๐Ÿ  nginx๐Ÿ‡ฌ๐Ÿ‡ง English
Start lesson 1 โ†’

How you'll learn

๐Ÿ–ฅ๏ธYou get your own server

Your own virtual Ubuntu 24.04 server. Safe even if you run rm -rf /.

โ–ถ๏ธRun it yourself

Every command has a run button. Change it, get it wrong, try it again.

๐Ÿ›’You operate a real app

Deploy, watch, recover and back up the online store already installed on your server.

๐ŸงฉUnderstanding by analogy

Memory is a desk; a pipe is a conveyor belt. Unfamiliar ideas are explained in terms of things you already know.

Full curriculum

Part 1 ยท What an operating system is
01
์šด์˜์ฒด์ œ โ€” ์ปดํ“จํ„ฐ์˜ ์‚ด๋ฆผ๊พผ
์ „์›์„ ์ผœ๋ฉด ๋ˆ„๊ฐ€ ์ œ์ผ ๋จผ์ € ์ผ์–ด๋‚ ๊นŒ
โœ“
02
์ปค๋„๊ณผ ์…ธ โ€” ์•Œ๋งน์ด์™€ ๊ป๋ฐ๊ธฐ
์ „์› ๋ฒ„ํŠผ๋ถ€ํ„ฐ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋œจ๊ธฐ๊นŒ์ง€
โœ“
03
ํ„ฐ๋ฏธ๋„ ์ฒซ๊ฑธ์Œ โ€” ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ง ๊ฑธ๊ธฐ
ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ฝ๋Š” ๋ฒ•, ๋ช…๋ น์„ ๋งŒ๋“œ๋Š” ๋ฒ•
โœ“
04
ํŒŒ์ผ ์‹œ์Šคํ…œ โ€” ๋ฟŒ๋ฆฌ ํ•˜๋‚˜์—์„œ ๋ป—์€ ๋‚˜๋ฌด
๋ฆฌ๋ˆ…์Šค์—๋Š” C ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
โœ“
05
ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ โ€” ๋งŒ๋“ค๊ณ  ์˜ฎ๊ธฐ๊ณ  ์ง€์šฐ๊ธฐ
mkdir ยท touch ยท cp ยท mv ยท rm, ๊ทธ๋ฆฌ๊ณ  ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋Š” ์‹ค์ˆ˜
โœ“
06
nano โ€” ๋งˆ์šฐ์Šค ์—†์ด ๊ธ€ ๊ณ ์น˜๊ธฐ
์„œ๋ฒ„ ๊ด€๋ฆฌ์˜ ์ ˆ๋ฐ˜์€ ์„ค์ • ํŒŒ์ผ ๊ณ ์น˜๊ธฐ์ž…๋‹ˆ๋‹ค
โœ“
Part 2 ยท How resources get shared
07
๊ถŒํ•œ โ€” ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€
rwx ์•„ํ™‰ ๊ธ€์ž์™€ sudo ์˜ ๋ฌด๊ฒŒ
โœ“
08
ํ”„๋กœ์„ธ์Šค โ€” ์‚ด์•„ ์›€์ง์ด๋Š” ํ”„๋กœ๊ทธ๋žจ
CPU ํ•˜๋‚˜๋กœ ์ˆ˜๋ฐฑ ๊ฐ€์ง€ ์ผ์„ ๋™์‹œ์— ํ•˜๋Š” ๋งˆ์ˆ 
โœ“
09
๋ฉ”๋ชจ๋ฆฌ โ€” ์ข์€ ์ฑ…์ƒ์„ ๋‚˜๋ˆ  ์“ฐ๊ธฐ
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ, ์Šค์™‘, ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ์ด์œ 
โœ“
10
ํŒŒ์ดํ”„ โ€” ์ž‘์€ ๋„๊ตฌ๋ฅผ ์ด์–ด ๋ถ™์ด๊ธฐ
๋ฆฌ๋ˆ…์Šค๊ฐ€ ๊ฐ•๋ ฅํ•œ ์ง„์งœ ์ด์œ 
โœ“
11
์…ธ ์Šคํฌ๋ฆฝํŠธ โ€” ๋ช…๋ น์„ ํŒŒ์ผ์— ๋‹ด๊ธฐ
์†์œผ๋กœ ํ•˜๋˜ ์ผ์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋„˜๊ธฐ๊ธฐ
โœ“
Part 3 ยท Running the store server for real
12
apt โ€” ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ
์„œ๋ฒ„์—๋Š” ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์ด ์—†์Šต๋‹ˆ๋‹ค
โœ“
13
์‚ฌ์šฉ์ž์™€ SSH โ€” ์„œ๋ฒ„์— ์‚ฌ๋žŒ ๋“ค์ด๊ธฐ
๊ณ„์ •์„ ๋งŒ๋“ค๊ณ , ์—ด์‡ ๋กœ ๋ฌธ์„ ์—ด๊ณ 
โœ“
14
๋ฐฐํฌ โ€” ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๊ธฐ
git clone ยท ๊ฐ€์ƒํ™˜๊ฒฝ ยท pip, ๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ์˜ ์ค‘์š”์„ฑ
โœ“
15
systemd โ€” ๊บผ์ง€๋ฉด ์•Œ์•„์„œ ๋‹ค์‹œ ์ผœ์ง€๊ฒŒ
ํ„ฐ๋ฏธ๋„์„ ๋‹ซ์•„๋„ ์‡ผํ•‘๋ชฐ์ด ๊ณ„์† ๋Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค
โœ“
16
nginx โ€” ์†๋‹˜์„ ๋งž์ดํ•˜๋Š” ์•ž๋‹จ
๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ, ๊ทธ๋ฆฌ๊ณ  502 ์˜ ์ •์ฒด
โœ“
17
๋กœ๊ทธ โ€” ์„œ๋ฒ„๊ฐ€ ๋‚จ๊ธด ์ผ๊ธฐ
๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€๋Š” ํ•ญ์ƒ ๊ธฐ๋ก์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค
โœ“
18
์žฅ์•  ๋Œ€์‘ โ€” ์„œ๋ฒ„๊ฐ€ ์•„ํ”Œ ๋•Œ
๋””์Šคํฌยท๋ฉ”๋ชจ๋ฆฌยทํฌํŠธ, ๊ทธ๋ฆฌ๊ณ  ์นจ์ฐฉํ•œ ์ˆœ์„œ
โœ“
19
๋ฐฑ์—…๊ณผ cron โ€” ์žŠ์–ด๋ฒ„๋ ค๋„ ๋˜๊ฒŒ ๋งŒ๋“ค๊ธฐ
tar ๋กœ ๋ฌถ๊ณ , ๋งค์ผ ์ƒˆ๋ฒฝ 3์‹œ์— ์ €์ ˆ๋กœ
โœ“
20
๋ณด์•ˆ โ€” ๋ฌธ์„ ์ž ๊ทธ๊ณ  ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ
๋ฐฉํ™”๋ฒฝ, ์ตœ์†Œ ๊ถŒํ•œ, ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ๋ถ„์ด ๋ฐฐ์šด ๊ฒƒ
โœ“