Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.
Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.
Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.
Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.
Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.
Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.
Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.
Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.
Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.
Momentálně se zabývám generováním přesného času v OS GNU/Linux. Bohužel jsem narazil na zmatek v tom, který časovač jádro používá k jakému účelu. Např. v /sys/devices/system/clocksource je možno nastavit výchozí časovač pro plánovač úloh. To je sice hezké, ale já potřebuji zjistit, který časovač používá nanosleep, clock_gettime a další funkce. Podle popisu, pokud předám jako parametr CLOCK_REALTIME, měl by se použít "system-wide realtime clock". Co to je? Nikde jsem nenašel definici. clock_getres vrací 1ns rozlišení, takže starý obvod RTC určitě použit není. Nicméně zdá se, že nastavení clocksource v /sys systému nemá vliv - když nastavím hpet, rozlišení zůstane 1ns, což je při frekvence cca 14MHz nesmysl. Tušíte co s tím?
Jakub Kocourek
Tak podle vseho clock_gettime s CLOCK_REALTIME (nebo CLOCK_MONOLITHIC) skutecne pouziva ten casovac, ktery je nastaven v current_clocksource. Koukal jsem se na zdrojaky jadra a zkousel jsem zda to bude mit vliv - a ono to opravdu ma (uricite nedoporucuju nastavit jako zdroj jiffies - ja pak musel restertovat, Linux mi to neprezil) - pri hpet rozdil naslednych volani clock_gettime odpovidal nasobku 14MHz, pri tsc tam byla jina granularita a pri jiffies byly hodnoty stejne.
Proc je tam nestaveni rozliseni 1ms? Tak podle zdrojaku tuhle hodnotu bude vracet at pouzijete jakykoliv clocksource. A ono to ma svou logiku - tahle hodnota totiz neznamena frekvenci casovace, ale zaokrouhleni. Tzn. kernel vezmu hodnotu kterou mu vrati casovac (at uz je v jakimkoliv formate) a zaokrouhli ho na 1ms a to pak vrati (presni to vratit ani nemuze, protoze v te strukture neni vice mista).
Kdyz by jste chtel zjistit frekvenci casovace, tak to vam bohuzel univerzalni metodu neporadim. Nejake casovace maji vlastni API (hpet), nektere to pisi pri bootu (pr.:hpet0: 3 64-bit timers, 14318180 Hz), ale obecne nevim.
Děkuji. Tohle jsem přesně potřeboval vědět. Můžete mi prosím ještě sdělit, ve kterém zdrojovém souboru jste to našel? Nějak jsem se nedopátral. Také jsem drobné rozdíly při různém nastavení pozoroval, ale jen s RT patchem, když jsem přes DIO kartu generoval signál na přesný externí čítač, takže jsem si nebyl jistý, jestli jsem správně pochopil jak to funguje.
Co se týká frekvence, tak tam jsem už pokročil. HPET je skutečně identifikován jádrem. U TSC jsem využil vyčtení v assembleru pomocí RDTSC instrukce. Mezi dvěma čteními jsem čekal 1s, zjištěný rozdíl registrů pronásobil 1/frekvence_cpu a dostal 1s => tedy TSC pracuje skutečně s plnou frekvencí CPU (ostatně to tvrdí i Intel v popisu x86 platformy). Jediný časovač, u kterého jsem zatím frekvenci neidentifikoval je APIC timer.
Co se týká jiffies, mám stejnou zkušenost.
Jakub Kocourek
Tak je se k tomu dopatrat je trochu slozitejsi
.
Takze ja mam k dispozici zdrojove soubory kernelu 2.6.25.7.
Zacal jsem v souboru ./kernel/posix-timers.c, kde je definovana funkce sys_clock_gettime. V te se vola makro CLOCK_DISPATCH a chce zavolat funkci "clock_get".
Makro pouziva informace o casovacich ve strukture posix_clocks - takze je dulezite kde se plni tato struktura. Ta se plni pri volani register_posix_clock - tato je opet volana pri startu z funkce init_posix_timers.
Tato funkce inicializuje hodiny CLOCK_REALTIME, ktere namaji definovanou funkci .clock_get, tudiz makro CLOCK_DISPATCH pouzije funkci common_clock_get a ta zavola funkci ktime_get_real_ts.
Tato funkce je definovana v ./include/linux/ktime.h jako #define na getnstimeofday.
getnstimeofday je definovana v ./kernel/time/timekeeping.c a pro zjisteni casu pouziva fuknci __get_nsec_offset.
Ta pouziva pro zjisteni casu odakaz na strukturu clock - tato se inicializuje bud v timekeeping_init, nebo change_clocksource - ty k urceni aktualniho casovace pouzivaji funkci clocksource_get_next.
Ta kontroluje hodnotu promene clocksource_get_next, ktera se nastavuje take ve funkci sysfs_override_clocksource, ktere ja nastavena jako store handler pro specialni soubor current_clocksource v sysfs - tudiz reaguje na zmenu pri zapis do tohoto specialniho souboru.
Tak asi nejak takhle jsem na to prisel.
Co se týká měření dvou clock_gettime() po sobě, to je výborný nápad. Mám stejný výsledek jako Vy, funguje báječně. Díky
Děkuji za info o ACPI časovači.... aspoň vím, že na mé účely nemá patřičné rozlišení :)
Když už jdeme takhle do hloubky, vím že HPET má na základní desce vlastní oscilátor, ale zajímalo by mě, odkud bere hodiny TSC (tedy v podstatě celý procesor). Domnívám se správně, že je to nějaký 10 MHz oscilátor na desce, pomocí PLL násobený na FSB a dalším PLL (násobič) na frekvenci CPU?
Ještě jeden stupidní dotaz. Jak nejsnáz z BIOSu vyrazit bázovou adresu HPET? Z dokumentace vím, že HPET má pevnou adresu, kterou OS nepřesouvá, jen si ji vezme od BIOSu, tak mě zajímá jaké volání BIOSu a s jakou náplní registrů zavolat :)
Děkuji všem za podnětné odpovědi.
Jakub
Děkuji za info o ACPI časovači.... aspoň vím, že na mé účely nemá patřičné rozlišení :)A co jsou to Vaše účely?
zajímalo by mě, odkud bere hodiny TSC (tedy v podstatě celý procesor)Nevím jak se získá FSB, ale ten další násobič na frekvenci CPU tam je. Tuhle frekvenci používá procesor pro inkrementaci registru, který si pak můžete vyčíst a to je celé TSC. Upozorňuju že na to není moc velkej spoleh, protože každé CPU si počítá svoje a může v různých časech běžet na různých frekvencích kvůli zeleným vlastnostem.
Děkuji za odpověď. Zajímalo mě to spíše čistě po hardwarové stránce - jaké obvody jsou skutečně mezi oscilátorem a procesorem. Je složité se toho dopátrat, protože žádný výrobce základních desek tak podrobnou dokumentaci neposkytuje.
Jakub
Ja bych se zkusil podivat na tohle:
Tiskni
Sdílej: