• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Systemy operacyjne - języki

Object Storage Arubacloud
+2 głosów
1,307 wizyt
pytanie zadane 26 lutego 2016 w Systemy operacyjne, programy przez Eliro Stary wyjadacz (12,160 p.)
Cześć,

 

Ponieważ Windows i dystrybucje Linuxa mają swoje wady i zaleta, w mojej głowie powstała koncepcja - a gdyby tak samemu stworzyć własny system operacyjny oparty o jądro Linux. Wywnioskowałem z kodu źródłowego, że język C jest wymagany oraz asembler. Czy to mi wystarczy? Jakie według was języki najlepiej nadają się do tworzenia systemu operacyjnego? I w jaki sposób się to robi - strona techniczna(w czym pisać kod, tworzenie obrazu .iso itp)?

Jak powstają systemy operacyjne na telefon? Czy to wygląda tak samo, jak na komputery?

Nie mam zamiaru się za to zabierać, a przynajmniej nie samemu, ale nie ukrywam jednak, że bardzo mnie to interesuje i chciałbym w przyszłości ewentualnie dołączyć do jakiegoś projektu.

3 odpowiedzi

+2 głosów
odpowiedź 26 lutego 2016 przez Dash Nałogowiec (29,650 p.)
wybrane 17 października 2018 przez Eliro
 
Najlepsza
Pobierasz Minixa 3.0, do niego jest też książka z szopami praczami na okładce, rozkładasz go na czynniki pierwsze i patrzysz jak działa analizując razem z książką (bardzo przyjemnie napisana, polecam). Potrzebujesz tylko Assembly i C / C++. Jeżeli chcesz iść w stronę Unixa to dalej bawisz się z jądrem Linuxa albo np. BSD, jeżeli w stronę architektury NT to ReactOS. Reszty się dowiesz po drodze. Tak po 2-3 latach analizy kodu źródłowego tych systemów rozjaśni Ci sie jak tworzone są systemy mobilne etc. na forum nikt Ci raczej biblii na kilka tysięcy stron nie trzaśnie.
komentarz 26 lutego 2016 przez draghan VIP (106,230 p.)
Gdzieś tu krąży autor OSa, więc może i trzaśnie. ;D
komentarz 26 lutego 2016 przez Dash Nałogowiec (29,650 p.)
komentarz 26 lutego 2016 przez draghan VIP (106,230 p.)
To się uśmiałem, już po pierwszym poście. :'D A na razie jestem na piątej stronie. :D
komentarz 26 lutego 2016 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Haha Dash miałem to wkleić ;D

No tak się składa że ja się tym dość interesuję i powoli jakieś gówno się z tego skleca :) Nic specjalnego, tu chodzi o naukę architektury przede wszystkim.
komentarz 26 lutego 2016 przez Dash Nałogowiec (29,650 p.)
Też mnie ta tematyka interesuje, i rozgryzam właśnie minixa. Jednak jeszcze duuuużo wody upłynie zanim cokolwiek własnego napisze. Narazie chyba zostane przy klepaniu apek na mobilne, trochę doświadczenia żeby nabrać.
komentarz 26 lutego 2016 przez jpacanowski VIP (101,940 p.)

To z tym Wyder to jeszcze nic. To jest dopiero perełka...
https://forum.4programmers.net/Spolecznosc/Perelki/154290-Pioneer.OS_-_Wyder_Reaktywacja

Dwóch piętnastolatków... Były nawet ich fotki na ich stronie teamu ;D

+2 głosów
odpowiedź 26 lutego 2016 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Od razu mówię że zrobienie najprostszego OS jest możliwe i wcale nie należy do najtrudniejszych rzeczy. Natomiast pamiętaj, że jądro Linuksa ma ok 17 milionów linii kodu (a może i więcej). Odnalezienie się w nim nie należy do najprostszych czynności :)

Ale na 99.99% samemu nie zrobisz systemu lepszego od Linuksa (Od windowsa - pewnie laugh [żarcik]). Linuks ma w tym roku 25 lat, a w tym czasie do jego rozwoju dołączało się coraz to więcej programistów, także może być z tym biednie. Ale najprostszy system można jak najbardziej zrobić (o czym się sam niedawno przekonałem) i nie jest to jakieś specjalnie trudne czy mega czasochłonne (jeśli to coś można w ogóle nazwać systemem operacyjnym ;D)

+2 głosów
odpowiedź 26 lutego 2016 przez jpacanowski VIP (101,940 p.)
edycja 26 lutego 2016 przez jpacanowski

Moim zdaniem, bez sensu tworzyć "własny" system operacyjny oparty o jądro Linux. W ten sposób nie wiele się nauczysz. Na dodatek, jego kod to burdello bum bum - piszą go specjaliści i tylko oni są w stanie w większości ten kod zrozumieć - kod jest po wielu optymalizacjach i ciężko go zrozumieć.

Najlepszym kodem OSa do nauki jest Minix, obecnie wersja 3.0. Ten system właśnie w tym celu powstał, dlatego jego kod jest przejrzysty i wszędzie znajdziesz komentarze w jego kodzie.

Innym OSem którego kod mogę polecić to FreeBSD. Rozwija go 9 programistów, tzw. Core Team, stąd nie ma takiego bałaganu w kodzie, no i kod jest bardziej przemyślany.

Polecam samemu całkowicie od zera stworzyć jakieś własne mikrojądro. W ten sposób na prawdę się więcej nauczysz. Nic tobie nie da takiej satysfakcji jak zaprogramowanie trybu video i wyświetlenie jakiegoś napisu, zaraz po wejściu do trybu chronionego. A następnie managera pamięci oraz managera zadań i odpalenie swojego własnego pierwszego procesu. Ta wiedza którą zdobędziesz na prawdę przyda się tobie w życiu jako programista, nawet jakbyś miał potem tworzyć tylko i wyłącznie aplikacje po stronie użytkownika czy gry.

Najlepszym językiem który nadaje się do pisania systemów jest język C, gdyż jest to najszybszy język zaraz po asemblerze i daje tobie możliwość bardziej niskopoziomowego programowania. Asemblera używa się tylko tam, gdzie trzeba napisać jak najszybszy kod, albo też wtedy kiedy w języku C jest to po prostu nie możliwe. Samego asemblera w jądrze Linux jest około 10% ze względu na przenośność kodu.

W języku C jest napisany Linux, *BSD, Windows, ale są też systemy napisane całkowicie tylko w asemblerze jak MenuetOS czy KolibriOS. Co do C++, jest w nim napisany np. Haiku. Jakiś czas temu powstał nowoczesny system operacyjny OSv, napisany w języku C++11.

Polecam książkę Systemy operacyjne autora Andrew S. Tanenbaum'a, twórcy Miniksa. Dokładnie poznasz budowę i zasadę działania systemów operacyjnych operając się na kodach różnych systemów, m.in. Linux, Minix, Windows. Niestety książka ma tylko 1136 stron i po jej przeczytaniu można mieć pewien niedosyt. Ale i tak jest to największa książka jaką mam na półce.

Tutoriale OSDev:

https://pl.wikibooks.org/wiki/Pisanie_OS
http://archiwum.lukaszsowa.pl/tag/osdev/
http://osdev.labedz.org/

http://www.brokenthorn.com/Resources/OSDevIndex.html
http://www.jamesmolloy.co.uk/tutorial_html/
https://littleosbook.github.io/

komentarz 26 lutego 2016 przez Dash Nałogowiec (29,650 p.)
Jako ciekawostka: Spotkałem się z nazywaniem C "przenośnym Assemblerem".

Popraw mnie jeżeli się myle, ale większość asma siedzi chyba w HAL-u? W sumie ciekawe mogłobybyć wykorzystać do uzupełnienia go zamiast sztampowego C np. D. Zarówno DMD jak i GDC produkują bardzo wydajny kod wyjściowy. Nie znam się na tym za dobrze, więc to tylko gdybanie, ale możliwe że obiektowość i rozwinięte metaprogramowanie mogłyby bez znacznego rzutowania na wydajność i stabilność zdecydowanie ułatwić pracę, na praktycznie każdym poziomie. No i byłaby to jakaś kropla innowacji.
komentarz 26 lutego 2016 przez jpacanowski VIP (101,940 p.)
komentarz 26 lutego 2016 przez Dash Nałogowiec (29,650 p.)
Dzięki. W sumie mogłem sprawdzić w google zanim zacząłem pleść mądrości. Cóż, zawsze zostaje Pascal :)
komentarz 15 marca 2016 przez Eliro Stary wyjadacz (12,160 p.)
Szkoda, że książka jest taka droga, a ja nie mogę jej pobrać w pdf ani obejrzeć online :/

Podobne pytania

0 głosów
0 odpowiedzi 135 wizyt
0 głosów
1 odpowiedź 239 wizyt
pytanie zadane 20 czerwca 2020 w C i C++ przez Oskardes Użytkownik (600 p.)
0 głosów
2 odpowiedzi 236 wizyt
pytanie zadane 8 sierpnia 2020 w Systemy operacyjne, programy przez Dziedzic Obywatel (1,180 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...