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

Czy można napisać bootloader w c++ bądź w c?

Object Storage Arubacloud
0 głosów
1,249 wizyt
pytanie zadane 22 czerwca 2015 w C i C++ przez zmiennoimienny Mądrala (5,540 p.)
Witam ;)
Chciałbym czysto teoretycznie zapytać czy można napisać bootloader w C++ bądź c?
Chociażby za pomocą wstawek assemblerowych?

1 odpowiedź

+6 głosów
odpowiedź 22 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)
wybrane 23 czerwca 2015 przez Eryk Andrzejewski
 
Najlepsza
Oczywiście, jeśli znajdziesz pare fajnych opcji kompilatora, to da radę. Warto by np. wyłączyć wkompilowywanie biblioteki standardowej niestety nie pamiętam, co to za opcja była w gcc. Jednak MBR, czyli pierwsze 512 bajtów bootloadera będzie bardzo ciężko ze względu na ograniczenie rozmiaru, kombinacje z rejestrami segmentowymi i sygnatury na końcu sektora. Lepiej, aby MBR oprogramowany w asmie doładowywał sobie z dysku potrzebne segmenty, które były pisane w C.

Nie wiem też, jak z kodem 16-bitowym jest w kompilatorach, bo ja miałem problem z uzyskaniem go, ale pewnie da radę, a jak nie, to kod w MBR może przeżucić procka w tryb 32-bitowy.

Prawdopodobnie z pisaniem w C++ (mam na myśli objektowość) również byłby problem, bo objekty wymagają operatora "new", który tak naprawdę robi trochę magii i wywołuje maloc() z C, a we wczesnej fazie włączania komputera jaką jest kod bootloadera takie wysokopoziomowe API jak ochrona pamięci żadko kiedy jest osiągalne. Raczej implementuje to OS. Ewentualnie można by to symulować zwracając wskaźnik do jakiegoś wolnego miejsca w pamięci, ale czy ma to sens?
komentarz 23 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)

Niestety nie znam żadnego dobrego kursu nt. pisania bootloadera, ale pewolt znalazł nie najgorszy materiał. Sam korzystam czasem z tych stronek:

https://pl.wikibooks.org/wiki/Pisanie_OS

http://skowi_magik.republika.pl/index.html

Mogę polecić też książki:

"Turbo Assembler Biblia użytkownika" Garego Sycka

Trzeci tom dokumentacji Intela - tego tomu jeszcze nie czytałem, ale patrząc na sam spis treści mogę powiedzieć, że znajdziesz tam dużo.

Samo pisanie bootloadera nie wiele się różni od pisania prostego systemu w stylu DOS'a. Tak na prawdę różni się to tylko celem. Bootloader ma załadować OS, a OS ma robić to, co chce użytkownik. Myślę, że pisanie OS (16-bit) nauczy cię pisania bootloadera. Musisz tylko pamiętać, w kodzie o tej magii: org 7C00h (bootloader nie jest ładowany pod zerowy adres, ale właśnie pod ten)

Oczywiście warto znać, chociaż podstawy asemblera, bo inaczej ograniczysz się do Ctrl-C Ctrl-V, oraz zaznajomić się z podstawami działania sprzętu, ale to raczej większość poradników objaśnia w wystarczającym stopniu.

komentarz 23 czerwca 2015 przez pewolt Mądrala (5,790 p.)
jestes jdna z nie wielu osob ktore napisaly moj nick poprawnie :D
komentarz 23 czerwca 2015 przez hit02 Nałogowiec (33,970 p.)

Dzięki. laugh<12 znaków>

komentarz 23 czerwca 2015 przez pewolt Mądrala (5,790 p.)
mialem kiedys nick pawelot ale w pewnych okolicznosciach to sie zmienilo na pewolt

a dokladniej podczas treningu w pewnej grze https://www.youtube.com/watch?v=3_wWuHSFGCo
komentarz 28 września 2017 przez Ingmar Nowicjusz (100 p.)
>>Hm... Znasz może jakiś dobry kurs pokazujący jak takowy bootloader napisać?<<

Dobry przewodnik prowadzący krok po kroku na temat jak napisać bootloader znajduje się tu: http://tomaszpluta.aq.pl/bootloader_stm32.html

Przykład dotyczy architektury 32 bitowej (stm32), ale temat omówiony jest na tyle przystępnie, że nawet w przypadku innych zastosowań pozwoli zrozumieć o co w tym chodzi.

Podobne pytania

0 głosów
0 odpowiedzi 348 wizyt
pytanie zadane 29 listopada 2020 w Systemy operacyjne, programy przez wz7475 Początkujący (360 p.)
0 głosów
0 odpowiedzi 133 wizyt
pytanie zadane 4 listopada 2018 w Urządzenia mobilne przez ebo96rok Bywalec (2,980 p.)
+1 głos
3 odpowiedzi 612 wizyt
pytanie zadane 20 września 2018 w Systemy operacyjne, programy przez Olinek Nowicjusz (210 p.)

92,632 zapytań

141,502 odpowiedzi

319,882 komentarzy

62,015 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!

...