W jakim języku pisze sie systemy operacyjne?

Forum dotyczące ogólnie pojętego programowania - algorytmów, struktur danych, narzędzi programistycznych, itp - głównie w kontekście komputerów PC.
Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 03 mar 2009, 14:00

Pewnie nie jest to bardzo trudne - ale ja Ci w tym nie pomogę.
Spróbuj poczytaćna:
http://www.osdev.org/

Ale z ciekawości zapytam:
Po co chcesz to robić? Bo to taka sztuka dla sztuki trochę...
Nie lepiej skorzystać z gotowego systemu. Taki ms-dos np. załaduje się w 3 sekundy. A ustawienie stanu portu to jedna instrukcja w dowolnym języku... A oprócz tego milion innych możliwości. Przyznam się że ostatnio bawię się dużo dosem. W oparciu o niego buduję sobie takie prawie sprzętowe urządzonko. Ale samemu pisać system opertacyjny :-) Nawet mi to przez myśl nie przeszło...

A jeśli chcesz tylko zapalić diody procesorem to może swojego biosa napisz ?
Bo OS potrzebuje napędu, napęd sterownika, itd... A BIOS wystarczy do eproma wgrać. eproma w podstawkę wcisnąć i voile'a. Goła płyta główna z procesorem powinna wystarczyć. A coś na ten temat to na elportalu można nawet znaleźć:

https://elportal.pl/index.php?module=Co ... y&ceid=427

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 03 mar 2009, 14:03

bsw pisze:Pewnie tak. Dev C++ to środowisko - a kompilator to plik make.exe Zmieniając ten plik na inny lub sterując opcjami kompilacji uzyskuje się inne właściwości pliku wynikowego.
Boże, widzisz to i nie grzmisz :roll: make.exe to żaden kompilator!
Kulpina pisze:I czy łatwo byłoby napisać minisystem operecyjny, który zajął by się powiedzmy zaświeceniem kilku diod jakimś starym procesorem? :mrgreen:
Zadaniem systemu operacyjnego nie jest zaświecanie diod : http://pl.wikipedia.org/wiki/System_operacyjny

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 03 mar 2009, 14:21

Nie no faktycznie sens pisania systemu operacyjnego jest znikomy, ale już wgranie swojego biosu to co innego.
Czy w ogóle możnaby (wiem ze to bezsensu, ale czy moznaby) wykorzystać np. 486, aby sterować stanem jego końcówek? Czy ten procesor sie tak diametralnie różni od avr, że nie da się go "nauczyć", że po wciśnięciu s1 ma kolejno zapalać diody d1-d10?
On potrzebuje pamięci ram, biosu... chipset i grafika chyba nie są potrzebne, bo ja chce go tylko ożywić dla zabawy - uruchomić poza płytą główną :mrgreen: Czy to jest aż tak niemożliwe do zrobienia?

BTW Czy to nie straszne, że celeron 667 mhz jest tańszy niż attiny2313? i to na allegro: http://www.allegro.pl/item571384903_int ... ancja.html

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 03 mar 2009, 15:03

make.exe to żaden kompilator!
Słusznie - użyłem skrótu myślowego - nie chciałem zamieszać ponad miarę.
Make to narzędzie do "kompilacji projektu" która może składać się z wielu etapów m.in
preprocesingu
"kompilacji właściwej"
linkowania
i mnóstwa innych operacji nazywanych w skrócie "kompilacją"
celeron 667 mhz jest tańszy niż attiny2313
Nie jest tańszy !
AVR to kompletne scalone urządzenie - potrzebuje tylko zasilania i to jedego.
A celeron:
- potrzebuje 4 napięć zasilających
- nie ma własnej pamięci operacyjnej (programu ani danych)
- nie ma własnej pamięci nieulotnej
- nie ma układów wejścia wyjścia

Przede wszystkim Procesor komputerowy nie ma "końcowek" tak jak AVR !
On ma magistrale - ściśle określone do czego - na pewnio nie do mrugania diodami :-)
Zresztą w ogóle nie ma porównania.
To tak jakbyś wykazywał wyższość czołgu nad siłownią atomową.
Albo kupił sobie tanio auto do oświetlania podwórka

W ogóle to bez sensu jest to co napisałeś. Myślałem że chcesz zrobić coś ambitnego a Ty wyjechałeś z jakaś ekonomią bez sensu...
Czy to nie straszne
Nie jest to straszne - to bardzo fajne że można tanio kupić pc i zrobić z tego fajne urządzenie. W 1994 roku kupiłem za 27milionów ówczesnych złotych upragiony komputer PC klasy 386DX 40MHZ 4MB ram 200MB hdd i kolorowy vga 60Hz To było coś. Pół roku później dokupiłem jeszcze drukarkę atramentową b&w 300dpi za 11milionów PLN.

A teraz ze starego PC (Pentium 100MHz 64MB RAM 3GB HDD) buduję sobie serwer muzyczny. Coś za co firma ARCAM chce 15tysPLN a mnie to będzie kosztować odrobinę pracy w dostosowanie hardware i software plus 30PLN na nowe części elektroniczne (ceny użytego "złomu komputerowego" nie liczę bo ten zdobyłem gratis) :-)

Ale otwartych drzwi nie wyważam - używam dosa - do zabawy ze starymi kompami to najlepszy system operacyjny. I polecam do zabawy w uruchamianie strego złomu komputerowego.

Z mojej strony EOT.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 03 mar 2009, 16:30

bsw pisze:W ogóle to bez sensu jest to co napisałeś. Myślałem że chcesz zrobić coś ambitnego a Ty wyjechałeś z jakaś ekonomią bez sensu...
Chce stworzyć coś ambitnego. :mrgreen: Chce się pobawić starym procesorem i zmusić go do pracy chociażby przyszło mi zaprojektować samemu połączenia na płycie głównej. Wiem, ze to wyważanie otwartych drzwi, ale można sie przy tym nauczyć wielu ciekawych rzeczy. Taka nauka przez zabawe a nie sama nudna teoria :mrgreen:
Nie chce też wykorzystywac zadnych celeronów, a podałem to tylko tak przy okazji, bo natknąłem się przypadkiem na allegro jak szukałem 486 i 386... :mrgreen:
Czy nie jest tańszy? Owszem nie ma pamięci itd. ale ten procesor swego czasu kosztował kilkaset złotych, a teraz jest wart mniej niż attiny...

MiW
Użytkownik
Posty: 226
Rejestracja: 28 sty 2007, 11:32
Lokalizacja: Kraków
Kontakt:

Post autor: MiW » 03 mar 2009, 16:48

Kulpina, jeżeli chcesz pisać bezpośrednio na sprzęt IBM PC( x86), najpierw powinieneś zostać wielkim wirtuozem czegoś w rodzaju DSM-51(DydaktycznySystemMikroprocesorowy firmy MicroMade). Jest tam procesor 80C51, masz magistrale, pamięci, asembler...
Jest to urządzenie raczej niepraktyczne (nie AVR ;P ), ale pewnych rzeczy nie przeskoczysz. Musisz wiedzieć, co to są szyny danych, adresowanie, jak wykonuje się program.
A jeżeli chcesz prościej, to każdy kernel (jądro) linuksa jest napisany w C, a kody są do pobrania. Taki kernel idealnie nadaje się do mrugania diodami (jedną z jego podstawowych funkcji jest mruganie na kernel panic ;P). Linuks jest na wszystko, od 8051, AVR, przez różne dziwne rzeczy do PCx64.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 03 mar 2009, 17:16

MiW pisze:Linuks jest na wszystko, od 8051, AVR, przez różne dziwne rzeczy do PCx64.
Ciekawe :roll: Z tym 8051 i AVR to bym nie przesadzał. Nawet na większości ARMów Linux (czysty, nie uC) nie pójdize, gdyż wymaga MMU.

Awatar użytkownika
olo16
Użytkownik
Posty: 396
Rejestracja: 12 paź 2007, 16:37
Lokalizacja: w-wa

Post autor: olo16 » 03 mar 2009, 18:15

bsw pisze:A tam gdzie BIOS będzie poszukiwał systemu operacyjnego - to też jest jasno określone w specyfikacji sprzętu. Czyli w określonym sektorze napędu.
Ten sektor ma swoją nazwę - MBR (Master Boot Record). Dla ścisłości: najpierw BIOS sprawdza MBR dysku, w którym jest adres partycjii startowej, a dopiero potem ładuje bootloader z MBR-u tej partycji, ale w tym bootloaderze można zażądać odpalenia systemu z innej partycji.
Kulpina pisze:A jeszcze pytanie: Gdzie mozna znaleźć opis biosu?
W dokumentacji :mrgreen: . A tak serio, to po co ci to? Chcesz system pisać?
Kulpina pisze:I czy łatwo byłoby napisać minisystem operecyjny, który zajął by się powiedzmy zaświeceniem kilku diod jakimś starym procesorem?
Łatwo. Nawet na nowe procesory. Bo AVR-y raczej stare nie są :twisted: . Wystarczy Bascom i programator.

Odpuść sobie. Nie napiszesz systemu, to za trudne. To jak "porywanie się z motyką na słońce".

MiW
Użytkownik
Posty: 226
Rejestracja: 28 sty 2007, 11:32
Lokalizacja: Kraków
Kontakt:

Post autor: MiW » 03 mar 2009, 18:33

radzio, jaki proc, taki i linuks na niego... Przepraszam, myślałem o uClinux, który ma już chyba port na '51

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 03 mar 2009, 19:19

Rzeczywiście linux na avr to dość dziwna sprawa :mrgreen:

Przyznam, zę to DSM-51 brzmi ciekawie, ale cena mnie przeraża :mrgreen:
Czy możnaby na start pobawić sie kompem 8086?
olo16 pisze:Odpuść sobie. Nie napiszesz systemu, to za trudne. To jak "porywanie się z motyką na słońce".
Nawet, jeśli mi sięnie uda mozna sie po drodze wiele nauczyć. Lepsze to niż nic nie robienie :mrgreen:

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 03 mar 2009, 20:02

Kulpina pisze:Przyznam, zę to DSM-51 brzmi ciekawie, ale cena mnie przeraża :mrgreen:
Nie warto. Nawet pominąwszy cenę.
Kulpina pisze:Czy możnaby na start pobawić sie kompem 8086?
A może Z80? To całkiem fajny procsorek z mnóstwem informacji w sieci.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 03 mar 2009, 20:52

Ot i dlatego pisze na forum :mrgreen: Zawsze lepiej jest skorzystać z rady kogoś kto się zna niż samemu wybrać źle ;)

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 03 mar 2009, 21:11

Na Z80 bardzo popularnym i dobrze opisanym systemem był bodaj CP/M. Przynajmniej ja kiedyś w bibliotece miejskiej znalazłem całkiem sporo książek o nim, w których bardzo szczegółowo opisywano jego budowę, i poruszano problem obsługi przez 8-bitowce, pamięci większych niż 64KB, za pomocą stronicowania.
A tak na marginesie wspomniane AVRy nie bardzo nadają się do pisania na nie systemu operacyjnego, ponieważ nie mogą wykonywać kodu programu z RAM, a to istotne w przypadku OSa. Jedynie pozostaje 8051. Dobry programista wykorzystując, jego cechy, w tym 4 zestawy rejestrów roboczych, może się nawet pokusić o próbę pisania prymitywnej wielozadaniowości.
Ostatnio zmieniony 03 mar 2009, 21:43 przez kayron, łącznie zmieniany 1 raz.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 03 mar 2009, 21:42

No to będzie zabawa ;) Jak narazie zaopatrzyłem się w:
http://www.allegro.pl/item565670989_fed ... e_z80.html
już jakiś czas temu, ale czekam na zakonczenie innych aukcji u tego samego gościa. Potem zawsze zostanie internet :mrgreen: a jak narazie przekonałem się, ze ceny starych książek w porówaniu do cześci elektronicznych są bardzo niskie :mrgreen:

aktus
Użytkownik
Posty: 379
Rejestracja: 06 sie 2007, 20:44
Lokalizacja: Tychy

Post autor: aktus » 04 mar 2009, 2:08

Kulpina pisze:Ot i dlatego pisze na forum :mrgreen: Zawsze lepiej jest skorzystać z rady kogoś kto się zna niż samemu wybrać źle ;)
Właśnie jest tek lekko odwrotnie. Jeżeli coś jest w zasięgu twojej ręki, to raczej nierozsądnym by było chociaż spróbować. Nawet jeśli polegniesz podczas programowania, to nie bez walki. A tak? "Nie to za trudne i tego nie ruszam. Poza tym na forum mi tak powiedzieli." Co do rad to owszem. Podczas zgłębiania wiedzy można rad słuchać. Ja dla przykładu mam alergię na wyroby M$ i Jave. Gdzie się da to odradzam. Ktoś inny Billa by całował po piętach. Kto ma rację? Każdy jest inny i każdemu co innego podchodzi.

ODPOWIEDZ