Linux/Charakteristika operačního systému GNU/Linux
- OS Unixového typu - filozofie, procesy, uživatelé, souborový systém, základní programy a další věci jsou shodné s Unixovými standardy.
- Čistě 32/64 bitový OS - Linux od počátku byl psán jako 32-bitový OS a dnes podporuje řadu 64-bitových architektur - první byly procesory DEC Alpha, nyní též Intel64, 64-bit procesory MIPS a SPARC a 64-bit z/Architektura na S390 fy Intel. Pozn.: GNU C knihovna (GLIBC) je již částečné portována i na 128-bitové architektury. 16-bitové, tedy 286 a starší, klasický linux nepodporuje.
- Víceúlohový OS - jeden člověk může mít spuštěno několik programů současně
- Víceuživatelský OS - více lidí může současně pracovat na jednom fyzickém počítači. OS uživateli vytváří virtuální prostředí tvářící se, jako by měl počítač sám pro sebe: nikdo nebude bez jeho povolení číst jeho soubory, nikdo nebude zasahovat do běhu jeho programů, bude moci používat periferní jednotky počítače (tiskárny, vstupní jednotky,..) atd.
- Víceprocesorový OS - SMP podle dané architektury - podporováno až 64 procesorů. OS zaručuje rovnoměrné využití procesorů jednotlivými procesy
- Preemptivní OS - žádná úloha si nemůže "přivlastnit" a zablokovat systém; systém po určité době přidělení sám odebírá úlohám procesor(y). Úloha si vůbec nemusí uvědomovat existenci střídání se o procesor.
- Real-time OS - kromě normálních typů procesů (-uloh) jsou podporovány i real-time procesy. Jsou jinak plánovány a mají vyšší prioritu než všechny ostatní procesy.
- Všestrannost nasazení - používá se od tzv. zapouzdřených (angl. embedded) systémů (specializovaná nasazení většinou na mini HW a speciálních periferiích - řídící systémy, roboti, telefony ap. Díky své modularitě Linux pracuje v podmínkách, kde jiné OS bídně hynou) přes PDA (Personal Digital Assistent), servery (souborové, datové-SQL, síťové, tiskové aj.) po grafické pracovní stanice s X-Window systémy. Stejně dobře pracuje v jednouživatelském, víceuživatelském textovém i víceuživatelském grafickém režimu.
- Otevřený SW - základem Linuxu je volně šiřitelný SW /vč. zdrojových kódů/. Kdokoliv může zdrojové kódy volně používat, upravovat a šířit - viz GNU GPL licence. Jádro i aplikační programy jsou vyvíjeny a spravovány tisíci nadšenci po celém světě komunikujícími po Internetu. Současně je ale na Linux portováno a pro něj vyvinuto mnoho komerčních programů, zpravidla za daleko nižší cenu než odpovídající verze pro komerční Unixové systémy.
- Svobodný SW (viz GNU) je takový software, který zachovává čtyři základní svobody uživatele: 1. svobodu spustit program (za jakýmkoli účelem), 2. svobodu program studovat a přizpůsobit, 3. svobodné předávání programu dalším lidem a 4. svobodu program vylepšovat a zveřejňovat. Za tímto účelem sepsalo hnutí GNU s Richardem Stallmanem v čele licenci GPL, pod kterou je licencován i Linux.
- Nejrychleji se rozvíjející OS - za 10 let existence GNU/Linux vyrostl od původní verze (na i386, se souborovým systémem Minix a z programů pouze překladač C a shell) k dnešnímu stavu (jádra 2.6.x, zdrojové soubory zabírají již přes 200MB) - podpora více než 20 HW architektur, SMP, několika desítek souborových systémů a řada dalších vlastností v hlavním vývojovém stromu jádra. K tomu je nepřeberná řada jádro obalujících GNU systémových, uživatelských a dalších programů, několik X-Window manažerů,...
Vlastnosti OS Linux
editovatarchitektury - abecedně:
- Alpha (DEC/Compaq 64-bit RISC),
- ARM (RISC od ARM Holdings PLC),
- CRIS (Code Reduced Instruction Set CPU fy Axis Communications /hlavně embedded zařízení/),
- i386 (Intel a kompatibilní),
- ia64 (Intel 64-bit s EPIC - Explicitly Parallel Instruction Computing),
- M68000 (Motorola),
- MIPS a MIPS64 (RISC CPU fy MIPS, SGI a IDT),
- PARISC (RISC fy HP),
- PPC (Motorola, IBM),
- S390 (IBM),
- SH (64-bit RISC CPU SuperH fy Hitachi),
- SPARC,SPARC64 (32 a 64-bit CPU fy SUN)
jádrem podporovaný HW - sběrnice, řadiče, rozšiřující karty
zavádění systému - HW zavaděče, SW multiboot zavaděče, start jádra
procesy a démoni - PID, další ID: UID a GID - spouštějícího uživatele, EUID a EGID - když se změní SUID/SGID bitem; jsou zkoumány jádrem při kontrole práv, FSUID a FSGID - normálně stejné jako EUID a EGID; užity při kontrole přístupových práv k souborům
Saved UID a GID - užity programy, které změní UID/GID pomocí volání systému, k uchování reálného UID/GID
signály - události generované systémem (porušení ochrany paměti, chyby CPU, ilegální instrukce, ovladače vyvolávající přerušení), shellem i programy. Mohou být generovány, odchytávány a ignorovány (alespoň některé). Více viz "man -a signal"
vlákna (threads) = více větví provádění jednoho programu. Rozdíl od volání fork(), které vytváří nový proces - potomka.
meziprocesová komunikace (IPC=InterProcess Communication, objevila se v Unix System V). Známe 3 základní druhy komunikace mezi procesy:
- semafory (spec. proměnná /binární x obecný semafor/). Na rozdíl od normální proměnné je test i změna semaforu jediná operace - to zajistí že semafor nemůže mezi testem a změnou změnit jiný proces.
- fronty zpráv (podobné rourám; umožňují jednomu procesu poslat blok dat jinému procesu). Vhodné pro výměnu kratších bloků dat (Linux jádra v2.4 mají max. velikost zprávy 8kB).
- sdílená paměť (přístup nepříbuzných procesů ke stejné logické paměti). Využívaná např. v databázových strojích (DB engine) pro výměnu velkého množství dat mezi front-end procesem zajišťujícím styk s klienty a DB jádrem manipulujícím s daty na discích. Používá se k efektivnímu přístupu více procesů k velkým blokům dat (řádově MB a více).
roury (pipe) je jednosměrné propojení dvou procesů (volání pipe() vrací pole 2 deskriptorů souborů - první pro čtení, druhý pro zápis). Pokud je roura pojmenovaná (nachází se v souborovém systému, tedy lze se na ni kromě deskriptoru odkazovat i jménem), nazývá se FIFO (podle angl. First-In First-Out == první dovnitř první ven).
sockety - další metoda komunikace mezi dvěma procesy - obdoba roury ale na rozdíl od předchozích metod není omezení na jeden počítač. Typicky pro klient/server aplikace
init/inittab - stavy OS. Operační systém se může nacházet v několika základních stavech, standardně 0-6, S a s. Pevně definovány jsou stavy 0 (halt systému), 6 (reboot systému) a 1 (přepnutí do jednouživatelského režimu). syslog/logování - záznamy událostí jádra a procesů. dmesg x kruhový buffer jádra
cron/anacron - opakované spouštění procesů v budoucnu
at - jednorázové spuštěni procesu v budoucím čase