Jak zrobić system operacyjny komputera (ze zdjęciami)

Spisu treści:

Jak zrobić system operacyjny komputera (ze zdjęciami)
Jak zrobić system operacyjny komputera (ze zdjęciami)

Wideo: Jak zrobić system operacyjny komputera (ze zdjęciami)

Wideo: Jak zrobić system operacyjny komputera (ze zdjęciami)
Wideo: How to Downgrade from Windows 8 to Windows 7 2024, Listopad
Anonim

System operacyjny pozwala użytkownikowi na interakcję ze sprzętem komputerowym. System składa się z setek tysięcy linijek kodu. Zazwyczaj system operacyjny jest tworzony przy użyciu języków programowania C#, C, C++ i asemblera. System operacyjny umożliwia przeglądanie komputera podczas zapisywania i wykonywania poleceń. Nie myśl, że tworzenie systemu operacyjnego jest łatwe. Aby to zrobić, potrzeba dużo wiedzy.

Krok

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

Krok 1. Przede wszystkim poznaj programowanie

Język asemblera jest bardzo ważny; zdecydowanie zaleca się naukę innego uzupełniającego języka wysokiego poziomu, takiego jak język C.

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

Krok 2. Zdecyduj, jakiego nośnika chcesz użyć do załadowania systemu operacyjnego

Może to być napęd CD, napęd DVD, dysk flash, dysk twardy, dyskietka lub inny komputer.

Stwórz komputerowy system operacyjny Krok 3
Stwórz komputerowy system operacyjny Krok 3

Krok 3. Zdefiniuj podstawową ideę SO

Na przykład w systemie Windows podstawową ideą jest łatwy w użyciu interfejs graficzny i mnóstwo zabezpieczeń.

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

Krok 4. Określ, jaką platformę procesorową obsługuje Twój system operacyjny

IA-32, ARM i x86_64 to najpopularniejsze platformy dla komputerów osobistych. Więc wszystkie z nich są najlepszym wyborem.

Stwórz komputerowy system operacyjny Krok 5
Stwórz komputerowy system operacyjny Krok 5

Krok 5. Zdecyduj, czy wolisz robić wszystko sam od zera, czy jest już dostępne jądro, na którym chciałbyś zbudować

Na przykład Linux od podstaw to projekt dla osób, które chcą zbudować własną dystrybucję Linuksa.

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

Krok 6. Zdecyduj, czy użyjesz własnego programu ładującego, czy gotowego, takiego jak Grand Unified Bootloader (GRUB)

Samodzielne kodowanie bootloadera będzie wymagało rozległej wiedzy o sprzęcie i systemie BIOS. W rezultacie ten krok może utrudnić rzeczywisty harmonogram programowania jądra.

Stwórz komputerowy system operacyjny Krok 7
Stwórz komputerowy system operacyjny Krok 7

Krok 7. Zdecyduj, jakiego języka programowania użyć

Dobrze jest mieć system operacyjny w języku takim jak Pascal lub BASIC, ale powinieneś używać C lub Assemblera. Montaż jest bardzo potrzebny, ponieważ wymagają tego niektóre ważne części systemu operacyjnego. Z drugiej strony język C++ zawiera słowa kluczowe, które wymagają innego pełnego SO do uruchomienia.

Aby skompilować system operacyjny z kodu C lub C++, oczywiście użyjesz jednego lub drugiego kompilatora. Dlatego dobrym pomysłem jest zapoznanie się z podręcznikiem użytkownika/podręcznikiem/dokumentacją wybranego kompilatora C/C++, zawartego w oprogramowaniu lub dostępnego na stronie internetowej dystrybutora. Musisz wiedzieć wiele skomplikowanych rzeczy o kompilatorze, a do programowania w C++ musisz wiedzieć o schemacie kompilacji i jego ABI. Oczekuje się, że rozumiesz różne formaty wykonywalne (ELF, PE, COFF, podstawowy plik binarny itp.) i rozumiesz, że wyłączny format Windows, PE (.exe), jest chroniony prawem autorskim

Stwórz komputerowy system operacyjny Krok 8
Stwórz komputerowy system operacyjny Krok 8

Krok 8. Zdefiniuj interfejs programowania aplikacji (API)

Jednym z dobrych API do wyboru jest POSIX, ponieważ jest dobrze udokumentowany. Wszystkie systemy Unix mają przynajmniej częściową obsługę POSIX. Dlatego podłączanie programów uniksowych do systemu operacyjnego powinno być łatwe.

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

Krok 9. Zdecyduj się na swój projekt

Istnieje coś takiego jak monolityczne jądro i mikrojądro. Jądra monolityczne implementują wszystkie usługi w jądrze, podczas gdy jądra mikro mają małe jądra w pakiecie z usługami wdrażania demonów użytkownika. 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 10
Stwórz komputerowy system operacyjny Krok 10

Krok 10. Rozważ rozwój i pracę w zespole

W ten sposób rozwiązanie większej liczby problemów zajmuje mniej czasu, co prawdopodobnie przyspieszy tworzenie lepszego systemu operacyjnego.

Stwórz komputerowy system operacyjny Krok 11
Stwórz komputerowy system operacyjny Krok 11

Krok 11. Nie wyczyść całkowicie dysku twardego

Pamiętaj, że usunięcie dysku spowoduje nieodwracalne usunięcie wszystkich danych! Użyj GRUB lub innego menedżera rozruchu, aby dwukrotnie uruchomić system z innym systemem operacyjnym, aż system operacyjny będzie w pełni funkcjonalny.

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

Krok 12. Zacznij od małych

Zacznij od drobnych rzeczy, takich jak wyświetlanie tekstu, i wstrzymaj, zanim przejdziesz do takich rzeczy, jak zarządzanie pamięcią i praca złożona. Upewnij się również, że tworzysz wersje 32-bitową i 64-bitową.

Stwórz komputerowy system operacyjny Krok 13
Stwórz komputerowy system operacyjny Krok 13

Krok 13. Zachowaj kopię zapasową ostatniego działającego kodu źródłowego

Ten krok jest przydatny jako zabezpieczenie na wypadek, gdyby coś poszło nie tak z obecną wersją SO lub rozwojem. Jeśli komputer ulega awarii i nie chce się uruchomić, dobrze jest mieć drugą kopię, z którą można pracować, aby rozwiązać problem.

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

Krok 14. Rozważ przetestowanie nowego systemu operacyjnego na maszynie wirtualnej

Zamiast ponownie uruchamiać komputer za każdym razem, gdy wprowadzasz zmiany lub po wysłaniu plików z komputera deweloperskiego na maszynę testową, możesz użyć aplikacji maszyny wirtualnej do uruchomienia systemu operacyjnego, gdy bieżący system operacyjny jest uruchomiony. Obecne aplikacje VM obejmują: VMWare (który ma również produkt serwerowy dostępny za darmo), alternatywy open source, Bochs, Microsoft Virtual PC (niezgodny z systemem Linux) i Oracle VirtualBox.

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

Krok 15. Uruchom "kandydat do wydania" lub wersję Beta

Ten krok pozwoli użytkownikowi powiadomić Cię o potencjalnych problemach z Twoim systemem operacyjnym.

Stwórz komputerowy system operacyjny Krok 16
Stwórz komputerowy system operacyjny Krok 16

Krok 16. System operacyjny powinien być również przyjazny dla użytkownika

Upewnij się, że dodajesz przyjazne dla użytkownika funkcje, aby były one integralną częścią Twojego projektu.

Porady

  • Sprawdź, czy nie ma potencjalnych zakleszczeń i innych błędów. Błędy, zakleszczenia i inne problemy będą miały wpływ na projekt kompilacji systemu operacyjnego.
  • Upewnij się, że zaimplementowałeś funkcje bezpieczeństwa jako najwyższy priorytet, jeśli chcesz, aby system działał poprawnie.
  • Korzystaj ze stron internetowych, takich jak OSDev i OSDever, aby pomóc w stworzeniu własnego systemu operacyjnego. Uprzejmie proszę pamiętać, że w większości przypadków społeczność OSDev.org będzie bardziej niż szczęśliwa, jeśli użyjesz ich wiki i nie dołączysz do forum. Jeśli zdecydujesz się dołączyć do forum, jest warunek wstępny: musisz naprawdę wiedzieć o C lub C++ i języku asemblera x86. Powinieneś także rozumieć ogólne i złożone koncepcje programowania, takie jak listy połączone, kolejki itp. Społeczność OSDev w swoich regulaminach wyraźnie stwierdza, że jej społeczność nie jest tworzona po to, by wychowywać nowych programistów.
  • Nie dołączaj z forum OSDev.org, a następnie zadaj oczywiste pytanie. Zostaniesz poproszony tylko o przeczytanie przewodnika. Przeczytaj Wikipedię i instrukcje dotyczące sprzętu, którego chcesz użyć.
  • Jeśli próbujesz stworzyć system operacyjny, zdecydowanie jesteś uważany za „boga” programowania.
  • Powinieneś także przeczytać instrukcję obsługi procesora dla wybranej architektury procesora; czy x86 (Intel), ARM, MIPS, PPC itp. Instrukcje dotyczące architektur procesorów można łatwo znaleźć za pomocą wyszukiwarki Google („instrukcja Intel”, „instrukcja ARM” itp.).
  • Po zakończeniu wszystkich prac programistycznych zdecyduj, czy chcesz wydać kod jako kod otwarty, czy z zachowaniem praw autorskich.
  • Nie zaczynaj projekt systemu operacyjnego, aby rozpocząć naukę programowania. Jeśli nie wiesz od środka i na zewnątrz o C, C++, Pascalu lub innym odpowiednim języku, w tym manipulacji wskaźnikami, manipulacji bitami niskiego poziomu, przesunięciu bitów, wbudowanych językach asemblerowych itp., nie jesteś gotowy na system operacyjny rozwój.
  • Utworzenie całkowicie nowej partycji w celu „rozszerzenia” SO może być dobrą opcją.
  • Jeśli szukasz łatwego sposobu, rozważ dystrybucje Linuksa, takie jak Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD lub SUSE Studio i SUSE KIWI. Jednak system operacyjny, który tworzysz, należy do firmy, która jako pierwsza uruchomiła usługę (choć masz prawo do swobodnego jej rozpowszechniania, modyfikowania i uruchamiania według własnego uznania na licencji GPL).

Ostrzeżenie

  • W ciągu dwóch tygodni nie otrzymasz pełnego systemu operacyjnego. Zacznij od bootowalnego SO, a następnie przejdź do fajniejszych rzeczy.
  • Nieostrożne pisanie systemu operacyjnego na dysku twardym może go całkowicie uszkodzić. Bądź ostrożny.
  • Jeśli zrobisz coś, co nie jest zalecane, na przykład zapisujesz losowe bajty na losowych portach I/O, spowodujesz awarię systemu operacyjnego i (teoretycznie) spalisz sprzęt.
  • Nie oczekuj, że system operacyjny jest łatwy do zbudowania. Istnieje wiele skomplikowanych współzależności. Na przykład, aby utworzyć system operacyjny zdolny do obsługi wielu procesorów, Menedżer pamięci musi mieć mechanizm „blokujący”, aby uniemożliwić wielu procesorom dostęp do tego samego zasobu w tym samym czasie. Stosowana do tego „blokada” wymagałaby od planisty zapewnienia, że tylko jeden procesor ma dostęp do krytycznych zasobów w danym momencie, a wszystkie inne będą musiały czekać. W rzeczywistości harmonogram zależy od obecności Menedżera Pamięci. To jest przykład ślepej zależności. Nie ma standardowego sposobu rozwiązania tego rodzaju problemu; od każdego programisty systemu operacyjnego oczekuje się umiejętności na tyle, aby znać swój własny sposób radzenia sobie z tym problemem.

Dodatkowe zasoby

  • Wskazówki: Linux od podstaw
  • Bootloader: GRUB
  • Aplikacje maszyn wirtualnych: Bochs, VM Ware, XM Virtual Box.
  • Instrukcja procesora: instrukcja Intel
  • Witryny programistyczne SO: OSDev, OSDever

Zalecana: