Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Super-duber zaawansowany program uruchamiający sie z poziomu biosu


Gość

Rekomendowane odpowiedzi

Opublikowano

Tak że ten, liczyłbym na sensowne odpowiedzi, a nie na te typu, nooo bo wiesz, musisz dobrze poznać dany język progra... :)

 

.

.

.

Przechodząc do sedna, jestem ciekaw jak wykonać ustrojstwo, co odpalało by się jako coś w rodzaju 'boot loadera', w każdym razie nie z poziomu systemu, a raczej biosu - język mi dowolny, jestem wytrwałym człowiekiem, 200 stron dokumentacji mi nie straszne, tylko że ten... jak sie za to zabrać? w jakim języku? Mógłbym prosić o porady?

 

chociaż pewnie znając te forum żadnej konkretnej rady nie dostane xD

Opublikowano

BIOS uruchamia kod znajdujący się na pierwszym sektorze dysku. Pierwszy sektor (czyli bajty 0-512) to bootloader. http://prntscr.com/dmzyl5

Jeżeli ostatnie dwa bajty owego sektora to 0x55 0xAA, wtedy BIOS uznaje dysk za bootowalny, wczytuje ten pierwszy sektor do pamięci (adres 0x0000:0x07C0) i skacze do niego. (w przeciwnym razie wyrzuca błąd)

Kod znajdujący się w pierwszym sektorze jest uruchamiany w 16-bitowym trybie rzeczywistym (real mode). Następnie... no cóż, następnie używamy przerwań BIOSu, aby wczytać dalsze sektory naszego bootloadera (bo oczywiście zająć może więcej niż jeden sektor), ewentualnie włączamy sobie 32-bitowy tryb chroniony (protected mode). Przednia zabawa.

 

https://www.codeproject.com/articles/664165/writing-a-boot-loader-in-assembly-and-c-part

https://www.codeproject.com/articles/668422/writing-a-boot-loader-in-assembly-and-c-part

http://www.brokenthorn.com/Resources/OSDevIndex.html

http://wiki.osdev.org/Main_Page

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...