Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: mhi_ 23. 09. 2018, 18:00:19
-
Nemate nekdo predstavu jak vypadaji syscally v AIXu 7.1 (POWER) ?
disassemblovany _exit vypada:
ROM:00000000 4C C6 33 42 crorc 4*cr1+eq, 4*cr1+eq, 4*cr1+eq
ROM:00000004 44 00 00 02 sc
podle str. 45 z http://www.lsd-pl.net/asmcodes-slides.pdf
crorc cr6,cr6,cr6
and
svca
special instruction
r2 denotes system call number
r3-r10 filled with arguments
lr register filled with the return from syscall address
Nejak mi to uplne nesedi... Pomohl by mi nejaky cisty hello world naprogramovany v assembleru.
Druha otazka je jak funguji shared libs v AIXu, protoze vsechny konci v /unix, u ktereho netusim jak se prolinkuje (vzdyt je to kernel? kde se berou userspace data z nej???)
-
Uz je to vice nez 15 let co jsem se o takovy veci zajimal. Drive to bylo tak, ze PPC melo specialni instrukci na syscall jeste drive nez x86. Executable formar byl XCOFF, coz je takovy lepsi COFF z DOSu. Je rozsireny o moznost mit 32bit a 64bit symboly v jednom souboru. Takze neresis jaka je cesta k 32/64 knihovnam. Knihovna je jen jedna a basta.
Ono i dynamicke linkkovani fungovalo jinak. Jestli se nepletu, tak kernel neumel swapovat stranky ale pouze cele soubory,
a adresni prostor procesu nebyl linearni a pro pristup ke knihovnam se pouzivalo neco jako segmentovy registr.
Kdyz se nacetla knihovna do pameti tak ti neco reklo, pro knihovnu abc.a pouzij hodnutu segmentoveho registru 123.
A ke knihovne se pak pristupovalo pres dve hodnoty 123:<offset>. Ta hotnota segmentoveho registru byla stejna pro vsechny procesy, ktere tu knihovnu pouzivaly.
Drive jsem si myslel, ze na AIXu neni rozdil mezi sdilenou a statickou knihovnou - .a vs. .so. Ze na AIXu je to uplne to samy. Nakonec jsem zjistil ze v tom nejaky rozdil je, ale vubec to neni analogicke tomu jak to funguje na architekturach kde se pouziva .ELF.
-
S temi selektory/segmenty (123:) to myslite jak? Power architektura prece nic takoveho neumi, nebo se pletu? V disassemblovanem kodu jsem nic takoveho taky nepostrehl. Netvrdim, ze v XCOFFu takova vec neni, ale po relokacich/importech v pameti by to melo byt uz ciste linearni.
Budu si ke shared libs evidentne jeste neco nastudovat, chtelo by to neco na zpusob "Solaris Internals" i "AIX internals" :). Kazdopadne jestli tu nekdo tusi jak chodi ty syscally, prosim prosim. Do Idy kernel AIXu nenahraju ani z casti, GNU binutils jsou nanic, a lovit z dumpu v pameti kusy kodu je pro mne nepouzitelne (navic na AIX7 nemam roota a doma mam stroj jen do AIX 5).
-
Doma mam stroj jen do AIX 5).
So syscalom neopradim, ale mozno by som vedel o Power, co zvlada AIX 7.1. Mne ho ponúkali za 6000Kc a bol pri Brne. Mozem posunut kontakt.
-
O jaky model presne slo ? Diky.
(nejsem si ale uplne jist, jestli to je ta spravna cesta - kazdou i banalni otazku resit tim, ze si poridim prislusne zarizeni)
-
9113 550 P5 asiriada@gmail.com
-
Aktualne se mi povedlo "nabootovat" AIX7.2 na mem x86 notebooku (qemu 3.0.0 umi obstojne POWER9/CHRP). Je to neuveritelne pomale (boot trva desitky minut, a treba "ls -la" naskakuje viditelne po radcich :) ) a samozrejme to neni plnohodnotna instalace (pouze shell a nejake veci okolo bez prekladace), nicmene teoreticky by to mohlo fungovat (pujdou-li binarky ze 7.1 nejak dostat do tohoto mini-systemu).
-
.... a samozrejme to neni plnohodnotna instalace (pouze shell a nejake veci okolo bez prekladace)....
V standartnej instalacii AIXu sa C kompilator uz davno nenachadza. Da sa pouzit alebo xlC od IBM (plateny) alebo gcc (free).
-
Ja vim, blbe jsem to napsal. Na zive instalaci (kde nemam roota) mam gcc, tam kde mam roota bezim v podstate z RAM disku, ale muzu tam prikopirovat co uznam za vhodne, zatim ale pouze jednosmerne Linux->AIX.
Docela by mi pomohlo, kdyby mi nekdo prozradil jak je za bootfile.exe (ELF loader + AIX kernel + ram0) pripojen ten ramdisk,v nem bych potreboval oeditovat par veci, aby mi to startovalo rychleji.
-
Boot image obsahuje kernel, ramdisk a tzv. ODM (vid nizsie) ktore su ulozene za sebou a firmware ich v podstate len skopiruje sekvencne z boot disku (boot logical volume) do pamate a nasledne skoci do kernelu. Prikaz, ktory vyraba boot image na disku je "bosboot", nemam teraz poruke AIX a netusim ci je to skript alebo binarka, ak je to skript tak by sa dalo pozriet co sa konkretne robi pri vytvarani boot image. Tento prikaz pouziva /usr/lib/boot and /usr/lib/boot/protoext na zaklade coho vytvori obsah boot image.
Priebeh bootovania riadi skript rc.boot.
Su tam 3 fazy - (1) detekcia a inicializacia devices potrebnych na inicializaciu rootvg (2) Samotna inicializacia rootvg a namotnovanie filesystemov z disku (3) detekcia ostatnych devices. Pri kazdej faze sa spusti rc.boot s parametrom cislo fazy. Prve 2 fazy bezi rc.boot z ramdisku, v 3 faze uz bezi z HDD. Devices deteguje a inicializuje prikaz "cfgmgr", ktory taha data z ODM (Object Data Manager, je konfiguracna databaza, co je nieco ako registry vo Windows). ODM je umiestnena v /etc/objrepos na inicialiciu devices su dolezite "databazy" PdDv, PdAt, CuDv, CuAt, CuDvDr, CuDep, ...
Obsah ODM sa da listovat prikazom "odmget".
-
Diky za popis. To co mne zajimalo je jak je (init) ram0 embeddnuty do kernelu, abych to z toho mohl nejak vyparat a upravit dle vlastniho uvazeni (mam jen binarni bootovatelny image). Dalsi problem co mam je asi v tom, ze mi nejde cely gzipnuty kernel rozbalit, v nejakem miste i ten AIXovy uncompress selze.
Jinak tech variant fungovani rc.boot muze byt vic, zrovna v mem pripade to tak je, ale v principu se tam spousti to same.
-
Jinak tech variant fungovani rc.boot muze byt vic, zrovna v mem pripade to tak je, ale v principu se tam spousti to same.
Ono to zavisi od obsahu ODM, napriklad v databaze Config_Rules je definovane, v ktorej faze sa bude konfigurovat ktory device.
To, ako je boot image detailne usporiadany netusim, odporucam pozriet si na funkcnom AIXe ten prikaz "bosboot", ktory boot image vyraba a subory, ktore bosboot pouziva.
https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/com.ibm.aix.cmds1/bosboot.htm
-
Zdravim, bohuzel neporadim neresil sem:( Kdyby jste se prece jen rozhodl pro zelezo muzu levne prodat P5+ 550Q 9133-55A, 7.1 na tom rozbehate mam k tomu upravene hmc da se rozbehat ve virtualboxu. Je to o cene vaseho casu myslim ze pokud na tom stravite dva dny resenim prostredi, mate doma za tu cenu zelezo.
-
ondrej: Umisteni serveru a predstava o cene?
[ Offtopic: Chvili jsem o tom uvazoval jak mi shora nekdo nabizel taky P5ku za 6000, driv kdyz jsem chtel pochopit neco o spalovacich motorech, koupil jsem si rozbitou sekacku a tu dal dohromady. Tento postup ze mne neco zaujme a koupim si k tomu "vybaveni" je dost cesta do pekel: takhle mam z kazde sve "ery" doma hromadu harampadi, ke kteremu se nostalgicky vracim, ale jinak je nanic. I kdyz pravda, tu sekacku pouzivame porad :). ]
-
Jeste jedna drobnost, AIX jak se zda se da rozbehat v plne instalaci v QEMU, emulace spousty zarizeni funguje jak ma, mozna bych tomu mel dat cas a vyzkouset na necem rychlejsim (i7ka apod.) emulovat. Zatim mi to bezelo na notebooku kde je nejaky ultrapomaly procesor.
-
Jmozna bych tomu mel dat cas a vyzkouset na necem rychlejsim (i7ka apod.) emulovat.
Rychlejsi procesor urcite pomoze. Skusal som podla tohto navodu rozchodit patchnute diagnosticke CD AIXu a na Ryzen 1700 (8C @ 3,2 Ghz) to nabootovalo do shellu za asi 8 minut. Shell bol vcelku pouzitelny, ls vypisal zoznam suborov prakticky okamzite.
https://worthdoingbadly.com/aixqemu/