Portál AbcLinuxu, 11. května 2025 16:07

Dotaz: Jaký je průběh systémového volání?

11.2.2009 17:29 Martin
Jaký je průběh systémového volání?
Přečteno: 913×
Odpovědět | Admin

Dobrý den,

chtěl bych se zeptat, jaký je přímý průběh systémového volání. Vím, k čemu slouží, kdy se používá, ale neznám jeho průběh. Všude jsem to zkoušel hledat, ale nic jsem bohužel nenašel. Byl bych moc rád, kdyby se našel někdo, kdo mi to vysvětlí. Díky Martin

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

kozzi avatar 11.2.2009 17:36 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Jaký je průběh systémového volání?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak ajko průbech? prenseji se byjadri? ktere systemoveho voalni? No obecne je to tak ze zavolas nejake systemove volani. To zanmena ze si vyzadas nejaky cas jadra, coz je casove narocne (kazda operace do ktere jadro vstupuje je narocna). Proste se zavola preruseni jadra (int 81h) ze zasobniku se zjsiti o jake systemove preruseni jde a pripadne dalsi parametry. Jadro pozadovanou operaci vyridi.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
11.2.2009 17:55 Martin
Rozbalit Rozbalit vše Re: Jaký je průběh systémového volání?

Promiň, myslel jsem to obecně. A to tak, jak to probíhá hardwarově. Díky za reakci

kozzi avatar 11.2.2009 18:06 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Jaký je průběh systémového volání?
Jo ok. No tak hardwarove to probihat nemusí, teda záleží jak to myslíš? Například systémové volání getpid se HW "nedotýká" (teda pokud se ti nejedná o naplňování registrů atd). Tak například systémové volání výpis řetězce. Takže do registru eax se nahraje číslo systémového volání (4) do ebx se uloží číslo zařízení kam chceme zapsat např. 1 pro STDOUT, do ecx se uloží adresa řetězce který chceme vypsat, do edx počet znaků které se mají vypsat. Potom se zavolá systémové přerušení 0x80 (koukam ze sem se predchvili prepsal s tou 81h) a jadro se dostane na radu. Jadro pak podle hodnoty v registru eax zjisti ze se jedna o vypis retezce, a z dalsich registru zjisti jeho adresu a delku a take kam ho ma vypsat.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
11.2.2009 18:19 Martin
Rozbalit Rozbalit vše Re: Jaký je průběh systémového volání?

Díky za stoprocentní objasněnost otázky. Už chápu, jak to probíhá.

11.2.2009 17:45 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Systémové volání v Linuxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chcete návod, jak si přidat vlastní volání systému v Linuxu, nahlédněte do Implementing a System Call on Linux 2.6 for i386.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.