Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

0x08048000

[es] :: Asembler :: 0x08048000

[ Pregleda: 7644 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ppp-bg.sezampro.yu



Profil

icon 0x0804800015.11.2001. u 10:27 - pre 272 meseci

a)Zasto svaki program pocinje bas od ove adrese, da li postoji neki konkretan razlog ili ?

b)Skinu sam pre par dana ia32 treci tom i onako ovlas pregledao i cini mi se da se pominji flat i
neki segmentni nacin pristupa memoriji. E sad, da li npr linux koristi taj segmentni nacin adresiranja...
vitamini, minerali, suplementi...
 
Odgovor na temu

_milsav_

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



Profil

icon Re: 0x0804800015.11.2001. u 15:45 - pre 272 meseci
Citat:
anatogen je napisao:
b)Skinu sam pre par dana ia32 treci tom i onako ovlas pregledao i cini mi se da se pominji flat i
neki segmentni nacin pristupa memoriji. E sad, da li npr linux koristi taj segmentni nacin adresiranja...


Da, i Linux to koristi , zato sto radi na IA32 arch. Naime Linux koristi segmentiranje sa stranicenjem sto znaci da se virtualna adresa prvo pretvara u linearnu koju zatim MMU prevodi u fizicku adresu.Za sve detalje pogledaj kernel dir /mm i HOWTO-e koji se bave datom problematikom. Ukoliko te vise interesuje mm na listi kvack.org imas dovoljno podataka.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.139.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: 0x0804800015.11.2001. u 22:08 - pre 272 meseci
a) ne pocinje svaki program sa te adrese
posto verovatno na to si naisao zezajuci se sa linux asm (zakljucak iz drugog pitanja) onda moguce da na linuxu izvrsni fajlovi se ucitavaju na tu adresu ali nemogu nista da ti kazem jer nikad nisam pokusavao da radim asm pod linuxom
ali za MS sisteme ti je sledeca stvar,
za DOS, .com fajlovi se pokrecu sa offseta 100h od pocetka segmenta
tih prvih 100h sluzi za tkz. PSP ili ti Program Segment Prefix to je neka struktura podataka koju formira sam DOS ali to je nevazno za ovo pitanje
.exe fajlovi u DOS-u se startuju koliko ja znam sa adrese 200h od pocetka segmenta ali nisam se nesto mnogo bavio njima tako da ne znam tacno za sta sluzi tih prvih 200h
pod windowsom ne znam tacno na kojoj adresi se startuju programi ali ono sto je vazno je da tu nema segmenata vec adresama se pristupa direktno tj linearno, to je zbog flat memorijskog modela koji vazi pod windowsom

b) ne znam tacan odgovor sto se tice linuxa ali kao sto sam rekao iz prvog odgovora (ili nisam) segmentni pristup memoriji se koristi u DOSu a flat memory model u Windows-u
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: 0x0804800016.11.2001. u 02:43 - pre 272 meseci
a) pocinje sa 0x0848000 ako kompajliras sa gcc :) Inace ja nisam probao ali trebalo bi da ako znas da se petljas sa ELFom napises kratka program u asm koji ce da uradi exit(),zatim da mu proenis adrese sectiona za recimo jedan PAGE_SIZE (4096 bytes) kao i adresu program segmenta + adresu entry_pointa. Ovo nije tesko uraditi cak sta vise zabavno je. Program je izvodljivo napisati i teoretski bi trebalo da radi, prakticno ne vidim nijedan razlog zasto ne bi radio.

b) sto se tice flat memorijskog modela, to koriste svi UNIXi. Posto je i386 struktura segmentna, na i386 moras da emuliras FLAT. Kako to radi teoretski:

cs se fiksira i zatim se seta EIP. Imas dva cs a to su kernel i user space.
ako bi bio jedan, zamisli kaki bi to dzumbus bio da neki program moze da pise po kernel memoriji. Sa odvojenim cs za kernel i user ovo je nemoguce izvesti.
ds se fiksira i setaju se registri. Ista prica za user i kernel space. Sad se sigurno neko pita kako to da ja mogu da izvrsavam programe u DATA_SEGMENTu i na STACKu u i386. odgovor je prost. Treba da se zalimo svi paging systemu na i386. Za paging system toplo preporucujem Intel dokumentaciju jel je stvarno nekad pain in the ass. Mene jos uvek zbunjuje. Znam da adresa koju dobijete 0x8048000 predsstavlja offset i page stablo gde se cuva prava fizicka adresa ali vise kako to radi, sam zaboravio...jebiga ne obnavlja se staro gradivo.
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ptt.yu



Profil

icon Re: 0x0804800016.11.2001. u 13:36 - pre 272 meseci
Pitanje pd b sam postavio poosto planiram da odstampam IA32 III a nemam
vremena da ga ljutski pogledam... E sad, posto citam o kernelu tamo lepo pise
da se virtuelna adresa prevodi preko page table-a u fizicku i tako dalje i to je ok
ali negde mi upade u oci to segmentno adresiranje pa sam utripovao da je to nesto
za jednoprocesne os_e...

Nije valjda da sada tu ima nekog emuliranja i tako nesto... odnosno da li vredi odstampati
IA32 III i citati sve to?

Pod a, ok mi je to kao na primer da stek pocinje od 0xbfffffff posto pre toga ima:
ime program, env. promenljive, argumenti... ali ovo 0x08048000, mislim provalicu ja
sve to kada mi na red dodje proucavanje ELFa ali me bezveze interesovalo (cak i ako
zavisi od kompajlera) gde bas nadjose 0x08048000 a ne recimo 0x08000000...

vitamini, minerali, suplementi...
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
165.139.17.*



+1 Profil

icon Re: 0x0804800016.11.2001. u 16:46 - pre 272 meseci
Ne mislim bukvalno emuliranje nego pravis da se tako pristupa memoriji preko jedne adrese a ne preko segment:offset. To je na OSu da uradi tu emulaciju a ne na procesoru :)

Inace vredi ta intel dokumentacija. Ja sam najvise shvatio kad su bile restrikcije prosle godine, lampa pa citaj, 8 sati, nema sta da se radi.

Inace da su stavili adresu 0x8000000 neko bi opet pitao zasto bas ta adresa, nasa narodna kaze : Svetu se ne moze ugoditi.
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ppp-bg.sezampro.yu



Profil

icon Re: 0x0804800017.11.2001. u 00:10 - pre 272 meseci
Citat:
Vojislav Milunovic je napisao:
Ne mislim bukvalno emuliranje nego pravis da se tako pristupa memoriji preko jedne adrese a ne preko segment:offset. To je na OSu da uradi tu emulaciju a ne na procesoru :)


da,da,da....

Citat:
Inace vredi ta intel dokumentacija. Ja sam najvise shvatio kad su bile restrikcije prosle godine, lampa pa citaj, 8 sati, nema sta da se radi.


bice toga i ove godine... taman za intel arhitekturu... :)

Citat:
Inace da su stavili adresu 0x8000000 neko bi opet pitao zasto bas ta adresa, nasa narodna kaze : Svetu se ne moze ugoditi.


ma, nema sanse da ne postoji razlog za bas tu adresu (pa makar i neki istoriski...) kada budem proucavao elf javicu vam... :)


vitamini, minerali, suplementi...
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: 0x0804800017.11.2001. u 13:35 - pre 272 meseci
Kazem ti nema to veze sa ELFom. Ja sam se petljao sa ELFom i u specifikaciji ne kazu uopste zasto se uzima ta adresa.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: 0x0804800017.11.2001. u 14:24 - pre 272 meseci
Citat:

Za sve detalje pogledaj kernel dir /mm i HOWTO-e koji se bave datom problematikom. Ukoliko te vise interesuje mm na listi kvack.org imas dovoljno podataka.


Kako da se prijavim na tu listu. Sve sto nadjem na tom site je Foo. Bar.
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ptt.yu



Profil

icon Re: 0x0804800017.11.2001. u 16:23 - pre 272 meseci
Citat:
Vojislav Milunovic je napisao:
Citat:

Za sve detalje pogledaj kernel dir /mm i HOWTO-e koji se bave datom problematikom. Ukoliko te vise interesuje mm na listi kvack.org imas dovoljno podataka.


Kako da se prijavim na tu listu. Sve sto nadjem na tom site je Foo. Bar.


takodje...


vitamini, minerali, suplementi...
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ptt.yu



Profil

icon Re: 0x0804800017.11.2001. u 16:27 - pre 272 meseci

Ok, ok nasao sam...

[email protected]
vitamini, minerali, suplementi...
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.227.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: 0x0804800017.11.2001. u 21:41 - pre 272 meseci
Citat:
Inace vredi ta intel dokumentacija. Ja sam najvise shvatio kad su bile restrikcije prosle godine, lampa pa citaj, 8 sati, nema sta da se radi.


restrikcije a ti uzeo lampu pa citaj....hm zanimljivo

inace mozda po nekoj analogiji iz DOS-a gde .com fajlovi pocinju sa 100h adrese, a tih prvih 100h je rezervisano za neku unutrasnju strukturu podataka koju kreira sam dos mozda se nesto slicno desava i u linuxu
tj sam operativni sistem pravi neku strukturu ( naravno drugaciju od dosa )
koja mozda zauzima od 0x00000000 do 0x08048000 pa onda kod programa pocinje sa 0x08048000
mislim....kao sto kazem ne znam sta se desava u unixima samo predpostavljam po nekoj analogiji iz dosa

inace zanima me kod linuxa da li je taj flat memory model resen na nacin kao i u win32 znaci da svaki program ima svoj address space i nevidi druge programe ili ....

-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ppp-bg.sezampro.yu



Profil

icon Re: 0x0804800017.11.2001. u 23:50 - pre 272 meseci
Citat:
Mikky je napisao:

tj sam operativni sistem pravi neku strukturu ( naravno drugaciju od dosa )
koja mozda zauzima od 0x00000000 do 0x08048000 pa onda kod programa pocinje sa 0x08048000


Ne znam kako je u dosu ali ta strruktura bi zauzimala 129,3MB u linuxu sto je priznajes malo nezgodno... :)))

Citat:
inace zanima me kod linuxa da li je taj flat memory model resen na nacin kao i u win32 znaci da svaki program ima svoj address space i nevidi druge programe ili ....


Linux je multitasking i multithreading operativni sistem kao i win32 ali to nema veze sa flat memory...



vitamini, minerali, suplementi...
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: 0x0804800018.11.2001. u 03:31 - pre 272 meseci
Citat:
Mikky je napisao:
restrikcije a ti uzeo lampu pa citaj....hm zanimljivo :)


E bem te uglavu!!! Mislim baterijsku lampu!!!!
 
Odgovor na temu

[es] :: Asembler :: 0x08048000

[ Pregleda: 7644 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.