Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

BIOS-ovi prekidi u linuxu

[es] :: Asembler :: BIOS-ovi prekidi u linuxu

[ Pregleda: 2964 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Oliver Sorgens
Beograd

Član broj: 61723
Poruke: 32
195.252.90.*

Sajt: www.freewebtown.com/grobn..


Profil

icon BIOS-ovi prekidi u linuxu12.11.2006. u 08:35 - pre 212 meseci
Teo bih pitati da li neko zna kako se mogu izvrsavati bios-ovi prekidi u linuxu s obzirom da radi u protected modu, da li ima neki drajver za to ili nesto sto bi to moglo da omoguci. A takodje i instrukcija out (mislim na x86) ne moze da se koristi dok se kernelu ne kaze da moze da koristi portove (C funkcija), a ja ocu da sve to moze. Koliko sam ja nasao i vidim da mi samo DOS preostaje. Ali ako neko zna nesto o tome....
TND
 
Odgovor na temu

Srđan Krstić
Srđan Krstić
Princeton, NJ

Član broj: 7526
Poruke: 416
*.Princeton.EDU.

Jabber: srkiboy@elitesecurity.org
ICQ: 193836365
Sajt: www.princeton.edu/~skrsti..


Profil

icon Re: BIOS-ovi prekidi u linuxu16.11.2006. u 10:30 - pre 212 meseci
Ne znam za C, ali kada iz assemblera pozoves neki interrupt zar nece on sam da TRAP-uje u kernel (protected mode)? Ili nisam razumeo tacno sta hoces? A sto se tice out funkcije, zar ne bi mogao da je koristis ako sam udjes u protected mode (promenis PE flag u CR0 registru). I u tom slucaju naravno ne zaboravi cli/sti da ti ne bi dosao interrupt dok si u "critical region"-u. Ne znam da li ti ovo pomaze, kazi ako nisam dobro ukapirao sta ti treba... (P.S. sve ovo mozes da pozoves iz C-a kroz inline assembly)
I HAD A NIGHTMARE
IT ALL STARTED NORMAL
10101010
10110011
THEN ALL OF A SUDDEN
1100102
GAAAAH
_____________________________
www.princeton.edu/~skrstic
www.niwifi.co.sr
 
Odgovor na temu

Oliver Sorgens
Beograd

Član broj: 61723
Poruke: 32
195.252.89.*

Sajt: www.freewebtown.com/grobn..


Profil

icon Re: BIOS-ovi prekidi u linuxu17.11.2006. u 12:03 - pre 212 meseci
Evo ti primers sta hocu:

Ocu da korisenjem prekida int10h iscrtam jedan karakter na ekranu u nekoj boji i sl. (to sam vec radio u dos-u)
TND
 
Odgovor na temu

MyDuck
Beograd

Član broj: 122225
Poruke: 1
*.ptt.yu.



Profil

icon Re: BIOS-ovi prekidi u linuxu22.11.2006. u 18:09 - pre 211 meseci
U linux-u se sve radi preko kernel system calls. Programirani prekid kao sto je int 10h se direktno poziva samo u toku butovanja i on radi u real modu i zbog toga ga je nemoguce pozvati iz linux protected moda. Evo ti tabela kernel sistemskih poziva http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html . Pozivaju se sa int 80h(ko sto je u DOS-u int 21h) uz odgovarajucu popunu registara. Ukoliko zelis da radis grafiku (crtas, menjas boje itd.) sa asemblerom moras koristiti drajvere (pogledaj vesafb framebuffer device driver, radi sa vesa 2.o grafickim kartama). Evo ti i adresa gde mozes pogledati kako da koristis drajvere uz pomoc sistemskih poziva http://asm.sourceforge.net/articles/fb.html .

Za ispisivanje karaktera na ekranu nije potrebno pozivati drajvere jer postoji sistemski poziv za to. Evo kako se to radi za nasm kompajler koji podrzava intel sintaksu :

section .text
global _start ;must be declared for linker (ld)

_start: ;tell linker entry point

mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel

mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel

section .data

msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string

[Ovu poruku je menjao MyDuck dana 22.11.2006. u 19:22 GMT+1]
 
Odgovor na temu

[es] :: Asembler :: BIOS-ovi prekidi u linuxu

[ Pregleda: 2964 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.