Linux/FAQ

(přesměrováno z Linux:FAQ)

Jak vypadá Linux?

editovat

V současné době již většina linuxových distribucí určených pro desktopy disponuje po spuštění grafickým rozhraním, takže uživatelé přicházející z operačních systémů založených na grafickém GUI (Graphical User Interface - grafické uživatelské rozhraní) (nejčastěji MS Windows nebo Mac OS) nezažívají podobný šok jako dřív. Přesto je však na místě upozornit, že pro běh linuxové distribuce není okenní GUI nezbytný.

Problém zatuhlých oken

editovat

Zatuhnutá okna nemusí nutně znamenat nefunkční systém. Zpravidla stačí pouze restartovat X server

  • buď lokálně kombinací kláves CTRL+ALT+Backspace nebo
  • přihlášením přes síť a restartováním X serveru pomocí příkazové řádky přes terminál

Disková zařízení

editovat

Kde pod linuxem najdu disky?

editovat

Především je důležité pochopit, že na 'rozdíl od systémů MS Windows, DOS, či Symbian aj. mají unixové systémy pouze jeden kořen - / a disky, diskové oddíly (a jiná zařízení) jsou k nalezení jako speciální soubory v adresáři /dev.

Tj. to co u MS Windows vidíte jako disk C:\ může být v linuxu diskový oddíl (partition) dostupný jako zařízení /dev/hda1 ovšem aby bylo možné přistupovat k souborům na něm uloženým, je třeba takový diskový oddíl nejprve někam připojit. Např. následujícím příkazem:

user@stroj:~$ mount /dev/hda1 /mnt

Na tomto místě je třeba hned zkraje říct že..

  • disk nemusí být viděn jako hda (viz níže)
  • příkaz mount nemusí rozpoznat typ souborového systému
  • tzv. "přípojný bod" tj. adresář do kterého disk (nebo jiné blokové zařízení) připojujeme, může být zcela libovolný. Obvykle tomu bývá tak, že v adresáři /media jsou vytvořené přípojné body pro jednotlivá zařízení a na adresář /mnt se připojují disky operativně.
  • diskový oddíl může být připojen do více bodů současně
  • a vůbec nemusí jít o skutečný disk, ale klidně může být takto přimountován tzv. obraz disku (image) získaný třeba příkazem dd (v takovém případě však musí být použita volba loop)

Uživatelé zvyklí na automatické připojování externích disků mohou nad tímto manuálním postupem ohrnovat nos, ale časem poznáte, že to dává úžasnou svobodu a volnost při práci s disky. Ostatně, ale i v linuxu může fungovat automatické připojování (automount) tak jako v jiných OS. Na rozdíl od nich však máte svobodu volby..

U starších verzí linuxu než řady 2.6 bylo jednotlivá zařízení potřeba zpočátku vytvářet ručně. Určitá základní sada zařízení byla dostupná hned po instalaci, ale tak jak rostl počet zařízení, které bylo možné do systému připojit, bobtnalo i množství souborů v adresáři /dev. Jako první systém pro automatické vytváření souborů zařízení byl vytvořen devfs který však byl nahrazen u řady 2.6 systémem udev, který má mnohem lepší návrh a umožňuje lépe dynamicky spravovat jednotlivá zařízení.

Při startu systému jsou identifikována připojená zařízení, a podle určitého seznamu pravidel (udev rules) se postupně vytvářejí příslušná zařízení. Jejich název je obvykle odvozen od použitého ovladače a typu zařízení.

Pro přístup k disketové mechanice jádro používá modul floppy. Jde o tzv. "blokové zařízení" (data jsou u zařízení zapisována a čtena po blocích) což jsou obvykle disky, nebo disketové mechaniky. CD nebo DVD mechaniky jsou specifická zařízení takže u nich to vždy nemusí platit, ale o ty teď nejde. Název zařízení se tedy vytvoří pomocí písmen "f" (floppy) a "d" (disc) na konci jsou pak čísla příslušného diskového oddílu. Diskety obvykle nemívají více diskových oddílů, takže disketovku můžete v systémovém adresáři /dev najít jako zařízení fd0.

Disketová mechanika
Jak už bylo zmíněno v příkladu, používá se modul floppy takže z 90% ji najdete jako zařízení /dev/fd0

výjimka může nastat tehdy, pokud máte disketových mechanik ve stroji víc. V dnešní době se však spíš setkáte s tím, že nemáte disketovku žádnou a modul floppy můžete tím pádem při rekompilaci jádra klidně vyhodit.

PATA disky
V současné době ustupují a začínají být nahrazovány SATA disky. Zkratka naznačuje, že jde o disky připojené na tzv. IDE rozhraní pomocí paralelního IDE kabelu - je to široký, plochý kabel. Vyskytují se dva typy 40-žilový a novější 80-žilový (familiérně označovaný "stovkový" protože umožnil přenos dat rychlostí 100MHz a vyšší). Existuje také kulatá varianta tohoto kabelu,ale IDE konektor je stejný. Protože se obvykle přes ide rozhraní připojovaly pevné disky (harddisky, HDD), ustálila se konvence pro pojmenování zařízení připojených přes ně na prvním písmenu "h" (harddisk). Pevných disků však mohlo být ve stroji více. Na většině základních desek totiž byly 2 IDE konektory, tzv. "primary" a "secondary", z nichž v každém mohl být jeden kabel se dvěma konektory (koncový "master" a prostřední "slave"). S kabelem, který by měl větší počet IDE konektorů jsem se nesetkal. Takže vyvstala potřeba jednotlivé disky od sebe dále odlišit. Do názvu zařízení se proto začalo přidávat postupně podle abecedy další písmeno a, b, c,.. podle toho jak je jádro postupně našlo. Ale teď následuje drobná vsuvka...
Primární diskové oddíly (Primary partition)
Kapacita pevných disků byla mnohem větší než u disket, a s rozvojem technologií postupně rostla (a zatím ještě roste). Bohužel vývojáři souborových systémů neočekávali tak prudký boom, a první souborové systémy měly mnohé technologické omezení, které tím pádem limitovaly jejich maximální kapacitu. Dočasným řešením bylo zavedení diskových oddílů.
Logické diskové oddíly (Extended partition)
Poměrně záhy se však opět narazilo na technologický problém v omezení adresování disku, který byl vyřešen zavedením tzv. rozšířeného diskového oddílu (Extended partitions), který je vlastně pouhým kontejnerem pro další diskové oddíly.
...K názvu zařízení tedy ještě přibylo číslo označující pořadí diskového oddílu od začátku disku. Disk připojený přes IDE rozhraní tedy můžete najít v adresáři /dev třeba jako zařízení hda nebo hda0, ovšem diskové oddíly na takovém zařízení jako hda1, hda2 atd..
SCSI a SATA disky
externí USB a FLASH disky
Původně se používal pro práci s blokovými zařízeními přes usb jaderný modul ub ale ten má omezení na max. počet 8 diskových oddílů. Vytvořená zařízení pak byla pojmenována uba nebo uba0, v případě dalšího usb zařízení pak třeba ubb atp. Pojmenování zařízení pak vychází z logiky názvu ovladače usb block (blokové zařízení na USB)
Většinu externích disků neměla více diskových oddílů, když se však začaly používat adaptéry IDE-USB přes které lze připojit disky které mají diskových oddílů více (nezapomínejte, že se započítává i swap a logický oddíl ), nastal problém s tím, že se nevytvoří všechna potřebná zařízení. Proto se začal upřednostňovat jaderný modul usb-storage, kde tento problém není. Uzlové body zařízení přístupné přes tento modul se pojmenovávají stejně jako ostatní scsi zařízení - sda, sdb,sdb1 atp.
Pro paměťové FLASH disky (tzv. "klíčenky") je také typické, že jsou obvykle formátovány na souborový systém FAT32, který má svá omezení. Pokud tedy potřebujete na takový disk zálohovat nějaká data, je doporučeno k tomu použít některý z archivačních nástrojů.
  • Rozdíl mezi sd sg sc

Vypsat jaké váš systém aktuálně "vidí" diskové oddíly oddíly si můžete příkazem:

user@stroj:~$ cat /proc/partitions

Donedávna se používalo pro přístup k diskovým zařízením několik ovladačů. V poslední době, od jádra 2.6.20 však dochází k jejich sjednocování pod jednotnou hlavičkou libata, takže vaše disky (a také USB disky a CD mechaniky..) se nejspíš budou v systému jevit jako by byly připojené přes SCSI rozhraní.

Je lepší rozdělit disk na diskové oddíly, nebo vytvořit jeden oddíl přes celý disk?

editovat

Tato otázka dokáže vždy spolehlivě rozohnit na linuxových fórech debatu. Stejně jako ta následující. Přitom na ni neexistuje jednoznačná odpověď. Existuje pouze praktický soubor empirických zkušeností který se u každého liší. Pokusím se tedy vyložit podle svého nejlepšího vědomí a svědomí všechna pro a proti.

  • Pokud máte veškerá data na jednom diskovém oddíle nezískáváte žádnou výhodu v rychlosti přístupu na disk. Spíš naopak.
Při startu systému bude trvat déle kontrola souborového systému
V případě, že dojde k poškození souborového systému, je větší pravděpodobnost že přijdete také o některá uživatelská data
Pokud se vám zacyklí nějaký proces, tak se vám snadno může stát, že vám narůstající logovací soubor zaplácne celý souborový systém a ten se vám pak nepodaří spustit.
  • Máte-li systém nainstalovaný na více diskových oddílů
Je třeba věnovat větší pozornost při manipulaci s disky, tak abyste omylem nezformátovali systémový disk, atp.
Zhavaruje-li vám souborový systém na některém z diskových oddílů, neznamená to nutně ztrátu uživatelských dat
Pokud je do adresáře /var připojen samostatný diskový oddíl, tak v případě jeho "zaplácnutí" logem nedojde ke kolapsu celého systému. Pravděpodobnost havárie souborového systému je také u diskového oddílu s tímto adresářem mnohem vyšší také proto že je do něj obvykle častěji zapisováno.

Který souborový systém je nejlepší?

editovat

Ani na tuto otázku neexistuje jednoznačná odpověď a platí: "Někdo holky, jiný vdolky." V podstatě je úplně jedno který z nativních linuxových souborových systémů použijete. Abyste sami mohli posoudit jejich klady a zápory, máte zde k dispozici Přehled souborových systémů

Instalace software

editovat

Pod pojmem Linux se obvykle rozumí nejenom pouhé jádro, ale celá distribuce. Distribuce je kompletní systém, který obsahuje kromě jádra také všechny základní knihovny a aplikace, nezbytné pro chod systému. Mimo jiné také obsahuje nástroje, které jsou potřebné pro instalaci dalšího software.

"Svatá trojice"

editovat

Mezi ty nejzákladnější, který má své kořeny v unixovém dávnověku, patří příkaz make, který obsahuje prakticky téměř každá distribuce. Postup jeho použití se slangově označuje jako tzv. "svatá trojice". Viz

user@stroj:~$ ./configure
user@stroj:~$ make
root@stroj:~# make install

  • Prvním příkazem se provede základní konfigurace, tj. během spuštění konfiguračního skriptu se ověří zda jsou k dispozici všechny potřebné aplikace a knihovny a nastaví ev. další systémové proměnné (kam se mají nainstalovat binární spustitelné soubory, kam knihovny, kam dokumentace, atp.)
  • Druhý příkaz provede vlastní sestavení aplikace - tj. vytvoření binárních souborů, vygenerování dokumentace atd.
  • Třetím příkazem se provede vlastní instalace. Pokud není určeno jinak (při konfiguraci), použije make pro instalaci jako výchozí adresář /usr/local

Protože úspěch sestavení závisí do značné míry také na kvalitě konfiguračního skriptu, byly vytvořeny další alternativy jak pro automatické vytvoření konfiguračního skriptu, tak pro vlastní sestavení aplikace.

Instalace aplikací přes "svatou trojici" apod. je sice jednoduchá, ale nese sebou také řadu nevýhod. Ne vždy totiž autoři instalačních skriptů pamatují také na to, že někdo bude chtít aplikaci také odinstalovat, a také nijak neřeší ev. závislosti mezi instalovanými knihovnami. Proto vznikly balíčkovací systémy.

Díky balíčkovacím systémům lze software v rámci linuxových distribucí instalovat mnohem elegantněji než u MS Windows. Většina z nich má k dispozici nějakého správce balíků přes který stačí vybrat co chcete, stáhnout a doinstalovat.

Instalace software ze zdrojových kódů

editovat

Někdy se však můžete setkat s aplikacemi, které zrovna ve vaší distribuci nejsou. V takovém případě můžete většinou použít první postup - kompilaci ze zdrojového kódu, ale než takovou instalaci "naprudko" je lepší obeznámit se s postupem tvorby instalačních balíčků.

Instalace balíků z jiných distribucí

editovat

Je v zásadě možná díky aplikaci alien, ale je třeba mít na paměti několik důležitých faktů:

  • U takto vytvořeného balíku nemusí sedět závislosti
  • Aplikace kterou "přebalíte" přes alien může vyžadovat knihovny, které ve svém systému nemáte nainstalované, nebo mají ve vaší distribuci trochu jiný název, či umístění (to však lze dodatečně pořešit přes symbolické linky, viz příkaz ldd)