Ubuntu 26.04 (Resolute Raccoon) už nebude v desktopové instalaci obsahovat GUI nástroj 'Software & Updates'. Důvodem jsou obavy z jeho složitosti pro běžné uživatele a z toho plynoucích bezpečnostních rizik. Nástroj lze doinstalovat ručně (sudo apt install software-properties-gtk).
Thomas Dohmke, bývalý CEO GitHubu, představil startup Entire - platformu pro spolupráci vývojářů a agentů umělé inteligence. Entire získalo rekordních 60 milionů dolarů na vývoj databáze a nástrojů, které mají zefektivnit spolupráci mezi lidmi a agenty umělé inteligence. Dohmke zdůrazňuje potřebu přepracovat tradiční vývojové postupy tak, aby odpovídaly realitě, kdy většinu kódu produkuje umělá inteligence.
Toyota Connected North America oznámila vývoj open-source herního enginu Fluorite, postaveného na frameworku Flutter. Pro renderování grafiky využívá 3D engine Filament od společnosti Google a dle svého tvrzení cílí na konzolovou kvalitu her. Fluorite je zřejmě navržen tak, aby fungoval i na méně výkonném hardware, což naznačuje možnost použití přímo v ICE systémech vozidel. Zdrojový kód zatím zveřejněný není.
Byl vytvořen nástroj a postup pro překonání věkového ověření platforem Discord, Kick, Twitch, Snapchat (a možná dalších), kód je open-source a dostupný na GitHubu. Všechny tyto sítě používají stejnou službu k-ID, která určuje věk uživatele scanem obličeje a na původní server posílá pouze šifrovaná metadata, ty ale sociální síť už nedokáže sama nijak validovat, 'útok' spočívá ve vygenerování a podstrčení legitimně vypadajících ověřovacích metadat.
Jihokorejská kryptoměnová burza Bithumb přiznala vážné selhání interních systémů, které ji vystavilo riziku sabotáže a nezabránilo chybné transakci v hodnotě přes 40 miliard dolarů (814 miliard Kč). Druhá největší kryptoměnová burza v Koreji minulý týden při propagační akci omylem rozeslala zákazníkům zhruba 620 000 bitcoinů místo 620 000 wonů (8700 Kč). Incident vyvolal pokles ceny bitcoinu o 17 procent. Většinu
… více »Google Chrome 145 byl prohlášen za stabilní. Nejnovější stabilní verze 145.0.7632.45 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Zpátky je podpora grafického formátu JPEG XL, viz Platform Status. Odstraněna byla před třemi lety. Nový dekodér JPEG XL jxl-rs je napsán v Rustu. Zobrazování JPEG XL lze vyzkoušet na testovací stránce. Povolit lze v nastavení chrome://flags (Enable JXL image format).
Byla vydána nová verze 1.26 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
CrossOver, komerční produkt založený na Wine, byl vydán ve verzi 26. Přehled novinek v ChangeLogu. CrossOver 26 vychází z Wine 11.0, D3DMetal 3.0, DXMT 0.72, Wine Mono 10.4.1 a vkd3d 1.18. Do 17. února lze koupit CrossOver+ se slevou 26 %.
KiCad je nově k dispozici také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit [Mastodon, 𝕏].
Šenčenská firma Seeed Studio představila projekt levného robotického ramena reBot Arm B601, primárně coby pomůcky pro studenty a výzkumníky. Paže má 6 stupňů volnosti, dosah 650 mm a nosnost 1,5 kilogramu, podporované platformy mají být ROS1, ROS2, LeRobot, Pinocchio a Isaac Sim, krom toho bude k dispozici vlastní SDK napsané v Pythonu. Kompletní seznam součástek, videonávody a nejspíš i cena budou zveřejněny až koncem tohoto měsíce.
… více »Poznámka: Minulý týden byl omylem vydán díl Jaderných novin následující po tomto dílu. Za tuto chybu se omlouváme.
Současné vývojové jádro je 2.6.37-rc5 vydané 6. prosince. No, tento týden žádná překvapení. Co se týče patchů, tak většina jsou úpravy configů (jak pročištění defconfig pro ARM, tak nějaké aktualizace kconfig.) Vyčnívá změna sysfs rozhraní rbd, ale jinak jsou tu většinou jenom malé opravy. Všechny detaily najdete v kompletním changelogu.
Linus si myslí, že k finálnímu vydání 2.6.37 dojde začátkem ledna. Mohlo by být možné stihnout to o něco dříve, ale: Opravdu si nemyslím, že by někdo chtěl začleňovací okno během svátků.
Stabilní aktualizace: během uplynulého týdne žádné nevyšly. Aktualizace 2.6.27.57, 2.6.32.27 a 2.6.36.2 (289 patchů) se revidují a vydání se očekává 9. prosince nebo někdy poté.
-- Steven Rostedt (který evidentně četl – nebo viděl – až moc Harryho Pottera)
Greg Kroah-Hartman oznámil, že se trochu mění způsob, jak budou dodávány stabilní aktualizace jádra. Takže 'zpátky ke kořenům', od nynějška budu stabilní vydání dělat jenom pro poslední vydané jádro s obvyklým překryvem – jedna nebo dvě verze předchozího jádra, aby lidé měli čas přejít a nová verze se mohla stabilizovat. Dlouhodobá údržba 2.6.27 a 2.6.32 bude pokračovat, ale 2.6.27 bude mít pravděpodobně brzy nového správce. Andi Kleen se navíc rozhodl, že do nespecifikovaného bodu v budoucnosti bude udržovat 2.6.35.
napsal Jonathan Corbet, 6 prosince 2010
Patch Skupinové plánování založené na TTY byl hodně diskutován; někteří distributoři rychle vydávají jádra, do kterých je tento kód přidán, a to přesto, že ještě nebyl začleněn do hlavní řady. Od doby, kdy jsme ho naposledy popisovali, se patch trochu vyvinul. Také proběhlo několik zajímavých diskuzí o alternativách; tento článek shrnuje nejnovější vývoj.
Hlavní změny skupinového plánování založeného na TTY spočívá v tom, že již není založené na TTY. Jako heuristika, podle které se mají úlohy seskupovat a soupeřit spolu o CPU, byla zvolena identita řídícího terminálu; možností je ale víc. Zjevnou variantou je ID sezení (session ID). Toto ID se používá k identifikaci samostatných skupin procesů; proces začne nové sezení systémovým voláním setsid(). Vzhledem k tomu, že sezení se již používají k seskupování souvisejících procesů, dává smysl použít jejich ID jako klíč pro seskupení procesů pro plánování. Novější verze patche dělají přesně to – mechanismus skupinového plánování založený na sezeních se stabilizuje; je poměrně pravděpodobné, že bude začleněn v začleňovacím okně 2.6.38.
Mezitím proběhlo pár diskuzí vedených hlasitými příznivci jiných přístupů k interaktivnímu plánování. Je fér říci, že žádný z nich pravděpodobně do hlavní řady začleněn nebude, na oba má nicméně cenu se podívat, protože ukazují, jak lidé o problému přemýšlí.
Colin Walters položil otázku, jestli by skupinové plánování mělo být svázáno s „niceness“ prioritami, které plánovače v Unixu i Linuxu implementují od nepaměti. Lidé jsou na nice zvyklí, ale chtěli by, aby fungovalo lépe. Vytvoření skupin pro různé úrovně nice by pomohlo to zajistit. Linusovi se ale tento nápad nelíbí; tvrdí, že v současnosti téměř nikdo nice nepoužívá a to se pravděpodobně nezmění.
Krom toho sémantika implementovaná pomocí nice se značně liší od té, kterou nabízí skupinové plánování. Ta první je zcela založena na prioritách a slibuje, že procesy s vyšší „niceness“ dostanou méně času CPU než ty, které mají nižší hodnoty. Skupinové plánování pracuje s izolací – brání skupinám procesům vzájemně se ovlivňovat. Koncept priorit je skupinovým plánováním řešen mizerně, takže ten mechanismus prostě nefunguje. Skupinové plánování nezajistí, že jedna sada procesů bude preferována před jinou; zajistí jenom to, že rozdělení času CPU mezi skupinami bude férové.
Colin navrhl, že používání skupin by nice zlepšilo, což by poskytlo výsledky, které uživatelé opravdu chtějí. Jenže změna něčeho tak zásadního, jako jsou vlivy niceness, by vcelku jasně byla změna ABI. Uživatelů nice možná moc není, ale tam, kde se na něm závisí, by asi neocenili změnu sémantiky. nice tedy zůstane takové, jaké je, a k implementaci odlišné (doufejme, že lepší) sémantiky se použije skupinové plánování.
Do diskuze o skupinovém plánování se zapojil Con Kolivas, který se jinak příliš často neobjevuje. Con si myslí, že na sezeních založené skupinové plánování je dalším pokusem, jak vložit do jádra heuristiky pro interaktivitu – přístup, který v minulosti selhal:
Conův alternativní návrh je ve větší míře vložit řízení interaktivity do rukou uživatelského prostoru. Ke každému procesu by přidal parametr, který bude popisovat jeho potřeby, co se latence týče. Aplikace by poté mohly svoje požadavky sdělit jádru; aplikace přehrávající zvuk by od jádra žádalo co nejmenší latence, zatímco make by jádro informovalo o tom, že na latenci záleží jenom málo. K tomu by se přidalo globální nastavení udávající, jestli by procesy s nízkými latencemi také měly dostat více času CPU. Výsledkem by podle Cona bylo to, že by se explicitně preferovaly procesy „na popředí“ (za předpokladu, že to budou ty, které vyžadují nižší latenci). Distributoři by pro tyto parametry mohli nastavit výchozí hodnoty; uživatelé by je potom mohli změnit.
Tohle všechno by podle Cona byl dobrý způsob, jak se přesunout od křehkých ladění heuristik k nalezení dlouhodobého robustního řešení. Jeho návrh nicméně nebyl přijat příliš dobře. Skupinové plánování bylo bráněno s tím, že mu nepatří nálepka „heuristika“; je to jenom implementace plánovacích preferencí nastavených uživatelem nebo správcem systému. Ta část, která ho zakládá na sezeních, je jenom výchozím nastavením toho, jak mohou být skupiny sestavovány; snadno to může být lepší výchozí nastavení než „žádné skupiny“, což většina strojů používá teď. Příkladem jiného kritéria pro sestavování skupin jsou skupiny Lennarta Poetteringa řízené démonem systemd zcela z uživatelského prostoru. Skupinové plánování ve skutečnosti může přenastavit každý, kdo chce jiné schéma.
Ovládací prvky navrhované Conem tedy pravděpodobně jen tak neuvidíme – i když někdo napíše patch, který by je implementoval. Co bychom ale mohli vidět, je variace přístupu, ve kterém by procesy mohly udávat své požadavky na CPU a latenci. Patch pro něco takového existuje – jmenuje se plánovač s časovým limitem. Jestliže chytré skupinové plánování nevyřeší problém nás všech (což je pravděpodobné – někdo vždycky má neřešitelný problém), můžeme se dočkat nové snahy o začlenění patchů plánování s časovým limitem.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
nice pouzivam casto (renice jakbysmet)
A jestli kompiluji o 5 minut vic nebo min... to je fuk.
proc, prioritu portage de nastavit i v make.conf ...
(load se dostává ke 100 % na obou jádrech)
load se dostává ke 100 % na obou jádrech
A to je špatně? Pro mne by spíš bylo špatně, pokud by to tak nebylo.
nice, na což padl argument, že je dobré, když se dá během kompilace i pracovat, nacož Heron argumentoval, že se mu na relativně starém jednojádru nepřehoupne load přes 15 %. Tak jsem jen napsal, že mívám vytížena 2 jádra na 100 % a pracovat při tom nejde (takže také považuji použití nice za normální)
takže snad Heron opravdu myslel 15 %.
Nemyslel. Heron myslel load 15, tedy 15 procecesů ve stavu Run, každý schopný samostatně vytížit (jednojádrový) procesor na 100%. Ostatně, je to POVRay, že.
Zkus si to. Stačí ti xkrát pustit cat /dev/zero | bzip2 > /dev/null a load bude => x.
ab. Měl jsem na dva dny k dispozici Sun Fire V20z a nemohl jsem odolat. :-)
Pokud má Load 15, tak by si měl pořídit silnější stroj.
To není tak jednoduchá odpověď. Samozřejmě, pokud má někdo trvalý load při běžné práci větší, než je počet procesorů (jader, výpočetních jednotek, nebo jak k tomu chceme říkat), tak je rychlejší HW na místě. Na druhou stranu budou vždy existovat úlohy, které vytíží jakýkoliv HW. Myslel jsem si, že ten příklad s POVRay bude dostatečně výmluvný.
Na jednojádře (AthlonXP) jsem míval bez problémů load 15 (nechtěla se mi řešit fronta pro render v PovRAY, tak jsem to pustil současně) a šlo tam dál normálně pracovat.Asi taky záleží na typu zátěže. Pokud se jenom něco počítá, tak to celkem jde. Ale pokud se moc seekuje po disku, tak už je to horší.
Conův alternativní návrh je ve větší míře vložit řízení interaktivity do rukou uživatelského prostoru. Ke každému procesu by přidal parametr, který bude popisovat jeho potřeby, co se latence týče. Aplikace by poté mohly svoje požadavky sdělit jádru; aplikace přehrávající zvuk by od jádra žádalo co nejmenší latence, zatímco make by jádro informovalo o tom, že na latenci záleží jenom málo. K tomu by se přidalo globální nastavení udávající, jestli by procesy s nízkými latencemi také měly dostat více času CPU. Výsledkem by podle Cona bylo to, že by se explicitně preferovaly procesy „na popředí“ (za předpokladu, že to budou ty, které vyžadují nižší latenci). Distributoři by pro tyto parametry mohli nastavit výchozí hodnoty; uživatelé by je potom mohli změnit.
Kde jsou ty doby, kdy se Linuxáři smáli Windows, že plánuje podle toho, jestli je okno aplikace má fokus nebo ne. Teď už se tato prasárna diskutuje i v JN.
Kde jsou ty doby, kdy se Linuxáři smáli Windows, že plánuje podle toho, jestli je okno aplikace má fokus nebo ne.Špatně čteš - o fokusu okna tam není ani zmínka.
že plánuje podle toho, jestli je okno aplikace má fokus nebo neNo, ono to je v podstate velmi smysluplna featura. Samozrejme je nesmysl takovou heuristiku rvat primo do planovace, ale kdyby muj window manager nabizel dynamickou zmenu priorit procesu podle fokusu, tak bych si to urcite zapnul. Samozrejme, implementace takove featury by vyzadovala asi nejake dalsi zmeny v Linuxu (napr. zminene group schedulovani podle sessions a moznost prirazeni a uzivatelske zmeny priorit tem skupinam).
Pokud bude scheduler potřebovat, aby programy říkaly, jak moc interaktivní jsou, tak to zákonitě někdo do všech programů musí dodělat.Ale proč by to bylo potřeba? Od toho jsou výchozí hodnoty a není problém, aby byly stejné jako doteď. Když program nebude chtít specifikovat, že potřebuje malou latenci, tak to neudělá; a hádal bych, že programy na přehrávání hudby/videa se adaptují hodně rychle, protože tam to dává smysl.
Nedosti na tom, interaktivita programů se mění v čase: ledasjaká klikací aplikace se občas na pár sekund zamyslí a tou dobou ji opravdu nechci upřednostňovat.Opět nevidím problém - jestliže je aplikace udělaná tak, že si specifikuje požadavek na interaktivitu, pak si ho taky bude moci změnit předtím, než začne chroustat.
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
void* th_main(void* a)
{
printf("T2: %u\n", getpid());
return NULL;
}
int main()
{
pthread_t t;
printf("T1: %u\n", getpid());
pthread_create(&t, NULL, th_main, NULL);
pthread_join(t, NULL);
return 0;
}
Ono je to celé ještě o něco složitější. Jak to říkal Shrek s tou cibulí...
https://lkml.org/lkml/2010/10/17/181
Předseda má pravdu - v kernelu má každý task svůj vlastní "task id" - často deklarovaný jako "pid_t tid;" To co v user space vnímáte jako vlákno, je v kernelu prostě task. Rozvlákněnému user-space procesu odpovídá kernelová "task group". To co v user space zjistíte knihovní funkcí Glibc::NPTL zvanou "getpid()", je vlastně TID/PID kernelového "task group leadera".
Kernelový TID/PID jednotlivého vlákna lze zjistit syscallem gettid(), který pravda ve starších verzích glibc nebyl přítomen ve veřejných hlavičkách standardní knihovny, a "není posixly correct".
User-space glibc/NPTL typ pthread_t (vrací ho pthread_create()) sice vypadá na první pohled dál jako integer, ale uvnitř pod haubnou NTPL je to ve skutečnosti "struct pthread*" = ukazatel na struct, ve kterém si NPTL drží data o daném jednotlivém vlákně... V tomhle structu je jaderný TID/PID taky poznamenán, ale bohužel "struct pthread" není deklarován ve veřejných hlavičkách Glibc/NPTL...
User-space glibc/NPTL typ pthread_t (vrací ho pthread_create()) sice vypadá na první pohled dál jako integer, ale uvnitř pod haubnou NTPL je to ve skutečnosti "struct pthread*" = ukazatel na struct, ve kterém si NPTL drží data o daném jednotlivém vlákně...
V jakési starší verzi to bylo o to pikantnější, že na 32-bitových systémech byl pthread_t pointer, zatímco na 64-bitových integer. Velmi praktické, hlavně když ho člověk potřeboval vypsat do logu…