Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pisanie Systemu Operacyjnego

Ostatnio zmodyfikowano 2009-01-06 21:02
Autor Wiadomość
lynx
Temat założony przez niniejszego użytkownika
Pisanie Systemu Operacyjnego
» 2008-12-20 21:58:24
Zapewne wielu z was marzyło o tym by napisać właśny system, ja również. :D Myślę, że dobrym pomysłem byłoby to żebyśmy się podzielili informacjami na ten temat.

Większość amatorskich systemów pisana jest w assemblerze, co nie znaczy że nie można pisać ich w C / C++ jednak znajomość assemblera przy pisaniu go będzie bardzo istotna o ile nie najważniejsza. Przykładem systemu napisanego większości w C jest Minix (Wikipedia, Oficjalna Strona). Jest to system Uniksopodobny. Jego jądro  liczy zaledwie ok. 3900 linijek kodu, a cały system zawiera ok. 12 000 kodu. Myślę, że dlatego iż jest napisany w C, i kod liczy nie wiele warto będzie wspomnieć, że jego źródła są otwarte. Z wiązku z tym że bazuje on na licencji BSD, to można spokojnie jego kod pobrać, zedytować, a nawet zedytowany kod zamknąć pod warunkiem, że umieścimy informacje o oryginalnych autorach i licencji BSD. Uważam że jego kod będzie dobrym materiałem do nauki pisania całkowicie własnego systemu, i zachęcam do pobrania i spróbowania swoich sił w edycji.

Dla chcących pisać swój własny OS od podstaw myślę, że istotną informacją będzie to, że nie można tak odrazu używać standardowych bibliotek C++ (np. iostream>. Używać ich możemy pod warunkiem, że nasz OS będzie obsługiwał tak samo system przerwań jak system pod którym będziemy kompilować.

Podzielcie się swoją informacją na ten temat, i życzę powodzenia w pisaniu własnego OS-a. ;)
P-2878
Turbo
» 2008-12-21 12:58:50
ciekawa strona na temat pisaniu systemu operacyjnego:
http://osdev.org/
Może wspólnie spróbowaliśmy napisać system operacyjny?
P-2879
lynx
Temat założony przez niniejszego użytkownika
» 2008-12-21 14:06:35
Cóż pomysł nie jest zły, jednak ja nieznam Assembler-a, a jego znajomość  z tego co mi wiadomo jest bardzo ważna. Po za tym to jest nie lada wyzwanie, trzeba napisać stery do procka, grafiki, klawiatury itp. Do tego potrzebne jest duże doświadczenie, choć może małego DOS-a dałoby rade napisać. Przydałaby się osoba która już kiedyś coś takiego robiła i zna się mniej więcej na tym. :)

Turbo ty znasz Assembler-a?
Jakby co to ja jestem w miarę chętny podjąć współpracę. :D
P-2880
geftus
» 2008-12-21 14:36:46
Znalazłem kurs Os'a. Oczywiście wymagany Asembler i potem C / C++.
Tu stronka: http://www.osprogramming.webpark.pl/kurs.html
P-2881
lynx
Temat założony przez niniejszego użytkownika
» 2008-12-21 14:45:01
Fajnie, przyda się zwłaszcza, że jest po Polsku. :)

/edit1:
http://www.haksior.com/kurs-pisania-os-czesc-i-90.html do 3 częściowego kursu pisania własnego OS-a. Tak samo najpierw Assembler, później C.
P-2882
Turbo
» 2008-12-21 22:25:24
Asemblera nie znam, lecz można to nadrobić.
P-2886
lynx
Temat założony przez niniejszego użytkownika
» 2008-12-21 22:37:04
Podobno bez Assemblera da się obejść. Można całość napisać w C/C++ tylko bootloader i parę wstawek napisać w Assemblerze. Ja bootloader mam(GRUB) więc i bez jego pisania( w moim przypdaku) się obejdzie. :)
P-2887
DejaVu
» 2008-12-22 00:08:39
Hm... po dyskusji z Pietrzuchem na GG postanowiłem zabrać swój głos. Z tego co się zorientowałem to ideą Pietrzucha jest napisanie OS'a, który nie będzie ani drugim Windowsem ani drugim Linuxem. Szczerze mówiąc jak ja swego czasu chciałem pisać własny system operacyjny miałem taką samą ideę... Przytoczę tutaj cytat z rozmowy z GG:
cos calkiem nowego nie bazującego ani na linuxie ani na windowsie
Zanim się zabierzecie za pisanie systemu operacyjnego, proponuję się najpierw zorientować jak zbudowany jest system Windows i Linux (lista dla obu systemów cech charakterystycznych). Następnie zobaczyć jakie są możliwe warianty rozwoju własnego systemu. Idąc własną drogą należy pamiętać o tym, że nie ma do niego kompletnie żadnego narzędzia (nawet edytora tekstowego) i żadna aplikacja ani windowsowa ani linuxowa ani dosowa nie zadziała na Twoim systemie operacyjnym. Żaden program skompilowany pod windowsem ani żaden program skompilowany pod linuxem nie zadziała. Nie będziesz miał kompilatora C++ do aplikacji własnych tylko i wyłącznie assembler'a do dyspozycji. Wszystkie aplikacje będziesz musiał pisać w assemblerze jeżeli swojego systemu nie będziesz upodabniał do Unixa/Linuxa/Windows'a. Inną opcją będzie napisanie własnego kompilatora C++ w assemblerze dla własnego systemu operacyjnego. Warto też się zastanowić co ze sterownikami do urządzeń peryferyjnych takich jak karta graficzna, dźwiękowa, sieciowa i nie wspominając już o tym, że dobrze by było mieć możliwość obsługi OpenGL'a.

To jest taka moja drobna refleksja nie wgłębiająca się w szczegóły. Warto popisać system operacyjny jeśli chcesz zdobyć jakieś doświadczenie czy też wiedzę, jednak zanim się podejmiesz tego działania dobrze będzie, jeśli będziesz świadom w 100% tego co robisz, czyli dążysz do zdobycia wiedzy i zmierzenia się z samym sobą, a prawdopodobieństwo sukcesu projektu (ukończenia) jest bliskie zeru. Jedynym celem jaki powinien każdy z Was mieć postawiony to zdobycie wiedzy obierając taki kierunek jaki przedstawił mi Pietrzuch. Warto jednak tutaj zaznaczyć, ze korzystając z gotowego bootloader'a z praktycznego punktu widzenia tracisz najcenniejsze informacje jakie można zdobyć przy pisaniu systemu operacyjnego - mianowicie jak to działa.
P-2888
« 1 » 2
  Strona 1 z 2 Następna strona