Może to na próżno, ponieważ wiem, że pisanie systemu operacyjnego jest nieznośnie skomplikowane (zwłaszcza dla siebie).
Nie spodziewam się, że będę budował następny Linux lub Windows.
Wiem, że to będzie okropne, wadliwe i nie zadziała, ale to w porządku.
Chcę napisać wszystko sam, w asemblerze , C i (trochę) C ++ .
To jest projekt na przyszłość, ponieważ w tej chwili jestem zajęty innymi sprawami i nie mam czasu od razu, ale pomyślałem, że zapytam go teraz, więc może mógłbym uzyskać wiele odpowiedzi na ten temat i mógłby budować i być użytecznym źródłem dla tego rodzaju podejścia (wszystko inne, co widziałem, obejmowało budowanie z minixa, używanie istniejącego bootloadera, budowanie go w wirtualnym programie rozruchowym itp.).
Chcę skonfigurować jeden z moich starszych komputerów stacjonarnych z monitorem, klawiaturą i myszą i rozpocząć pracę na pustym dysku twardym.
Chcę się nauczyć, jak napisać własny bootloader (znalazłem wiele zasobów na ten temat, ale dla kompletności proszę jeszcze dodać kilka dobrych), własny sterownik USB (jeśli to konieczne), sterownik CD (jeśli to konieczne ) itp. Wszystko od podstaw.
Jak umieścić kod na komputerze? Czy najlepiej to zrobić za pomocą dyskietki? Czy większość komputerów może to zrobić z pamięci USB?
Jakich sterowników potrzebuję i czy możesz zasugerować jakieś odniesienia do ich budowy?
Po sekwencji bootowania - co wtedy? Jak przejść do trybu chronionego itp.
Jak zarządzać pamięcią bez pomocy systemu operacyjnego? Czy po prostu używam dowolnych adresów? Inicjalizacja nie jest konieczna?
Co niewątpliwie napotkam, co mnie zmyli?
Jak mogę sprawić, by był to O / S z wiersza poleceń i graficzny?
Na czym opiera się graficzny system operacyjny? Na przykład, jak zrobiłbym coś takiego, wiersz poleceń, z czcionką i obrazkiem na górze?
Gdzie mogę przeczytać o konfigurowaniu środowiska wielozadaniowego? (tj. mając obok siebie dwa podobne do graficznego wiersze poleceń).
Jak ustawić rodzaj systemu okienkowego? Jak wyświetlić grafikę na ekranie po skonfigurowaniu prostej wielozadaniowości?
Uwierz mi, rozumiem, że jest to bardzo skomplikowany projekt i prawdopodobnie nigdy nie dojdę do jego ukończenia ani do napisania na nim czegokolwiek użytecznego.
Jest w tym wiele innych elementów, o których nie wspomniałem, jeśli o czymś pomyślisz, możesz je również dodać.
W każdej odpowiedzi umieść jeden „temat” - na przykład sterowniki USB, a następnie może listę zasobów, rzeczy, na które należy zwrócić uwagę itp.
Ponadto nie sugeruj tworzenia innego systemu operacyjnego lub istniejącego kodu. Wiem, że przeczytam dużo wcześniej istniejącego kodu (takiego jak jądro systemu Linux lub przykładowe zasoby, istniejące sterowniki itp.), Ale ostatecznie chcę napisać cały tekst samodzielnie. Wiem, że powinienem zbudować coś innego, i jest wiele innych pytań dotyczących SO na ten temat, które mogę przeczytać, jeśli zmienię zdanie i pójdę tą drogą. Ale w tym wszystkim chodzi o zrobienie wszystkiego od zera.
Jakieś sugestie, jak uzyskać grafikę? Różne tryby wideo i jak z nimi pracować itp.?