Autor Wątek: Bootsector FAT12 dyskietka 1,44 MiB  (Przeczytany 2225 razy)

akasei

  • Nowy u
  • *
  • Wiadomości: 10
    • Zobacz profil
    • Wataha.net
Bootsector FAT12 dyskietka 1,44 MiB
« dnia: Maj 02, 2013, 15:26:01 »
Napisałem sektor rozruchowy dla nośnika jakim jest dyskietka 3,5" wykorzystując system plików FAT12.

Poniżej zamieszczam pliki do pobrania obrazu dyskietki z w pełni działającym egzemplarzem oraz przykładowym plikiem, który zostanie załadowany przez sektor rozruchowy.

Obraz dystkietki:
http://wataha.net/system/boot/obraz%20dyskietki%20z%20sektorem%20rozruchowym%20fat12.img
Sektor rozruchowy FAT12:
http://wataha.net/system/boot/sektor%20rozruchowy%20fat12.bin
Plik GRUB:
http://wataha.net/system/boot/GRUB

Plik "obraz dyskietki z sektorem rozruchowym fat12.img" możemy uruchomić w oprogramowaniu Bochs, VirtualBox lub Qemu. Jest to czysty system plików + załadowany 'sektor rozruchowy.bin' + skopiowany plik 'GRUB'

Sektor rozruchowy ładuje plik znajdujący się w głównym katalogu systemu plików o nazwie GRUB (nazwa nie jest przypadkowa). Maksymalna dozwolona wielkość pliku GRUB to 475,5 KiB, uzależnione od miejsca w które sektor rozruchowy załaduje plik do pamięci (0x0000:0x9000).

Jestem całkowicie pewien, że ponad 475 KiB w pełni wystarczy na napisanie własnego oprogramowania do skonfigurowania GDT, włączenia linii A20, przełączenia procesora w tryb chroniony oraz załadowanie jądra w miejsce 1 MiB+

PS: Nie działa prawidłowo przycisk URL z panelu pisania postów.

Poprawka 0x1 (1 Maja 2013):
Błąd w sektorze rozruchowym uniemożliwiał załadowanie pliku GRUB większego niż 512 Bajtów. Procedura zapisująca odczytany sektor w 0x0900:0x0000 nie zwiększała segmentu o 200h po umieszczeniu pierwszej partii danych w pamięci. Wynikiem był załadowany ostatni tylko sektor pliku GRUB pod adres 0x0900:0x0000. Naprawione.

Adnotacja 0x01 (2 Maja 2013):
Postęp prac nad plikiem rozruchowym GRUB:
    - odblokowanie linii a20
    - konfiguracja globalnej tablicy deskryptorów (base: 0, limit: 4 GiB, DPL: 0
[kod/dane])
- przełączenie procesora w tryb chroniony
- wyświetlenie informacji o przebiegu prac w trybie rzeczywistym i chronionym[/list]

Adnotacja 0x02 (7 Maja 2013):
Postęp prac nad plikiem rozruchowym GRUB:
    - konfiguracja tablicy deskryptorów przerwań (otrzymane wsparcie w poszukiwaniu błędu przez "mangado" IRC: freenode.net kanał: #osdev.pl)
    - konfiguracja przerwań sprzętowych (stacja dyskietek)
    - przeadresowanie przerwań sprzętowych IRQ0-15 do tablicy deskryptorów w miejsce 0x20h - 0x2F
pozostało:
    - sterownik stacji dyskietek
    - operacja wyszukania i załadowania pliku KERNEL (jądra) do obszaru 1 MiB+
« Ostatnia zmiana: Maj 07, 2013, 11:20:37 wysłana przez akasei »

mangado

  • Nowy u
  • *
  • Wiadomości: 19
    • Zobacz profil
Odp: Bootsector FAT12 dyskietka 1,44 MiB
« Odpowiedź #1 dnia: Maj 12, 2013, 10:14:58 »
pozostało:
- sterownik stacji dyskietek
- operacja wyszukania i załadowania pliku KERNEL (jądra) do obszaru 1 MiB+

ee to tylko ster do fdd w trybie chronionym... :P
i tylko FAT12... no ten chyba będzie prosty bo jajko pewnie będzie w katalogu głównym...

A w jajeczku będzie do zrobienia stronicowanie, managior pamięci, obsługa klawierki, myyyszki, obsługa dysków twardych.
Aaaa, jeszcze kłania się APIC! :D
« Ostatnia zmiana: Maj 12, 2013, 13:12:58 wysłana przez mangado »