logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Własny system operacyjny - jak stworzyć?

Inner_Bushman 10 Kwi 2005 22:29 17200 13
REKLAMA
  • #1 1394156
    Inner_Bushman
    Poziom 17  
    Witam. Chciał bym napisać własny system operacyjny, który robił by jednocześnie za program mający się w nim wykonywać.
    Podstawowe założenia:
    - sam się butuje z dyskietki
    - po zbutowaniu obsługuje klawiatóre i monitor jako I/O
    - ewentualnie wykonuje jakieś czynności

    Poruszyłem ten temat bo niedaje mi spać po nocach :P jestem poprostu ciekaw jak trudno to zrobić. O ile to możliwe chciał bym cały projekt pisać w C++ ponieważ tylko ten język znam w miare dobrze (inne poprostu znam słabiej :P )

    Jeżeli ktoś jeszcze jest tym zainteresowany to zapraszam do "Team'u" :)
  • REKLAMA
  • #2 1394220
    michael1986
    Poziom 18  
    Kiedyś zastanawiałem się nad podobną rzeczą... z tego co udało mi się dowiedzieć to przede wszystkim musisz zapewnić temu systemowi start. Tzn. w sektorze startowym dyskietki musisz umieścic asemblerową instrukcję skoku do sektora zawierającego kod startowy. Taki kod również musisz napisać w asemblerze. Jest to dość trudne... ale być może istnieje podobny system jako open-source w sieci... nie mówię tu oczywiście o Linux-ie, bo ten jest bardzo rozbudowany i napewno byś się pogubił w tym wszystkim... mówie o czymś bardzo prosty...

    Jak znasz trochę angielski to zajrzyj tu: http://www.acm.uiuc.edu/sigops/roll_your_own/

    I nie zapomnij o tym, jeśli choć trochę Ci pomogłem ;-)


    Pozdrawiam
  • #3 1394262
    Inner_Bushman
    Poziom 17  
    Jeżeli chodzi o Boot sector i asembler to byłem tego świadom że bez tego się nie obejdzie... ale to akurat jest banalne z mojego pónktu widzenia...
    Problem w tym jak kod do którego będziemy skakać wsadzić do pamięci :P albo jak go zmusić do wykonania instrukcji prosto z dyskietki.
    Co do linka, zassam sobie ten text i poczytam jutro w autobusie.

    Pozdro.
  • REKLAMA
  • #4 1394683
    jankolo
    Spoczywaj w Pokoju
    Koledzy, nie gniewajcie się, ale system operacyjny - nawet prosty - jest nieco bardziej złożony niż Wam się wydaje. Proszę Was, przejrzyjcie (nawet nie musicie czytać) najpierw chocby jedną książkę o budowie systemów operacyjnych, a potem dopiero podejmujcie dyskusję na taki temat.
  • #6 1394734
    elektryk
    Poziom 42  
    Najpierw przeanalizuj od strony teoretycznej co ten system operacyjny powinien wspierać (jakich funkcji dostarczać programom), a potem pozostaje już tylko implementacja odpowiednich funkcji dla programów i obsługi sprzętu.
  • REKLAMA
  • #7 1395021
    Inner_Bushman
    Poziom 17  
    Witam ponownie. Dziś prężny i gotowy po lektórze kilku ambitniejszych pozycji wiem od czego zaczne...
    Zaczne od nauczenia się obsługi linuxa ponieważ mam zamiar robić to właśnie pod nim.

    Linki:
    http://www.linuxgazette.com/issue77/krishnakumar.html
    http://www.linuxgazette.com/issue79/krishnakumar.html
    http://www.linuxgazette.com/issue82/raghu.html

    Z gróbsza to przeczytałem i tak właśnie zaczne... od początku :)

    Na powyższych stronach jest bardzo jasno i przejżyście wyjaśnione od czego zacząć i jak taki "kod" wżucić na FDD.
    Ciekawe czy na płytowym linux'ie też dam rade? (Knopix)
    Jak tylko coś zdziałam to dam znać. :)
  • #8 1395080
    tomasz_olszewski14
    Poziom 11  
    moze sprubuj pisac w turbo pascalu lub free pascalu do tp sa jakies biblioteki do graficznej obslugi.
  • #9 1395098
    Inner_Bushman
    Poziom 17  
    A kto mówi o grafice? Do garfiki temu daleko jak stąd do Kioto. Co do pascala, osobiście mam obiekcje do niego a pozatym znam C i niechce mi się uczyć nowego "równożędnego" jezyka bo i poco.
    Jedyne co będe musiał zrobić to powtórka z Asemblera :P
  • #10 1442214
    chrobry
    Poziom 13  
    Powiem tak jestem na drugim semestrze informatyki i właśnie taki pomys na jaki wpadł Inner_Bushman wydaje się bardzo, ale bardzo symaptyczny. Faktycznie mogą być pewne problemy, ale sądzę, że na drugim roku będę miał podobną pracę zaliczeniową więc jak coś to daj znać o wynikach swoich prób lub ewentualnie gdybyś potrzebował pomocy.

    Sam bym się zabrał do pracy nad tym juz dziś, ale Analiza matemtyczna mi nie pozwala :(
  • #11 1442357
    arnie
    Poziom 17  
    Hmmm.... osobiście kiedyś jako cwiczenie z Asma zrobiłem sobie sektor startowy dyskietki, który ładuje program z bodajże 18 sektorów drugiej ścieżki dyskietki i go wykonuje.
    Oczywiście w tych 18 sektorach znajdowały sie tylko procedury Obsługi przerwań procesora (NMI, dzielenie przez zero ipt) i prosty program odczytujący dane z RS232 i wyświetlający je na ekranie. Po 3 dniach walki działało od 386 do PIV. Wymagało jedynie obecności portu szeregowego pod adresem bodajże 3F8H.
    Zainteresowanych zapraszam na GG:)
  • REKLAMA
  • #12 1442410
    LtLog
    Poziom 30  
    Do jego stworzenia najlepiej nadaje się moim skromnym zdaniem UNIX. Polecam na początek wziąć się za rozgryzanie kodu dowolnej dyskietkowej distro Linux'a. Na tej zasadzie stworzyłem kiedyś distro oparte o zestaw Minimalist na platformie hal91 przyznam że działało to różnie, a system został zakończony przez mojego znajomego nie przezemnie, literówek w kodzie było od groma jednak distro pozwalało wykonać podstawowe zadania jak wyświetlanie znaków, interpretacja poleceń odbiór sygnału z RS232 zabrakło tylko najważniejszego czyli interpretacji tego sygnału no ale było coś co można by nazwać trybem graficznym obecnie służy do sterowania starą wtryskarką w zakładzie kolegi. Bogatszy nieco o tę wiedzę tym razem oparł bym sie o rozwiązania K12LTSP i CoreLinux.

    Pozdrawiam Lt.
  • #13 1443880
    cyberkid
    Poziom 15  
    http://4programmers.net/download.php?id=1877

    http://4programmers.net/download.php?id=1839

    http://forum.4programmers.net/viewtopic.php?id=53884

    heh, napisanie samego BOOT loadera to pestka. Trzeba wymyslec jakis system plikow i napisac prosty kernel a do niego jakies sterowniki... teraz tyle tego sprzetu ... nastepnie jakis interfejs ( shell ) i cos tam jeszcze ... kupa roboty ... jesli tylko w trybie rzeczywistym bo jak chcesz skoczyc w tryb chroniony to sie pojawia masa innych badziewi + moze by jakas wielowatkowosc etc ...

    moze lepiej napisz prosta aplikacje nie wymagajaca OSa i bootowalna z dyskietki
  • #14 1444269
    Inner_Bushman
    Poziom 17  
    Moim pierowotnym założeniem była właśnie napisanie prostej aplikacji, w przyszłości oczywiście można "doleić" obsługę przerwań i udostępnić jakieś funkcje systemowe dla dodatkowych aplikacji. Wtedy bez problemu będzie można to nazwać prawdziwym "OS" :)
REKLAMA