Jsem asi hnidopich, ale na zacatku melo byt tucnym pismem uvedeno, ze se jedna o Linux na x86. Mozna je to profesionalni deformace, jelikoz pracuji i s jinymi architekturami. Kazdopadne formulace "Pro systémová volání se v Linuxu používá přerušení int 0x80." je bez uvedeni architektury nesmysl.
Dal:
> Když program zapíše na nealokované místo, bude
> proces ukončen (SIGKILL kernelu).
Tesne vedle - kernel ho sejme signalem SIGSEGV
> Linux však podporuje mnoho formátů spustitelných
> souborů, my se zaměříme třeba na formát ELF -
> executable and linkable format.
Jsem rad, ze padla volba "třeba na formát ELF" - on je totiz nejdulezitejsi a prakticky na Linuxu nejvic pouzivany :-)
> Adresa 0x08048000 [... sem se zavede program]
Kde se tohle cislo vzalo? Muze byt jine?
- Ano muze byt jine a je urceno linkerem pri sestavovani programu. A kde se ho kernel dozvi? V hlavicce ELFu.
> Program obvykle bývá nahrán do 128 MB adresového
> prostoru.
Zase vedle - ten vas konkretni program bude zacinat na adrese 0x08048000, cili tesne _nad_ 128 MB
No nic, necham prudeni a jdu na obed :-))
Názor k článku
Programujeme v jazyce Assembler v Linuxu: Úvod
Michal Ludvig (neregistrovaný)
1. 7. 2004 12:00

