Nedávno jsem aktualizoval na 14.04 a k mému překvapení mi začala dost rychle docházet paměť. Jedu na Xubuntu a Xka si po dni používání vezmou kolem 650Mb paměti. Po startu mají cca 100Mb a pak už víceméně jen rostou ... Projevuje se to jak ve Virtualboxem virtualizovaném systému(64bit), tak i na reálném HW(32bit). Tj. dva různé systémy, prostředí.
Máte někdo nějaký podobný problém ? Nebo jsem šťastlivec kterému to na všech systémech leakuje ? Už se pomalu bojít aktualizovat ... čekat co zas přijde za hrůzu :-\
Tohle je super věc, že to linux dělá, ale ještě by to chtělo vylepšit, aby i stránky obsazené paměti aplikacemi byly považovány za cache a byly udržované ve stavu s vynulovaným dirty flagem. Pak by množství volné paměti dost podstatně vzrostlo. Znamená to ovšem implementovat spekulativní swapování (prováděné v době, kdy disk nemá co na práci) a schopnost mít obsah paměti na dvou místech současně. Na Linuxu impossible, ve Windows od verze 95 běžná věc ;)
To chování WinXP, stavěných na počítače s RAM hluboko pod 1GB (doporučená konfigurace měla 128MB, minimální 64MB), mělo dobrý důvod. Jakmile to bylo možné, Windows odkládaly stránky paměti do swapu. Ty stránky samozřejmě zůstávaly i v RAM, ale když nějaká aplikace potřebovala víc RAM, jednoduše se jí přidělily stránky které se dlouho nepoužívaly a byly už ve swapu. To výrazně zlepšovalo reakce počítače s tak malou RAM. Pokud měl uživatel 4GB RAM, což v roce 2002 jaksi nebylo obvyklé :), tak samozřejmě nedávala podobná strategie moc smysl. Jenže kdo tehdy měl 4GB RAM, asi měl i rychlý disk, a bylo mu to celkem jedno.
Ono to samozřejmě záleží na distru a HW, plus v případě OOo na quickstarteru :). Pokud si na stejný HW nainstalujete Windows 8.1 a poslední Ubuntu, spouštění aplikací bývá pravidelně rychlejší ve Windows. Zvlášť pokud aplikace potřebuje víc RAM, než kolik je jí momentálně volné.
Jedna se o i5/4GB/SSD a Xubuntu 14.04, LibreOffice pousteno samozrejme BEZ quickstarteru :)
Nebudu instalovat Win8.1 nejsem posuk, ale Win7 ktere na NB byli a stitek porad ze spodu smrdi byli pomalejsi a neohrabanejsi, takze jsou odstranene a mam 30GB na SSD pro lepsi vyuziti ;)
U X11 je těch problémů daleko víc. Například bezpečnost je naprosto tragická. Příklad: na Linuxu sice musíte pro spoustu akcí vložit heslo roota, ale málokdo si uvědomuje, že to heslo může díky X11 events odposlechnout jakákoliv aplikace, a podobně ho může jakákoliv aplikace zadat za vás. Podobně může jakákoliv aplikace poslat cokoliv na terminál, který vám běží pod rootem. Tím prakticky padají jakékoliv bariéry mezi procesy na jednom desktopu, které běží v různých kontextech.
Pointa je v tom, že těchhle katastrof je všude plno.
Řekněme, že máme na ploše zástupce prográmku x.exe. Prográmek y.exe přesměruje zástupce sám na sebe. klikneš na ikonu, nastartuje y.exe, vytvoří proces x.exe a rovnou hookne zprávy pro okno... Vyzkoušeno v praxi jako kanadský žertík...
To je sice pěkný kanadský žertík, ale nebude fungovat pro UAC prompt, ani pro aplikace běžící s high integrity level (command prompt běžící pod adminem, systémové procesy atd). Jednotlivé aplikace běžící ve stejném kontextu a se stejným integrity level takhle oddělit bohužel nelze, protože spolu mohou oprávněně komunikovat.
Praktický příklad čeho? V prvním linku uvidíte jako posílat X11 events, v komentářích jsou drobné změny kódu. V druhém máte keylogger.
http://www.doctort.org/adam/nerd-notes/x11-fake-keypress-event.html
http://www.nullsecurity.net/tools/keylogger.html
A teď ještě jak se ten keylogger dostane do systému třeba jen tím, že přijmu email. Nebo že vejdu na nějakou stránku. Tak jak se to děje běžně na Windows, pak je to totiž nebezpečí, pokud nesplníte i tuto praktickou část, máte jen zajímavou aplikaci, ale ne škodlivý software, takže opět jen teorie. Chtěl bych vidět nějaký spolehlivý způsob šíření bez vědomí uživatele. To že si udělám aplikaci zvanou keylogger, využívající featury systému mi přijde zcela v pořádku, je hromada legitimní důvodů, proč odchytávat klávesy, rád by ale praktický případ, kdy to bude škodit a bude to se to lehce šířit jako na Windowsech.
Aplikace běžící pod účtem restricted usera může ovládat jinou aplikaci, která běží s právy roota. Například může do terminálu běžícího pod rootem poslat nějaký příkaz. To není žádná teorie, ale privilege escalation. Podobně pokud jako restricted user píšete heslo roota při spouštění řekněme GUI administračního nástroje, a jiná aplikace to heslo odchytne, jde o závažný bezpečnostní problém.
Ad jak se ten keylogger dostane do systému třeba jen tím, že přijmu email. Nebo že vejdu na nějakou stránku - hrozně jednoduše. Stačí třeba bug ve Firefoxu. FYI jen za rok 2013 měl Firefox 270 bezpečnostních děr, Google Chrome 245 a MSIE 126. Dalšími oblíbenými vektory jsou Adobe Flash a Java. Samozřejmě existují i díry v emailových klientech. Na Linuxu snižuje pravděpodobnost nákazy jen jeho malé rozšíření.
http://secunia.com/vulnerability-review/browser_security.html
*facepalm*
+
https://www.youtube.com/watch?v=5hfYJsQAhl0
Je to hodnota udaná pro proces /usr/bin/X ve sloupci "RES" programu htop. Našel jsem ten bug(nebo jemu hodně podobný) hlášený tady: https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1314787 Ale doporučované postupy tam uvedené nepomohly :-(
To co si si vsimol je spravanie kazdeho moderneho OS. RAM je narychlejsi resource, takze pokial system moze dovoli cacheovat do RAM. Ak sa vytvory novy proces pozadujuci viam RAM, neplatne stranky sa dropnu a alokuju k novemu procesu.
Na internete najdes vela clanok s vysvetlenim: jeden z mnohych:
http://www.chrisjohnston.org/ubuntu/why-on-linux-am-i-seeing-so-much-ram-usage