1-bo‘lim
Operatsion tizim nima?
OT nima uchun kerak, u qanday vazifalarni bajaradi, qanday turlari bor va zamonaviy tizimlar qanday paydo bo'lgan.
Ushbu bo‘lim mundarijasi
Kompyuteringizni yoqqaningizda, hech qanday dastur ishlamasidan oldin operatsion tizim ishga tushadi. U hamma narsani boshqaradi.
OT nima qiladi? #
Uchta asosiy vazifa #
1. Resurslarni taqsimlash #
Kompyuterda bitta protsessor, cheklangan xotira va bitta disk bor. Lekin o'nlab dastur bir vaqtda ishlaydi. Kim qachon ishlaydi, qaysi dasturga qancha xotira beriladi - buni OT hal qiladi.
2. Himoya va ajratish #
Brauzeringiz matn muharriringizning xotirasini o'qiy olmaydi. Bir dastur qulasa, boshqalari ishlashda davom etadi. Bu ajratishni OT ta'minlaydi.
3. Murakkablikni yashirish #
Diskka yozish uchun sektorlar, boshlar va aylanish tezligini bilish shart
emas. Siz shunchaki fopen va fprintf yozasiz - qolganini OT qiladi.
FILE *f = fopen("salom.txt", "w");
fprintf(f, "Salom\n");
fclose(f);
Bu uch qator ortida yuzlab amal turadi: disk drayveri, kesh, fayl tizimi, huquqlarni tekshirish, xotira ajratish.
Mikrokontrollerda (masalan Arduino'da) OT yo'q. U yerda:
- bir vaqtda faqat bitta dastur ishlaydi;
- xotirani o'zingiz taqsimlaysiz;
- har bir qurilma bilan to'g'ridan-to'g'ri ishlaysiz;
- xato qilsangiz - butun tizim qotadi.
OT aynan shu muammolarni hal qilish uchun paydo bo'lgan.
Qisqacha tarix #
1991-yilda Finlandiyalik talaba Linus Torvalds o'z kompyuteri uchun kichik yadro yozdi va uni internetga qo'ydi. U shunday yozgan edi: «Bu shunchaki qiziqish - katta va professional narsa emas».
Bugun Linux yadrosi dunyodagi serverlarning aksariyatida, barcha Android telefonlarida, superkompyuterlarda va kosmik apparatlarda ishlaydi.
Yadro (kernel) nima? #
Yadro - operatsion tizimning markaziy qismi. U doim xotirada turadi va eng muhim vazifalarni bajaradi.
| Yadro bajaradi | Yadro bajarmaydi |
|---|---|
| Jarayonlarni boshqarish | Grafik interfeys |
| Xotira taqsimlash | Brauzer |
| Fayl tizimi | Matn muharriri |
| Tarmoq protokollari | Kalkulyator |
| Qurilma drayverlari | Terminal dasturi |
uname -a
Linux softromeda 6.8.0-51-generic #52-Ubuntu SMP x86_64 GNU/Linux
Bu buyruq yadro versiyasini ko'rsatadi. Ubuntu, Debian, Fedora - bular distributivlar, ularning hammasida bir xil Linux yadrosi ishlaydi.
Yadro turlari #
Zamonaviy OT lar #
| OT | Yadro | Qayerda ishlatiladi |
|---|---|---|
| Linux | Monolit | Serverlar, Android, superkompyuterlar |
| Windows | Gibrid | Shaxsiy kompyuterlar, o'yin |
| macOS | Gibrid (XNU) | Apple kompyuterlari |
| Android | Linux yadrosi | Telefon, planshet |
| iOS | XNU (Darwin) | iPhone, iPad |
| FreeBSD | Monolit | Serverlar, Netflix, PlayStation |
| QNX | Mikroyadro | Avtomobil, tibbiy uskuna |
OT turlari #
| Tur | Xususiyati | Misol |
|---|---|---|
| Umumiy maqsadli | Har xil ishga mos | Linux, Windows |
| Real vaqt (RTOS) | Javob vaqti kafolatlangan | QNX, FreeRTOS |
| O'rnatilgan | Kichik, maxsus qurilma uchun | Zephyr |
| Taqsimlangan | Ko'p kompyuter bitta tizim kabi | Plan 9 |
Real vaqt tizimida eng muhimi tezlik emas, oldindan aytish mumkinligi. Avtomobil havo yostig'i 30 millisekundda ochilishi kerak - har safar, kafolat bilan. Oddiy Linux buni kafolatlay olmaydi.
Nimalarni ko'ramiz? #
| Bo'limlar | Mavzu |
|---|---|
| 1-2 | Asoslar: OT nima, yadro va foydalanuvchi rejimi |
| 3-5 | Jarayonlar va oqimlar |
| 6-8 | Rejalashtirish, sinxronizatsiya, deadlock |
| 9-11 | Xotira boshqaruvi va virtual xotira |
| 12-14 | Fayl tizimi va kiritish-chiqarish |
| 15-16 | Jarayonlararo aloqa va signallar |
| 17-19 | Huquqlar, yuklanish, konteynerlar |
| 20 | Amaliy loyiha - o'z qobig'ingiz |
Bu darslikdagi misollar Linux uchun yozilgan. Agar Windows'da bo'lsangiz, uch yo'l bor:
- WSL2 - Windows ichida haqiqiy Linux (eng oson yo'l):
wsl --install
- Virtual mashina - VirtualBox yoki VMware'da Ubuntu.
- Ikki tizim - kompyuterga Linux'ni alohida o'rnatish.
macOS ham UNIX oilasidan, shuning uchun misollarning ko'pchiligi u yerda ham ishlaydi.
Birinchi kuzatuv #
Hozir kompyuteringizda nechta jarayon ishlayotganini ko'ring:
ps aux | wc -l
312
Va ular qancha xotira ishlatayotganini:
free -h
total used free shared buff/cache
Mem: 15Gi 4.2Gi 6.8Gi 412Mi 4.5Gi
Swap: 2.0Gi 0B 2.0Gi
Bu raqamlar sizda boshqacha bo'ladi. Darslik davomida ularning har biri nimani anglatishini bilib olasiz.
- WSL, virtual mashina yoki haqiqiy Linux o'rnating.
uname -abilan yadro versiyasini bilib oling.ps aux | wc -lbilan jarayonlar sonini sanang.free -hbilan xotira holatini ko'ring.df -hbilan disk holatini ko'ring.lscpubilan protsessor haqida ma'lumot oling.- Linus Torvalds va UNIX tarixi haqida o'qing.
- Monolit va mikroyadro farqini bir abzatsda yozing.
- Telefoningizda qaysi OT ishlashini va uning yadrosini aniqlang.
- Real vaqt tizimi qayerda kerakligiga uchta misol keltiring.
Xulosa #
- Operatsion tizim - dasturlar bilan temir orasidagi vositachi.
- Uch asosiy vazifasi: resurslarni taqsimlash, himoya qilish, murakkablikni yashirish.
- Yadro - OT ning markaziy qismi, u doim xotirada turadi.
- Monolit yadro tez, mikroyadro barqaror; ko'p tizimlar aralash yondashuvni tanlaydi.
- Linux, Android, macOS va iOS - hammasi UNIX g'oyalari ustiga qurilgan.
- Real vaqt tizimida eng muhimi tezlik emas, kafolatlangan javob vaqti.
- Bu darslik uchun Linux kerak - WSL2 eng oson yo'l.
Keyingi bo'limda yadro va foydalanuvchi rejimi farqini ko'ramiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.