🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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.
#1203
Author: Pietruch
Date: Tue, 19 Jun 2007 07:17
84 lines
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.
#1202
Author: Bogdan (bogdro)
Date: Tue, 19 Jun 2007 10:21
107 lines
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.
#1201
Author: Kicer
Date: Tue, 19 Jun 2007 16:14
43 lines
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.
#1204
Author: Pietruch
Date: Tue, 19 Jun 2007 17:39
46 lines
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.
#1205
Author: Kicer
Date: Wed, 20 Jun 2007 13:21
19 lines
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.
#1206
Author: Wiktor S.
Date: Wed, 20 Jun 2007 13:54
12 lines
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.
#1207
Author: Pietruch
Date: Wed, 20 Jun 2007 15:04
48 lines
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.
#1208
Author: hryssta
Date: Wed, 20 Jun 2007 20:17
29 lines
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.
#1219
Author: Michal Schulz
Date: Wed, 20 Jun 2007 21:07
11 lines
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.
#1209
Author: Michal Schulz
Date: Wed, 20 Jun 2007 21:11
16 lines
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.
#1210
Author: Wiktor S.
Date: Wed, 20 Jun 2007 22:14
18 lines
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.
#1211
Author: Kicer
Date: Thu, 21 Jun 2007 06:26
23 lines
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.
#1212
Author: hryssta
Date: Thu, 21 Jun 2007 06:49
33 lines
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.
#1213
Author: Pietruch
Date: Thu, 21 Jun 2007 07:15
32 lines
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.
#1214
Author: Pietruch
Date: Thu, 21 Jun 2007 07:20
3 lines
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.
#1215
Author: Stachu 'Dozzie' K.
Date: Thu, 21 Jun 2007 07:28
10 lines
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.
#1216
Author: Pietruch
Date: Thu, 21 Jun 2007 08:55
1 lines
1633 bytes
Sugeruję, że mój brat jest dziwny i zawsze mu "coś nie pasi"
Re: Ultra prosty bootloader i kernel :) proszę o pomoc.
#1217
Author: Michal Schulz
Date: Thu, 21 Jun 2007 09:01
24 lines
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.
#1218
Author: Wiktor S.
Date: Thu, 21 Jun 2007 09:36
14 lines
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