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

Съдържание:

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

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

Видео: Как да направите компютърна операционна система: 13 стъпки (със снимки)
Видео: 03.PHP за начинаещи - Инсталация на софтуера под Ubuntu Linux (Иван Ванков - gatakka)-00.16.19h 2024, Април
Anonim

Това wikiHow ви учи как да планирате и разработите операционна система, ако не знаете как да кодирате в C или C ++. Операционните системи управляват хардуера на компютъра и осигуряват ресурсите, необходими на приложенията за изпълнение. Писането на операционна система от нулата изисква силно владеене на компютърни науки, език за програмиране като C или C ++, практики за сглобяване и управление на код.

Стъпки

Част 1 от 2: Изучаване на основите

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

Стъпка 1. Вземете някои основни курсове по компютърни науки

За разлика от разработването за уеб, създаването на операционна система изисква силно разбиране на алгоритми, структури от данни, компютърен хардуер и управление на ресурси. Хората получават дипломи по тези неща, така че не очаквайте да напишете цяла операционна система, след като прочетете онлайн урок! Курсът „Въведение в компютърните науки“на Харвард е достъпен онлайн чрез EDX безплатно.

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

Стъпка 2. Научете език за програмиране на високо ниво като Python

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

Ако сте съвсем нов в C, вижте курса по програмиране на C в Дартмут: Първи стъпки, който е безплатен чрез EDX. След като завършите този курс, можете да вземете следващия курс от поредицата: C Програмиране: Основи на езика. След това преминете към следващите курсове като модулно програмиране и управление на паметта и указатели и управление на паметта

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

Стъпка 3. Научете асемблерен език

Асемблерните езици са езици на ниско ниво, предназначени за комуникация с различни процесори. Тъй като сглобяването е различно за различните типове процесори (например x86 език за сглобяване за Intel, AMD, VIA и други процесори), ще трябва да научите версията за типа процесор, за който кодирате.

  • Тази книга с отворен код, ако бъде прочетена изцяло, може да ви даде достатъчно солидно разбиране за изграждането на операционна система.
  • Изкуството на езика за сглобяване е силно препоръчителна книга за сглобяването, достъпна както в, така и офлайн.
  • Трябва също така да направите много изследвания за типа процесор (и), на който трябва да работи вашата операционна система. Ръководствата за архитектура на процесора могат лесно да бъдат намерени с помощта на търсене с Google ("Ръководства на Intel", "Ръководства за ARM" и т.н.).
Направете компютърна операционна система Стъпка 5
Направете компютърна операционна система Стъпка 5

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

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

  • Bare Bones е урок, който ви помага да напишете първото си просто 32-битово ядро. След като завършите урока, следващата стъпка е да използвате Meaty Skeleton за структуриране на вашата собствена операционна система.
  • Linux от Scratch е онлайн книга, която ви превежда през създаването на собствена операционна система Linux.
  • Операционни системи от 0 до 1 е безплатна книга за създаване на различни операционни системи от началото до края.
Направете компютърна операционна система Стъпка 3
Направете компютърна операционна система Стъпка 3

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

Какво искате да прави вашата операционна система? Как трябва да изглежда? Наистина ли трябва да напишете цяла операционна система или просто искате да създадете определен вид за вашия работен плот? Това са всички неща, които трябва да имате предвид, преди да започнете да кодирате.

  • Помислете за развитие с екип от други програмисти. Наличието на екип от разработчици, работещи по проекта, ще намали значително времето за разработка.
  • Добавете вашите цели, планове и въпроси по проекта към публичното си хранилище, за да е лесно другите да ви помогнат.

Част 2 от 2: Изграждане на вашата операционна система

Забавлявайте се с компютър Стъпка 16
Забавлявайте се с компютър Стъпка 16

Стъпка 1. Изберете среда за разработка

Това е платформата, която ще използвате, за да кодирате новата си операционна система. Това е въпрос на лични предпочитания, но повечето хора или използват Windows, или аромат на UNIX. Ако използвате Windows, добра идея е да инсталирате UNIX среда като Cygwin или MinGW. Обикновено искате да се уверите, че всяка среда, която използвате, включва следното:

  • GCC (компилаторът на Gnu). Ако използвате Windows, можете да го инсталирате в Cygwin или MinGW.
  • Binutils е колекция от инструменти, използвани за манипулиране на обектни файлове. Отново, ако използвате Windows, можете да го инсталирате в Cygwin.
  • Добър текстов редактор. Vim и emacs обикновено се използват в UNIX среди. Потребителите на Windows могат да използват Notepad или да проверят Notepad ++ за надстройка с няколко раздела.
  • Perl и/или Python. За манипулиране на низ се препоръчват едно или и двете.
Направете компютърна операционна система Стъпка 13
Направете компютърна операционна система Стъпка 13

Стъпка 2. Настройте вашата система за контрол на версиите

Писането на операционна система означава, че вероятно ще създадете стотици (или хиляди!) Редове код. Когато работите по ревизии, това може да стане объркващо. Някои опции за проверка са CVS, Mercurial и Subversion.

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

Стъпка 3. Вземете решение за буутлоудъра

Ако не искате да създавате свой собствен, можете да използвате съществуващ като Grand Unified Bootloader (GRUB). Ако се чувствате достатъчно дръзки, за да кодирате буутлоудъра, разгледайте Rolling Your Own Bootloader на OSDev.org.

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

Стъпка 4. Изберете дизайн на ядрото

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

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

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

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

Няма да имате пълна система след две седмици. Започнете с операционна система, която се зарежда, след това преминете към готините неща

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

Стъпка 6. Тествайте новата си операционна система с виртуална машина

Вместо да рестартирате компютъра си всеки път, когато правите промени или се налага да прехвърляте файловете от вашия компютър за разработка на вашата тестова машина, използвайте приложение за виртуална машина. VMWare е често срещана опция, която работи както с Windows, така и с Linux, а също и с Bochs. Проверете за потенциални блокировки и други грешки и ги поправете, ако е необходимо.

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

Стъпка 7. Освободете кандидат за освобождаване

Можете да направите това, като качите своя тестван код в публичното си хранилище. Това ще позволи на хората да тестват операционната ви система и да докладват за всички проблеми, които срещат.

Забавлявайте се с компютър Стъпка 28
Забавлявайте се с компютър Стъпка 28

Стъпка 8. Мрежа с други разработчици на операционни системи

Има цяла общност от разработчици на операционни системи, събрани в различни форуми, включително /r /osdev на Reddit и Exchange Software Stack Exchange. Ако сте разбрали за разработването на основна операционна система, прочетете съществуващите публикации, за да видите какви неща се появяват по време на процеса на разработка.

Видео - Използвайки тази услуга, може да се сподели част от информацията с YouTube

Съвети

  • Не забравяйте да внедрите функциите за сигурност като ваш основен приоритет, ако някога искате вашата система да бъде жизнеспособна.
  • След като цялата разработка приключи, решете дали искате да пуснете кода като отворен код или като патентован.
  • За да може операционната система да се справи с множество процесори, вашият Мениджър на паметта трябва да има механизми за „заключване“, за да попречи на множество процесори да имат достъп до един и същ ресурс едновременно. Използваните за това „заключвания“ще изискват наличието на планировчик, който да гарантира, че само един процесор има достъп до критичен ресурс във всеки един момент, а всички останали са изчакани. И все пак планировчикът зависи от наличието на Мениджър на паметта. Това е случай на блокирана зависимост. Няма стандартен начин за решаване на проблеми като този; като програмист се очаква да имате достатъчно умения, за да разберете неговия собствен начин за справяне с него.
  • Операционната система също може да бъде удобна за потребителя. Не забравяйте да добавите удобни за потребителя функции, което ги прави неразделна част от вашия дизайн.
  • Не се присъединявайте форумите на OSDev.org и започнете да задавате очевидни въпроси. Това просто ще доведе до "Прочетете ръководството" отговори. Трябва да опитате да прочетете Wikipedia и наръчниците за различните инструменти, които искате да използвате.
  • Не започвай проект за операционна система за започване на изучаване на програмиране. Ако все още не познавате C, C ++, Pascal или друг подходящ език отвътре навън, включително манипулиране с показалец, манипулиране на битове на ниско ниво, изместване на битове, вграден асемблерен език и т.н., не сте готови за разработка на операционна система.
  • Ако направите нещо необмислено, например напишете произволни байтове на произволни I/O портове, ще сринете операционната си система и можете (на теория) да изпържите хардуера си.

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