Bu wikiHow sizga C yoki C ++ da kodlashni bilmasangiz, operatsion tizimni qanday rejalashtirish va rivojlantirishni o'rgatadi. Operatsion tizimlar kompyuter uskunalarini boshqaradi va ilovalar ishlashi uchun zarur bo'lgan resurslarni beradi. Operatsion tizimni noldan yozish uchun informatika, C yoki C ++ kabi dasturlash tili, yig'ish va kodni boshqarish amaliyoti talab qilinadi.
Qadamlar
2 -qismning 1 -qismi: asoslarni o'rganish
1 -qadam. Informatika bo'yicha asosiy kurslardan o'ting
Veb uchun ishlab chiqishdan farqli o'laroq, operatsion tizimni yaratish algoritmlar, ma'lumotlar tuzilmalari, kompyuter texnikasi va resurslarni boshqarishni yaxshi tushunishni talab qiladi. Odamlar bu borada ilmiy darajaga ega bo'lishadi, shuning uchun onlayn qo'llanmani o'qib bo'lgach, butun operatsion tizimni yozishni kutmang! Garvardning "Informatika faniga kirish" kursi EDX orqali onlayn tarzda bepul mavjud.
2-qadam. Python kabi yuqori darajali dasturlash tilini o'rganing
Agar siz informatika fanini yaxshi bilsangiz, keyingi qadam C va/yoki C ++ ni o'zlashtirishdir. Informatika fanini o'rganish singari, tilni o'zlashtirish ham ixtiyoriy emas-agar siz qattiq dasturlarni yozolmasangiz, operatsion tizimni kodlay olmaysiz.
Agar siz C uchun yangi bo'lsangiz, EDX orqali bepul bo'lgan Dartmutning C dasturlashi: Ishga kirishish kursini ko'rib chiqing. Ushbu kursni tugatganingizdan so'ng, siz keyingi kursni olishingiz mumkin: C dasturlash: til asoslari. Keyin, modulli dasturlash va xotirani boshqarish, ko'rsatgichlar va xotirani boshqarish kabi keyingi kurslarga o'ting
3 -qadam. Assambleya tilini o'rganing
Assambleya tillari-bu turli protsessorlar bilan muloqot qilish uchun mo'ljallangan past darajadagi tillar. Turli xil protsessor turlari uchun yig'ish boshqacha bo'lgani uchun (masalan, Intel, AMD, VIA va boshqa protsessorlar uchun x86 yig'ish tili), siz kodlaydigan protsessor turining versiyasini o'rganishingiz kerak bo'ladi.
- Bu ochiq manbali kitob, agar to'liq o'qilgan bo'lsa, sizga operatsion tizimni yaratish uchun etarlicha ishonchli tushuncha berishi mumkin.
- Assambleya tili san'ati-bu yig'ilish haqida juda tavsiya etilgan kitob, ham oflaynda, ham.
- Shuningdek, siz operatsion tizimingiz ishlashi kerak bo'lgan protsessor (lar) ning turini ko'p tadqiq qilishingiz kerak. Protsessor arxitekturasi bo'yicha qo'llanmalarni Google qidiruvi yordamida osongina topish mumkin ("Intel qo'llanmalari", "ARM qo'llanmalari" va boshqalar).
Qadam 4. Operatsion tizim bo'yicha qo'llanmani to'ldiring
Operatsion tizim bo'yicha qo'llanmalar sizga asosiy operatsion tizimni yaratishga yordam beradi. Bu sizni jarayonga ko'niktiradi va sizga etishmayotgan qismlar borligini aniqlashga yordam beradi. Bir yoki ikkita darsni tugatganingizdan so'ng, siz o'zingizning operatsion tizimingizni yaratishga kirishasiz.
- Yalang'och suyaklar-bu 32-bitli birinchi oddiy yadroni yozishga yordam beradigan qo'llanma. Qo'llanmani tugatgandan so'ng, keyingi qadam - Meaty Skeleton -dan foydalanib, o'z operatsion tizimingizni tuzish.
- Scratch -dan Linux - bu sizning shaxsiy Linux operatsion tizimingizni yaratishga yordam beradigan onlayn kitob.
- 0 dan 1 gacha bo'lgan operatsion tizimlar - bu boshidan oxirigacha turli xil operatsion tizimlarni yaratish haqida bepul kitob.
5 -qadam. Operatsion tizim maqsadlaringizni aniqlang
Operatsion tizimingiz nima qilishini xohlaysiz? Qanday ko'rinishi kerak? Siz haqiqatan ham butun operatsion tizimni yozishingiz kerakmi yoki shunchaki ish stoli uchun ma'lum bir ko'rinish yaratmoqchimisiz? Bularning barchasi kodlashni boshlashdan oldin ko'rib chiqilishi kerak bo'lgan narsalar.
- Boshqa dasturchilar jamoasi bilan rivojlanishni o'ylab ko'ring. Loyihada ishlab chiquvchilar guruhiga ega bo'lish ishlab chiqish vaqtini sezilarli darajada qisqartiradi.
- Loyihaning maqsadlari, rejalari va savollarini ombor omboriga qo'shing, shunda boshqalar sizga yordam berishi oson bo'ladi.
2 -qism 2: Operatsion tizimingizni yaratish
Qadam 1. Rivojlanish muhitini tanlang
Bu siz yangi operatsion tizimingizni kodlash uchun foydalanadigan platformadir. Bu shaxsiy xohish masalasidir, lekin ko'pchilik Windows yoki UNIX lazzatidan foydalanadi. Agar siz Windows -dan foydalanayotgan bo'lsangiz, Cygwin yoki MinGW kabi UNIX muhitini o'rnatgan ma'qul. Umuman olganda, siz foydalanadigan muhitda quyidagilar mavjudligiga ishonch hosil qilishni xohlaysiz.
- GCC (Gnu kompilyatori). Agar siz Windows -dan foydalanayotgan bo'lsangiz, uni Cygwin yoki MinGW -ga o'rnatishingiz mumkin.
- Binutils - bu ob'ektlar fayllarini boshqarish uchun ishlatiladigan vositalar to'plami. Shunga qaramay, agar siz Windows -dan foydalanayotgan bo'lsangiz, uni Cygwin -ga o'rnatishingiz mumkin.
- Yaxshi matn muharriri. Vim va emaclar odatda UNIX muhitida ishlatiladi. Windows foydalanuvchilari Notepad-dan foydalanishlari yoki Notepad ++ ni ko'p tabli yangilanish uchun tekshirishlari mumkin.
- Perl va/yoki Python. Tarmoqli manipulyatsiya uchun bitta yoki ikkalasi tavsiya etiladi.
Qadam 2. Sizning versiya boshqaruv tizimini o'rnating
Operatsion tizimni yozish, ehtimol siz yuzlab (yoki minglab!) Kod satrlarini yaratasiz. Siz tuzatishlar ustida ishlayotganingizda, bu chalkashlikka olib kelishi mumkin. Tekshirishning ba'zi variantlari CVS, Mercurial va Subversion.
Qadam 3. Bootloader haqida qaror qabul qiling
Agar siz o'zingiz yaratishni xohlamasangiz, Grand Unified Bootloader (GRUB) kabi mavjudidan foydalanishingiz mumkin. Agar siz bootloader -ni kodlashga jur'at qilsangiz, OSDev.org saytida Rolling Your Own Bootloader -ni ko'rib chiqing.
Qadam 4. Yadro dizaynini tanlang
Kernel sizning operatsion tizimingizning yadrosi bo'lib, foydalanuvchi va kompyuter uskunalari o'rtasida interfeysni ta'minlaydi. Monolitik yadrolar va mikro yadrolar mavjud. Monolitik yadrolar yadrodagi barcha xizmatlarni amalga oshiradi, mikrokernellarda esa xizmatlarni bajaruvchi foydalanuvchi demonlari bilan birlashtirilgan kichik yadro mavjud. Umuman olganda, monolit yadrolar tezroq ishlaydi, lekin mikro yadrolar xato izolatsiyasi va ishonchliligiga ega.
Qadam 5. Kichikdan boshlang
Xotirani boshqarish va ko'p vazifalarni bajarishdan oldin matnni ko'rsatish va uzilishlar kabi kichik narsalardan boshlang. Siz katta sakrash o'rniga, oddiy 16-bitli operatsion tizimni yaratishga urinib ko'rishingiz mumkin.
Ikki hafta ichida sizda to'liq tizim bo'lmaydi. OTni ishga tushirishni boshlang, so'ngra ajoyib narsalarga o'ting
Qadam 6. Yangi operatsion tizimingizni virtual mashina yordamida sinab ko'ring
Har safar o'zgartirishlar kiritilganda yoki fayllarni ishlab chiquvchi kompyuterdan sinov mashinasiga o'tkazishda kompyuterni qayta ishga tushirish o'rniga, virtual mashina dasturidan foydalaning. VMWare - bu Windows va Linux bilan ishlaydigan umumiy variant, shuningdek Bochs. Mumkin bo'lgan qulflar va boshqa xatolarni tekshiring va kerak bo'lganda ularni tuzating.
Qadam 7. "ozodlikka nomzod" ni chiqaring
Buni sinovdan o'tgan kodni omborxonangizga yuklash orqali qilishingiz mumkin. Bu odamlarga operatsion tizimingizni sinab ko'rish va ular duch kelgan muammolar haqida hisobot berish imkonini beradi.
Qadam 8. Boshqa operatsion tizim ishlab chiquvchilari bilan tarmoq
Operatsion tizimni ishlab chiquvchilarning turli jamoalari turli forumlarda yig'ilishadi, shu jumladan Reddit va Software Engineering Stack Exchange -da /r /osdev. Siz asosiy operatsion tizimni ishlab chiqishni tushungan bo'lsangiz, ishlab chiqish jarayonida qanday narsalar paydo bo'lishini bilish uchun mavjud xabarlarni o'qing.
Video - bu xizmatdan foydalanib, ba'zi ma'lumotlar YouTube bilan bo'lishishi mumkin
Maslahatlar
- Agar siz tizimingiz hayotiy bo'lishini xohlasangiz, xavfsizlik xususiyatlarini birinchi o'ringa qo'ying.
- Rivojlanish tugagandan so'ng, kodni ochiq manba yoki xususiy mulk sifatida chiqarishni xohlaysizmi, hal qiling.
- Operatsion tizim bir nechta protsessorlarga ega bo'lishi uchun, xotira menejerida bir vaqtning o'zida bir nechta protsessorlarning bitta resursga kirishiga yo'l qo'ymaslik uchun "qulflash" mexanizmlari bo'lishi kerak. Buning uchun ishlatiladigan "qulflar" har qanday vaqtda faqat bitta protsessor muhim manbaga kirishiga ishonch hosil qilish uchun rejalashtiruvchining ishtirokini talab qiladi. Ammo rejalashtiruvchi xotira menejerining mavjudligiga bog'liq. Bu o'lik qaramlik holatidir. Bu kabi muammolarni hal qilishning standart usuli yo'q; dasturchi sifatida, siz u bilan qanday kurashish usulini aniqlay oladigan mahoratga ega bo'lishingiz kutiladi.
- Operatsion tizim ham foydalanuvchilar uchun qulay bo'lishi mumkin. Dizayningizning ajralmas qismiga aylanib, foydalanuvchilarga qulay xususiyatlarni qo'shganingizga ishonch hosil qiling.
- Qo'shilmang OSDev.org forumlarini oching va aniq savollar berishni boshlang. Bu shunchaki natijaga olib keladi "Qo'llanmani o'qing" javoblar. Siz Vikipediyani va siz foydalanmoqchi bo'lgan har xil asboblar uchun qo'llanmalarni o'qishga harakat qilishingiz kerak.
- Boshlamang dasturlashni o'rganishni boshlash uchun operatsion tizim loyihasi. Agar siz C, C ++, Pascal yoki boshqa mos tilni bilmasangiz, shu jumladan ko'rsatgichlar bilan ishlash, past darajali bitlarni boshqarish, bitlarni almashtirish, ichki yig'ish tili va h.k., siz operatsion tizimni ishlab chiqishga tayyor emassiz..
- Agar siz tasodifiy kirish-chiqish portlariga tasodifiy bayt yozish kabi noto'g'ri ish qilsangiz, siz operatsion tizimingizni buzasiz va (nazariy jihatdan) uskunangizni qovurishingiz mumkin.