Kis kockulás

Andris, 2008. February 10.

Happy MacAvagy mit lehet kezdeni az OS X boot logójával?

Macintosh ClassicPár napja tulajdonosa vagyok egy már-már múzeumba való kis csodának: 1990 novemberében gyártották, Macintosh Classic névre hallgat. Node erről majd máskor írok. Ezen a gépen még Mac OS 6 fut, amit szintén kivesézek majd máskor, most mindössze annyit szeretnék megemlíteni, hogy nagyon kedves ötletnek tartom, hogy induláskor egy kis Macintosh figura köszönt minket a képernyőn. Ez a jó szokás sajnos már “kiveszett” az OS X-ből, és ezt szerettem volna valahogy visszahozni.

Legkézenfekvőbb megoldásnak a boot logó kicserélése tűnt. De hogyan? A google mindössze egy találatot dobott, volt egy valaki, aki mindent áttanulmányozva arra jutott, hogy az induláskor használt apple logó a /System/Library/Coreservices mappában lévő boot.efi fájlban található. Ezt nem lehet módosítani, de rá lehet venni a rendszert, hogy ennek a másolatát használja bootoláskor.

Szóval adott a feladat: kikeresni a logót tartalmazó fájlrészt (data fork-ot :P ), és valahogy beletenni az új logót, amit persze jól kiterveztem, és megcsináltam. Igen ám, de ez nem olyan egyszerű dolog. Megnyitottam a boot.efi másolatát HexFiend-del, ami egy hexeditor program, elég jól használható. Tudtam a cikkből, hogy hol kell keresni a képet a soksok szám között.

Ráadásul a kép még RLE (run length encoding) tömörítéssel is kódolva volt :P Az RLE tömörítés kb. arról szól, hogy nem egyenként tárolja el a pixelek színeit, hanem aszerint, hogy miből hány darab van egymás után, így például: fehérfehérfehérfehérfehérfeketefeketefeketefeketefehérfehér = 5xfehér4xfekete2xfehér. Gondolkodás hexában :PÖtletes algoritmus. Soksok helyet meg lehet így spórolni.

Bonyolódik a helyzet. Tehát adott volt 1300valamennyi bájt, amit felülírhattam az új képpel. Ezért viszonylag egyszerűnek kellett lennie az ábrának. A mellékelt képen jól látszik a kétszínű ábra kódja (csak részlet) az 50-es szín jelöli ebben az esetben a sötétszürkét, a 01 a világosat. Ha elindulunk az elejétől ezt látjuk: 2A 50. MacEz egyenlő azzal, hogy 2A darab sötét színű pixel van egymás mellett. És így tovább…

Mivel hexában vagyunk, át kell számolni ezt a 16-os számrendszerbeli számot tizes számrendszerre: pl. 2A = 16+16+A(10) = 42. A képemen, ami 128×128 méretű lehet, én ezek után szépen elkezdtem pixelről pixelre leszámolni a színeket. Jó vicc :D Jópár órán keresztül hexában pixelt számolni, aztán munka közben persze legalább 100x újraindítani a gépet, hogy megnézzem, hogy haladok, esetleg hibás-e a kirajzolt ábra. Vicces volt na! Aztán persze az eredeti verzióban nagyobbra terveztem a Mac ábrát, ami megnövelte jócskán a lépések számát, amivel ki lehetett volna rajzolni: emiatt nem lehetett befejezni, mert akkor már megváltozott volna a fájl hosszúsága, és nem tudott volna boot-olni a gép. (Rajzolás elölről, kisebb méretben :D ) Persze ez elő is fordult, elnéztem a méretet, és nézhettem nagyokat, mert nem indult a gép… Ilyenkor segítségül jött az install dvd, amivel ha újra beállítottam az indítólemezt, akkor minden rendbe jött, kijavíthattam a hibámat.

Az új boot logóVégül gyümölcse termett a sok fáradozásomnak: készen lett az új logó! Nagyon örültem neki, és rögtön el is határoztam, hogy programozás-tanulás címén fogok majd csinálni egy olyan programot, persze Cocoa-ban, nanná, amivel ezt tudom megcsinálni, soksok óra pixeltologatás helyett.

Aztán ma még egyszer rákerestem a logócserére, erre mit ad Google? Hát ezt! BootXChanger. Hát kicsit leesett az állam, hogy ezt már kitalálták :( :P Annak viszont nagyon örültem, hogy ez a program open-source, majd tanulmányozni fogom a kódját, érdekel mostanában ez a téma :D Hirtelenjében le is fordítottam magyarra a programot, idő kérdése, és a letölthető verzió is tartalmazni fogja a magyar nyelvet, írtam már a készítőjének :)

Hát ennyi volt a jó kis történet, én jól szórakoztam, és végülis Happy End Mac lett a vége :P

, , , , , , , , , , , , , ,
1 komment

3 vagy 4 GB RAM iMac-be?

Andris, 2007. December 28.

3 vagy 4 GB?Akárhol is néztem utána, hogy mennyi RAM-ot tud kezelni a 2006-os késői intel iMac, mindenhol azt találtam, hogy bár felismeri, hogy 4 GB van benne, de maximum 3,3 GB-ot tud kezelni hardveres korlátozások miatt. Ezen picit elgondolkodtam, majd arra a következtetésre jutottam, hogy lehet, hogy a 32 bites címzés korlátai miatt tud csak kicsit több mint 3 gigát lefoglalni a memóriából. Ennek több helyen is utánanéztem, és érdekes fórumokat is találtam ebben a témában, érdemes beléjük lapozni:

http://groups.google.com/group/comp.sys.mac.advocacy/browse_thread/thread/25d318d01c832b5d

http://hup.hu/node/41482

http://discussions.apple.com/thread.jspa?messageID=5866214

Ezekből énnekem annyit sikerült leszűrnöm (javítást kérek, ha nincs igazam!), hogy 32bites címzéssel maximum 4 GB-nyi memóriát lehet megcímezni (2^32 = 4,294,967,296), de mivel akadnak a rendszeren belül még más alkotóelemek is, amik memóriával rendelkeznek, ezért az azokk által lefoglalt memóriaterületet ki kell vonni a 4 GB-ból. Például, ha van 4GB RAM a gépünkben, plusz egy 512 MB-os videókártya, akkor ez így fog kinézni:

Graphics Controller
Memory Range D0000000-EFFFFFFF (ez épp 512MB)

System Board
Memory Range 00000000-CFFFFFFF
Memory Range F0000000-FFFFFFFF (a kettő együtt 3,5GB)

(innen: http://hup.hu/node/41482#comment-390450)

De mi van akkor, ha 64bites operációs rendszert használunk? 64bites címzéssel összesen 2^64 = 18,446,744,073,709,600,000 bitnyi (vagy bájtnyi) memóriát lehet kezelni, nem is tudom kiszámolni, hogy ez mekkora mennyiség, valószínűleg még jópár évtizedig nem lesz szükség ennyi memóriára a gépünkben.

Ígyhát azt gondoltam, hogy a 3,3 GB-os korlátozás csak az OS X Tiger-ben él, mivel az még csak 32bites operációs rendszer. Leopard-ot használok egy ideje már, ami egyszerre 64bites és 32bites, így szoftveresen megoldhatónak kellett lennie, hogy 4 GB ram-ot tudjon kezelni a gépem. És igazam lett: az Activity Monitor is 4 GB-ról beszél, suhan a rendszer, ráadásul dual channel-ben működik a memória (elvileg), ami plusz sebességnövekedést eredményez. Talán.

Beszéljenek a képek inkább:

About This Mac System Profiler Activity Monitor

Kinek mi a véleménye?

Update 1.: Akkor hogy van az, hogy a régebbi Mac Pro-n ugyanúgy Tiger futott, és mégis tudott kezelni 16 GB ram-ot?

Update 2.: Lehet, hogy hülyeségeket írtam?

, , , , , , , , , , , , , , , ,
4 komment

Sleep Display @ Leopard

Andris, 2007. November 02.

Mostanában sok szó esik a Leopárd újdonságairól, úgyhogy ebbe nem szeretnék belemászni, viszont találtam egy nagyon hasznos, eddig be nem épített opciót. Ugye az iMac-ben nem lehet külön kikapcsolni a kijelzőt, ami szerintem elég nagy hátrány, legalábbis én hiányoltam ezt a lehetőséget. Találtam is rá megoldást még régebben, egy apró kis program, Sleep Display a neve. Ezt elindítva a monitor kikapcsolt. Hát nem a legkényelmesebb módja a dolgoknak, de működött.

Sleep DisplayBöngészgetve a System Preferences-t találtam egy sokkal egyszerűbb megoldást az Exposé & Spaces beállításainál. Itt be lehet állítani az Active Screen Corners-nél, hogyha az egyik sarokba húzom az egeret, akkor kikapcsoljon a monitor. Egyszerű, nagyszerű.

, , , , ,
1 komment