Как да си направим компютърна операционна система (със снимки)

Съдържание:

Как да си направим компютърна операционна система (със снимки)
Как да си направим компютърна операционна система (със снимки)

Видео: Как да си направим компютърна операционна система (със снимки)

Видео: Как да си направим компютърна операционна система (със снимки)
Видео: 15 горячих клавиш, о которых вы не догадываетесь 2024, Може
Anonim

Операционната система позволява на потребителя да взаимодейства с хардуера на компютъра. Системата се състои от стотици хиляди редове код. Обикновено операционната система е направена с помощта на езиците за програмиране на C#, C, C ++ и монтаж. Операционната система ви позволява да разглеждате компютъра си, докато запазвате и изпълнявате команди. Не мислете, че създаването на операционна система е лесно. За да го направите, са необходими много знания.

Стъпка

Направете компютърна операционна система Стъпка 1
Направете компютърна операционна система Стъпка 1

Стъпка 1. Първо научете за програмирането

Асемблерният език е много важен; силно се препоръчва да научите друг допълнителен език на високо ниво, като език C.

Направете компютърна операционна система Стъпка 2
Направете компютърна операционна система Стъпка 2

Стъпка 2. Решете какъв носител искате да използвате за зареждане на операционната система

Този носител може да бъде CD устройство, DVD устройство, флаш устройство, твърд диск, дискета или друг компютър.

Направете компютърна операционна система Стъпка 3
Направете компютърна операционна система Стъпка 3

Стъпка 3. Определете основната идея на SO

Например в Windows основната идея е лесен за използване графичен интерфейс и много сигурност.

Направете компютърна операционна система Стъпка 4
Направете компютърна операционна система Стъпка 4

Стъпка 4. Определете каква процесорна платформа ще поддържа вашата операционна система

IA-32, ARM и x86_64 са най-често срещаните платформи за персонални компютри. Така че, всички те са вашият най -добър избор.

Направете компютърна операционна система Стъпка 5
Направете компютърна операционна система Стъпка 5

Стъпка 5. Решете дали предпочитате да правите всичко сами от нулата или вече има налично ядро, на което бихте искали да надградите

Например, Linux от нулата е проект за хора, които искат да създадат свой собствен дистрибутор за Linux.

Направете операционна система за компютър Стъпка 6
Направете операционна система за компютър Стъпка 6

Стъпка 6. Решете дали ще използвате свой собствен буутлоудър или предварително изграден такъв като Grand Unified Bootloader (GRUB)

Самото кодиране на буутлоудъра ще изисква обширни познания за хардуера и BIOS. В резултат на това тази стъпка може да попречи на действителния график за програмиране на ядрото.

Направете компютърна операционна система Стъпка 7
Направете компютърна операционна система Стъпка 7

Стъпка 7. Решете какъв език за програмиране да използвате

Добре е да имате операционна система на език като Pascal или BASIC, но трябва да използвате C или Assembly. Сглобяването е много необходимо, тъй като някои важни части на операционната система го изискват. От друга страна, езикът C ++ съдържа ключови думи, които изискват други пълни SO за изпълнение.

За да компилирате операционна система от C или C ++ код, разбира се, ще използвате един или друг компилатор. Ето защо е добра идея да се консултирате с ръководството за потребителя/ръководството/документацията за компилатора на C/C ++ по ваш избор, независимо дали е включен в софтуера или е достъпен на уебсайта на дистрибутора. Трябва да знаете много сложни неща за компилатора, а за разработването на C ++ трябва да знаете за схемата за манипулиране на компилатора и неговия ABI. Очаква се да разберете различните изпълними формати (ELF, PE, COFF, основни двоични файлове и т.н.) и да разберете, че изключителният формат на Windows PE (.exe) е защитен с авторски права

Направете компютърна операционна система Стъпка 8
Направете компютърна операционна система Стъпка 8

Стъпка 8. Определете своя интерфейс за програмиране (API)

Един добър API, от който да избирате, е POSIX, тъй като е добре документиран. Всички Unix системи имат поне частична поддръжка за POSIX. Така че свързването на Unix програми към вашата ОС трябва да е лесно.

Направете компютърна операционна система Стъпка 9
Направете компютърна операционна система Стъпка 9

Стъпка 9. Вземете решение за вашия дизайн

Има такова нещо като монолитно ядро и микро ядро. Монолитните ядра изпълняват всички услуги в ядрото, докато микроядрата имат малки ядра, свързани с услугите за разгръщане на демон на потребителя. По принцип монолитните ядра са по -бързи, но микроядрата имат по -добра изолация на грешки и надеждност.

Направете компютърна операционна система Стъпка 10
Направете компютърна операционна система Стъпка 10

Стъпка 10. Помислете за развитие и работа в екип

По този начин отнема по -малко време за решаване на повече проблеми, което вероятно ще ускори изграждането на по -добра операционна система.

Направете операционна система за компютър Стъпка 11
Направете операционна система за компютър Стъпка 11

Стъпка 11. Не изтривайте твърдия диск напълно

Не забравяйте, че изтриването на устройство ще изтрие необратимо всички данни на него! Използвайте GRUB или друг мениджър за зареждане, за да стартирате двойно системата си с друга операционна система, докато операционната ви система стане напълно функционална.

Направете компютърна операционна система Стъпка 12
Направете компютърна операционна система Стъпка 12

Стъпка 12. Започнете от малък

Започнете с малки неща като показване на текст и пауза, преди да преминете към неща като управление на паметта и сложна работа. Уверете се също, че правите 32 -битовите и 64 -битовите версии.

Направете компютърна операционна система Стъпка 13
Направете компютърна операционна система Стъпка 13

Стъпка 13. Съхранявайте резервно копие на последния работещ изходен код

Тази стъпка е полезна като предпазна мярка в случай, че нещо се обърка с текущата версия на SO или разработка. Ако компютърът ви се срине и не стартира, добре е да имате второ копие, с което да работите, за да можете да отстраните проблема.

Направете компютърна операционна система Стъпка 14
Направете компютърна операционна система Стъпка 14

Стъпка 14. Помислете за тестване на новата си операционна система с виртуална машина

Вместо да рестартирате компютъра си всеки път, когато правите промени или след изпращане на файлове от вашия компютър за разработка към вашата тестова машина, можете да използвате приложение за виртуална машина, за да стартирате вашата операционна система, докато текущата ви операционна система работи. Настоящите приложения за виртуални машини включват: VMWare (който също предлага безплатен сървърен продукт), алтернативи с отворен код, Bochs, Microsoft Virtual PC (несъвместим с Linux) и Oracle VirtualBox.

Направете компютърна операционна система Стъпка 15
Направете компютърна операционна система Стъпка 15

Стъпка 15. Стартирайте „кандидат за освобождаване“или бета версия

Тази стъпка ще позволи на потребителя да ви уведоми за потенциални проблеми с вашата операционна система.

Направете компютърна операционна система Стъпка 16
Направете компютърна операционна система Стъпка 16

Стъпка 16. Операционната система също трябва да бъде лесна за употреба

Уверете се, че добавяте удобни за потребителя функции, направете ги неразделна част от вашия дизайн.

Съвети

  • Проверете за потенциални блокировки и други грешки. Грешки, задънена улица и други проблеми ще повлияят на вашия проект за изграждане на операционна система.
  • Уверете се, че прилагате функциите за защита като основен приоритет, ако искате системата да работи правилно.
  • Използвайте уебсайтове като OSDev и OSDever, за да ви помогнат да разработите своя собствена операционна система. Моля, имайте предвид, че за повечето цели общността на OSDev.org ще бъде повече от щастлива, ако използвате тяхната wiki и не се присъедините към форума. Ако решите да се присъедините към форум, има предварително условие: наистина трябва да знаете за C или C ++ и езика за сглобяване x86. Трябва също да разберете общи и сложни концепции за програмиране като свързани списъци, опашки и т.н. Общността на OSDev в своите разпоредби изрично заявява, че нейната общност не е създадена, за да подхранва нови програмисти.
  • Не се присъединявайте с форума OSDev.org и след това задайте очевидния въпрос. Ще бъдете помолени само да прочетете ръководството. Прочетете Wikipedia и инструкциите за оборудването, което искате да използвате.
  • Ако се опитвате да разработите операционна система, определено се считате за „бог“на програмирането.
  • Трябваше също да прочетете ръководството на процесора за архитектурата на процесора, която сте избрали; дали x86 (Intel), ARM, MIPS, PPC и т.н. Ръководства за архитектури на процесори са лесни за намиране с помощта на търсене с Google ("ръководство на Intel", "ръководство на ARM" и т.н.).
  • След като цялата работа по разработването приключи, решете дали искате да пуснете кода като отворен код или с авторски права.
  • Не започвайте проект на операционна система за започване на изучаване на програмиране. Ако не знаете отвътре и отвън за C, C ++, Pascal или друг подходящ език, включително манипулиране с показалец, манипулиране на битове на ниско ниво, изместване на битове, вградени езици за сглобяване и т.н., не сте готови за операционна система развитие.
  • Създаването на изцяло нов дял за „разширяване“на SO може да бъде добър вариант.
  • Ако искате лесен начин, помислете за дистрибуции на Linux като Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD или SUSE Studio и SUSE KIWI. Създадената от вас операционна система обаче принадлежи на компанията, която е стартирала услугата първа (въпреки че имате право свободно да я разпространявате, променяте и изпълнявате според желанието си под GPL).

Внимание

  • Няма да получите пълна операционна система в рамките на две седмици. Започнете с стартиращ SO, след това преминете към по -хладни неща.
  • Небрежното записване на вашата операционна система на твърд диск може напълно да я повреди. Бъди внимателен.
  • Ако направите нещо, което не се препоръчва, като например пишете произволни байтове на произволни I/O портове, ще сринете операционната си система и (на теория) може да изгори хардуера ви.
  • Не очаквайте, че операционната система е лесна за изграждане. Има много сложни взаимозависимости. Например, за да създадете операционна система, способна да обработва множество процесори, вашият Мениджър на паметта трябва да има механизъм за „заключване“, за да попречи на множество процесори да имат достъп до един и същ ресурс едновременно. Използваната за това „заключване“би изисквала планировчик, който да гарантира, че само един процесор има достъп до критични ресурси във всеки един момент, а всички останали трябва да изчакат. Всъщност планировчикът зависи от наличието на Мениджър на паметта. Това е пример за задънена улична зависимост. Няма стандартен начин за решаване на този вид проблеми; всеки програмист на операционна система се очаква да е достатъчно квалифициран, за да знае своя собствен начин за справяне с него.

Допълнителни ресурси

  • Указания: Linux от нулата
  • Буутлоудър: GRUB
  • Приложения за виртуални машини: Bochs, VM Ware, XM Virtual Box.
  • Ръководство на процесора: Ръководство на Intel
  • SO сайтове за разработка: OSDev, OSDever

Препоръчано: