Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.
Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.
… více »Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).
V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.
Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.
Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si
… více »Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do
… více »Začleňovací okno 2.6.37 je otevřené, takže není žádná vývojová předverze. Uzavření začleňovacího okna lze očekávat někdy koncem měsíce. Shrnutí změn v tomto začleňovacím okně vizte v článku níže.
Stabilní aktualizace: během uplynulého týdne žádné nevyšly. Aktualizace 2.6.27.55, 2.6.32.25 a 2.6.35.8 se v současnosti revidují a vydání lze očekávat každou chvíli.
napsal Jonathan Corbet, 26. října 2010
Obecným pravidlem je, že se vývojáři jádra snaží vyhýbat tomu spouštět kód v kontextu hardwarového přerušení; je k dispozici celá škála mechanismů, kterými lze práci vyvolanou přerušením odložit na méně hektickou dobu. Zjevně je ale občas potřeba spustit libovolný kód v kontextu hardwarového přerušení – i v době, kdy žádný hardware přerušení nesignalizuje. Do 2.6.37 tedy bylo přidáno nové API, které umožní spustit kód v tomto kontextu.
Prvním krokem je vyplnit strukturu irq_work:
#include <linux/irq_work.h> struct irq_work my_work; init_irq_work(struct irq_work *entry, void (*func)(struct irq_work *func));
Je zde poměrně povědomý pár funkcí, který umožňuje spustit práci danou touto strukturou:
bool irq_work_queue(struct irq_work *entry); void irq_work_sync(struct irq_work *entry);
Zamýšleným způsobem použití je zjevně kód, který běží z nemaskovatelných přerušení, která potřebují být schopna pracovat se zbytkem systému. Lze předpokládat, že jakékoliv jiné použití této vlastnosti bude pečlivě přezkoumáváno.
napsal Jonathan Corbet, 27. října 2010
Jádro je plné podmínek, u kterých se nikdy nezmění hodnoty testovaných proměnných. Klasickým příkladem jsou sledovací body, které budou na běžících systémech až na velmi vzácné výjimky vypnuty. Již dlouho je zájem na tom optimalizovat testy prováděné v takových místech; s 2.6.37 a vlastností „návěští skoku“ [jump label] tyto testy úplně zmizí.
Uvažme definici typického sledovacího bodu, který po všem šílenství preprocesoru vypadá nějak takto:
static inline trace_foo(args)
{
if (unlikely(trace_foo_enabled))
goto do_trace;
return;
do_trace:
/* Tady se provádí sledování */
}
Cena za test pro jediný sledovací bod je v podstatě nulová. Počet sledovacích bodů v jádře nicméně roste a každý přidává nový test. Každý test musí načíst hodnotu z paměti, což zvyšuje tlak na cache a poškozuje výkonnost. Vzhledem k tomu, že se tato hodnota téměř nikdy nemění, bylo by hezké najít způsob, jak optimalizovat případ „sledovací bod je zakázán“.
V 2.6.37 lze sledovací bod přepsat novým makrem:
#include <linux/jump_label.h>
#define JUMP_LABEL(key, label) \
if (unlikely(*key)) \
goto label;
Hezká věc je, že JUMP_LABEL() nemusí být implementována takto. Místo toho může (1) poznamenat umístění testu a hodnotu key do speciální tabulky a (2) jednoduše vložit instrukci no-op. To omezuje cenu za test (a sledovací bod) na nulu pro běžný případ „není povoleno“. Ve většině případů nebude sledovací bod nikdy povolen a vynechaný test nikomu nebude chybět.
Záludná část přichází, když někdo chce sledovací bod povolit. Změna jeho stavu nyní vyžaduje zavolat jednu z páru speciálních funkcí:
void enable_jump_label(void *key); void disable_jump_label(void *key);
Volání enable_jump_label() najde klíč v tabulce návěští skoků a pak nahradí instrukce no-op ekvivalentem „goto label“ v assembleru, čímž je sledovací bod povolen. Zakázání návěští skoku způsobí, že se instrukce no-op vrátí na své místo.
Konečným výsledkem je významné omezení režie vypnutých sledovacích bodů. Tato vlastnost funguje pouze na architekturách, které ji podporují (v současnosti pouze x86) a pouze s relativně novými verzemi GCC; jinak se použije verze s preprocesorem.
napsal Jonathan Corbet, 27. října 2010
Jádro 2.6.36 bylo vydáno 20. října a začleňovací okno 2.6.37 začalo krátce poté. V době psaní tohoto článku bylo do tohoto vývojového cyklu začleněno již 6450 změn a s jistotou budou následovat další. Některé z významnějších změn viditelných pro uživatele následují:
Byly začleněny první části patchů pro škálovatelnost inodů, ale v době psaní tohoto článku ještě do hlavní řady nejsou tlačeny hlavní změny zamykání.
Architektura x86 nyní používá oddělené zásobníky pro obsluhu přerušení, když se používají zásobníky o velikosti 8k. Možnost používat zásobník o velikosti 4k byla odstraněna.
Pokračuje proces odstraňování velkého jaderného zámku [big kernel lock, BKL]; centrální části jádra jsou BKL téměř zcela zbaveny. Je k dispozici konfigurační volba, která umožňuje vytvořit jádro bez BKL. Zamykání souborů nicméně stále BKL potřebuje; pracuje se na tom opravit to před koncem začleňovacího okna, ale tato práce ještě není hotova. Pokud bude vyřešeno zamykání souborů, mnoho (nebo většina) uživatelů bude moci používat jádro 2.6.37 bez BKL.
Bylo přidáno „blokové zařízení rados“ [rados block device, RBD]. RBD umožňuje vytvořit zvláštní blokové zařízení, které zpřístupňuje objekty uložené v distribuovaném souborovém systému Ceph.
Clusterový souborový systém GFS2 již není označen jako „experimental“. GFS2 také získal podporu pro systémové volání fallocate().
Nový soubor v sysfs, /sys/selinux/status umožňuje aplikacím v uživatelském prostoru si rychle všimnout, že se změnily bezpečnostní politiky. Účelem této vlastnosti je zjevně pomoci démonům, které cachují rozhodnutí o povolení přístupu a potřebují vědět, že se tato rozhodnutí mohla změnit. Druhý soubor nazvaný policy byl přidán pro ty, kteří jednoduše chtějí přečíst současnou politiku jádra.
Plánovač se nyní více snaží vyhnout migraci realtime úloh o vysoké prioritě. Další změna způsobuje, že plánovač již neúčtuje čas strávený obsluhou přerušení procesu, který v té době zrovna běžel.
Podpora VMI paravirtualizace VMware byla firmou označena za zastaralou a podle plánu z 2.6.37 odstraněna.
Byla začleněna nějaká vylepšení hibernace včetně možnost zkomprimovat obraz pomocí LZO.
Architektura ARM získala podporu pro seccomp [secure computing]
Bloková vrstva nyní může omezovat I/O provoz ke specifickým zařízením, řízeno je to pomocí mechanismu cgroup. Jedná se o další kousek mozaiky řadiče I/O propustnosti, který umožňuje nastavit specifické limity, ty jsou vynuceny, i když se aktuálně nevyužívá plná propustnost zařízení.
Nové zařízení „ttyprintk“ umožňuje privilegovanému procesu v uživatelském prostoru vypsat zprávy přes jádro pomocí pseudo-tty zařízení.
Jádro získalo podporu pro point-to-point tunneling protocol (PPTP); více informací vizte na stránce projektu accel-pptp
NFS klient má nyní novou implementaci „idmapper“ pro překlad jmen uživatelů a skupin na ID. Nový kód je flexibilnější a funguje lépe; detaily vizte v Documentation/filesystems/nfs/idmapper.txt
NFS klient má novou připojovací volbu -olocal_lock=, která způsobí, že se flock() a/nebo POSIXové zámky považují za lokální.
Většina funkcí systémového volání nfsservctl() byla označena jako zastaralá s tím, že v 2.6.40 bude odstraněna. Ten, kdo by dané funkce chtěl odstranit dříve, může použít novou konfigurační volbu.
Byla začleněna podpora pro protokol pNFS.
Obrovské stránky [huge pages] lze nyní migrovat mezi uzly v paměti stejně jako normální stránky.
Starý stack ieee1394 byl odstraněn, konečně byl nahrazen novými ovladači „firewire“
Mezi změny viditelné pro jaderné vývojáře patří:
Byl začleněn optimalizační mechanismus návěští skoku; jeho počátečním účelem je omezit náklady za neaktivní sledovací body.
Byla přidána další varianta RCU: „tiny preempt RCU“ má fungovat na jednoprocesorových systémech. Tato implementace používá pouze jeden seznam blokovaných úloh narozdíl od TREE_PREEMPT_RCU, které má kombinatorické číslo pro každý list rcu_node; to omezuje spotřebu paměti a významně zrychluje práci. Tato verze také využívá toho, že se pracuje na jediném procesoru, čímž zkracuje čekání [grace periods] v případě, že nejsou žádní čtenáři.
Do vrstvy síťových zařízení byly přidány nové sledovací body, do míst, kde se uvolňují struktury sk_buff, do softirq_raise(), operací s pracovními frontami a operací zmenšování LRU seznamu ve správě paměti. Také existuje nový skript, který používá perf k analýze událostí síťových zařízení.
Sledovač latencí probuzení má nyní podporu pro graf funkcí.
Je zde nový mechanismus pro spuštění libovolného kódu v kontextu hardwarového přerušení
Vrstva správy napájení má nyní formální koncept „zdrojů probuzení“ [wakeup sources], které mohou systém probudit z režimu spánku. Mezi jinými věcmi může sbírat statistiky, které umožní uživateli zjistit, co systém drží vzhůru. Události probuzení [wakeup events] mohou zastavit uspávání úloh, což omezuje čas potřebný pro obnovení činnosti po zrušené operaci uspání nebo hibernace.
Byl přidán nový mechanismus pro řízení automatického uspávání nečinných zařízení.
Byl začleněn dlouhý seznam změn kódu pro nízkoúrovňovou správu paměti memblock (dříve LMB), architektura x86 nyní používá memblock pro správu paměti v prvních fázích bootu.
Výchozí fungování lseek() bylo změněno: jestli ovladač neposkytne svou vlastní funkci llseek(), vrstva VFS na všechny pokusy změnit pozici v souboru zareaguje vrácením chyby ESPIPE. Všechny ovladače ve stromě, které funkci llseek() neměly, byly změněny tak, že nyní používají noop_llseek(), která zachovává původní chování.
Je zde nový způsob, jak vytvářet pracovní fronty:
struct workqueue_struct *alloc_ordered_workqueue(const char *name,
unsigned int flags);
Položky zadané do výsledné pracovní fronty budou zpracovány v daném pořadí po jedné. Tento způsob má časem nahradit staré jednovláknové pracovní fronty.
Také byla přidána funkce:
bool flush_work_sync(struct work_struct *work);
Ta bude čekat, dokud se nedokončí daná položka.
ALSA API pro ASoC bylo významně rozšířeno, aby podporovalo zvukové karty s více kodeky a DMA řadiči. (commit)
Byl začleněn patch pro na zásobníku založenékmap_atomic() a společně s tím spojenou změnou API. Detaily vizte v Documentation/vm/highmem.txt.
Jsou zde nové pomocné funkce pro alokaci paměti:
void *vzalloc(unsigned long size); void *vzalloc_node(unsigned long size, int node);
Obě se chovají jako ekvivalentní volání vmalloc, ale navíc vynulují alokovanou paměť.
Byla začleněna většina práce potřebné pro odstranění tvrdých bariér z blokové vrstvy. Tento úkol bude pravděpodobně dokončen před uzavřením začleňovacího okna.
Linus dal najevo, že očekává, že by toto začleňovací okno mohlo být kratší než obvykle, aby ho bylo možné uzavřít před Jaderným summitem 2010, který začíná 1. listopadu. Očekávejme, že do konce října budou patche začleňovány rychlým tempem; Jaderné noviny příští týden přinesou seznam dalších změn začleněných do 2.6.37.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
printk(). Ale raději po Něm moc negooglete, mně stačilo pár minut a mám chuť si vyndat mozek z hlavy a pořádně ho vydrhnou rejžákem
Dokonce jsem myslel, ze jsou nad useky kde lezi instrukce nejaky flagy, ktery zakazuji zapis.Vztahuje se tohle i na paměť jádra? Proti zápisu z userspace je chráněná z principu. (A když někdo ukecá jádro, aby modifikovalo svou vlastní paměť, problém je jinde.) A navíc... buď něco můžeš dělat se snazší čitelností, nebo mít rychlejší jádro a tím celý stroj. Vzhledem k tomu, že v tomhle případě to první není nijak velký problém, hlasuju pro to druhé.
#define JUMP_LABEL(key, label) if (unlikely(*key)) goto label; a jak je to reseno "fyzicky" je nemusi znepokojovat, jako je neznepokojuje ani jmp ve vyslednem kodu.
Osobne se mi to taky libi, ale jsem velmi prekvapen ze to vubec jde.Niečo podobné sa využíva aj pri JIT v JavaScript, Jave..., takže urobiť sa to dá, stačí len vhodne nastaviť parametre stránok.
vyjma extremnich pripadu "trefeni se" do zrovna vykonavaneho koduTy jsou samozřejmě ošetřeny. Když se kód takto modifikuje, jádro zastaví všechna CPU v systému kromě jednoho (které ovšem nemůže vykonávat měněný kód, protože zrovna vykonává měnící kód)
outer:
for (;;)
{
for (;;)
{
if (...)
break outer;
}
}
A co tohle? http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Named_LoopCož ono se to dá vždycky nějak vyřešit, spíš mě zajímalo, jestli to do C++0x přidali nativně.
Co sa tyka goto - Asi sme na skolach fakt boli "brainwasched"...To si pamatuju na vejšce, jak je goto špatné, protože procesor má pipeline a ta se musí zahodit a kdesi cosi...