Portál AbcLinuxu, 2. května 2025 07:13
poněvadž se tady poměrně často vyskytují dotazy na to, jakou distribuci zvolit pro starší počítač (povětšinou notebook), rozhodl jsem se napsat tento návod, v němž shrnuji své zkušenosti s provozem Linuxu na starším hardware.
Konkrétně se jedná o notebook Toshiba Portégé 7020CT - Mobile Pentium II 366 Mhz, 64 MB RAM. Výběr distribuce je věc individuální, radit konkrétní nemá smysl, každý má totiž zkušenosti a preference jiné. Osobně jsem zvolil čerstvě nainstalovanou distribuci Arch Linuxu a postupně se dostal, díky úpravám a přidávání aplikací, k funkčnímu systému pro běžné použití. Pokud preferujete postup obrácený - nainstalovat komplexnější distribuci a postupně nahrazovat pomalé programy jejich rychlejšími alternativami, nic v tom pochopitelně nebrání. Pro inspiraci - Arch jsem vybral z těchto důvodů:
Necítím se být povolaný k dlouhým disputacím o výhodách a nevýhodách jednotlivých systémů souborů – jednoduše k tomu nemám dostatečné znalosti. Zde jsou odkazy na dvě relativně aktuální porovnání jejich výkonnosti: debian-administration.org a linuxgazette.net. Závěr, který jsem z nich učinil, je takovýto: pro pomalé CPU je vhodnou volbou jfs, neboť je obvykle nejméně systémově náročný. Jako alternativní volba se nabízí xfs, který je o něco výkonnější, na druhou stranu také více zatěžuje procesor.
Pokud nevíte, co je swap a k čemu je dobrý, čtěte. Jak z článku vyplývá, výpočet velikosti swap oddílu záleží na potřebách jednotlivce, nicméně protože se budeme snažit využívat suspend2 s ukládáním image do swapu, je třeba připočítat k velikosti swapu potřebného pro běh programů i cca 70% velikosti paměti RAM.
Sestavení toho „pravého" jádra může být trošku oříšek. V zásadě jsou dvě možnosti: využít vanilkový kernel, nebo patchovat. Poněvadž nemáme přebytečný výkon a potřebujeme co nejlepší možné desktopové chování, zvolíme druhou možnost. Dobře poslouží beyond patchset, který je rozšířením -ck patchsetu Cona Kolivase. Kompilace jádra není žádná věda, proto zde uvedu pouze několik voleb, které mohou zvýšit použitelnost Linuxu na horším HW:
General setup => Optimize for size (Look out for broken compilers!) Vypnout, -Os vypíná některé optimalizace, které -O2 obsahuje. Block layer => IO Schedulers => Default I/O scheduler Zvolte CFQ, pro desktopové používání je zřejmě nejvýhodnější. Processor type and features => Processor family Zvolte svůj typ procesoru. => Generic x86 support Vypnout. => Preemption Model Vyberte Voluntary Kernel Preemption (Desktop). => Timer frequency Zvolte 1000 HZ. Power management options (ACPI, APM) => Software Suspend Vypněte, budeme používat nástupce. => Suspend2 To je on=> Swap Writer Vybrat, už o tom byla řeč výše. => Default resume device name Pokud nemáte v plánu nějak zásadně laškovat s partition table a disky, zadejte swap oddíl (např. /dev/hda2), jinak nevyplňujte. Cryptographic options => Cryptographic API Chceme. => LZF compression algorithm Chceme ještě o něco víc, bude se hodit se Suspend2, více dále.
Na závěr této kapitoly ještě jeden tip: Nemáte-li v plánu například pravidelně používat síť, nemá smysl ovladač síťové karty dávat přímo do jádra, ale je výhodnější jej zkompilovat jako modul. Je-li totiž v jádře, zabírá zbytečně místo v paměti. Stejně tak to platí i pro ostatní zařízení.
Pravděpodobně máte jako svůj defaultní shell BASH. Kromě toho, že je velice výkonný a řada systémových skriptů by s jinými shelly běhala horko těžko - pokud vůbec, je také poměrně systémově náročný. Proto, pokud nevyužíváte některé jeho pokročilé vlastnosti, doporučuji jej nahradit některou méně výkonnou, ale systémově méně náročnou variantou. Jednou z nich je i mksh z mně sympatického projektu MirOS BSD. Není minimalistický, chcete-li takový, sáhněte například po shish. Mksh je slušně vybaven a k tomu všemu se spokojí s polovinou prostředků, které si vezme BASH:
SZ VSZ RSS CMD 660 3564 1632 bash 260 1692 620 mksh
Po zkompilování, nainstalování a chvíli používání, kdy se rozhodnete, zda jej chcete skutečně používat, jej můžete nastavit jako svůj výchozí shell například pomocí programu chsh
. V případě, že se rozhodnete BASH nepoužívat, rozhodně doporučuji jej nechat v systému a /bin/sh linkovat na něj - jak jsem již předeslal, mnoho skriptů by si s jiným shellem nemuselo rozumět.
Desktop bez X serveru by byl jako Laurel bez Hardyho, ani my se bez něj proto neobejdeme. Se snižováním nároků X serveru, v našem případě X.org, to je ovšem poněkud složitější.
Můžeme například odstranit některé fonty (zakomentováním FontPath v sekci Files v xorg.conf):
SZ VSZ RSS COMMAND # X server spuštěn tak, aby načítal pouze fonty v /usr/share/fonts/misc 2068 7616 4000 X # + /usr/share/fonts/75dpi & /usr/share/fonts/Type1 3052 8600 4968 X # + /usr/share/fonts/artwiz-fonts & /usr/share/fonts/TTF 3436 8984 5276 X
Jak je vidět, rozdíl není nijak závratný. Používám střední variantu, neboť poslední varianta obsahuje fonty, které používám pouze v aplikacích, které si beztak fonty hledají samy.
Druhá oblast, kde se dá pár MB ušetřit. Chcete-li používat login manažer, nemusíte tento odstavec vůbec číst. Startování X serveru z konzole je věc nekomplikovaná - obvykle se k tomu používá příkaz startx
, který provede vše potřebné. Jedná se však o shell skript, který načte informace z určitých souborů a s parametry (obvykle) spustí xinit. Z toho ovšem vyplývá, že kromě X serveru běží ještě dva další procesy, bez kterých se obyčejně dá obejít: interpretr shellu (nejspíše BASH) a xinit. Jak se jich zbavit? Například takto: X -nolisten tcp :0 & DISPLAY=:0 icewm-session
Tento příkaz spustí X (link na Xorg) s parametry -nolisten tcp
(protože neplánuji sdílet X server s jiným počítačem, nechci, aby na síti poslouchal) a :0
(specifikuje, jako který display má X server nastartovat; :0 je výchozí hodnota, uvádím ji spíše aby to bylo jasné), druhá část příkazu je prostá: DISPLAY=:0
je nastavení proměnné prostředí DISPLAY na hodnotu :0 a spuštění icewm-session
. Proměnná DISPLAY je automaticky nastavena X serverem, ale díky tomu, že spouštíme X i icewm paralelně, nestihl ji ještě X nastavit a icewm neví, s čím pracovat. Je však třeba dodat, že tento způsob startu pochopitelně nenačítá žádná nastavení z uživatelských konfiguračních souborů, takže obsah například .xserverrc, .xinitrc atd., ve kterém obvykle specifikujete své vlastní požadavky na start X, nejsou takto brány v potaz.
Ačkoliv mám velice rád KDE, které je nejen window, ale i desktop managerem, měl jsem již předem podezření, že to nebude pro tuto situaci to správné řešení. Zběžná zkouška ukázala, že jsem se ani v nejmenším nemýlil a KDE putovalo z disku (GNOME nedopadlo jinak). Volba tedy padla na hledání vhodného mezi leightweight window managery. Pochopitelně jsem nezkoušel všechny existující - žiji jen jednou - výčet těch testovaných vypadá takto:
key "Ctrl+e" rxvt
a vše je hotovo.
S kancelářskými programy je to o něco složitější, než by se na první pohled mohlo zdát. Budu se věnovat hlavně textovému procesu, okrajově tabulkovému kalkulátoru, jiné programy totiž nepoužívám. Poněvadž požaduji interoperabilitu, je zcela přirozené požadovat podporu OpenDocument formátu. V zásadě jsou tři možnosti, z nichž lze vybírat:
OpenOffice.org je nejvybavenější a zdaleka nejfunkčnější svobodný balík kancelářských aplikací na Linuxu dostupný, nativně podporuje OpenDocument, ovšem je také úžasně systémově náročný. Představte si situaci, kdy máte ve Writeru otevřený desetistránkový dokument, nacházíte se na jeho začátku a chcete se podívat na třetí stránku. Řeknete si, že řešení je prosté - párkrát zmáčknete Page Down a je během vteřiny hotovo. Neplatí to ovšem pro OpenOffice.org bez dodatečného výpočetního výkonu - zmáčknete-li totiž Page Down, text se posune a dole se objeví bílý obdélník, do nějž se postupně začne vykreslovat text, který tam má být. Rychlost vykreslování je ovšem neúnosně pomalá - odhadem dva řádky za vteřinu a s velikostí otevřeného dokumentu ještě klesá. Výrazně horší to však je ještě v situaci, kdy chcete zobrazit jakékoliv menu, které překryje text a k tomu z něj ještě spustit nějaký dialog. Ten totiž také překryje text a po jeho zavření dochází k tomu samému, co bylo popsáno výše. V zásadě je tedy OpenOffice.org pro naše potřeby nepoužitelný.
KOffice je balík kancelářských aplikací pro KDE, jako svůj nativní formát také využívá OpenDocument. Využití OpenDocumentu ovšem není úplně bezproblémové - u některých svých (mou vytvořených, v OO.org 2) dokumentů jsem zaznamenal problém se správným načtením fontů jednotlivých stylů - text je pak sice daným stylem formátován, s výjimkou použitého fontu, což může například způsobit nezobrazení diakritiky (objeví se čtverečky). Na druhou stranu u většiny ostatních dokumentů se tato chyba neobjevuje, styly jsou načteny správně. Pomáhá pak daný styl otevřít ve style manageru, znovu mu nastavit font (což způsobí mimojiné i správné zobrazení diakritiky) a soubor uložit. Zobrazuje se pak správně jak v KOffice, tak OO.org. Tento problém jsem zaznamenal pouze u KWordu, v KSpreadu se všechny mé testované .ods zobrazily správně. Co se týče programů samotných, je KOffice poměrně schopný balík, nepocítil jsem žádný funkční nedostatek. Po delším startu, kdy se nahrávají i některé KDE knihovny, je program dostatečně svižný (scrollování v KWordu se chová tak, jak by člověk předpokládal), ovšem s tím, že editování textu jinde než na konci dokumentu po čase editování vytíží procesor na 100 % a „živost" programu ztratí svůj původní glanc. I přes to je ale program použitelný a vybral jsem si jej jako svůj kancelářský balík.
Gnome Office není integrovaný balík ve stylu KOffice či OO.org, ale jednotlivé, samostatně vyvíjené programy. AbiWord je jednoduchý textový procesor který nativně používá svůj vlastní formát souborů a podpora OpenDocument je dostupná ve formě plug-inu, který však ještě potřebuje vylepšit. Je sice pravda, že dokumenty, u nichž KWord podivně načetl fonty načetl AbiWord správně, na druhou stranu v některých souborech formátování zdaleka neodpovídalo originálu. Další - a pro mě zásadní - chybou je však to, že AbiWord nepodporuje automatické číslování nadpisů. Používáte-li jej, AbiWord sice nadpis načte, ale číslo nezobrazí. Na podpoře OpenDocumentu pro Gnumeric se sice pracuje, je však současné době dostupný pouze pro alfa verzi Gnumericu a ve stabilní verzi se tedy nevyskytuje.
Testoval jsem tyto tři prohlížeče: Dillo, Firefox a Operu.
Nejrychlejší a nejméně systémově náročný je Dillo. Je to však vykoupeno tím, že renderování běžných stránek v jeho podání je dost slabé a použitelné jen se sebezapřením. [1] [2]
Nemyslím, že je nutné na tomto portálu představovat Firefox, jádro Gecko je jistě výborné, ale marná sláva - celá aplikace je systémově dost náročná. Nechci tvrdit, že je Firefox nepoužitelný, jen je celá aplikace příliš málo živá na to, abych o ní tvrdil, že není problém ji používat.
O renderování stránek v podání Opery již bylo mnoho napsáno, aplikace zabírá v paměti o něco málo méně místa, než Firefox, ale oproti Firefoxu je výrazně živější - tzn. přepnutí do druhého panelu nastane relativně krátce poté, co na panel kliknete - pro srovnání - ve Firefoxu kliknete, systém se zamyslí, pozvolna se změní označená záložka a po chvíli se vykreslí i stránka (občas v jiném pořadí). Ani brouzdání v Opeře bych však neoznačil za úplně komfortní, spíše za snesitelné.
Co se hudby týče - přehrávání MP3/Ogg Vorbis je samo o sobě nenáročné, na mém systému je CPU vytíženo při přehrávání MP3 maximálně na 4 % a při přehrávání Ogg Vorbis o něco málo více - maximálně cca 6 %. Přehrávačů hudby existuje jako máku, problém tedy ani tak není s výběrem, jako s osobními preferencemi a proto předpokládám, že by bylo zbytečné doporučovat nějaký konkrétní přehrávač. Jediná věc je snad ta, že si budete muset nechat zajít chuť na amaroK Pokud ještě neznáte, doporučuji dát šanci přehrávači MOC - skutečně perfektní konzolový přehrávač.
Přehrávání videa je pochopitelně o poznání náročnější než přehrávání hudby. Jako standardní přehrávač používám mplayer bez GUI, neboť s GUI byl obraz trhanější. Zkoušel jsem také xine, nicméně nepodařilo se mi najít nastavení takové, aby se rychlostně mplayeru alespoň přiblížil. Za horní hranici "koukatelnosti" jsem pro můj procesor našel video:
AVI, 576 x 432, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
spuštěno s parametry -framedrop -autosync 1
a zvětšené na celou obrazovku (1024x768). Takovéto video se při přehrávání dynamických pasáží trhá - vypadávají snímky. Hodí se tedy spíše na klidnější video.
Jako optimální se mi osvědčilo video 512 x 384, 25.00 fps, video: DivX 4, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
se stejnými parametry jako video předešlé. Procesor je sice neustále vytížen na zhruba tři čtvrtiny a při velmi dynamických scénách dochází k mírnému vypadávání snímků. Stává se tak však jen zřídka a obvykle se jedná jen o několik málo snímků - všimnu si toho pouze tehdy, když se vědomě soustředím na sledování toho, zda je obraz stoprocentně plynulý.
Video, které mám původně pro přehrávání na telefonu: AVI, 316 x 238, 25.00 fps, video: DivX 5, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
, je při zobrazení přes celou obrazovku podle očekávání naprosto bezproblémové, dynamické pasáže vedou k vytížení procesoru na cca 40 % a poklidnější na cca 30 %. Obrazová kvalita je však samozřejmě mizerná.
Ačkoliv by se mohlo zdát, že správců souborů existují pro Linux spousty, použitelných pro naše účely jich je významně méně. Na mém stolním počítači ke své plné spokojenosti používám Krusader, ten však pro použití na pomalém hardware není zrovna dimenzován, dlouho se totiž načítá a i běžné používání – například měnění adresářů – trvá neúnosně dlouho.
Testoval jsem tedy další programy, konkrétně Tux Commander (0.5.70 alpha), emelFM2 0.1.8 a X Northern Captain 5.0.4
Jak Tux Commander, tak emelFM2 jsou napsány v GTK2, zatímco XNC používá knihovny přímo X. Nejnáročnější a také nejméně živý je Tux Commander, použitelný je pouze se značným sebezapřením. EmelFM2 je na tom již výrazně lépe, ale stále je zřetelná prodleva například mezi stiskem klávesy pro vstup do adresáře a tím, kdy se skutečně obsah adresáře zobrazí (vinu zde kladu GTK2, pomalé překreslování obrazovky je u GTK2 smutným pravidlem). Naproti tomu XNC, který sice designově ve výchozím nastavení působí jako pěst na (alespoň mé) oko, ale díky podpoře skinů se dá proměnit v docela přítulný správce souborů, nejenže reaguje na příkazy uživatele několikanásobně rychleji než oba dříve zmiňované, ale je i nad očekávaní schopný.
SZ VSZ RSS CMD 3616 23172 11412 tuxcmd 2044 13724 5548 emelfm2 2120 8568 4284 xnc
Ačkoliv by se to nemuselo zdát, i na programu k emulaci terminálu se dá mnoho ušetřit. Zejména máte-li ve zvyku mít otevřeno terminálů více. Otestoval jsem tyto programy:
Rxvt je zamýšlen jako náhrada za xterm a i v manuálové stránce je zmínka o tom, že nepotřebuje tolik paměti. Aterm je založen na rxvt a kromě funkcí, které přebral od rxvt, umí také průhlednost. Mrxvt, jak je ostatně již z názvu patrné, vychází též z rxvt a kromě jeho funkcí nabízí i pár zajímavých funkcí: zejména záložky (taby) a průhlednost.
Co se vhodnosti pro provoz na starším desktopu týče, zdá se být situace poměrně jednoznačná - nepotřebujete-li k ničemu průhlednost, šáhněte po rxvt, nedokážete-li se bez průhlednosti obejít, aterm je tou správnou volbou. Máte-li rádi otevřeno více terminálů najednou, stojí za zvážení i mrxvt, ovšem pouze v případě, že je chcete mít na stejné ploše.
SZ VSZ RSS CMD 244 3808 1308 rxvt 672 4448 1800 aterm 956 6268 2768 mrxvt # Pro srovnání: 1636 10724 3132 xterm
Už o tom byla zmínka výše, zprovoznění suspendování je jedna z nejúčinnějších věcí, kterou můžete udělat pro ušetření času. Ve zkratce se jedná se o to, že při vypínání počítače dojde k uložení paměti na disk, takže při příštím startu je obsah paměti obnoven a můžete pokračovat tam, kde jste přestali. Co je k tomu potřeba?
UseSuspend2 yes Reboot no EnableEscape yes DefaultConsoleLevel 1 Compressor lzf Encryptor none SuspendDevice /dev/hda2 # 3 for suspend-to-RAM, 4 for ACPI S4 sleep, 5 for poweroff PowerdownMethod 5 Verbosity 0 LogFile /var/log/hibernate.log LogVerbosity 1 SaveClock restore-only UnloadBlacklistedModules yes LoadModules auto SwitchToTextMode yes DisableWriteCacheOn /dev/hdaCo která volba znamená je popsáno v man 5 hibernate.conf. Zmíním se ještě o pár dalších, které považuji za obzvlášť důležité a výše uvedeny nejsou, neboť je nepoužívám:
Tiskni
Sdílej:
mc
v terminálu).
například o tom Os ... na 64 MB RAM bych se snažil šetřit každým kilobytem paměti, "tradeoff" mezi spotřebou paměti a nepatrným zrychlením při použití optimalizací, které Os vypíná mi přijde jasný
free
po bootu a přihlášení:
S O2: total used free shared buffers cached Mem: 61912 15572 46340 0 400 10088 -/+ buffers/cache: 5084 56828 S Os: total used free shared buffers cached Mem: 62256 15608 46648 0 400 10072 -/+ buffers/cache: 5136 57120Pokud tomu správně rozumím (čímž si nejsem úplně jist), jedná se o 292 KB ve prospěch -Os za cenu nepoužití:
-falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays
. Pak je pochopitelně na místě zvažovat, zda za to tyto optimalizace stojí, ale rozhodně mi nepřijde "tradeoff" mezi spotřebou paměti a nepatrným zrychlením při použití optimalizací, které Os vypíná (..), jasný.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.