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?
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!'"
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.).
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: -)
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.
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.
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).
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