Utrudnienia w tworzeniu niestandardowego systemu operacyjnego [zamknięty]

Wydaje mi się, że najczęstszym zbyt ambitnym projektem, który Programiści (esp. Komp. Sci. grads) spróbuj rozwiązać to budowanie własnego systemu operacyjnego. (Próba stworzenia własnego języka programowania + kompilator jest prawdopodobnie jeszcze bardziej powszechna, ale nie aż tak ambitna.)

Dla tych (jak ja) na tyle głupich, aby spróbować: oprócz samej wielkości, Jakie są największe gotcha s lub nieoczekiwane blokady, które napotkałeś próbując stworzyć swój własny OS z Ziemia?

Edit: świetne pytanie o system operacyjny: jakie są zasoby na rozpoczęcie prac nad systemem operacyjnym?

Author: Community, 2008-12-04

6 answers

Będąc w stanie mówić z rzeczywistego doświadczenia (AROS, największe przeszkody to:

    W przeciwieństwie do innych systemów, nie można używać ich w celach komercyjnych.]} Po co w ogóle próbować konkurować z Windowsem? Apple nie odnosi sukcesu i mają dużo pieniędzy, a Linux nie odnosi sukcesu pomimo ogromnej i entuzjastycznej społeczności.
  • duże firmy w ogóle nie są zainteresowane wprowadzaniem swoich aplikacji do systemu operacyjnego (Adobe Acrobat Reader, MS Office, Macromedia Flash, Java od Słońca). Bez nich i bez dobrych alternatyw OSS nie możesz przyciągnąć użytkowników.
  • To trwa bardzo długo. W moim przypadku minęło około 15 lat, aby uzyskać 1.0 (i nie jesteśmy jeszcze 100% tam).
  • Zgodność. Aby uzyskać użytkowników, musisz być kompatybilny z czymś, co istnieje (aby ludzie mogli nadal korzystać z ich danych, itp.). Jeśli jesteś kompatybilny, dlaczego zmienić na Twój OS?

Więc jeśli planujesz napisać własny OS, powinieneś rozważyć to:

  • to zajmie dużo czasu
  • Najdłużej będziesz sam. Miałem szczęście, ponieważ miałem ogromnie fanatyczną i oddaną społeczność Amigi, która po prostu nie chciała odpuścić.
  • musisz znaleźć niszę, w której możesz zaoferować usługę, której żaden inny system operacyjny nie może zaoferować.
  • ludzie, którzy potrafią to zrobić często dostają lepsze oferty pracy, ponieważ postrzeganie jest "pisanie OSs jest trudne":)
  • [5]}będziesz członkiem bardzo małej, elitarnej grupy programistów, którzy mogą powiedzieć "Napisałem swój własny system operacyjny i może zrobić więcej niż wydrukować" Hello world!'"
 18
Author: Aaron Digulla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-04 14:40:42

Byłem tam, zrobiłem to. Największą przeszkodą, przynajmniej dla mnie, były sterowniki urządzeń. Kodowanie rdzenia systemu operacyjnego jest "zabawną częścią", jednak jest bezużyteczne bez możliwości wykonywania operacji wejścia / Wyjścia (dysk, klawiatura, wideo, przynajmniej sieć). Dzisiaj, gdybym znowu miał czas i wolę, aby zaangażować się w taki projekt, prawdopodobnie skierowałbym Xen VM zamiast surowego sprzętu-Jeśli za nic innego, to dlatego, że ukrywa wiele brzydkich idiosynkrazji x86, a także sprzętu. Xen prezentuje ładny Mundur, niezależny od sprzętu widok urządzeń I/o, i nadal daje wystarczającą swobodę do zabawy z "interesującymi" częściami systemu operacyjnego (mm, zarządzanie procesami, synchronizacja, przerwania itp.).

 9
Author: zvrba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-21 20:59:25

Największa Blokada? Myślę, że tak jest, gdy dowiesz się, ile luk jest w specyfikacji i ile błędów jest w różnych implementacjach.

Poważnie, nawet jeśli miałbyś wszystkie specyfikacje dla wszystkich komponentów (tj. USB, DMA, IRQ, Twój procesor... co się stanie, jeśli wyślesz określoną sekwencję na urządzenie USB) i B) niektóre rzeczy są po prostu na podsłuchu i musisz je obejść (np. dziesiątki błędów w procesorze, które są wyszczególnione w Erracie procesora, które publikują zarówno Intel, jak i AMD)

Nie wiem, ile obejść błędów jest w nowoczesnym systemie operacyjnym, ale ponieważ Linux i * BSD jest open source, ich sterowniki wiele mówią, np. Ten . I spodziewaj się poważnych negatywnych skutków ubocznych, takich jak Ten .

Więc tak, jeśli próbujesz napisać OS, przygotuj się na wiele przekleństw u producentów sprzętu i zacznij tracić wiarę w jakość nowoczesnych PCs: -)

 4
Author: Michael Stum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-05 18:48:43

Myślę, że w dzisiejszych czasach wielu ludzi, którzy są poza tym dobrymi programistami, nie wie jak mało wiedzą o tym, jak działają Komputery. Musisz poważnie opanować podstawy, aby uzyskać maszynę do rozruchu systemu operacyjnego z dysku, a ten rodzaj wiedzy jest obecnie rozpowszechniany dość cienko. W dzisiejszych czasach nie znajdziesz też półki książek o tym.

Co ciekawe, kilka tygodni temu zadałem pytanie na SO, które dotyczyło rodzaju wiedzy, która była chlebem powaznego PC programowanie 10-15 lat temu, a jeden z komentatorów powiedział, że uważa to za pytanie hardware .

Wcale ich nie pukam, ale pomyślałem, że to ciekawa refleksja nad tym, jak zmieniły się umiejętności.

 3
Author: Will Dean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-05 18:38:28

Myślę, że zdecydowanie największą blokadą są użytkownicy - dopóki nie zbudujesz większości działającego systemu, raczej nie będziesz miał żadnych użytkowników. Bez użytkowników nie masz żądań funkcji, raportów o błędach, a co za tym idzie, motywacja jest ograniczona. Jednak nawet jeśli zbudujesz działający system operacyjny, nie ma gwarancji, że otrzymasz bazę użytkowników, chyba że znajdziesz haczyk, który przyciąga ludzi - co wyróżnia Twój system operacyjny na tyle, aby ludzie mogli wypróbować wersje beta, trzymaj się, gdy nie ma prawie żadnych działających aplikacji przeniesionych do niego, itp.

Możesz być zainteresowany sprawdzeniem SkyOS - został opracowany w dużej mierze przez jednego dewelopera (obecnie mały zespół programistów). Artykuł Wikipedii ma również dobre podsumowanie. Myślę, że jest to dobry przykład na to, jak takie trudne zadanie można podjąć i całkiem dobrze się skończyć. Zrobili kilka ciekawych rzeczy ze SkyOS, a szczególnie fajnie jest zobaczyć, że pochodzą one w dużej części z wysiłków samotna osoba w wolnym czasie.

 2
Author: Jay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-18 21:12:03

Pisanie systemu operacyjnego napotyka te same problemy, co inne duże projekty programistyczne.

Nie ma jasno określonych celów i ma problemy z osią czasu / szacowaniem z powodu braku doświadczenia.

ByĹ 'oby rĂłwnieĹź przydatne dla programisty, aby najpierw stworzyÄ ‡ system operacyjny typu "hello world", aby PoznaĹ' koncepcje stojÄ ... ce za rozwojem OS, a nastÄ ™ pnie mogĹ ' skupiÄ ‡ siÄ ™ na rozwijaniu OS (nie uczenie siÄ ™ pojÄ ™ Ä ‡ OS).

 0
Author: eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-05 15:46:20