Jak zrobić komputerowy system operacyjny: 13 kroków (ze zdjęciami)

Spisu treści:

Jak zrobić komputerowy system operacyjny: 13 kroków (ze zdjęciami)
Jak zrobić komputerowy system operacyjny: 13 kroków (ze zdjęciami)

Wideo: Jak zrobić komputerowy system operacyjny: 13 kroków (ze zdjęciami)

Wideo: Jak zrobić komputerowy system operacyjny: 13 kroków (ze zdjęciami)
Wideo: Odcinek 3 - Jak zainstalować sobie program w Ubuntu 2024, Kwiecień
Anonim

Ta wikiHow uczy, jak planować i rozwijać system operacyjny, jeśli nie wiesz, jak kodować w C lub C++. Systemy operacyjne zarządzają sprzętem komputerowym i zapewniają zasoby potrzebne aplikacjom do działania. Napisanie systemu operacyjnego od podstaw wymaga silnej znajomości informatyki, języka programowania takiego jak C lub C++, asemblera i praktyk zarządzania kodem.

Kroki

Część 1 z 2: Nauka podstaw

Stwórz komputerowy system operacyjny Krok 1
Stwórz komputerowy system operacyjny Krok 1

Krok 1. Weź udział w kilku podstawowych kursach informatyki

W przeciwieństwie do tworzenia aplikacji internetowych, tworzenie systemu operacyjnego wymaga dobrego zrozumienia algorytmów, struktur danych, sprzętu komputerowego i zarządzania zasobami. Ludzie zdobywają stopnie naukowe w tej dziedzinie, więc nie oczekuj, że napiszesz cały system operacyjny po przeczytaniu samouczka online! Kurs Harvard Wprowadzenie do informatyki jest dostępny online za pośrednictwem EDX bez żadnych kosztów.

Stwórz komputerowy system operacyjny Krok 2
Stwórz komputerowy system operacyjny Krok 2

Krok 2. Naucz się języka programowania wysokiego poziomu, takiego jak Python

Kiedy już zdobędziesz solidną podstawową wiedzę na temat informatyki, następnym krokiem jest opanowanie C i/lub C++. Podobnie jak nauka informatyki, opanowanie języka nie jest opcjonalne - nie będziesz w stanie zakodować systemu operacyjnego, jeśli nie będziesz potrafił pisać solidnych aplikacji.

Jeśli jesteś nowicjuszem w C, zapoznaj się z kursem Dartmouth C Programming: Getting Started, który jest bezpłatny przez EDX. Po ukończeniu tego kursu możesz wziąć udział w następnym kursie z serii: Programowanie w języku C: podstawy języka. Następnie przejdź do kolejnych kursów, takich jak Programowanie modułowe i zarządzanie pamięcią oraz Wskaźniki i zarządzanie pamięcią

Stwórz komputerowy system operacyjny Krok 4
Stwórz komputerowy system operacyjny Krok 4

Krok 3. Naucz się języka asemblera

Języki asemblera to języki niskiego poziomu zaprojektowane do komunikacji z różnymi procesorami. Ponieważ asembler różni się dla różnych typów procesorów (np. język asemblera x86 dla procesorów Intel, AMD, VIA i innych), będziesz musiał nauczyć się wersji dla typu procesora, dla którego kodujesz.

  • Ta książka o otwartym kodzie źródłowym, jeśli zostanie przeczytana w całości, może dać ci wystarczająco solidną wiedzę na temat budowania systemu operacyjnego.
  • The Art of Assembly Language to bardzo polecana książka o asemblerze dostępna zarówno w trybie online, jak i offline.
  • Powinieneś także przeprowadzić wiele badań na temat typu procesora (procesorów), na którym powinien działać twój system operacyjny. Instrukcje dotyczące architektury procesora można łatwo znaleźć, korzystając z wyszukiwarki Google ("Intel Manuals", ""ARM Manuals, "itp.).
Stwórz komputerowy system operacyjny Krok 5
Stwórz komputerowy system operacyjny Krok 5

Krok 4. Wypełnij samouczek dotyczący systemu operacyjnego

Samouczki dotyczące systemu operacyjnego przeprowadzą Cię przez proces tworzenia podstawowego systemu operacyjnego. Dzięki temu przyzwyczaisz się do procesu i pomożesz dowiedzieć się, czy brakuje jakichś elementów. Po ukończeniu jednego lub dwóch samouczków będziesz na dobrej drodze do stworzenia własnego systemu operacyjnego.

  • Bare Bones to samouczek, który pomoże Ci napisać pierwsze proste 32-bitowe jądro. Po ukończeniu samouczka następnym krokiem jest użycie Meaty Skeleton do stworzenia własnego systemu operacyjnego.
  • Linux od Scratch to internetowa książka, która przeprowadzi Cię przez proces tworzenia własnego systemu operacyjnego Linux.
  • Systemy operacyjne od 0 do 1 to darmowa książka o tworzeniu różnych systemów operacyjnych od początku do końca.
Stwórz komputerowy system operacyjny Krok 3
Stwórz komputerowy system operacyjny Krok 3

Krok 5. Ustal cele systemu operacyjnego

Co chcesz, aby twój system operacyjny robił? Jak to powinno wyglądać? Czy naprawdę potrzebujesz napisać cały system operacyjny, czy po prostu chcesz stworzyć określony wygląd swojego pulpitu? To wszystko, co należy wziąć pod uwagę przed rozpoczęciem kodowania.

  • Rozważ rozwój z zespołem innych programistów. Posiadanie zespołu programistów pracujących nad projektem znacznie skróci czas rozwoju.
  • Dodaj cele projektu, plany i pytania do swojego publicznego repozytorium, aby inni mogli Ci łatwo pomóc.

Część 2 z 2: Budowanie systemu operacyjnego

Baw się przy komputerze Krok 16
Baw się przy komputerze Krok 16

Krok 1. Wybierz środowisko programistyczne

To jest platforma, której będziesz używać do kodowania nowego systemu operacyjnego. To kwestia osobistych preferencji, ale większość ludzi albo używa Windowsa, albo odmiany UNIXa. Jeśli używasz systemu Windows, dobrym pomysłem jest zainstalowanie środowiska UNIX, takiego jak Cygwin lub MinGW. Ogólnie rzecz biorąc, upewnij się, że środowisko, którego używasz, zawiera następujące elementy:

  • GCC (kompilator Gnu). Jeśli używasz systemu Windows, możesz zainstalować go w Cygwin lub MinGW.
  • Binutils to zbiór narzędzi używanych do manipulowania plikami obiektów. Ponownie, jeśli używasz systemu Windows, możesz zainstalować go w Cygwin.
  • Dobry edytor tekstu. Vim i emacs są powszechnie używane w środowiskach UNIX. Użytkownicy systemu Windows mogą korzystać z Notatnika lub sprawdzić Notepad ++, aby uzyskać aktualizację wielokartową.
  • Perl i/lub Python. Jeden lub oba są zalecane do manipulacji ciągami.
Stwórz komputerowy system operacyjny Krok 13
Stwórz komputerowy system operacyjny Krok 13

Krok 2. Skonfiguruj system kontroli wersji

Pisanie systemu operacyjnego oznacza, że prawdopodobnie będziesz tworzył setki (lub tysiące!) linijek kodu. Kiedy pracujesz nad poprawkami, może to być mylące. Niektóre opcje do sprawdzenia to CVS, Mercurial i Subversion.

Stwórz komputerowy system operacyjny Krok 6
Stwórz komputerowy system operacyjny Krok 6

Krok 3. Zdecyduj się na bootloader

Jeśli nie chcesz tworzyć własnego, możesz użyć istniejącego, takiego jak Grand Unified Bootloader (GRUB). Jeśli czujesz się na tyle odważny, aby zakodować bootloader, sprawdź Rolling Your Own Bootloader na OSDev.org.

Stwórz komputerowy system operacyjny Krok 9
Stwórz komputerowy system operacyjny Krok 9

Krok 4. Wybierz projekt jądra

Jądro stanowi rdzeń systemu operacyjnego, zapewniając interfejs między użytkownikiem a sprzętem komputerowym. Istnieją jądra monolityczne i mikrojądra. Jądra monolityczne implementują wszystkie usługi w jądrze, podczas gdy mikrojądra mają małe jądro połączone z demonami użytkownika implementującymi usługi. Ogólnie rzecz biorąc, jądra monolityczne są szybsze, ale mikrojądra mają lepszą izolację błędów i niezawodność.

Stwórz komputerowy system operacyjny Krok 12
Stwórz komputerowy system operacyjny Krok 12

Krok 5. Zacznij od małych

Zacznij od drobnych rzeczy, takich jak wyświetlanie tekstu i przerwań, zanim przejdziesz do takich rzeczy, jak zarządzanie pamięcią i wielozadaniowość. Możesz także spróbować stworzyć prosty 16-bitowy system operacyjny, zamiast robić duży skok.

Za dwa tygodnie nie będziesz miał pełnego systemu. Zacznij od systemu operacyjnego, który się uruchamia, a następnie przejdź do fajnych rzeczy

Stwórz komputerowy system operacyjny Krok 14
Stwórz komputerowy system operacyjny Krok 14

Krok 6. Przetestuj nowy system operacyjny na maszynie wirtualnej

Zamiast ponownego uruchamiania komputera za każdym razem, gdy wprowadzasz zmiany lub musisz przenieść pliki z komputera deweloperskiego na maszynę testową, użyj aplikacji maszyny wirtualnej. VMWare to powszechna opcja, która działa zarówno w systemie Windows, jak i Linux, podobnie jak Bochs. Sprawdź potencjalne zakleszczenia i inne błędy i napraw je w razie potrzeby.

Stwórz komputerowy system operacyjny Krok 15
Stwórz komputerowy system operacyjny Krok 15

Krok 7. Zwolnij „kandydata do wydania

Możesz to zrobić, przesyłając przetestowany kod do publicznego repozytorium. Umożliwi to użytkownikom testowanie Twojego systemu operacyjnego i zgłaszanie wszelkich napotkanych problemów.

Baw się przy komputerze Krok 28
Baw się przy komputerze Krok 28

Krok 8. Sieć z innymi twórcami systemów operacyjnych

Cała społeczność twórców systemów operacyjnych gromadzi się na różnych forach, w tym /r/osdev na Reddicie i Software Engineering Stack Exchange. Jeden, w którym opanujesz tworzenie podstawowego systemu operacyjnego, przeczytaj istniejące posty, aby zobaczyć, jakie rzeczy pojawiają się podczas procesu rozwoju.

Wideo - Korzystając z tej usługi, niektóre informacje mogą być udostępniane YouTube

Porady

  • Pamiętaj, aby zaimplementować funkcje bezpieczeństwa jako swój najwyższy priorytet, jeśli kiedykolwiek chcesz, aby Twój system był opłacalny.
  • Po zakończeniu całego rozwoju zdecyduj, czy chcesz wydać kod jako open source, czy jako zastrzeżony.
  • Aby system operacyjny mógł obsługiwać wiele procesorów, Menedżer pamięci musi mieć mechanizmy „blokujące”, aby uniemożliwić wielu procesorom dostęp do tego samego zasobu w tym samym czasie. „Blokady” używane do tego będą wymagały obecności programu planującego, aby upewnić się, że tylko jeden procesor uzyskuje dostęp do krytycznego zasobu w danym momencie, a wszystkie inne muszą czekać. Jednak harmonogram zależy od obecności Menedżera Pamięci. Jest to przypadek zakleszczonej zależności. Nie ma standardowego sposobu rozwiązania takich problemów; jako programista oczekuje się od ciebie umiejętności wystarczających do wymyślenia własnego sposobu radzenia sobie z tym problemem.
  • System operacyjny może być również przyjazny dla użytkownika. Pamiętaj, aby dodać przyjazne dla użytkownika funkcje, dzięki czemu będą one integralną częścią Twojego projektu.
  • Nie dołączaj forum OSDev.org i zacznij zadawać oczywiste pytania. Spowoduje to po prostu „Przeczytaj instrukcję” odpowiedzi. Powinieneś spróbować przeczytać Wikipedię i podręczniki do różnych narzędzi, których chcesz używać.
  • Nie zaczynaj projekt systemu operacyjnego, aby rozpocząć naukę programowania. Jeśli nie znasz jeszcze C, C++, Pascal lub jakiegoś innego odpowiedniego języka na wylot, włączając w to manipulację wskaźnikiem, manipulację bitami niskiego poziomu, przesuwanie bitów, wbudowany język asemblera itp., nie jesteś gotowy na rozwój systemu operacyjnego.
  • Jeśli zrobisz coś nierozważnego, na przykład zapisujesz losowe bajty do losowych portów I/O, spowodujesz awarię systemu operacyjnego i (teoretycznie) możesz usmażyć swój sprzęt.

Zalecana: