V Amsterdamu probíhá Open Source Summit Europe. Organizace Linux Foundation představuje novinky. Pod svá křídla převzala open source dokumentovou databázi DocumentDB.
Přesně před 34 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
86Box, tj. emulátor retro počítačů založených na x86, byl vydán ve verzi 5.0. S integrovaným správcem VM. Na GitHubu jsou vedle zdrojových kódů ke stažení také připravené balíčky ve formátu AppImage.
Vláda Spojených států získala desetiprocentní podíl v americkém výrobci čipů Intel. Oznámili to podle agentur americký prezident Donald Trump a ministr obchodu Howard Lutnick. Společnost Intel uvedla, že výměnou za desetiprocentní podíl obdrží státní dotace v hodnotě 8,9 miliardy dolarů (zhruba 186 miliard Kč). Částka podle Intelu zahrnuje dříve přislíbené subvence 5,7 miliardy dolarů z programu CHIPS na podporu výroby čipů v USA,
… více »Organizace Apache Software Foundation (ASF) vydala verzi 27 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Knihovna FFmpeg byla vydána ve verzi 8.0 „Huffman“. Přibyla mj. podpora hardwarově akcelerovaného kódování s využitím API Vulcan, viz seznam změn.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2024 (pdf). V loňském roce NÚKIB evidoval dosud nejvíce kybernetických bezpečnostních incidentů s celkovým počtem 268. Oproti roku 2023 se však jedná pouze o drobný nárůst a závažnost dopadů evidovaných incidentů klesá již třetím rokem v řadě. V minulém roce NÚKIB evidoval pouze jeden velmi významný incident a významných incidentů bylo zaznamenáno 18, což oproti roku 2023 představuje pokles o více než polovinu.
Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.
Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.
Už víme, jak kompilace probíhá, už si umíme sami zkompilovat nějaký prográmek a dnes ukončíme naše povídání tím, že si vysvětlíme, jak udělat kompilaci hezčí, hravější, rychlejší... no prostě lepší.
Skript configure
, o kterém jsme si již povídali, zkoumá při
svém běhu celý systém a snaží se zjistit, co máme a co nemáme. A podle toho
přizpůsobuje parametry, které se následně dostanou až ke kompilátoru a
ovlivní tak (velmi výrazně) výsledek jeho práce.
Makefile je obyčejný textový soubor, takže jej stačí otevřít v oblíbeném
editoru [čti vim]. V makefile se kromě jednotlivých příkazů nacházejí také
proměnné. Ty jsou zapsány úplně na začátku a zjednodušují nám změnu celého
procesu. Nejzajímavější je pro nás proměnná CFLAGS
. Ta
obsahuje právě parametry kompilátoru a může vypadat třeba takto:
CFLAGS= -O3 -march=pentium -ffast-math
|
Existuje několik důvodů, proč bychom je chtěli měnit:
Jen vysvětlení ke druhému bodu: kompilovat můžeme na úplně jiném procesoru nebo dokonce jiné architektuře. Není problém překládat na CPU 486 program pro P4 (i když se to v praxi dělá spíš obráceně).
Parametrů je celá řada a my si popíšeme ty nejzajímavější:
-mcpu=
-march=
-mcpu=pentium-mmx
, bude kód skládán tak, aby běžel
co nejrychleji na Pentiu MMX, ale nebudou použity žádné instrukce MMX,
takže aplikace poběží i na i386. Pokud ale použijeme
-march=pentium-mmx
, budou použity všechny možnosti
optimalizace, včetně využití MMX instrukcí, takže výsledek už na ničem
nižším nepojede.
Podporované možnosti u procesorů Intel a kompatibilních jsou: i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4, prescott, nocona, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp, athlon-mp, winchip-c6, winchip2 a c3. Tento výčet není zdaleka konečný a jediný správný. Může se zásadně lišit podle verze gcc a aplikovaných patchů.
-O
-fexpensive-optimizations
-ffast-math
-fforce-mem
-funroll-loops
-fschedule-insns
To je z nejdůležitějšího asi vše. Chcete-li více, viz
man gcc
.
Otázkou ovšem zůstává, co a kdy optimalizovat. Některé distribuce jako Gentoo nebo SourceMage automaticky kompilují zdrojové balíčky už při jejich instalaci. Takže jsou optimalizovány všechny programy i knihovny. V příslušném konfiguračním souboru pak lze nastavit konkrétní kompilační parametry.
To má pochopitelně několik výhod:
Nevýhodou je samozřejmě delší instalace veškerého software (během ní je ovšem možno normálně pracovat). Otázkou všeobjímající kompilace ovšem zůstává, zda se takto ztrávený čas vyplatí. Zarytí Gentooisti budou neobjektivně tvrdit, že rozhodně ano. Zkusme se na celou situaci podívat z nadhledu.
V každé distribuci jsou k dispozici tisíce programů. Stačí si v konzoli
dvakrát stisknout tabulátor a hláška Display all 1637 possibilities?
(y or n)
nás jistě přesvědčí, že je tomu skutečně tak. Drtivá
většina aplikací však spadá do skupiny systémových utilit, jenž jsou velmi
nenáročné na procesorový čas. Jsou to například: ls, grep, less, more,
sort, cat, echo, ping a mnoho dalších.
Otázka tedy zní: Vyplatí se nám optimalizovat si i tyto programy? Podle mě ne. Proto je zbytečné volit Gentoo nebo SourceMage jen proto, abychom měli "vyladěný" systém.
Naopak některé důležité programy je vhodné si optimalizovat na míru svému stroji. Jsou to ale spíše náročnější aplikace jako MPlayer, POV-Ray a podobně, kde se může za jistých okolností hodit každé procento. Rovněž na glibc (hlavní systémová knihovna, kterou využívají všechny programy) můžeme ušetřit kousek zatížení procesoru. Při přehrávání mp3 na 3GHz procesoru nás však ani toto nemusí trápit.
Jiná situace samozřejmě nastává v případě, že vlastníte nějaký zvláštní druh hardware (například 64 bitový procesor v serveru). Je pochopitelné, že instalace a použití 32 bitové distribuce "tak, jak je", by zde bylo chybou.
Další stranou mince, kterou je potřeba zvážit, je fakt, že některé distribuce (například Debian) je možno sehnat již předkompilované pro různé druhy platforem, případně můžeme stáhnout upravené balíky (MalýJarda například vyrábí své debianní balíky rovnou pro platformu i686). Máme tak ulehčenou práci, protože optimalizaci už udělal někdo za nás.
Obecně vzato je optimalizace velmi užitečná věc a v případě náročných projektů nebo nově instalovaných programů, které si sami kompilujeme, se nám může hodit. Ovšem i zde platí klasické pořekadlo: "Všeho s Mírou."
Tímto uzavíráme náš miniseriálek o kompilacích. Doufám, že se líbíl a že jste se dozvěděli něco nového.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: