====== glibc (GNU C Library) ====== **glibc** je implementace standardní knihovny jazyka C v rámci projektu [[GNU]]. Je to v podstatě "překladatel", který umožňuje programům napsaným v C (a mnoha dalších jazycích) komunikovat s jádrem Linuxu. Téměř každý program v Linuxu (od příkazového řádku až po složité grafické aplikace) závisí na glibc. ===== Hlavní funkce glibc ===== Knihovna poskytuje základní systémová volání (syscalls) a standardní funkce, jako jsou: * **Práce se soubory:** Otevírání, čtení, zápis (open, read, write). * **Správa paměti:** Alokace a uvolňování paměti (malloc, free). * **Vstup a výstup (I/O):** Práce s textem na obrazovce (printf, scanf). * **Síťová komunikace:** Práce se sockety a protokoly. * **Práce s časem:** Zjišťování systémového času a datumů. * **Vlákna (Threading):** Podpora pro paralelní běh programů (POSIX threads). ===== Proč je glibc tak důležitá? ===== ==== 1. Standardizace (POSIX) ==== glibc implementuje standardy jako POSIX a ANSI C. To znamená, že kód napsaný podle těchto standardů bude fungovat na různých systémech, pokud mají nainstalovanou kompatibilní verzi glibc. ==== 2. Zpětná kompatibilita ==== Vývojáři glibc kladou extrémní důraz na to, aby staré programy běžely i na nových verzích knihovny. Pokud však zkompilujete program na velmi nové verzi glibc, pravděpodobně nepůjde spustit na starším systému (častá chyba: ''version GLIBC_X.XX not found''). ==== 3. Výkon ==== Obsahuje vysoce optimalizované matematické funkce a rutiny pro práci s pamětí, které jsou šité na míru moderním procesorům (využívají instrukce jako AVX nebo SSE). ===== Srovnání: glibc vs. ostatní C knihovny ===== Ačkoliv je glibc v Linuxu dominantní, existují alternativy pro specifické účely: ^ Knihovna ^ Hlavní využití ^ Vlastnosti ^ | **glibc** | Standardní desktop a servery | Robustní, velká, plná funkcí. | | **musl** | Odlehčené distribuce (Alpine Linux) | Malá, rychlá, statické linkování. | | **uClibc** | Vestavěné systémy (Embedded) | Minimalistická, pro routery a IoT. | ===== glibc a herní průmysl (Steam Deck / Proton) ===== V kontextu hraní na Linuxu je glibc kritická. Některé anticheatovací systémy nebo mody vyžadují specifické úpravy nebo verze glibc. Například **Valve** úzce spolupracuje na optimalizaci glibc, aby snížili režii při spouštění her přes vrstvu [[Proton]]. --- > **Zajímavost:** glibc je tak hluboko v systému, že její aktualizace je jedním z nejrizikovějších úkonů v Linuxové distribuci. Pokud se aktualizace nepovede, systém se obvykle ani nespustí. //Související: [[GNU]], [[Linux]], [[GCC]], [[DevOps]]//