Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Wine 1.7.17 vyšlo 18. dubna s následujícími změnami:
Wine 1.7.18 vyšlo 2. května s následujícími změnami:
I když pod Wine v dnešní době funguje už snad většina aplikací pro Windows, častým problémem zůstává výkon. Ani nemusí jít o obecný problém Wine, jako spíš spoléhání původních vývojářů na to, že určité API Windows je a bude vždy natolik rychlé, aby bylo možné jej využívat natolik intenzivně, jak činí.
Jeden z uživatelů Wine, John Found, vyvíjí aplikaci, která dobře funguje pod Windows, pod Wine se ale potýká s obtížemi:
Nedávno jsem začal pracovat na vícevlákenné aplikaci používající mutexové funkce, konkrétně: WaitForSingleObject a ReleaseMutex. V benchmarcích jsem přišel na to, že tyto funkce jsou 50 až 100krát(!) pomalejší než na Windows. A to se jedná o situaci, kdy mutex používá jen jediné vlákno – na nic se tedy nečeká.
Testovací program zkompilovaný nativně pro Linux (používající knihovnu pthreads) je jen 1,5krát pomalejší (v porovnání se stejným programem, který mutexy nepoužívá vůbec), což je přijatelné.
Co mám tedy udělat, abych tyto funkce urychlil? Je to bug (který má být nahlášen a opraven), nebo nějaký fundamentální problém v architektuře? Měl bych implementaci mutexů řešit jinak?
Vincent Povirk popsal, že se problém skrývá v tom, jak se s mutexy musí pod Wine kvůli jejich možnostem pracovat:
To je kvůli tomu, že každé volání nad jaderným objektem probíhá přes RPC do procesu wineserver.
Sémantika věcí jako DuplicateHandle a všech různých dalších jaderných objektů, na které je možné čekat, musí být věrně přenesena do Wine. Takže i v případě, že jde o jediný objekt používaný jediným vláknem, by sis pro optimalizaci této situace musel být nějakým způsobem jistý, že nikdo nevytvořil v jiném procesu duplikát. Nebo bys musel dát winesevreru dostatek informací k duplikaci, zatímco bys mohl čekat/manipulovat s objektem bez volání RPC.
Takže si nejsem jistý, že jde o fundamentální problém v architektuře, ale je tu hodně věcí, na které je potřeba myslet. A nedoporučil bych řešení takových problémů novým vývojářům Wine.
John se zeptal, zda by mohl výkonu nějak pomoci volbou jiného typu synchronizačních primitiv. Sebastian mu nějaké alternativy doporučil:
[...] Mohl bys buď použít kritické sekce (které interně na Linuxu používají velmi rychlé futexy) nebo odlehčené read/write zámky (viz MSDN), jež používají volání wineserveru jen v případě, kdy blokují. Obě metody by rozhodně měly vést k lepšímu výkonu.
John potvrdil, že mu přechod ke kritickým sekcím zvedl výkon desetinásobně. Na Windows rozdíl tak znatelný nebyl.
Tentokrát z mailing listu Wine krátce odbočíme na mailing list linuxového jádra. V dubnu byl do jádra zařazen patch, který znemožňuje vytváření 16bitových segmentů na x86-64. Je to na první pohled nepodstatná věc, ostatně i v rámci Jaderných novin byla okomentována slovy: Jelikož běh 16bitového kódu na těchto systémech tak či tak moc dobře nefunguje a není jasné, jestli to vlastně někdo používá, tak se tato změna považuje za bezpečnou.
Pravdou je, že mezi běžnými aplikacemi pro Linux budeme jen stěží hledat nějakou, která by 16bitové segmenty potřebovala. Wine ale není úplně běžná aplikace... Nejprve se podívejme na informace připojené ke commitu, abychom pochopili, proč mají vývojáři jádra zájem na tom něco podobného zakazovat:
x86-64, modify_ldt: Zákaz 16bitových segmentů na 64bitových jádrech
Instrukce IRET, v případě, že se vrací do 16bitového segmentu, obnovuje pouze spodních 16 bitů ukazatele do uživatelského prostoru. Na 32bitových jádrech pro toto máme softwarovou obezličku („espfix“), ta ale závisí na nenulové bázi segmentu zásobníku, která není v 32bitovém módu dostupná.
Jelikož je 16bitová podora na 64bitových jádrech stejně tak nějak rozbitá (chybí režim V86) a většina (pokud je skoro všechny) 64bitových procesorů podporuje virtualizaci, jednoduše zamítejme pokusy o vytvoření 16bitového segmentu na 64bitovém jádře.
Krátce na to se ozval Brian Gerst s obavami o funkčnost 16bitových aplikací pod Wine:
Nachází se tento bug i na moderních CPU? Tato změna rozbíjí spouštění 16bitových aplikací pod Wine. Mám tu několik opravdu starých her, které bych si chtěl občas zahrát, a nemám tu kopii Win 3.11, abych si je dal do VM.
Diskuze pokračovala dál. Jaderní vývojáři by rádi tento únik informací odstranili, ačkoliv se někteří domnívají, že únik vyšších bitů není až tak závažný. Linuse pak zajímá to, jestli 16bitové aplikace opravdu někdo používá a opravdu to celé nějak funguje:
Pokud vím, tak 64bitová Windows 16bitové binárky nepodporují, takže jsem předpokládal, že ani Wine to na x86-64 neumí. Ne, že bych to očekával z nějakých technických důvodů.
NICMÉNĚ. Rád bych slyšel něco konkrétnějšího než „v poslední době jsem to nezkoušel“. Pravidlo „nerozbíjíme uživatelský prostor“ se vztahuje na skutečné *uživatele*, nikoliv na testovací programy.
Najdou se lidé, kteří opravdu používají staré 16bitové programy pro Windows pod Wine? Na tom právě záleží.
Na tuto otázku Linusovi odpověděl sám Alexandre Julliard:
Ano, stále máme mnoho uživatelů a stále dostáváme hlášení chyb u konkrétních 16bitových aplikací. Bylo by moc hezké, kdybychom je mohli na x86-64 nadále podporovat, hlavně kvůli tomu, že Microsoft to nedělá
Později se dokonce ukázalo, že tato změna v jádře rozbíjí i některé 32bitové aplikace pro Windows (problémový patch byl mezitím backportován do starších jader):
Vypadá to, že jsou rozbité i některé 32bitové programy, jelikož po přechodu na Linux 3.14.3 nemohu spustit svůj starý šachový program:
---- | % file CB70.exe | CB70.exe: PE32 executable (GUI) Intel 80386, for MS Windows | % LANG=C wine CB70.exe | modify_ldt: Invalid argument | modify_ldt: Invalid argument | modify_ldt: Invalid argument | modify_ldt: Invalid argument | modify_ldt: Invalid argument `----
Později se objevily také stížnosti na nefunkční Microsoft Office 2000. Jelikož se uživatelům a vývojářům snad podařilo jaderné vývojáře přesvědčit o důležitosti podpory 16bitových segmentů na x86-64, H. Peter Anvin začal pracovat na espfix pro x86-64, aby nebylo nutné podporu zrušit. Doufejme tedy, že nám i staré aplikace budou pod Wine nadále fungovat.
V USA už několik let probíhá soudní spor mezi firmami Oracle a Google kvůli „okopírování“ podoby javovských API na Androidu. Tento krok byl ze strany Googlu nezbytný pro to, aby původní javovský kód mohl beze změny fungovat i na Androidu. Oraclu se ale nelíbí to, že Google takto obešel nutnost licencovat si od Oraclu „technologie“ a využil tak stávajícího ekosystému kolem Javy bezplatně.
První rozhodnutí v tomto sporu bylo pro Google příznivé: deklarace API nepodléhají autorským právům. Oracle však nebyl s tímto závěrem spokojen, a proto se odvolal. Nyní odvolací soud rozhodl, že deklarace autorským právům podléhají, což nejeden softwarový projekt vyděsilo. Jinak tomu nebylo ani na mailing listu Wine:
Toto jsou opravdu znepokojivé zprávy. Jaké jsou dopady na Wine, pokud by to nakonec takto dopadlo?
Shachar Shemesh trochu vyjasnil situaci:
Hlavně to ještě nijak nedopadlo. Soud řekl, že otázka interoperability je předmětem „fair-use“, nikoliv platnosti autorských práv. V tomto ohledu jde z různých důvodů o porážku pro celé odvětví, ale nemusí to mít okamžitý dopad na Wine.
Dalším aspektem, pokud to takto dopadne, je pak to, že důsledky pro kohokoliv, kdo se snaží přistupovat k softwaru pod GPL, budou neméně závažné. Nejsem si jist, že by z toho měl MS prospěch. Jestli to nějak změní jejich postoj k Wine, je pak další otázka.
Stefan Dösinger následně odkázal na zajímavý článek vztahující se k rozhodnutí odvolacího soudu:
Doporučil bych všem přečíst si komentář od Bradleyho Kuhna. Myslím si, že za pozornost stojí i jeho doporučení přečíst si celé soudní rozhodnutí, a jelikož jsem tak sám neučinil, nebudu se k této věci dále vyjadřovat.
V odkazovaném blogovém zápisu mj. stojí, že odvolací soud zásadně překroutil tvrzení Google ohledně „okopírování“ deklarací. Zatímco Google říká, že se jeho deklarace v mnohém podobají, ale také se v mnohém liší, soud tvrdí, že se Google přiznal, že to zkrátka „obšlehnul“. Podstatné je však to, že soud netvrdí, že Google porušil nějaká práva: pouze říká, že nelze celou otázku shodit ze stolu slovy, že zde autorská práva nemají žádný dopad.
Omlouváme se za nepřítomnost přehledu změn v tomto vydání. Od příštího vydání bude přehled opět přítomen.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
(win16 segmenty)jsem chtel asi napsat 16-bit segmenty a win16 aplikace, nak se mi to spojilo