Jak opracować system operacyjny komputera

Systemy operacyjne składające się z setek tysięcy rzędów kodu umożliwiają użytkownikom w interakcji z urządzeniami komputerowymi. Zwykle są zapisywane w językach programowania C, C ++ i Assembler.

Kroki

  1. Obraz zatytułowany Wykonaj system operacyjny komputera krok 1
jeden. Aby rozpocząć, programowanie nauki. Znajomość zgromadzenia musi być również zalecana, aby koncepcja innych dodatkowych języków programowania na przykład niższego poziomu, z.
  • Obraz zatytułowany Utwórz system operacyjny komputera Krok 2
    2. Zdecyduj, które urządzenie chcesz pobrać system operacyjny. Może to być płyta CD, DVD, urządzenie pamięci flash, dysk twardy lub inny komputer.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 3
    3. Zdecyduj, który chcesz zobaczyć swój system operacyjny. Jeśli jest to pełna wersja systemu operacyjnego z graficznym interfejsem użytkownika (GUI) lub, może coś bardziej minimalistycznego? Musisz wiedzieć, w którym kierunku się poruszy, przed rozpoczęciem procesu.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 4
    cztery. Określ, która platforma procesora Twój system operacyjny będzie wspierać. AI-32 i X86_64 to dwie najczęstsze wersje dla komputerów osobistych, dzięki czemu można je uznać za najlepszy wybór.
  • Obraz zatytułowany Utwórz system operacyjny komputera Krok 5
    pięć. Zdecyduj, czy wolisz robić wszystko od podstaw, albo są jądra, na podstawie których chcesz ssać system. Linux od podstaw - projekt dla tych, którzy życzą na przykład, tworzą własną dystrybucję Linuksa.
  • Obraz zatytułowany Utwórz system operacyjny komputera Krok 6
    6. Wybierz, czy użyjesz własnego bootloadera lub wstępnie utworzonego ujednoliconego układu ładującego Grand Unified Bootloader (GRUB). Ponieważ kodowanie własnego programu pobierania wymaga szerokiej wiedzy w dziedzinie bezpieczeństwa komputera i BIOS, może przesunąć harmonogram programowania obecnego jądra.
  • Obraz zatytułowany Make komputer operacyjny Krok 7
    7. Podejmij decyzję o języku programowania, które zamierzają użyć. Oczywiście, jest całkiem możliwe opracowanie systemu operacyjnego w takim języku jako Pascal lub Basic, ale korzystne jest napisanie lub asembler. Assembler jest absolutnie konieczny, t. do. Niektóre ważne części systemu operacyjnego wymagają wiedzy o tym konkretnym języku. C ++ z drugiej strony zawiera słowa kluczowe wymagane do uruchomienia pełnej wersji systemu operacyjnego.
  • Aby zmontować system operacyjny za pomocą kodów C lub C ++, z pewnością użyjesz jednego kompilatora, a następnie innego. Oznacza to, że musisz przeczytać przewodnik / instrukcje / dokumentację dla wybranego kompilatora C / C ++, który jest dostarczany z oprogramowaniem lub dostępnym na stronie internetowej Dystrybutora. Będziesz musiał dowiedzieć się wielu złożonych rzeczy o kompilatorze, dodatkowo, aby poprawić C ++, aby nauczyć się swojego schematu i ABI. Oczekuje się, że zrozumiesz różne formaty zadań wykonawczych (elf, pe, coff, zwykły binarny i t.RE.) I zauważ, że twój własny format systemu Windows, PE (.EXE) Prawa autorskie są chronione.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 8
    osiem. Wybierz interfejs programowania aplikacji (API). Jednym z wyboru dobrego API jest Posix, ponieważ jest dobrze udokumentowany. Wszystkie systemy UNIX mają przynajmniej częściowe wsparcie dla POSIX, więc byłoby trywialne dołączenie programów UNIX do systemu operacyjnego.
  • Obraz zatytułowany Wykonaj system operacyjny komputera Krok 9
    dziewięć. Decydować o projekcie. Są monolityczne jądra i mikrokernel. Monolityczne jądra wykonują wszystkie usługi w jądrze, podczas gdy mikrokernel ma mały jądro w połączeniu z realizacją użytkownika. Ogólnie rzecz biorąc, jądro monolityczne są szybsze, ale mikrokernel ma lepszą izolację i ochronę przed możliwymi usterkami.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 10
    10. Rozważ problem rozwoju i pracy w zespole. W ten sposób będziesz potrzebował mniej czasu na rozwiązanie dużych problemów, co spowoduje lepszy system operacyjny dla krótszego czasu.
  • Obraz zatytułowany Utwórz system operacyjny komputera krok 11
    jedenaście. Nie usuwaj całkowicie dysku twardego. Pamiętaj, że formatowanie dysku nieodwracalnie wyczyść wszystkie dane! Użyj grubu lub innego menedżera, aby duplikować pobieranie komputera w drugim systemie operacyjnym, aż Twoja wersja jest w pełni gotowa funkcjonalna.
  • Obraz zatytułowany Make komputer operacyjny Krok 12
    12. Zacznij od małego. Należy zauważyć przede wszystkim na małych rzeczach, takich jak wyświetlanie tekstu i przerywania przed przełączeniem na złożone elementy, na przykład do zarządzania pamięcią i multitasking.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 13
    13. Zapisz kopię zapasową ostatniej wersji roboczej. Daje to pewne spokój w przypadku, gdy coś jest absolutnie błędne w bieżącej wersji systemu operacyjnego lub kolejnych dodatków. W przypadku awarii w komputerze i niemożności pobierania, jak rozumiesz, doskonała okazja będzie obecnością drugiej kopii do pracy, dzięki czemu możesz wyeliminować istniejące błędy.
  • Obraz zatytułowany Utwórz system operacyjny komputera krok 14
    czternaście. Sprawdź nowy system operacyjny na maszynie wirtualnej. Zamiast ponownego uruchomienia komputera za każdym razem po dokonaniu zmian lub przesyłania plików z maszyny testowej do maszyny testowej, można użyć aplikacji do uruchomienia systemu operacyjnego na maszynie wirtualnej, podczas gdy bieżący system operacyjny nadal działa. Aplikacje VM obejmują VMware (który ma również bezpłatny serwer dostępu), alternatywny kod open source, bochs, wirtualny komputer Microsoft (nie kompatybilny z Linux), a także XVM VirtualBox.
  • Obraz zatytułowany Make komputer operacyjny Krok 15
    piętnaście. Zwolnij wersję wydania. Pozwoli to użytkownikom opowiedzieć o możliwych niedociągnięciu w systemie operacyjnym.
  • Obraz zatytułowany Wykonaj system operacyjny komputera krok 16
    szesnaście. System operacyjny musi być również wygodny dla użytkownika, więc nie zapomnij dodawać przydatnych funkcji, które staną się integralną częścią projektu.
  • Rada

    • Kiedy rozwój zostanie zakończony, pomyśl, jeśli chcesz przesłać kod w swobodnym dostępie lub ustanowienia praw prywatnych.
    • Pamiętaj, aby uzyskać funkcje zabezpieczeń według podstawowego priorytetu, jeśli chcesz, aby Twój system był realny.
    • Nie rozpoczynaj projektu rozwoju systemu operacyjnego, aby trenować programowanie. Jeśli nie znasz C, C ++, Pascal lub innych odpowiednich języków i właściwości, w tym typów wskaźnika, operacji z bitami o niskim poziomie, przełączającym bitom, wbudowanym insemblerem i t.RE., - Więc nie gotowy do utworzenia OS.
    • Przeglądaj portale, takie jak OSDEV i OSDEW, aby pomóc Ci poprawić własny system operacyjny. Zwracaj szczególną uwagę na fakt, że większość pytań społeczności OSDEV.Org woli wpłynąć na treść witryny, a nie dołączył do forum. Jeśli nadal zdecydujesz się dołączyć do rzędów członków Forum, muszą istnieć pewne warunki wstępne. Musisz dokładnie znać C lub C ++ i zgromadzenie języka X86. Musisz także zrozumieć wspólne i kompleksowe koncepcje w programowaniu, takich jak listy powiązane, kolejek i t.RE. Społeczność OSDEV w jego zasadach bezpośrednio wskazuje, że nikt nie pielęgnuje nowych programistów. Jeśli próbujesz opracować operację opracowywać, nie mówi, że "Bóg" w dziedzinie programowania. Musisz także przeczytać podręcznik do pracy z procesorem dotyczącym jego architektury wybranej przez Ciebie- na przykład, X86 (Intel), Ramię, MIPS, PPC i T.RE. Taka instrukcja struktury procesora można łatwo znaleźć, szukając w Google ("Intela Instrukcje", "Podręczniki ramienia" i T.RE.). Nie rejestruj się na forum OSDEV.Org, aby zadawać oczywiste pytania. Po prostu doprowadzi do odpowiedzi, takich jak "Przeczytaj instrukcję F ***". Aby rozpocząć, powinieneś spróbować przeczytać Wikipedię, korzyści dla różnych narzędzi, które będą używać.
    • Sprawdź potencjalne martwe kropki i inne błędy. Niedociągnięcia, zakleszczenia i inne problemy mogą wpływać na projekt systemu operacyjnego.
    • Jeśli chcesz proste, prześlij rozkłady Linuksa - takie jak Revisor Fedora, Custom Nimble X, Puppy Remaster, PCLinuxos MKLIVECD lub SUSE Studio i Suse Kiwi. Niemniej jednak utworzony system operacyjny należy do firmy, która jest pierwsza, która przedstawia tę usługę (chociaż masz prawa do swobodnej dystrybucji, zmienić i uruchomić, jak chcesz, pod GPL).
    • Dobrym rozwiązaniem będzie stworzenie zupełnie nowej partycji opracowywania systemu operacyjnego.

    Ostrzeżenie

    • Przepisywanie dysku twardego na dysku twardym może całkowicie uszkodzić. bądź ostrożny
    • Nie otrzymasz w pełni gotowego systemu za dwa tygodnie. Zacznij od pobranego systemu operacyjnego, a następnie przejdź do więcej interesujących rzeczy.
    • Jeśli zrobisz coś szybkiego, jak na przykład, napisz losowe bajty w dowolnych portach we / wy, a następnie zniszczyć system operacyjny i może (w teorii) spalić sprzęt.
    • Nie oczekuj, że łatwo będzie zbudować wysokiej jakości system operacyjny. Istnieje wiele złożonych współzależności. Na przykład, aby system operacyjny mógł pracować z wieloma procesorami, menedżer pamięci musi mieć mechanizmy "blokujące", aby zapobiec niepotrzebnym procesorom w tym samym zasobie w tym samym czasie. Używane "bloki" zakładają obecność harmonogramu, aby upewnić się, że tylko jeden procesor przemawia do krytycznego zasobu w dowolnym momencie, a wszystkie pozostałe są w trybie gotowości. Jednak planowanie pracy zależy od obecności menedżera pamięci. Jest to przykład w zależności od blokowania. Nie ma standardowego sposobu na rozwiązanie takich problemów - każdy twórca systemu operacyjnego ma być dość kwalifikowany do znalezienia własnego rozwiązania.

    Czego potrzebujesz

    • Komputer
    • Procesor, na którym zamierzasz zbudować
    • Wystarczająca pamięć RAM (RAM) dla maszyny wirtualnej
    • Główny system operacyjny (używany do opracowania kodu źródłowego asemblera (i innych.), a także zgromadzenia i opakowania we wczesnych etapach pracy - w końcu, własny system operacyjny stanie się podstawową)
    • Edytor kodu kolorów składni (stosowany w przypadku braku zintegrowanego środowiska rozwoju)
    • Kompilator
    • Napęd CD / DVD
    Podobne publikacje