ďťż

Ładny brzuch

W jaki sposób musi być napisany program, aby mógł być bootowany podczas startu komputera z nośnika wymiennego?
I jeszcze drugie pytanie, może nie dotyczące programowania, ale nie będę tworzył osobnego tematu: Czy do odpalenia napisanego takiego programu będzie potrzebne napisanie jakiegoś pliku autorun? Czyli coś w typie popularnego "autorun.inf"?



Z tego co wiem to autorun.inf działa tylko pod windą, więc coś takiego odpada...
Może to się przyda?

Musiałbyś program kompilować pod (np.) dosa i odpalać go spod niego ;)

Chodzi Ci o start w sensie, że zaraz po poscie wczyta twój program pod adres 0x0000:0x7c00? Jak tak to nie zrobisz tego w c++. Musisz napisać w asmie krótkiego bootl [512 bajtów]. Musisz umieścić w nim na końcu flagi bootl - bajty 0x55 i 0xAA. Potem najwyżej z poziomu twojego bootl wczytuj reszte z c++. Jak chodzi o taki start to zapomnij jak nie masz cholernie dobrych podstaw z programowania sprzętu.
Użytkownik GimmaSenpai edytował ten post 21 czerwiec 2006, 19:37


Temat zakrawa nieco na pisanie systemów operacyjnych. To już nie tylko chodzi o załdaowanie programu do pamięci w sposób jaki podł kolega wyżej, ale też o zarządzanie pamięcią i wszystkim innym. Wiele mechanizmów musiałbyś napisać sam (np zarządzanie pamięcią przerwaniami, idt.). C++ do tego nie wystarczy.

Można to też zrobić tak jak napisał Cyrkiel. Załadować dosa z dyskietki i podać w autoran.(coś tam) skrót do twojego programu. Po zdaładowaniu DOS'a twój program się uruchomi.
Użytkownik W2K edytował ten post 21 czerwiec 2006, 23:09
Jak chcesz rozprowadzać swój program to MS cię zeżre. Na fata odzyskał niedawno patenty a z dosem to nie wiem czy jeszcze jest ważny według prawa.

Nie napisałeś nic o twoim programie w c++, jaki kompilator, z czego korzysta, itp. Musisz pamiętać, że nie możesz użyć ani win32api, ani żadnego dx, allegro, itp. Ew. przerwań dosowych jeżeli chcesz używać dos'a do załadowania systemu.


Jak chodzi o taki start to zapomnij jak nie masz cholernie dobrych podstaw z programowania sprzętu.
prosty bootloader wcale tak trudno nie jest napisac i nie potrzeba mega hiper znajomosci programowania sprzetu (wystarczy wiedziec jak zaladowac z dyskietki/dysku dane do pamieci oraz znac budowe systemu plikow i tutaj znowu fat mozesz uzywac do wlasnej zabawy, chyba ze chcial bys to juz publikowac to radze sprawdzic co i jak w prawie piszczy, zawsze mozesz skorzystac z typu RAW, czyli zapisywac kolejne sektory dyskietki bez okreslonego systemu plikow)

ponizej link do prostego bootloadera:
http://osdever.net/t...r.php?the_id=85

a ten http://binboy.sphere...dex.php?show=43 moze nie do konca jest zwiazany z twoim postem, ale moze cie zainteresuje jezeli o to wlasnie ci chodzilo ;>

Zrobienie prostego bootl z wczytywanie sektorów z dyskietki to jest kilkanaście linijek kodu. Ale samo wczytanie nic nie daje, trzeba umieć zaprogramować aby dalej coś to robiło ;) A do programu zaawansowanego [wnioskuje, ze musi to być taki skoro jest odpalany po starcie kompa przed osem] trzeba mieć jednak nieco wiedzy o zaprogramowaniu sprzętu.

Nie wiedziałem że taki program, który będzie bootowalny musi potrafić obsługiwać sprzęt. To trudniejsze niż myślałem. Dzięki za informacje.

Nie napisałeś co ma robić ten program więc ciężko określić co on musi umieć robić ;)

przede wszystkim w takim programie nie ma dostępu do wysokopoziomowych funkcji obsługi urządzeń, czyli trzeba w nim zbudować całe potrzebne środowisko np. obsługa systemu plików, ekranu etc.
Lepiej sciągnąć obraz dyskietki startowej z OSem i odpowiednio ją skonfigurować.

W jakimś starszym numerze eksperta były minidystrybucje linuksa, które mieściły się na dyskietce. No i był tam opis jak uruchamiać filmy startując komputer z CD z filmem. Być może to będzie rozwiązanie dla ciebie.


Nie napisałeś co ma robić ten program więc ciężko określić co on musi umieć robić ;)

No tak, istnieją. Są to systemy operacyjne na dyskietkach. Są darmowe wersje dosa, ale w świetle togo, co było napisane wyżej o prawach do systemu fat, to może nie być dobrym rozwiązaniem. Dlatego linux wydaje się lepszym rozwiązaniem.
Wszystkie programy, jakich używałem, a startowały z dyskietki były jednak oparte na dosie :( Co nie znaczy, że nie ma programów wykorzystujących do tego linuxa.

Do programu który opisałeś wystarczy Ci znajomość systemów plików i baardzo dobra przede wszystkim znajomość twojego systemu operacyjnego. O ile fat nie jest trudny to już ntfs to nie jest 15 min roboty. Dla linuksa możesz bezproblemu użyć ext czy reisery. Są na osource bodajże obydwa.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •