]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/commitdiff
Opravy překlepů, přidán cíl cvičeni a zpřesnění některých bodů
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 16 Feb 2011 14:43:03 +0000 (15:43 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 16 Feb 2011 14:43:03 +0000 (15:43 +0100)
cviceni/2.mdwn

index 27dc991c8ba2c1a8a075fad6d67af92ca4b09c06..a406dc5fe8dd25d73d2c7500ee7afe4c650d5ad9 100644 (file)
@@ -5,11 +5,18 @@
 Cíl cvičení
 ===========
 
-Open source projekty se často nepoužívají osamoceně, ale v kombinaci s
-jinými OSS projekty, čímž vznikají tak tzv. OSS stacky. Asi
-nejznámějším stackem je LAMP – Linux, Apache, MySQL, PHP. Na dnešním
-cvičení se seznámíme s dalším, velmi často používaným, stackem
-[Linux][kenrel] + [BusyBox][bb] (+[Dropbear][dropbear] SSH server).
+Cílem tohoto cvičení je prakticky si procvičit informace probírané na
+2. přednášce a motivovat vás ke 4. přednášce "*Linuxové jádro - vznik,
+vývoj, skladba a ovladače; GNU libc a uživatelský prostor*". Pokud vám
+nejsou jasné některé souvislosti, doporučujeme zkusit si informace
+vygooglovat a připravit si otázky na 4. přednášku.
+
+Open source software (OSS) projekty se často nepoužívají osamoceně,
+ale v kombinaci s jinými OSS projekty, čímž vznikají tak tzv. OSS
+stacky. Asi nejznámějším stackem je LAMP – Linux, Apache, MySQL, PHP.
+Na dnešním cvičení se seznámíme s dalším, velmi často používaným,
+stackem [Linux][kenrel] + [BusyBox][bb] (+[Dropbear][dropbear] SSH
+server).
 
 [BusyBox][bb] je sada UNIXových uživatelských nástrojů (shell, editor,
 utility jako ls, mkdir, …) zkompilovaná do jedné binárky. V kombinaci
@@ -66,7 +73,7 @@ Postup
     tam nachází pouze jedna binárka `bin/busybox` a všechno ostatní
     jsou pouze symbolické odkazy na tuto binárku.
     
-    Protože neprovádíme tzv. *křížový překlad*, který je běžný pro v
+    Protože neprovádíme tzv. *křížový překlad*, který je běžný v
     případě vestavěných zařízení, můžeme výsledek hned otestovat
     například spuštěním shellu: `./_install/bin/sh` (ukončíme ho např.
     příkazem `exit`).
@@ -75,7 +82,7 @@ Postup
     dál a busybox otestovat až po nabootování na cílovém hardwaru.
 
 5. Pokud máte na vašem počítači práva superuživatele root, můžete
-   otestovat BusyBox v chroot prostředí, t.j. se stejným jádrem jako
+   otestovat BusyBox v [chroot prostředí][chroot], t.j. se stejným jádrem jako
    právě běží na vašem počítači, ale se souborovým systémem tvořeným
    pouze BusyBoxem:
 
@@ -83,19 +90,22 @@ Postup
 
    Fungovat to ale nebude, protože ke spuštění BusyBoxu jsou potřeba
    knihovny, které v nejsou v adresáři `_install` dostupné.
+   
+[chroot]:http://en.wikipedia.org/wiki/Chroot
 
 6. Chybějící knihovny zjistíte příkazem
 
         ldd _install/bin/busybox
        
-   Tyto knihovny musíte nakopírovat do adresáře `_install`
+   Tyto knihovny musíte nakopírovat do adresáře `_install`. Na
+   32-bitovém systému to může vypadat například takto:
 
         mkdir _install/lib
         cp /lib/i686/cmov/libm.so.6 /lib/i686/cmov/libc.so.6 /lib/ld-linux.so.2 _install/lib
 
    Na 64-bitovém systému jádro hledá pro dynamicky linkované programy
    "interpreter" `/lib64/ld-linux-x86-64.so.2` v adresáři `/lib64`.
-   Vytvoříme ho jako symbolickou linku na adresář `/lib`
+   Vytvoříme ho jako symbolický odkaz na adresář `/lib`
 
         ( cd _install && ln -s lib lib64 )
 
@@ -106,7 +116,7 @@ Postup
    startovací RAM-disk a nabootovat Linux s tímto RAM-diskem.
    
    Aby vše fungovalo jak má, kromě souborů v adresáři `_install` musí
-   RAM-disk obsahovat i někoik položek v adresáři `/dev` pro přístup k
+   RAM-disk obsahovat i několik položek v adresáři `/dev` pro přístup k
    virtuálním terminálům.
 
    1. Pokud máte root práva, použijte ke tvorbě RAM-disku následující příkazy:
@@ -116,7 +126,7 @@ Postup
             ln -s bin/busybox _install/init
             (cd _install; find . | cpio -o -H newc | gzip) > ramdisk
 
-   2. Bez rootovských práv můžete RAM-disk vytvořit pomocí nástoje
+   2. Bez rootovských práv můžete RAM-disk vytvořit pomocí nástroje
       [gen_init_cpio][gic].
 
             (
@@ -153,16 +163,20 @@ Postup
 
 6. Bootování jádra s naším filesystémem (v emulátoru):
 
+    Na 32-bitovém systému spustíme emulátor následovně:
+
         qemu -kernel /boot/vmlinuz-2.6.26-2-686 -initrd ramdisk
 
+    Na 64-bitovém systému může být potřeba použít příslušnou variantu QEMU:
+
+        qemu-system-x86_64 -kernel /boot/vmlinuz-2.6.32-5-amd64 -initrd ramdisk
+
     Pokud systém nabízí hardwarovou podporu virtualizace, je výhodné
-    použít KVM, které pak běží rychleji
+    použít [KVM][kvm]. Výsledek pak běží rychleji. Například:
 
         kvm -kernel /boot/vmlinuz-2.6.32-5-amd64 -initrd ramdisk
 
-    Na 64-bitovém systému může být potřeba použít příslušnou variantu QEMU
-
-        qemu-system-x86_64 -kernel /boot/vmlinuz-2.6.32-5-amd64 -initrd ramdisk
+[kvm]:http://www.linux-kvm.org/        
 
 7. Pokud vše proběhlo správně, zobrazila se hláška
 
@@ -200,7 +214,7 @@ Jaderné moduly
 ==============
 
 Jaderné moduly jsou přeložené kusy kódu, které lze za běhu nahrávat do
-Linuxvého jádra. Pokud bychom chtěli nalézt analogickou věc v
+Linuxového jádra. Pokud bychom chtěli nalézt analogickou věc v
 uživatelském prostředí, pak by to byly *sdílené knihovny*. Jaderný
 modul může obsahovat kód ovladače zařízení, podporu určitého
 souborového systému, může přidávat do jádra nové funkce (např.
@@ -256,12 +270,10 @@ Zadání
 ======
 
 Vytvořte jednoduchý jaderný modul, který po zavedení do jádra vypíše
-vaše jméno (objeví se ve výstupu `dmesg`). Jinak nemusí dělat nic.
+vaše jméno (objeví se ve výstupu příkazu `dmesg`). Jinak nemusí dělat nic.
 Předveďte činnost vašeho modulu ve vámi vytvořeném systému běžícím v
 emulátoru.
 
-**Pozor:** V zadání je drobný chyták!
-
 Kdo se bude nudit, může zkusit rozšířit modul tak, aby se jeho jméno
 objevilo v souboru `/proc/myname` nebo vytvořit jednoduchý ovladač,
 který bude vracet vaše jméno při čtení z `/dev/myname`. Návod najdete