W jakim języku został napisany np. dos? Bo wcześniej przd nim chyba za wiele nie było a jakoś nie wyobrażam sobie, żeby ktoś wklepywal kolejne 0 i 1
W jakim języku pisze sie systemy operacyjne?
W jakim języku pisze sie systemy operacyjne?
Jak się zapewne domyślam, to jakiś asembler albo cos podobnego, ale jak się to kompiluje i wgrywa? Są do tego kompilatory, które mozna gdzieś dostać?
W jakim języku został napisany np. dos? Bo wcześniej przd nim chyba za wiele nie było a jakoś nie wyobrażam sobie, żeby ktoś wklepywal kolejne 0 i 1
W jakim języku został napisany np. dos? Bo wcześniej przd nim chyba za wiele nie było a jakoś nie wyobrażam sobie, żeby ktoś wklepywal kolejne 0 i 1
Oj ta, ta ;p Windows jest w większości napisany w C (bez plusów).olo16 pisze:Nie ta epoka. Teraz rządzi C++, nikomu nie chce się babrać w asssemblerze - pomyśl jakie skomplikowane są systemy operacyjne, a zrozumiesz.
System operacyjny to nie, jak mogłoby się wydawać na pierwszy rzut oka, Aero czy Compiz Fusion. Bez asemblera (chociażby w postaci wstawek) trudno byłoby stworzyć wydajny kernel systemu operacyjnego. Istnieją co prawda systemy pisane w C# czy też w Javie, ale to raczej taka "sztuka dla sztuki".
Jeśli chodzi o Windows to C++radzio pisze: Oj ta, ta ;p Windows jest w większości napisany w C (bez plusów).
http://research.att.com/~bs/applications.html
Od pradawnych czasów w każdej dziedzinie techniki obowiązuje ta sama zasada - za pomocą prymitywnego narzędza można stworzyć bardziej dokładne. I tak kamiennym młotkiem zrobiono pierwszy metalowy. A pierwszy kompilator konsolowy assemblera pewnie "ręcznie" przygotowanona na karcie perforowanej... 
BTW:
Przed DOS'em było mnóstwo innych systemów operacyjnych. Jego bezpośrednim protoplastą był CP/M
BTW:
Przed DOS'em było mnóstwo innych systemów operacyjnych. Jego bezpośrednim protoplastą był CP/M
Podstawowa kwestia:
Kompilator nie musi pracować na platformie na którą kompiluje.
Kompilator to program który zamienia tekstowy kod określonego języka w kod maszynowy wg. określonych reguł. Wynikiem kompilacji jest plik binarny który następnie przenosi się na docelowe urządzenie. W ten sposób tworzy się oprogramowanie dla większości urządzeń sprzętowych - chociażby dla popularnych oststnio mikrokontrolerów AVR.
I w podobny sposób przygotowuje się systemy operacyjne nowszej generacji, czy na nowsze platformy sprzętowe !
Nic nie stoi na przeszkodzie aby stworzyć kompilator który jest w stanie wyprodukuwać kod dla Windows64 na 16 bitowym komputrze 386SX
Kompilator nie musi pracować na platformie na którą kompiluje.
Kompilator to program który zamienia tekstowy kod określonego języka w kod maszynowy wg. określonych reguł. Wynikiem kompilacji jest plik binarny który następnie przenosi się na docelowe urządzenie. W ten sposób tworzy się oprogramowanie dla większości urządzeń sprzętowych - chociażby dla popularnych oststnio mikrokontrolerów AVR.
I w podobny sposób przygotowuje się systemy operacyjne nowszej generacji, czy na nowsze platformy sprzętowe !
Nic nie stoi na przeszkodzie aby stworzyć kompilator który jest w stanie wyprodukuwać kod dla Windows64 na 16 bitowym komputrze 386SX
Dokładnie tak!procesor 32bity
procesor 64bity
Reguły kompilacji muszą być określone na początku. Też kiedyś tego nie kumałem
Ja zaczynałem programać z początkiem lat 90-tych. Ale już były środowiska zintegrowane. Ja zaczynałem od środowiska Turbo Pascal 6. Pamiętam przesiadkę na pakiet Borland Pascal 7.0. Byłem w szoku gdy w opcjach tekstowego środowiska zintegrowanego pracującego w trybie rzeczywistym procesora w DOS odkryłem opcję "Target platform" gdzie można było ustawić: Windows. Czyli w konsolowym programie dosywym można było kompilować aplikacje pod Windows ! (Wtedy to była wersja 3.0
Uprzedzając pytanie: A co jeśli jeszcze nie ma kompilatora? A pisze się wtedy kompilator. Bo kompilator to tylko zwykły program który zamienia plik tekstowy na binarny. I kompilator dla Linuxa można napisać w turbopascalu dla dosa. Bo to tylko zwykły program ktory umie zapisywać plik binarny. Żadnych czarów tutaj nie ma. Wystarczy znać strukturę pliku docelowego... Czyli reguły tej zamiany. Nic więcej.
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.
Podstawową umiejętnością systemu operacyjnego dla platformy PC musi być umiejątność współpracy z BIOS. Te reguły są jasno określone w specyfikacji sprzętu. Więc przygotowanie kompilatora nie stanowi problemu. Gdzie to później wgrać? 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. Którego - a to już w biosie się ustawia. Chociaż niekoniecznie...
Po starcie PC Bios wg. ustawionej sekwencji przesukuje określone napędy i sprawdza czy to co tam znajduje posiada sygnaturę wskazującą na bycie systemem operacyjnym. Sam system może być całkiem gdzie indziej - ważne aby w tym miejscu gdzie BIOS będzie szukał systemy było coś co przekieruje BIOS w określone miejsce - tak działają tzw boot loadery.
To programy udające dla BIOS'a system operacyjny przez co ten je uruchamia tak jakby uruchamiał OS
Tak to mniej więcej wygląda...
Podstawową umiejętnością systemu operacyjnego dla platformy PC musi być umiejątność współpracy z BIOS. Te reguły są jasno określone w specyfikacji sprzętu. Więc przygotowanie kompilatora nie stanowi problemu. Gdzie to później wgrać? 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. Którego - a to już w biosie się ustawia. Chociaż niekoniecznie...
Po starcie PC Bios wg. ustawionej sekwencji przesukuje określone napędy i sprawdza czy to co tam znajduje posiada sygnaturę wskazującą na bycie systemem operacyjnym. Sam system może być całkiem gdzie indziej - ważne aby w tym miejscu gdzie BIOS będzie szukał systemy było coś co przekieruje BIOS w określone miejsce - tak działają tzw boot loadery.
To programy udające dla BIOS'a system operacyjny przez co ten je uruchamia tak jakby uruchamiał OS
Ano to już ciekawiej
A jeszcze pytanie: Gdzie mozna znaleźć opis biosu? Na allegro jest troche ksiażek, ale jakoś wyglądają mi na takie, które mają służyć opisowi poszczególnych funkcji, do których mamy dostęp po wejściu do biosu
I czy łatwo byłoby napisać minisystem operecyjny, który zajął by się powiedzmy zaświeceniem kilku diod jakimś starym procesorem?
I czy łatwo byłoby napisać minisystem operecyjny, który zajął by się powiedzmy zaświeceniem kilku diod jakimś starym procesorem?