Thread View: pl.comp.lang.asm
19 messages
19 total messages
Started by Pietruch
Tue, 19 Jun 2007 07:17
Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Tue, 19 Jun 2007 07:17
Date: Tue, 19 Jun 2007 07:17
84 lines
2894 bytes
2894 bytes
Zainteresowałem się ostatnio pisaniem systemów operacyjnych, ale moją
specjalnością jest WWW(HTML, CSS i PHP). Znam podstawy assemblera i C/C
++ w takim stopniu żeby użyć to jako język pierwszorzędny przy pisaniu
OS'a(oczywiście bez asm'a się nie obejdzie). Z pomocą jakiegoś
artykułu wykombinowałem coś takiego:
boot.asm:
org 7C00h
start:
mov ah, 2
mov al, 10
mov ch, 0
mov cl, 2
mov dh, 0
mov bx, 0800h
mov es, bx
xor bx, bx
int 13h
jmp 0800h:0000h
times 510 - ($ - start) db 0
dw 0AA55h
EOF;
kernel.asm:
mov ah, 9
mov al, '='
mov bx, 7
mov cx, 10
int 10h
hang:
jmp hang
EOF;
Skompilowałem Nasm'em, i zlinkowałem prymitywnym linkerem
zamieszczonym w kursie
Merge.pas:
program zlacz;
{$APPTYPE CONSOLE}
var
final, f: file of byte;
buf, q: byte;
begin
if (paramcount < 3) then
writeln('uzycie: zlacz ')
else begin
assignfile(final, paramstr(paramcount));
rewrite(final);
for q := 1 to paramcount -1 do begin
writeln(paramstr(q));
assignfile(f, paramstr(q));
reset(f);
while not eof(f) do begin
blockread(f, buf, sizeof(buf));
blockwrite(final, buf, sizeof(buf));
end;
closefile(f);
end;
closefile(final);
writeln('Gotowe!!!');
end;
end.
EOF;
I ręcznie dopełniłem zerami (zaraz napiszę w c++ prosty program ktory
automatycznie dopełni)
Odpaliłem za pomocą M$ Virtual PC no i pusty ekran. Oznacza to, że
wykrył bootloadera, ale jakoś nie ma znaku '=' który powinien się
wyświetlić. Nie jestem pewien czy załadował kernela i wpadł w pętlę,
czy kernel wogóle się nie załadował
Proszę o pomoc!
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Bogdan (bogdro)
Date: Tue, 19 Jun 2007 10:21
Date: Tue, 19 Jun 2007 10:21
107 lines
3909 bytes
3909 bytes
Pietruch pisze: > Zainteresowałem się ostatnio pisaniem systemów operacyjnych, ale moją > specjalnością jest WWW(HTML, CSS i PHP). Znam podstawy assemblera i C/C > ++ w takim stopniu żeby użyć to jako język pierwszorzędny przy pisaniu > OS'a(oczywiście bez asm'a się nie obejdzie). http://rudy.mif.pg.gda.pl/~bogdro/dos/boot_tut.htm > Z pomocą jakiegoś > artykułu wykombinowałem coś takiego: > > boot.asm: > > org 7C00h > > start: > mov ah, 2 > mov al, 10 > mov ch, 0 > mov cl, 2 > mov dh, 0 > mov bx, 0800h > mov es, bx > xor bx, bx Nieustawione DL. Jeśli zawiera coś innego niż 0, czytanie następuje z niewłaściwego napędu. Jak nie podziała, spróbuj odczytać najpierw jeden sektor (numer 2). > int 13h jc error ; zawsze sprawdzać, czy wystąpił błąd > jmp 0800h:0000h error: mov ah, 0eh mov al, 'E' int 10h jmp error > times 510 - ($ - start) db 0 > dw 0AA55h > > EOF; > > kernel.asm: > > mov ah, 9 > mov al, '=' > mov bx, 7 > mov cx, 10 > int 10h > hang: > jmp hang > > EOF; > > Skompilowałem Nasm'em, i zlinkowałem prymitywnym linkerem > zamieszczonym w kursie Ten program łączy 2 pliki, jeśli dobrze widzę. Powinien wystarczyć. W razie wątpliwości copy plik1+plik2 wynik (jeśli dobrze pamiętam składnię) Ewentualnie można dokleić źródło kernela do bootsektora (zachowując sygnaturę i wypełenienie do 510 bajtów) i skompilować na raz oba do jednej binarki. > I ręcznie dopełniłem zerami (zaraz napiszę w c++ prosty program ktory > automatycznie dopełni) Do wielokrotności 512? Dobrze. Swoją drogą można byłoby pomyśleć, czy sam kompilator sobie z tym nie poradzi. Szybki test potwierdza, że tak. Kod start: lea eax, [eax+ebx*8+11223344h] times (512-($-start) % 512-2) db 0 dw 0aa55h Kompiluje się do 512 bajtów mimo 9-bajtowej instrukcji LEA. Jedna uwaga: po znaku % musi być spacja. ($-start) % 512 to długość kodu modulo 512, czyli tyle, ile wystaje ponad poprzednią 512-bajtową granicę. Modulo jest tu kluczowe. W bootsektorze jest niepotrzebne. 512 - ($-start) % 512 to tyle, ile brakuje do następnych 512 Odjęcie 2 dopełnia do 510. Oczywiście w jądrze można pominąć sygnaturę, więc odejmowanie 2 jest niepotrzebne. Dopóki jąderko jest pisane w asemblerze, można używać tej sztuczki. > Odpaliłem za pomocą M$ Virtual PC no i pusty ekran. Oznacza to, że > wykrył bootloadera, ale jakoś nie ma znaku '=' który powinien się > wyświetlić. Nie jestem pewien czy załadował kernela i wpadł w pętlę, > czy kernel wogóle się nie załadował Raczej to drugie. -- Pozdrawiam - Bogdan (Linux i FreeDOS) Kurs asemblera x86 (DOS i Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Kicer
Date: Tue, 19 Jun 2007 16:14
Date: Tue, 19 Jun 2007 16:14
43 lines
2053 bytes
2053 bytes
Bogdan (bogdro) wrote: > Pietruch pisze: >> Zainteresowałem się ostatnio pisaniem systemów operacyjnych, ale moją >> specjalnością jest WWW(HTML, CSS i PHP). Znam podstawy assemblera i C/C >> ++ w takim stopniu żeby użyć to jako język pierwszorzędny przy pisaniu >> OS'a(oczywiście bez asm'a się nie obejdzie). > > http://rudy.mif.pg.gda.pl/~bogdro/dos/boot_tut.htm > >> Z pomocą jakiegoś >> artykułu wykombinowałem coś takiego: >> >> boot.asm: >> >> org 7C00h >> >> start: >> mov ah, 2 >> mov al, 10 >> mov ch, 0 >> mov cl, 2 >> mov dh, 0 >> mov bx, 0800h >> mov es, bx >> xor bx, bx > > Nieustawione DL. Jeśli zawiera coś innego niż 0, czytanie następuje z > niewłaściwego napędu. Jak nie podziała, spróbuj odczytać najpierw > jeden sektor (numer 2). > bios sam ustawia dl na urządzenie z którego ruszył kompa;) a do autora: zaopatrz sie w bochsa http://bochs.sf.net pozwala na analizę krok po kroku wykonywanych rozkazów, mozesz podglądac dowolnie pamięć i rejestry. na mojej stronie tez parę przydatnych linków znajdziesz ;) -- Michał Walenciak, gg: 3729519, mail: Kicer86 na gmail kropka com http://kicer.elsat.net.pl
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Tue, 19 Jun 2007 17:39
Date: Tue, 19 Jun 2007 17:39
46 lines
1981 bytes
1981 bytes
Dzięki chłopaki za pomoc. Niestety ustawienie dl nic nie daje.
Mój bootL wygląda obecnie tak:
org 7C00h
start:
mov ah, 2
mov al, 10
mov dl, 0
mov ch, 0
mov cl, 2
mov dh, 0
mov bx, 0800h
mov es, bx
xor bx, bx
int 13h
jc error
jmp 0800h:0000h
error:
mov ah, 0eh
mov al, 'E'
int 10h
mov al, 'r'
int 10h
mov al, 'r'
int 10h
mov al, 'o'
int 10h
mov al, 'r'
int 10h
mov al, '!'
int 10h
ae:
jmp ae
times 510 - ($ - start) db 0
dw 0AA55h
i zarówno na Virtual PC jak i na Bochsie (Kicer - miałem już bochsa,
ale nie napisałem że na bochsie też próbowałem) nie działa, tzn.
pokazuje Error!...
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Kicer
Date: Wed, 20 Jun 2007 13:21
Date: Wed, 20 Jun 2007 13:21
19 lines
1514 bytes
1514 bytes
Pietruch wrote: > Dzięki chłopaki za pomoc. Niestety ustawienie dl nic nie daje. > > Mój bootL wygląda obecnie tak: > <cut> > > i zarówno na Virtual PC jak i na Bochsie (Kicer - miałem już bochsa, > ale nie napisałem że na bochsie też próbowałem) nie działa, tzn. > pokazuje Error!... zobacz w bochsie co masz w rejestrach po int potem looknij do opisu przerwan by ralf brown (http://www.ctyme.com/rbrown.htm) i tam znajdziesz odpowiedź na to co się biosowi nie podobało ;) -- Michał Walenciak, gg: 3729519, mail: Kicer86 na gmail kropka com http://kicer.elsat.net.pl
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Wiktor S.
Date: Wed, 20 Jun 2007 13:54
Date: Wed, 20 Jun 2007 13:54
12 lines
1401 bytes
1401 bytes
Pietruch wrote: > Zainteresowałem się ostatnio pisaniem systemów operacyjnych, ale moją > specjalnością jest WWW(HTML, CSS i PHP). Znam podstawy assemblera i > C/C ++ w takim stopniu żeby użyć to jako język pierwszorzędny przy > pisaniu OS'a(oczywiście bez asm'a się nie obejdzie). Z pomocą jakiegoś > artykułu wykombinowałem coś takiego: A tutoriale upominają: zaczynanie od bootloadera to pisanie systemu od dupy strony :-) -- Azarien
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Wed, 20 Jun 2007 15:04
Date: Wed, 20 Jun 2007 15:04
48 lines
3338 bytes
3338 bytes
Koniec loga wygląda tak: 00008369957i[BIOS ] floppy: drive>1 || head>1 ... 02555140000p[WGUI ] >>PANIC<< POWER button turned off. 02555140000i[SYS ] Last time is 1182352466 02555140000i[CPU0 ] real mode 02555140000i[CPU0 ] CS.d_b = 16 bit 02555140000i[CPU0 ] SS.d_b = 16 bit 02555140000i[CPU0 ] | EAX=00000e21 EBX=00000027 ECX=00002002 EDX=00002020 02555140000i[CPU0 ] | ESP=0000fffe EBP=00000000 ESI=0000a2f0 EDI=0000ffde 02555140000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf ZF af PF CF 02555140000i[CPU0 ] | SEG selector base limit G D 02555140000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D 02555140000i[CPU0 ] | CS:0000( 1e00| 0| 0) 00000000 0000ffff 0 0 02555140000i[CPU0 ] | DS:0000( 0000| 0| 0) 00000000 0000ffff 0 0 02555140000i[CPU0 ] | SS:0000( 0000| 0| 0) 00000000 0000ffff 0 0 02555140000i[CPU0 ] | ES:0820( 0000| 0| 0) 00008200 0000ffff 0 0 02555140000i[CPU0 ] | FS:0000( 0000| 0| 0) 00000000 0000ffff 0 0 02555140000i[CPU0 ] | GS:0000( 0000| 0| 0) 00000000 0000ffff 0 0 02555140000i[CPU0 ] | EIP=00007c38 (00007c38) 02555140000i[CPU0 ] | CR0=0x00000010 CR1=0 CR2=0x00000000 02555140000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 02555140000i[CPU0 ] >> jmp .+0xfffe (0x00007c38) : EBFE 02555140000i[ ] restoring default signal behavior 02555140000i[CTRL ] quit_sim called with exit code 1 ale nie używałem jeszcze zbytnio bochsa więc nie zabardzo wiem co i jak:P ~Wiktor - masz rację, ale bez rzadnego BootLa sobie nie poradzę (no logiczne co nie?), a na początek prosty wystarczy I to jest raz. Dwa - kto wie co się dzieje z vortalem DevOS.pl? Najnowszy news jest z przed paru miesięcy, na nowym forum nic nie ma, na archiwum starego forum nie wszystko działa no i w ogóle. Trzy - czy ktoś może mi wytłumaczyć jak pod Windą skompilować/użyć GRUB'a? Bo jest to dobry Bootloader, a kompletnie nic nie znalazłem o praktycznym użyciu :/ Cztery - Kiedy linkuję pliki *.o (skompilowane nasmem i gcc) linkerem LD to wyskakuje mi błąd "PE Operations on not PE files". Tylko nie dokońca wiem dlaczego :/
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: hryssta
Date: Wed, 20 Jun 2007 20:17
Date: Wed, 20 Jun 2007 20:17
29 lines
2871 bytes
2871 bytes
> A tutoriale upominają: zaczynanie od bootloadera to pisanie systemu od dupy > strony :-) Ciekawe jak chlopak odpali cokolwiek gdy nie bedzie mial bootloadera :S Oczywiscie moze skorzystac z gotowego, ale w wypadku pisania OSa tylko aby sie nauczyc czego to nie ma sensu. Poza tym nigdy nie warto wierzyc tutorialom, tylko dokumentacje! Pewne tutoriale polecaja uzywania segmentacji, przez co np. ja cierpie do dzis :/ Co do ladowania plikow, bardzo dwano nie korzystalem z trybu rzeczywistego, ale kod wydaje sie byc poprawny. Jezeli odpalasz to z dyskietki to sprawdz na innej. I daj troche wiekszy kawalek loga bochsa. Strona osdev.pl zdaje sie umierac smiercia naturalna. Niestety za malo jest osdeverow w Polsce, a ci co sa to przez wiekszasc czasu pisza swoje systemy. Co do plikow *.o zgaduje ze problem wystepuje tylko na plikach wygenerowanych przez nasma. Musisz ustawic odpowiedni format pliku wynikowego (dla Linuksa jest to elf, dla Windo bodajze coff). Najlepiej bedzie jak sie przesiadziez na jakiegos GNU/Linuksa. Na koniec jeszcze rada kogos kto juz ponad dwa lata sie w tym grzebie, strzez sie Bochsa! Nigdy nie testuj niczego na jednym emulatorze (najlepsza by byla jakas maszynka Intela IA-32 bez rozszerzen EM64T). Bochs (inne tez) jest dziurawy jak durszlak i wiele dni pracy moze pojsc na marne. Testuj na czyms lepszym (np. Qemu) i co jakis czas sprawdzaj na realu.
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Michal Schulz
Date: Wed, 20 Jun 2007 21:07
Date: Wed, 20 Jun 2007 21:07
11 lines
1189 bytes
1189 bytes
Pietruch wrote: > Trzy - czy ktoś może mi wytłumaczyć jak pod Windą skompilować/użyć > GRUB'a? Bo jest to dobry Bootloader, a kompletnie nic nie znalazłem o > praktycznym użyciu :/ A prosze Cie bardzo: http://www.geocities.com/lode_leroy/grubinstall/ :)
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Michal Schulz
Date: Wed, 20 Jun 2007 21:11
Date: Wed, 20 Jun 2007 21:11
16 lines
1514 bytes
1514 bytes
hryssta@gmail.com wrote: >> A tutoriale upominają: zaczynanie od bootloadera to pisanie systemu od >> dupy strony :-) > Ciekawe jak chlopak odpali cokolwiek gdy nie bedzie mial > bootloadera :S Oczywiscie moze skorzystac z gotowego, ale w wypadku > pisania OSa tylko aby sie nauczyc czego to nie ma sensu. Jak sie chlopak chce nauczyc pisania bootloadera, to niech pisze bootloader. Jak chce sie nauczyc piusania systemu operacyjnego, to niech sie uczy pisac system operacyjny i skorzysta z gotowego bootloadera. tyle teorii :P -- Michal Schulz
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Wiktor S.
Date: Wed, 20 Jun 2007 22:14
Date: Wed, 20 Jun 2007 22:14
18 lines
1811 bytes
1811 bytes
> Ciekawe jak chlopak odpali cokolwiek gdy nie bedzie mial > bootloadera :S Oczywiscie moze skorzystac z gotowego, ale w wypadku > pisania OSa tylko aby sie nauczyc czego to nie ma sensu. Poza tym > nigdy nie warto wierzyc tutorialom, tylko dokumentacje! Pewne > tutoriale polecaja uzywania segmentacji, przez co np. ja cierpie do > dzis :/ Nie rozumiem awersji do segmentacji ;-) Lubię mieć początek kodu pod adresem 0, tak samo lokalny segment danych... oczywiście selektory dostępu liniowego też są potrzebne. Do tego selektor do pamięci ekranu (przydaje się mieć wyjątek, gdy niechcący mażemy gdzieś poza obszarem), do pierwszego megabajta (pamięć "dosowa") itp., w miarę potrzeby. -- Azarien
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Kicer
Date: Thu, 21 Jun 2007 06:26
Date: Thu, 21 Jun 2007 06:26
23 lines
1885 bytes
1885 bytes
hryssta@gmail.com wrote: > Na koniec jeszcze rada kogos kto juz ponad dwa lata sie w tym grzebie, > strzez sie Bochsa! Nigdy nie testuj niczego na jednym emulatorze > (najlepsza by byla jakas maszynka Intela IA-32 bez rozszerzen EM64T). > Bochs (inne tez) jest dziurawy jak durszlak i wiele dni pracy moze > pojsc na marne. Testuj na czyms lepszym (np. Qemu) i co jakis czas > sprawdzaj na realu. ja bym sie raczej kazał mu strzec quemu ;P rejestry FDD nie działaja tak jak pisze w docach, są problemy z trybem virtualnym :P ale masz racje - opieranie się tylko na jednym virtualu a nawet tylko na jednym pececie jest błedem. i nie chodzi tu o to ze bochs jest lub nie jest dziurawy ale o to ze każdy komputer jest inny ;) ja osobiscie raz miałem problem bo moj komputer mial za dużo ramu :P a innym razem ze był za szybki ;) -- Michał Walenciak, gg: 3729519, mail: Kicer86 na gmail kropka com http://kicer.elsat.net.pl
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: hryssta
Date: Thu, 21 Jun 2007 06:49
Date: Thu, 21 Jun 2007 06:49
33 lines
3346 bytes
3346 bytes
> Nie rozumiem awersji do segmentacji ;-) > Lubię mieć początek kodu pod adresem 0, tak samo lokalny segment danych... > oczywiście selektory dostępu liniowego też są potrzebne. > Do tego selektor do pamięci ekranu (przydaje się mieć wyjątek, gdy niechcący > mażemy gdzieś poza obszarem), do pierwszego megabajta (pamięć "dosowa") > itp., w miarę potrzeby. To wsadz sobie przestrzen uzytkownika do segmentu o innym przesunieciu, niz segment z kernelem. Bedziesz mial ciekawie przy alokowaniu pamieci i w ogole czymoklwiek co ma zwrocic programowi jakis adres. Poza tym jezeli ktos wpadnie na pomysl przeprotowania swojego systemu na x86_64 to praktycznie musi wszystko przepisac bo tam nie ma segmentacji. Poza tym segmentacja to zabytek trybu rzeczywistego, teraz mamy stronicowanie o o wiele wiekszych mozliwosciach (nie liczac prawa execute). To, ze nowoczesne kernele uzywaja prawie tylko palski model pamieci nie jest przypadkiem. > Jak sie chlopak chce nauczyc pisania bootloadera, to niech pisze bootloader. > Jak chce sie nauczyc piusania systemu operacyjnego, to niech sie uczy pisac > system operacyjny i skorzysta z gotowego bootloadera. Taa, tylko co on sie pozniej z trybu chronionego nauczy gdy mu grub wszystko ustawi. To nie jest pisanie OSow na czas, ani pokazanie kolegom jaki to ja nie jestem super i OSa pisze. Jezeli piszemy system w celach wlasne edukacji to chyba lepiej napisac wiecej niz isc na latwizne i uzywac gotowcow. Rownie dobrze mozna by skorzystac z jakiegos wczesnego linuksa i tylko go przerobic. Takie zachowanie po prostu nie ma sensu. Co do Qemu, mi nie sprawial problemow w przeciwienstwie do Bochsa, ale jak juz pisalem trzeba sprawdzac na wszystkim. Moj sterownik FDC wlasnie najwieksze problemy mial na Bochsu, na Qemu i na prawdziwych kompach dzialal. Trybu wirtualnego na razie nie implementowalem bo chce miec bezpieczny i stabilny system a popatrzcie co v86 zrobil z Win 9x.
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Thu, 21 Jun 2007 07:15
Date: Thu, 21 Jun 2007 07:15
32 lines
2412 bytes
2412 bytes
Sporo odpowiedzi doszło, więc ciężko będzie mi odpoweidzieć:P Ale przedstawię to tak: Próbowałem kodu bootloadera z pierwszej wersji Q.U.A.R.N.OS'a, tak jak mi polecałeś, no i zamieniłem wcześniejszy kod na: mov ah, 02h mov al, 01h mov ch, 00h mov cl, 02h mov dh, 00h mov bx, 2000h mov es, bx xor bx, bx int 13h Tyle,że wtedy w ogóle się kaszani, bo nie tyle że nie załaduje kernela, co nie pokaże errora:P No, dalej:niestety nie mogę odpalać z dyskietki, bo nie mam napędu FDD (muszę coś z tym zrobić:P) Do kompilacji plików nasma użyłem mniej, więcej coś takiego: nasm start.asm -f coff -o start.o więc powinno być jako "coff" To dziwne, że nie polecasz bochsa, bo we wszystkich tutkach jego polecają, no ale ty już długo w tym siedzisz więc na pewno lepiej wiesz:D I dzięki wielkie za ten link o grubie, ale stwierdziłem, że wolę samemu to zaimplementować, nawet jeśli długo czasu to mi zajmie:)
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Thu, 21 Jun 2007 07:20
Date: Thu, 21 Jun 2007 07:20
3 lines
1667 bytes
1667 bytes
Aha, bym zapomniał: nie mogę przesiąść się na linuksa, z tego powodu, że póki co jest to wspólny komp(ja i mój starszy brat), a emulacja linuksa też nie ma sensu:P
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Stachu 'Dozzie' K.
Date: Thu, 21 Jun 2007 07:28
Date: Thu, 21 Jun 2007 07:28
10 lines
1524 bytes
1524 bytes
On 21.06.2007, Pietruch <pi3truch@gmail.com> wrote: > Aha, bym zapomniał: nie mogę przesiąść się na linuksa, z tego powodu, > że póki co jest to wspólny komp(ja i mój starszy brat), No i? Sugerujesz że nie da się trzymać kilku systemów operacyjnych na jednym komputerze? -- Secunia non olet. Stanislaw Klekot
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Pietruch
Date: Thu, 21 Jun 2007 08:55
Date: Thu, 21 Jun 2007 08:55
1 lines
1633 bytes
1633 bytes
Sugeruję, że mój brat jest dziwny i zawsze mu "coś nie pasi"
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Michal Schulz
Date: Thu, 21 Jun 2007 09:01
Date: Thu, 21 Jun 2007 09:01
24 lines
2006 bytes
2006 bytes
hryssta@gmail.com wrote: >> Jak sie chlopak chce nauczyc pisania bootloadera, to niech pisze >> bootloader. Jak chce sie nauczyc piusania systemu operacyjnego, to niech >> sie uczy pisac system operacyjny i skorzysta z gotowego bootloadera. > Taa, tylko co on sie pozniej z trybu chronionego nauczy gdy mu grub > wszystko ustawi. Fakt, grub troche pomaga. Ale jesli chce robic cos bardziej sensownego, musi przygotowac swoja tablice GDT (potrzebny mu jest przynajmniej jeden TSS do tego, zeby moc zmieniac poziomy uprzywilejowania). IDT musi zrobic tak czy siak (bo GRUB nie ustawia IDT i przed wykonaniem kodu systemu blokuje przerwania). A jesli kiedys zabierze sie za x86_64, to bedzie i tak musial podreperowac swoja wiedze. > Takie zachowanie po prostu nie ma sensu. E tam. Rownie dobrze moglbys mu zasugerowac niekorzystanie z BIOS-u w ogole albo napisanie najpierw "swojego" BIOS-a (po co ma z gotowca korzystac ;) -- Michal Schulz
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
Author: Wiktor S.
Date: Thu, 21 Jun 2007 09:36
Date: Thu, 21 Jun 2007 09:36
14 lines
1689 bytes
1689 bytes
>> Jak sie chlopak chce nauczyc pisania bootloadera, to niech pisze >> bootloader. Jak chce sie nauczyc piusania systemu operacyjnego, to >> niech sie uczy pisac system operacyjny i skorzysta z gotowego >> bootloadera. > Taa, tylko co on sie pozniej z trybu chronionego nauczy gdy mu grub > wszystko ustawi. To nie jest pisanie OSow na czas, ani pokazanie > kolegom jaki to ja nie jestem super i OSa pisze. Ale nie o to chodzi, by grub ustawił tryb chroniony, ale by załadował kernel z dysku :-) -- Azarien
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads