Օպերացիոն համակարգը թույլ է տալիս օգտագործողին փոխազդել համակարգչային սարքավորումների հետ: Համակարգը բաղկացած է հարյուր հազարավոր կոդերի տողերից: Սովորաբար օպերացիոն համակարգը պատրաստված է C#, C, C ++ և հավաքման ծրագրավորման լեզուների միջոցով: Օպերացիոն համակարգը թույլ է տալիս թերթել ձեր համակարգիչը ՝ պահպանելով և կատարելով հրամաններ: Մի կարծեք, որ օպերացիոն համակարգ ստեղծելը հեշտ է: Դրա պատրաստման համար անհրաժեշտ է շատ գիտելիքներ:
Քայլ
Քայլ 1. Առաջին հերթին սովորեք ծրագրավորման մասին:
Հավաքման լեզուն շատ կարևոր է. խորհուրդ է տրվում սովորել մեկ այլ լրացուցիչ բարձր մակարդակի լեզու, ինչպիսին է C լեզուն:
Քայլ 2. Որոշեք, թե ինչ մեդիա եք ցանկանում օգտագործել OS- ի բեռնման համար:
Այս մեդիան կարող է լինել CD սկավառակ, DVD սկավառակ, ֆլեշ կրիչ, կոշտ սկավառակ, անգործունյա սկավառակ կամ այլ համակարգիչ:
Քայլ 3. Սահմանեք SO- ի հիմնական գաղափարը:
Օրինակ, Windows- ում հիմնական գաղափարը հեշտ օգտագործման GUI- ն է և շատ անվտանգություն:
Քայլ 4. Որոշեք, թե որ պրոցեսորային հարթակն է աջակցելու ձեր օպերացիոն համակարգը:
IA-32, ARM և x86_64 անհատական համակարգիչների ամենատարածված հարթակներն են: Այսպիսով, դրանք բոլորը ձեր լավագույն ընտրությունն են:
Քայլ 5. Որոշեք, արդյոք նախընտրում եք ամեն ինչ ինքներդ անել զրոյից, թե՞ արդեն կա միջուկ, որի վրա կցանկանայիք կառուցել:
Օրինակ ՝ Linux- ը զրոյից նախագիծ է այն մարդկանց համար, ովքեր ցանկանում են կառուցել իրենց Linux- ի դիստրոյը:
Քայլ 6. Որոշեք ՝ օգտագործելու եք ձեր սեփական բեռնախցիկը, թե՞ նախապես կառուցվածը, ինչպիսին է Grand Unified Bootloader- ը (GRUB):
Բեռնիչն ինքնուրույն կոդավորելու համար կպահանջվի ապարատային և BIOS- ի լայն իմացություն: Արդյունքում, այս քայլը կարող է խոչընդոտել միջուկի ծրագրավորման իրական ժամանակացույցին:
Քայլ 7. Որոշեք, թե ինչ ծրագրավորման լեզու օգտագործել:
Լավ է ունենալ օպերացիոն համակարգ այնպիսի լեզվով, ինչպիսին է Pascal- ը կամ BASIC- ը, բայց դուք պետք է օգտագործեք C կամ Assembly: Հավաքումը շատ անհրաժեշտ է, քանի որ դա պահանջում է օպերացիոն համակարգի որոշ կարևոր մասեր: Մյուս կողմից, C ++ լեզուն պարունակում է հիմնաբառեր, որոնք աշխատելու համար պահանջում են այլ ամբողջական SO:
C կամ C ++ ծածկագրից օպերացիոն համակարգ կազմելու համար, իհարկե, դուք կօգտագործեք այս կամ այն կոմպիլյատորը: Հետևաբար, լավ գաղափար է խորհրդակցել ձեր ընտրած C/C ++ կոմպիլյատորի օգտվողի ուղեցույցի/ձեռնարկի/փաստաթղթերի հետ ՝ անկախ ծրագրակազմից կամ հասանելի դիստրիբյուտորի կայքում: Դուք պետք է շատ բարդ բաներ իմանաք կոմպիլյատորի մասին, իսկ C ++ - ի զարգացման համար `պետք է իմանաք կազմողի կազմալուծման սխեմայի և դրա ABI- ի մասին: Ձեզանից ակնկալվում է հասկանալ գործարկվող տարբեր ձևաչափեր (ELF, PE, COFF, հիմնական երկուականություն և այլն) և հասկանալ, որ բացառիկ Windows ձևաչափը ՝ PE (.exe), պաշտպանված է հեղինակային իրավունքով:
Քայլ 8. Սահմանեք ձեր ծրագրավորման ծրագրավորման միջերեսը (API):
Ընտրելու մեկ լավ API- ն POSIX- ն է, քանի որ այն լավ փաստաթղթավորված է: Բոլոր Unix համակարգերն ունեն առնվազն մասնակի աջակցություն POSIX- ի համար: Այսպիսով, Unix ծրագրերը ձեր ՕՀ -ին միացնելը պետք է հեշտ լինի:
Քայլ 9. Որոշեք ձեր դիզայնի վերաբերյալ:
Կա այնպիսի բան, ինչպիսին է մոնոլիտ միջուկը և միկրո միջուկը: Մոնոլիտ միջուկներն իրականացնում են միջուկի բոլոր ծառայությունները, մինչդեռ միկրո միջուկներում կան փոքր միջուկներ, որոնք համախմբված են օգտվողի դևերի տեղադրման ծառայություններով: Ընդհանուր առմամբ, մոնոլիտ միջուկներն ավելի արագ են, բայց միկրոմիջուկներն ունեն ավելի լավ անսարքության մեկուսացում և հուսալիություն:
Քայլ 10. Մտածեք թիմում զարգանալու և աշխատելու մասին:
Այդ կերպ ավելի քիչ ժամանակ է պահանջվում ավելի շատ խնդիրներ լուծելու համար, ինչը, հավանաբար, կարագացնի ավելի լավ ՕՀ -ի կառուցումը:
Քայլ 11. Մի մաքրեք ձեր կոշտ սկավառակը ամբողջությամբ:
Հիշեք, որ սկավառակը ջնջելը անդառնալիորեն կջնջի դրա վրա եղած բոլոր տվյալները: Օգտագործեք GRUB- ը կամ մեկ այլ բեռնման մենեջեր ՝ ձեր համակարգը մեկ այլ ՕՀ -ով կրկնակի գործարկելու համար, մինչև ձեր ՕՀ -ն լիովին գործի:
Քայլ 12. Սկսեք փոքրից:
Սկսեք փոքր բաներից, ինչպիսիք են տեքստի ցուցադրումը և դադար, նախքան հիշողության կառավարման և բարդ աշխատանքի անցնելը: Նաև համոզվեք, որ պատրաստում եք 32 բիթ և 64 բիթ տարբերակները:
Քայլ 13. Պահեք վերջին աշխատանքային աղբյուրի կրկնօրինակը:
Այս քայլը օգտակար է որպես երաշխիք, եթե ինչ -որ բան սխալ է ընթանում SO- ի ներկայիս տարբերակի կամ զարգացման հետ: Եթե ձեր համակարգիչը խափանվում է և չի բեռնվում, լավ գաղափար է, որ աշխատեք երկրորդ պատճենով, որպեսզի կարողանաք լուծել խնդիրը:
Քայլ 14. Մտածեք ձեր նոր օպերացիոն համակարգի փորձարկման մասին վիրտուալ մեքենայի միջոցով:
Ձեր համակարգիչը վերագործարկելու փոխարեն ամեն անգամ, երբ փոփոխություններ եք կատարում կամ ձեր զարգացման համակարգչից ձեր փորձարկման մեքենա ֆայլեր ուղարկելուց հետո, կարող եք օգտագործել վիրտուալ մեքենայի ծրագիր `ձեր OS- ն գործարկելու համար, երբ ձեր ընթացիկ OS- ն աշխատում է: Ներկայիս VM ծրագրերը ներառում են ՝ VMWare (որն ունի նաև անվճար սերվերային արտադրանք), բաց կոդով այլընտրանքներ, Bochs, Microsoft Virtual PC (Linux- ի հետ համատեղելի չէ) և Oracle VirtualBox:
Քայլ 15. Գործարկեք «ազատման թեկնածու» կամ Բետա տարբերակը:
Այս քայլը թույլ կտա օգտվողին տեղեկացնել ձեզ ձեր օպերացիոն համակարգի հնարավոր խնդիրների մասին:
Քայլ 16. Օպերացիոն համակարգը նույնպես պետք է օգտագործողի համար հարմար լինի:
Համոզվեք, որ ավելացնում եք օգտագործողի համար հարմար հատկություններ, դրանք դարձեք ձեր դիզայնի անբաժանելի մասը:
Խորհուրդներ
- Ստուգեք հնարավոր փակուղիները և այլ սխալներ: Սխալները, փակուղիները և այլ խնդիրներ կազդի ձեր օպերացիոն համակարգի կառուցման նախագծի վրա:
- Համոզվեք, որ անվտանգության գործառույթները կիրառում եք որպես առաջնահերթություն, եթե ցանկանում եք, որ համակարգը ճիշտ աշխատի:
- Օգտագործեք կայքեր, ինչպիսիք են OSDev- ը և OSDever- ը, որոնք կօգնեն ձեզ զարգացնել ձեր սեփական օպերացիոն համակարգը: Խնդրում ենք նկատի ունենալ, որ շատ նպատակների համար OSDev.org համայնքն ավելի քան ուրախ կլինի, եթե դուք օգտագործեք նրանց վիքիը և չմիանաք ֆորումին: Եթե որոշեք միանալ ֆորումին, կա մի նախապայման. Դուք իսկապես պետք է իմանաք C կամ C ++ - ի և հավաքման x86 լեզվի մասին: Դուք նաև պետք է հասկանաք ծրագրավորման ընդհանուր և բարդ հասկացություններ, ինչպիսիք են կապված ցուցակները, հերթերը և այլն: OSDev համայնքն իր կանոնակարգերում հստակորեն նշում է, որ իր համայնքը ստեղծված չէ նոր ծրագրավորողներ սնուցելու համար:
- Մի միացեք OSDev.org ֆորումի հետ և այնուհետև տվեք ակնհայտ հարցը: Ձեզանից կպահանջվի կարդալ ուղեցույցը: Կարդացեք Վիքիպեդիան և այն սարքավորումների ցուցումները, որոնք ցանկանում եք օգտագործել:
- Եթե փորձում եք զարգացնել օպերացիոն համակարգ, ապա հաստատ ձեզ համարում են ծրագրավորման «աստված»:
- Դուք նաև պետք է կարդացած լինեիք ձեր ընտրած պրոցեսորների ճարտարապետության ձեռնարկը: արդյոք x86 (Intel), ARM, MIPS, PPC և այլն: Պրոցեսորային ճարտարապետության ձեռնարկները հեշտ է գտնել Google- ի որոնման միջոցով («Intel ձեռնարկ», «ARM ձեռնարկ» և այլն):
- Developmentարգացման բոլոր աշխատանքներն ավարտվելուց հետո որոշեք ՝ ցանկանում եք ծածկագիրը բաց կոդ թողնել, թե հեղինակային իրավունքով:
- Մի սկսիր օպերացիոն համակարգի նախագիծ ՝ ծրագրավորում սովորելու համար: Եթե ներսից և դրսից չգիտեք C, C ++, Pascal կամ որևէ այլ համապատասխան լեզու, ներառյալ ցուցիչների մանիպուլյացիա, ցածր մակարդակի բիթերի մանիպուլյացիա, բիթերի փոխում, ներկառուցված հավաքման լեզուներ և այլն, ապա պատրաստ չեք օպերացիոն համակարգի համար: զարգացում.
- SO- ի «ընդլայնման» համար բոլորովին նոր բաժին ստեղծելը կարող է լավ տարբերակ լինել:
- Եթե ցանկանում եք հեշտ ճանապարհ, հաշվի առեք Linux- ի տարածումները, ինչպիսիք են Fedora Revisor- ը, Custom Nimble X- ը, Puppy Remaster- ը, PCLinuxOS Mk LiveCD- ը կամ SUSE Studio- ն և SUSE KIWI- ն: Այնուամենայնիվ, ձեր ստեղծած օպերացիոն համակարգը պատկանում է ծառայությունն առաջինը սկսած ընկերությանը (չնայած դուք իրավունք ունեք այն ազատորեն տարածել, փոփոխել և գործարկել այնպես, ինչպես ցանկանում եք GPL- ի ներքո):
Գուշացում
- Երկու շաբաթվա ընթացքում դուք չեք ստանա ամբողջական օպերացիոն համակարգ: Սկսեք bootable SO- ով, ապա անցեք ավելի սառը իրերի:
- Ձեր օպերացիոն համակարգը կոշտ սկավառակի վրա անզգուշորեն գրելը կարող է ամբողջությամբ վնասել այն: Զգույշ եղիր.
- Եթե դուք անեք ինչ -որ բան, որը խորհուրդ չի տրվում, օրինակ ՝ պատահական բայթեր գրել պատահական մուտքի/ելքի նավահանգիստների վրա, դուք կփլուզեք ձեր ՕՀ -ն, և (տեսականորեն) կարող է այրվել ձեր սարքավորումները:
- Մի ակնկալեք, որ օպերացիոն համակարգը հեշտ է կառուցել: Կան բազմաթիվ բարդ փոխկախվածություններ: Օրինակ ՝ մի քանի պրոցեսորներ վարելու ունակ օպերացիոն համակարգ ստեղծելու համար ձեր Հիշողության կառավարիչը պետք է ունենա «կողպման» մեխանիզմ, որը թույլ չի տա մի քանի պրոցեսորներ միաժամանակ մուտք գործել նույն ռեսուրս: Դրա համար օգտագործվող «կողպեքը» կպահանջի ժամանակացույցից ՝ ապահովելու համար, որ միայն մեկ պրոցեսոր կարող է ցանկացած պահի մուտք գործել կրիտիկական ռեսուրսներ, իսկ մնացած բոլորը պետք է սպասեն: Փաստորեն, ժամանակացույցը կախված է Հիշողության կառավարչի առկայությունից: Սա փակուղուց կախվածության օրինակ է: Չկա այս կարգի խնդրի լուծման ստանդարտ միջոց; Յուրաքանչյուր օպերացիոն համակարգի ծրագրավորողից ակնկալվում է, որ բավականաչափ հմուտ կլինի `իմանալու դրա հետ վարվելու սեփական եղանակը:
Լրացուցիչ ռեսուրսներ
- Ուղեցույցներ. Linux From Scratch
- Բեռնիչ ՝ GRUB
- Վիրտուալ մեքենայի ծրագրեր. Bochs, VM Ware, XM Virtual Box:
- Պրոցեսորի ձեռնարկ ՝ Intel ձեռնարկ
- SO զարգացման կայքեր ՝ OSDev, OSDever