Kompyuter qanday ishlaydi
O'quv yo'l xaritasi · 14 bob · 44 sahifa · 32 rasm

Kompyuter qanday ishlaydi: chuqur o'rganish rejasi

Darslik fizikadan Telegram botgacha 9 ta qatlam bo'ylab ko'tariladi. Bu sahifa har qatlamni qo'l bilan "ushlab ko'rish" uchun animatsiyalar, 4 haftalik reja va o'z-o'zini tekshirish kartalarini beradi.

Fizikaelektronlar, kremniy
Tranzistorkalit
VentillarAND, OR, NOT
Sxemalaryig'uvchi, registr
Mikroarxitekturakonveyer, kesh
ISAx86, ARM
OSLinux, Windows
TilJS, Python
IlovaTelegram bot

Qanday o'qish kerak: 5 qoida

Darslik 44 sahifa, uni bir kechada o'qib chiqish mumkin. Lekin "o'qidim" bilan "tushundim" orasidagi farq mana shu beshta odatda.

01

Ikki marta, ikki yo'nalishda

Birinchi o'qishda kitob kabi pastdan yuqoriga boring: tranzistor → ventil → CPU → OS → bot. Ikkinchi o'qishda 14-bobdagi "A harfi bosildi" misolini yuqoridan pastga kuzating va har bosqichda qaysi bobga qaytish kerakligini yozing.

02

Rasmni yopib, o'zingiz chizing

Kitobda 32 ta rasm bor. Har bobdan keyin asosiy rasmni (masalan, 11-rasm fon Neyman, 14-rasm FDE sikli) xotiradan qog'ozga chizing. Chiza olmagan joyingiz aynan tushunmagan joyingiz.

03

Feynman: 12 yoshli bolaga tushuntiring

Har bo'limdan keyin ovoz chiqarib, atamalarsiz tushuntiring: "Kesh bu... stol ustidagi kitoblar, RAM esa javondagi". To'xtab qolsangiz, o'sha joyni qayta o'qing. Kitobning o'zi shu usulda yozilgan (rele, orkestr, professor va o'quvchilar).

04

Interval bilan takrorlang

Yangi bobni 1, 3, 7, 14 va 30-kunlarda 5 daqiqaga qaytib, pastdagi flesh-kartalar bilan tekshiring. Bu bitta odat esda qolishni bir necha barobar oshiradi.

1kun
3kun
7kun
14kun
30kun
05

Har bobga bitta kod

Siz dasturchisiz, demak eng kuchli xotira bu qo'l. Har bob uchun quyida 10 daqiqalik JavaScript yoki terminal topshirig'i bor. Kod ishlaganda tushuncha "qo'lga o'tadi".

4 haftalik reja

Har hafta 3–4 bob, kuniga 30–40 daqiqa. Har bobda: asosiy g'oya, esda qoladigan "ilgak", animatsiya va amaliy topshiriq.

1-hafta · Fizikadan xotiragacha

1–4 boblar
1BOB

Kompyuter nima?

Kompyuter aqlli emas: u to'rt harakatni (kiritish, saqlash, hisoblash, chiqarish) sekundiga milliardlab marta bajaradi. Aqli dasturda.

Ilgak: 1971-yildagi Intel 4004 da 2 300 tranzistor bor edi, Apple M3 Max da 92 milliard. 50 yilda 40 million barobar. Mur qonuni: har 2 yilda ikki barobar.

Topshiriq · 2300 * 2 ** ((2023-1971)/2) ni hisoblang. Mur qonuni bashorati 92 milliardga qanchalik yaqin chiqdi?

2BOB

Ma'lumot qanday ifodalanadi

Matn, rasm, tovush, kod: hammasi son, son esa bitlar. Kompyuter turini bilmaydi, talqinni dastur hal qiladi.

2-rasm · Ikkilik → o'nlik Bitlarni bosing
0–255 (1 bayt)
Ilgak: 8 bit = 1 bayt = 0..255. Shuning uchun rangning har kanali 0..255, va 1920×1080×3 ≈ 6.2 MB.

Topshiriq · Node'da: (181).toString(2), parseInt('10110101', 2), 'A'.charCodeAt(0), Buffer.from('Salom'). Chiqqan har bir sonni qo'lda tekshiring.

3BOB

Tranzistor

Butun kompyuter bitta g'oyaga qurilgan: signal bilan boshqariladigan kalit. Rele buni mexanik, MOSFET esa elektr maydoni bilan qiladi, sekundiga milliardlab marta.

6-rasm · MOSFET kaliti Gate signalini almashtiring
Kanal yo'q, tok oqmaydi, chiroq o'chiq
kremniy asos (substrat) Source Drain Gate signal (0/1) chiroq tok
Ilgak: Rele sekundiga ~100 marta, MOSFET milliardlab marta. O'lchami 3–5 nm, soch tolasi 80 000 nm. CMOS holat o'zgarmasa tok sarflamaydi, shu uchun telefon batareyasi kun bo'yi yetadi.

Topshiriq · Bir varaqqa rele va MOSFET'ni yonma-yon chizing, har biriga "kirish signali", "kalit", "chiqish zanjiri" deb yozing. Umumiy g'oya bitta ekanini ko'rasiz.

4BOB

Mantiqiy ventillar, yig'uvchi, flip-flop

Bir nechta kalit = ventil. XOR yig'indini, AND ko'chirishni beradi, demak ventillar qo'sha oladi. Chiqishni kirishga qaytarsangiz, sxema eslab qoladi.

7–8-rasmlar · Ventillar va yarim yig'uvchi A va B ni almashtiring
AND0
OR1
XOR1
NAND1
AB XOR AND S = 1C = 0 yig'indiko'chirish
10-rasm · D flip-flop D ni o'zgartiring, keyin takt bering
Q = 0   Q faqat takt kelganda D ni "suratga oladi"
Ilgak: Ikkita g'isht: yig'uvchi (hisoblaydi) va flip-flop (eslaydi). Qolgan hamma narsa shu ikkisidan. NAND universal: faqat NAND'dan butun kompyuter yasash mumkin.

Topshiriq · JS'da yarim yig'uvchini yozing: const ha = (a,b) => ({s: a ^ b, c: a & b}). Keyin to'liq yig'uvchi va 4 bitli yig'uvchini zanjir qilib, add4([1,0,1,1],[0,1,1,0]) ni sinang.

2-hafta · Protsessor ichida

5–8 boblar
5BOB

Fon Neyman arxitekturasi

Dastur va ma'lumot bitta xotirada. Bu universal mashinani beradi, lekin "tor bo'g'iz" ham: CPU tez, xotira sekin, yo'l bitta.

Ilgak: Beshta qism: ALU, CU, xotira, kirish, chiqish. Yodlash uchun: ALU hisoblaydi, CU buyuradi, xotira saqlaydi, klaviatura kiritadi, ekran chiqaradi.

Topshiriq · 12-rasmdagi 9 qatlamni (yuqoridagi animatsiya) xotiradan yozing va har biriga o'z loyihangizdan misol qo'ying (masalan, "OS = serverdagi Ubuntu").

6BOB

CPU: yadro, kesh, takt, ISA

Yadro = ALU + CU + registrlar + L1/L2. 4 GHz = bitta takt 0.25 ns, shu vaqtda yorug'lik 7.5 sm yuradi. 2005-dan beri chastota o'smadi, yadrolar ko'paydi.

Ilgak: Node.js bitta oqim, demak 8 yadroli serverda bitta nusxa faqat bitta yadroni ishlatadi. PM2 cluster yoki worker_threads kerak.

Topshiriq · Terminalda nproc (Linux) yoki os.cpus().length (Node) bilan yadro sonini ko'ring. lscpu chiqishida L1/L2/L3 kesh hajmlarini toping va 6.1-bo'limdagi raqamlar bilan solishtiring.

7BOB

Fetch · Decode · Execute

Protsessor yoqilgandan o'chirilguncha faqat bitta siklni aylantiradi. if bu CMP + shartli sakrash. Konveyer bir vaqtda 4 buyruqni turli bosqichda ushlaydi.

7.1-misol · Protsessorni qadamlab yuriting Har bosish = bitta bosqich
let a = 5; let b = 7;
let c = a + b;
if (c > 10) c = 10;
R1 (a)–
R2 (b)–
R3 (c)–
PC0
Flags–
[c] xotira–
Fetch
Decode
Execute
Store
PC = 0. "Qadam" tugmasini bosing.
15-rasm · Konveyer 4 buyruq, 4 bosqich
Konveyersiz 4 buyruq = 16 takt. Konveyer bilan = 7 takt.
Ilgak: O'zbekcha yodlash: Ol, Tushun, Bajar, Yoz. Bashorat xato bo'lsa 15–20 takt yo'qoladi, shuning uchun saralangan massiv tezroq ishlanadi.

Topshiriq · 10 million tasodifiy sondan iborat massivni saralab va saralamay if (x > 128) sum += x sikli bilan yig'ing, vaqtini console.time bilan o'lchang. Farq bashoratchining ishi.

8BOB

Xotira ierarxiyasi

Tez xotira kichik va qimmat, katta xotira sekin. Shuning uchun pog'ona: registr → kesh → RAM → SSD → HDD. Lokallik prinsipi ishlashini ta'minlaydi.

16-rasm · Agar registrga murojaat 1 soniya bo'lsa Logarifmik shkala
Ilgak: Registr 1 soniya, L1 kesh 3 soniya, RAM 4 daqiqa, SSD 3 kun, HDD 1 yil. Dastur tezligi ko'pincha chastotaga emas, xotirani qanday ishlatishga bog'liq.

Topshiriq · 4096×4096 massivni avval qator bo'yicha, keyin ustun bo'yicha yig'ing va vaqtni solishtiring. Fazoviy lokallik va 64 baytlik kesh satri farqni tushuntiradi.

3-hafta · Temir va tizim

9–11 boblar
9BOB

Ona plata, shinalar, quvvat

Uch shina: manzil (qayerga?), ma'lumot (nima?), boshqaruv (o'qi/yoz). PCIe yo'laklari, PSU 220 V ni 12/5/3.3 V ga aylantiradi, issiqlik chiqadi.

Ilgak: 32 bitli manzil shinasi 2³² = 4 GB. Shu uchun eski 32 bitli Windows 4 GB dan ko'p RAM'ni ko'rmasdi.

Topshiriq · 2 ** 32 / 1024 ** 3 va 2 ** 48 / 1024 ** 4 ni hisoblang. Zamonaviy x86-64 nega 48 bit manzil ishlatishini o'ylang.

10BOB

Kirish-chiqish va GPU

CPU: bir nechta professor. GPU: minglab boshlang'ich sinf o'quvchisi. AI o'qitish milliardlab oddiy ko'paytirish, shuning uchun GPU.

Ilgak: Uzilish (IRQ) + DMA: protsessor qurilmalarni so'rab yurmaydi, qurilma o'zi "e'tibor ber" deydi. Klaviatura sekundiga yuzlab marta matritsani skanerlaydi.

Topshiriq · Brauzerda addEventListener('keydown', e => console.log(e.code, e.key)) yozing. e.code skan-kodga, e.key OS o'girgan belgiga mos keladi (14-bob, 5-qadam).

11BOB

Operatsion tizim

OS uch ish qiladi: resurslarni taqsimlaydi, apparatni abstraksiya qiladi, dasturlarni himoya qiladi. Kernel mode va user mode, syscall, rejalashtiruvchi, virtual xotira, fayl tizimi.

24-rasm · Yuklanish zanjiri Quvvat tugmasidan ish stoligacha
Quvvat bloki barqaror kuchlanish beradiPSU → "Power Good" signali
UEFI/BIOS ishga tushadi, POST o'tkazadiRAM, videokarta, disklar tekshiriladi
Bootloader RAM'ga yuklanadiGRUB yoki Windows Boot Manager
Kernel (yadro) yuklanadidrayverlar, MMU, jarayonlar
Birinchi jarayon xizmatlarni ishga tushiradiLinux'da systemd
Grafik interfeys va login~5–30 soniya o'tdi
Ilgak: fs.readFile() oxir-oqibat Linux'ning open() va read() syscall'lariga aylanadi. await fetch() vaqtida jarayon "kutish" holatiga o'tadi, shu uchun bitta oqimli Node minglab foydalanuvchiga xizmat qiladi. Segmentation fault = MMU ruxsatsiz manzilni to'xtatdi.

Topshiriq · Serverda htop yoki top oching: jarayonlar, holatlari (R, S, D), RAM va swap. Keyin strace -c node bot.js bilan botingiz qaysi syscall'larni chaqirishini sanang.

4-hafta · Koddan botgacha

12–14 boblar + takrorlash
12BOB

Tildan mashina kodigacha

Kompilyator oldindan tarjima qiladi (C, Rust, Go). Interpretator satrma-satr (Python). V8 JIT "issiq" funksiyalarni ish vaqtida mashina kodiga aylantiradi. Stek va heap.

Ilgak: Funksiyaga goh son, goh satr bersangiz, JIT optimallashtirishni bekor qiladi. TypeScript turlari shu uchun ham foydali. Cheksiz rekursiya = stack overflow, unutilgan havola = xotira oqishi (heap).

Topshiriq · node --print-bytecode -e "function sq(x){return x*x}; sq(3)" ishlating va V8 baytkodini ko'ring. Keyin function f(){ f() } f() bilan stack overflow xatosini o'zingiz chaqiring.

13BOB

Tarmoq va internet

Paket bu konvert ichidagi konvert: har qatlam o'z sarlavhasini qo'shadi. DNS nomni IP ga o'giradi. TCP kafolatlaydi, UDP tez. HTTPS = HTTP + TLS.

31-rasm · Paketni o'rash Har qatlam o'z sarlavhasini qo'shadi
Ilova qatlami: "Salom!"
Ethernet · MAC
IP · 185.199.108.153
TCP · port 443
"Salom!"
Ilgak: Bot zanjiri: foydalanuvchi → Telegram serveri → webhook (HTTPS) → sizning server → bazа → Telegram API → foydalanuvchi. Hammasi 100–300 ms.

Topshiriq · dig api.telegram.org (DNS), ping api.telegram.org (kechikish), curl -v https://api.telegram.org (TLS qo'l berish va HTTP sarlavhalar). Har buyruq chiqishini bobdagi qatlamga bog'lang.

14BOB

Hammasi birgalikda

Bitta tugma bosilishi 8 bosqich va deyarli barcha qatlamlardan o'tadi, 10–30 ms ichida. Bu bobni kitobning "imtihoni" deb hisoblang.

32-rasm · 'A' tugmasi bosildi Tranzistordan ekrangacha
Klaviatura matritsasida ikki o'tkazgich tutashadi3-bob: kalit
Mikrokontroller skan-kod hosil qiladi: 0x0410-bob: matritsa skanerlash
USB kontroller CPU'ga uzilish yuboradi7.4: IRQ
CPU holatini saqlab, kernel ishlovchisiga o'tadi11.2: kernel mode
Drayver skan-kodni 'A' (U+0041) ga o'giradi2.3: Unicode
Telegram ilovasi xotiraga 65 (01000001) yozadi12.3: heap
GPU shriftdan piksellar chizib, kadr buferiga yozadi10.3: GPU
Monitor keyingi yangilanishda kadrni ko'rsatadi10.2: 1/60 soniya
Ilgak: Ushbu 8 qadamni yoddan ayta olsangiz, kitobni tushungansiz. Ayta olmagan qadamning bob raqami yonida yozilgan: o'sha bobga qayting.

Topshiriq · Xuddi shu uslubda o'z botingiz uchun zanjir yozing: "Foydalanuvchi /start bosdi" dan "javob ekranda" gacha, har qadamga bob raqamini qo'yib. Bu sizning yakuniy konspektingiz.

Flesh-kartalar: kitobning 22 savoli

Kartani bosib javobni ko'ring. Avval o'zingiz ovoz chiqarib javob bering, keyin tekshiring. 1–3–7–14–30 kun jadvali bilan qaytib turing.

Progress

Bobni "o'tdim" deb belgilang faqat uchta shart bajarilganda: rasmni xotiradan chizdingiz, ovoz chiqarib tushuntirdingiz, topshiriq kodi ishladi.

Darslik matni: mundarija. Manba: "Kompyuter qanday ishlaydi. Tranzistordan Telegram botgacha" (2026), boshlovchi dasturchilar uchun o'quv qo'llanma. Rasm va bo'lim raqamlari darslikdagi tartibda.