Blogbejegyzések

Linux diszkrét bája #2. - Memóriakezelés

Figyelem, ezen cikk erős, negatív kifejezéseket használ mindenki kedvenc gányolt rendszerével kapcsolatosan! Mezei pingvintöcskölők, csak nyugtatóval olvassák.

Korábban futottam pár kört a linux távoli managementje témakörben. Mostani történetünk a Linux memóriakezeléséről szól. Pontosabban annak nem kezeléséről. Vagyis fogalmazzunk úgy, hogy azon kreatív megoldásokról amivel a felhasználót szivatják kernel oldalról.
Történetünk főszereplője egy kukaszerver, P2@400Mhz, 64 MB, 1GB swap. Mint ilyen egy szépen összekonfigurált apache, mysql, X, és digitalizáló módban futó mplayerrel kényelmesen belak 59MB-ot. Tehát még marad 5 MB ami két és félszerese egyes grafikus operációs rendszerek futtatásához szükséges memóriaigénynek, de ez ne zavarjon minket. Az élet, szép és jó. A ventillátorok csendben duruzsolnak, stb, stb, stb.
Mivel egy átlag felhasználó (aka én), szeretné fűtésen kívül másra is használni napi 24 órában ketyegő gépét, ezért - minő aljas cselekedet - elindít egy torrent klienst, ami grafikus lévén gyorsan be is ránt 132MB(!)-ot. Ugyebár ez még egy fdivbug előtti processzor, ezért rövig osztás, szorzás után kioszt 128MB swap-et, 4MB memóriát és mindenki boldog vala.
Ekkor a felhasználó (aka én) úgy dönt, hogy áthelyezi a webkamerát, tehát leállítja az mplayert, kilövi a kamera modult, kihúzza a kamerát és odébbteszi. Ugyebár ekkor a kernel felszabadítja a fentiek által foglalt memóriát, felszabadítja a swapet és kiosztja a többi processznek. Hát egy lófaszt. A felszabadított memóriát kiosztja a többi processznek és a swaphez hozzá sem nyúl.
A felhasználó (aka én), miután végzett a kameramozgatással visszadugja a kamerát, amihez a kernel betölti a modult. A felhasználó (aka én) ezután elindítja az mplayert ami el is száll. Vajon mivel?
v4l2 ioctl error: Cannot allocate memory
Hopszi. Ez bizony szopás. Vessünk csak egy pillantást a memóriára. 63MB normál memória és 151MB swap foglalt. Tehát tetvérek közt is 850Mb swap van szabadon.
Ízlelgessük egy kicsit a fenti hibaüzenetet: v4l2 ioctl error
Tehát a hibát a kernel modul dobja és nem az mplayer. A kernel egy kernel modulnak nem tud memóriát foglalni a működéséhez, mert az userspace programok elfoglalják. Hihetetlen, hova fejlődik a technika... De az is lehet, hogy ez egy processz védelmi eljárás! Biztos bekapcsoltam az emo kernel featuret fordításnál, és most nem akarja megbántani a userspace programokat azzal, hogy swapbe teszi őket.
Nosza, segítsünk neki! Lőjjünk ki egy processzt, legyen mondjuk a mysql. Hopszi, lett is hirtelen 8MB hely, az-az csak volt mert a kernel kiosztotta a futó processzeknek. Indítsuk el az mplayert, mi a válasz?
v4l2 ioctl error: Cannot allocate memory
Lőjjünk ki még pát processzt, mondjuk a ktorrentet, és az apache-ot. Futni fog az mplayer?
v4l2 ioctl error: Cannot allocate memory
Mi van a memóriában? 47MB normál memória, 136MB swap foglalva, a többi szabadon.
Kapcsoljuk ki a swapet és vissza. 47MB normál memória, a többi szabadon. Lőjjük ki a v4l modult, húzzuk le a kamerát, kössük vissza.
Eredmény?
v4l2 ioctl error: Cannot allocate memory
Igen kérem, ez a fényévekkel a technológia előtt járó, kattingedzs linux kernel, mely keptelen 7 MB-ból 1MB memóriát allokálni. Nevezhetnénk ezt a technológiát akár plug-and-sucksnak.
Mi marad tehát? Windows módszer. Szálljunk ki és szálljunk vissza. Reset, reboot. És csodák csodája, megy a digitalizálás 5MB szabad hellyel. Indítsuk el a ktorrentet. Ez is megy. Fantasztikus, nem?
Próbáljuk meg másképp. Reboot. Modul ki, kamera le. Kamera vissza. Hopszi, megy a digitalizálás. Modul ki, kamera le. Kamera vissza. Még mindig megy a kamera.
Indítsunk pár alkalmazást, fogyjon el a valós memória. Modul ki, kamera le. Kamera vissza. Eredmény?
v4l2 ioctl error: Cannot allocate memory
Ürítsük ki a memóriát. Modul ki, kamera le. Kamera vissza. Eredmény?
v4l2 ioctl error: Cannot allocate memory
Sokszor szídják a kernel fejlesztőket, hogy nem konzisztensek. Nos ez esetben szó nem érheti őket, hiszen 2.6.26, 2.6.31 és 2.6.32-n is ugyanazt csinálja. Bár feltételezem, hogy az erőforrásaik javarészét az foglalta le, hogy 2.6.26-ról sikerüljön 2.6.31-ig elbaszni, majd 2.6.32-re megjavítani a uvcvideo modult.

Uhu

"Magyarországon ritkán látható "uhu" baglyot találtak a Mecsekben" /Heti hetes/

Hát vazze, hogy lehet így nemzeti disztribúciót elnevezni

Könyv ajánló - Neil Gaiman, Terry Pratchett: Elveszett próféciák

Aki szereti Pratchettet annak szerintem kötelező darab :)) Kis részlet, amin épp sikerült iszonyat de nagyon felnevetnem :)

Az angolok nagy általánosságban nehéz felfogású és tunya népek voltak, nem kedvelték annyira a boszorkányégetést, mint Európa többi államai. Németországban a teutonok módszeres ügybuzgalmával épültek és lobogtak a máglyák. Még a jámbor, istenfélő skótok is, akik történelmük során hosszú, véres harcot vívtak ősellenségükkel, a skótokkal, még ők is egyszer-egyszer boszorkánymáglyákkal űzték el a hideg téli napokat, az angoloknak, azonban sosem volt igazán szívük hozzá.
Az egyik fő indok talán éppen Agnes Nutter halálában rejlett, amivel az angliai boszorkányégető láz nagyjából véget ért. A dühöngő tömeg, akiket a végsőkig megőrjített Agnes intelligenciája és gyógyítási tehetsége, egy áprilisi este fölkerekedett és a háza elé vonult, ahol ő már kabátjába bújva, készen várta őket.
– Késtetek – mondta. – Már tíz perce égnem kellene.
Ezzel fölkelt és átsétált a hirtelen elnémult tömegen, egyenesen a farakáshoz, amit sietve raktak meg a falu határában. A legenda szerint nagy nehezen fölkászálódott a máglya tetejére, megállt háttal az oszlopnak és hátratette a kezét.
– Kössétek meg jól – mondta a megdöbbent boszorkányvadásznak. Mikor pedig a falubéliek lassan lézengeni kezdtek az esemény körül, büszkén fölvetette a fejét és így szólt. – Jertek csak jóemberek, jertek közelébb, hogy lássátok, miként hal meg Anglia utolsó boszorkája. Mert boszorka vagyok, így ítéltetett, bár tudom, mi az igazi bűnöm. Legyen hát üzenet a halálom mindenkinek. Jertek közelébb, mert azt mondom jól jegyezzétek meg azoknak sorsát, kik olyan dolgokba kezdenek, mihez nem értenek.
Ezzel, állítólag, elmosolyodott és az égre nézve hozzátette. – És ez neked is szól, vén bolond.
Ez után a különös istenkáromlás után többet nem szólt, hagyta, hogy megkötözzék, betömjék a száját, ő pedig csak állt büszkén, miközben fáklyát vetettek a farakásra.
Harminc másodperccel később egy robbanás elpusztította az egész falut, felperzselt minden élőlényt a völgyben és még Halifaxben is látták a fényét.
Heves viták övezték az esetet, miszerint Isten sújtott-e le haragjával Agnes utolsó szavai hallatán, avagy a Sátán műve volt, ám nem sokkal később találtak egy üzenetet Agnes kunyhójában, ami bizonyította, hogy mindenféle isteni, vagy ördögi beavatkozást nagyban segített Agnes alsószoknyájának tartalma, ahol némi előrelátással elhelyezett negyven kiló lőport és húsz kiló ácsszeget.

WD TV Live

Úgy tervezem, 1-2 héten belül veszek egy WD TV Live -ot, pláne hogy ma találtam 3 év garanciával is...

Mielőtt véglegesen belevágnék, a sok jó infó mellett, szeretném megkérni a már jelenleg is WD TV Live tulajdonosokat, hogy ha van 1-2 szóban írják már meg mi nem tetszik nekik a készülékben, milyen hiányosságai vannak jelenleg?

A WD TV Live fórumokon negatívumokról nem sokat olvasni, remélem azért mert nincsenek ilyenek!

Gáz, víz

A napokban csend volt. Nem lehet a városban olyan gáz és vízszerelőt találni, aki néhány nap alatt beköti a cuccot. A legelőbbi időpont kedd. A sütőt már kipróbáltuk, ma már abban készült az ebéd. Remélem, hogy a jövő héten már pont kerül a projekt végére.

3 honap szabi :)

Apr. 5-tol harom honap szabadsagon vagyok... most azon gondolkodom mit lehetne csinalni ez alatt az ido alatt. Szerencsere a penz nem igazan akadaly (egy bizonyos hatarig) szoval azon gondolkodom hogy utazgatom, esetleg nezek valami erdekes tanfolyamot, ilyesmi.

Ami most kepben van: Floridaban nehany nap (innen megyek haza), Dubai (mar reg el akarok menni), London, esetleg Seattle (ide jovok vissza). Igazabol a lehetosegek vegtelenek, egyelore otleteket gyujtok.

Social network fail, ranting

Egyre nepszerubbek a kulonbozo kozossegi oldalak. En mar eleinte is ockodtam toluk, igaz egy ideig meg profilom is volt, majd kis idovel az oldalak indulasa utan toroltem magam. Nem tartom tul okos lepesnek az adatok megosztasat. A masik dolog meg hogy ertelmet sem latoma az ilyen oldalaknak. Aki meg ilyen oldalakon oli el az idejet, sosem tudott valaszolni a kerdesemre hogy miert is van fennt, mi ertelme.

Az egyeduli 'okos' valasz az a regi osztalytarsak felkeresese volt, egyik ismerosom szerint. Erdekes mod, azota sem beszelt veluk, nem hozott semmi eredmenyt a dolog.

Klubok, etc, ezeknek meg vegkepp zero. Manapsag mindossze arra jo hogy kulonbozo oldalak (pl legalja, napi...., puruttya, etc) innen halasszon. Na most. Hazankban az IWIW / MyVIP szenny oldalain is RENGETEG idot tudtak eltolteni honfitarsaink, minden alkalmazas nelkul. DE jott a Facebook, mindenfele kulonbozo 'alkalmazassal', kvizzel. (Ha jol remlik ez a ketto ua.)

Chatroulette

Egy ujfajta oldal jott divatba. Ujfajta 'ismerkedesi forma' hogy pontosabban fogalmazzak. A lenyege annyi hogy fellep az ember, rakattint a gombra, es bekerul random egy "Idegen" emberrel.

Nincsenek adatok, nem kell regisztralni. Ebbol jon ugye sok a megjatszas, etc.

Az elso ilyen oldal volt a http://omegle.com nevu oldal, ahol is szimpla text-only chat volt/van.

Mostani mania a Chatroulette, ami vegulis ugyanaz, csak webcammal.

Megosztanek ket kepet is miert eri meg felmenni ;D >>
>>

PowerShell2 > SQLite3

(0) Adatbázis és tábla létrehozása


PS D:\powershell> $sqlitePath = "c:\Program Files\SQLite.NET\bin\System.Data.SQLite.dll"
PS D:\powershell> [System.Reflection.Assembly]::LoadFrom($sqlitePath)

GAC    Version        Location
---    -------        --------
True   v2.0.50727     C:\Windows\assembly\GAC_32\
System.Data.SQLite\1.0.65.0__db937bc2d44ff139\System.Data.SQLite.dll

PS D:\powershell> $Con = New-Object System.Data.SQLite.SQLiteConnection 
PS D:\powershell> $Con.ConnectionString = "Data Source=d:\powershell\test.db3"
PS D:\powershell> $Con.Open()
PS D:\powershell> $Cmd = $Con.CreateCommand()
PS D:\powershell> $Cmd.CommandText = "CREATE TABLE test (id INTEGER, x INTEGER)"
PS D:\powershell> try{ [bool] $Cmd.ExecuteNonQuery() } catch {write-host $_ }
Exception calling "ExecuteNonQuery" with "0" argument(s): "SQLite error
table test already exists"

Interaktív shell parancsok futtatása fürtön

UPDATE: mostmár bash completion támogatással!

Baromi egyszerű feladatra kerestem eszközt: max 8 node -os cluster -eken szerettem volna interaktív shell parancsot futtatni, sorosan, ssh -n. Kipróbáltam a dsh -t, pdsh -t, pssh -t, kanif -ot, dish -t, de interaktív shellt egyik se kezel*. Itt lett elegem a keresgélésből, inkább írtam egy bash function -t, ami legalább mindig kéznél van (.bashrc). Mindenkinek aki szereti.

Talált fájlok

2009.04.15-én írtam egy házidolgozatot a linuxról. Már akkor gondoltam rá, hogy majd egyszer feldobom valahova a netre, csak aztán elmaradt. Most eszembe jutott, úgyhogy gyorsan megkerestem a gépemen, és feldobtam ide. Amit akkor írtam, azt nagyrészt ma is így látom. Van 1-2 hiba benne, változtatás nélkül közlöm. Egyedül a helyesírási hibákat javítottam (ugyanis hajnali kettőkor fejeztem be annak idején, és ilyenkor már hajlamos hibákat ejteni az ember). :)

Ezen kívül megtaláltam a lylipond playerem, illetve az ehhez kapcsolódó ébresztő scriptem. Megtalálható itt: http://batserver.freeweb7.com/index.php/files/projects/lylipond/

2.6.33 és Ati Radeon HD3300

Sziasztok

Korábban írtam egy hasonló blogot, csak akkor még a 2.6.32-es kernellel. Tavaly december óta használom a nyílt forrású Ati drivert és teljesen megvagyok vele elégedve. Az újabb kernelek changelog-jában láttam, hogy rengeteg radeon-os commit van, ezért a 33-as kernel több RC kiadását is kipróbáltam, de a 3D nem ment és a teljesítmény is kevesebb volt, mint a 32-es kernellel. A log-okban csak ennyi állt:


[    2.361666] platform radeon_cp.0: firmware: requesting radeon/R600_rlc.bin
[    2.364390] r600_cp: Failed to load firmware "radeon/R600_rlc.bin"

OI a Wikipedia-n

Muczy barátom javasolta ezt a linket: http://en.wikipedia.org/wiki/Osteogenesis_Imperfecta . Itt írja, hogy 7+1 típusa van az OI-nak (a +1 az már "csak" egy mutációja az igazi OI-nak). Mi itt Magyarországon csak 4-ről tudtunk, és emlékeim szerint ezt a wikipedia oldalt mintha már láttam volna, de akkor még az is 4-ről írt mindössze.

Az lenne a kérésem, hogy az 5, 6, 7 típus definícióját nem fordítaná-e le nekem valaki magyarra, hogy megértsem? Próbáltam Google fordítóval, de az a fordítás olyan, mintha egy bedrogozott tag próbálna szavalni...:D Amennyiben valaki lefordítja nekem valaki, úgy engedélyével kiegészíteném az http://uvegcsont.hu/oi/altalanos_leiras címen található leírást,

Uj kozossegi projekt!

- Kiabrandultal a jelenlegi projektedbol, de nincs tehetseged forkolni?
- A Powerball-ban sem talalsz kihivast, mert mar olyan szinten tartasz, hogy atkopognak a szomszedok/kilazult a tomesed?
- Vagy csak egyszeruen szeretnel valamit adni embertarsaidnak (fuggetlenul attol, hogy sz@rt se kapsz cserebe, sot talan ki is rohognek)?
- Nem fognak vissza az olyan elvi meggondolasok, hogy "de ez nem az en munkam!"?

Ime a javaslatom: Takaritsd a kornyezeted, lapatold el a megmaradt havat!

Most idealis az idopont, mert felmelegedett az ido.
Persze, ha varunk meg egy-ket napot, magatol is elolvad, ez valoban igy van, en is rajottem.

Negyven éves lettem.

Ma délután 12:30-kor betöltöttem a negyvenet. Számomra nem jelent semmit sem, de úgy tűnik, Kedvesemnek és szüleimnek igen. Pedig tudják, hogy nem ünneplek se névnapot, se születésnapot. Számomra bagatell dolog, hogy minek hívnak, és hogy mikor láttam meg a napvilágot. Viszont nyomokat találtam, tehát készül valami.

Ha jól silabizáltam az Operát, akkor holnapra asztalfoglalás van, és pluszba még egy tortarendelés is le lett adva. Már csak arra vagyok kíváncsi, hogyan fogja Kedvesem tálalni a dolgokat. Szombaton ugyanis a kötelezőkön kívül (piac,esetleg hentes), némi takarítás, stb. nem nagyon lehet kirobbantani hazulról. Hiába no, megöregedtem. :-D