Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.
Debian Inference Portal nabízí vývojářům Debianu bezplatný přístup ke službám AI/LLM. Sponzorem je společnost Scaleway.
Robert Ressl nalezl ve WordPressu kritickou zranitelnost CVE-2026-87902 s CVSS 9.2. Útočníkům umožňuje neoprávněný přístup k souborům a vzdálené spuštění kódu (RCE). Opravena je ve verzích 7.1.2, 7.0.6, 6.9.9…
Společnost Meta na dvoudenní konferenci Meta Connect 2026 představuje své novinky. Vypíchnout lze lehké brýle s funkci VR Meta VR Glasses. Do prodeje půjdou na jaře 2027 za cenu 1299,99 dolarů.
Google Chrome 154 byl prohlášen za stabilní. Nejnovější stabilní verze 154.0.8037.57 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 108 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Vláda sníží v příštím roce výdaje na IT služby státu o 1,4 miliardy korun. Úspory má umožnit lepší koordinace nákupu služeb napříč resorty prostřednictvím nového zmocněnce. Celkové roční výdaje státu na informační technologie a digitalizaci se podle údajů ministerstva průmyslu a obchodu pohybují okolo 20 až 25 miliard korun ročně, pro letošek bylo na 320 projektů vyčleněno 21 miliard.
Irská komise pro ochranu dat (DPC) uložila americké technologické společnosti Google ze skupiny Alphabet pokutu 403 milionů eur (9,8 miliardy Kč) za neoprávněné nakládání s údaji o poloze uživatelů. Firma podle komise porušila evropské nařízení o ochraně osobních údajů (GDPR). DPC uvedla, že při šetření zjistila, že si lidé nemuseli být vědomi skutečnosti, že jejich poloha byla využívána například k ovlivňování prostřednictvím reklam nebo k odvozování jejich zájmů, a mohli tak ztratit kontrolu nad svými osobními údaji.
Byla oznámena beta verze nového video kodeku Pyrowave pro streamování her v Steam Remote Play. S vysokou propustností a nízkou latencí. S podporou HDR a YUV 4:4:4.
Byl vydán Sublime Text 4 Build 4213. Sublime Text (Wikipedie) je proprietární multiplatformní editor textových souborů a zdrojových kódů. Ke stažení a k vyzkoušení je zdarma. Pro další používání je nutná licence v ceně 99 dolarů. Spolu se Sublime Merge je cena 168 dolarů.
Firma Anthropic, tvůrce AI modelu Claude, začala v oblasti Sanfranciského zálivu v tichosti provozovat vlastní biotechnologickou laboratoř. Anthropic prý chce pomocí AI urychlit hledání léků na nemoci, jimž farmaceutický průmysl dle názoru firmy věnuje příliš málo pozornosti. Firma tvrdí, že laboratoř se zatím soustředí především na základní biologii, nikoli přímo na vývoj léčiv. Farmaceutický výzkum je pro generálního ředitele Daria Amodeie velice osobní téma, jeho otec zemřel na hepatitidu C několik málo let před objevením účinné léčby.
Rád bych v DosBoxu emuloval rychlost I/O operací starých pevných disků či nedejbože disketové mechaniky (DosBox nemá implementovaný FDC – to jen tak pro zajímavost), které měly přístupové doby několik stovek milisekund až klidně celé sekundy. Jak to vypadá? Nějak takto.
Zpomalení cyklů vykonávání na to nemá příliš vliv. Je to implementováno jako read() volání a to na dnešních strojích může být i pár volání a zachvilku je několik MB dat v paměti než stačí člověk lusknout prstem. Dodám že DosBox samotný (aspoň SVN verze) má implementovaný zpomalovací mechanismus pro I/O operace. Jeden v iohandleru.cpp:#define IODELAY_READ_MICROSk (Bit32u)(1024/1.0)
#define IODELAY_WRITE_MICROSk (Bit32u)(1024/0.75)
inline void IO_USEC_read_delay() {
Bits delaycyc = CPU_CycleMax/IODELAY_READ_MICROSk;
if(GCC_UNLIKELY(CPU_Cycles < 3*delaycyc)) delaycyc = 0; //Else port acces will set cycles to 0. which might trigger problem with games which read 16 bit values
CPU_Cycles -= delaycyc;
CPU_IODelayRemoved += delaycyc;
}
inline void IO_USEC_write_delay() {
Bits delaycyc = CPU_CycleMax/IODELAY_WRITE_MICROSk;
if(GCC_UNLIKELY(CPU_Cycles < 3*delaycyc)) delaycyc=0;
CPU_Cycles -= delaycyc;
CPU_IODelayRemoved += delaycyc;
}
a konkrétně pro diskové operace nad lokálními soubory se o to stará procedura modify_cycles();
#ifndef DOSBOX_CPU_H
#include "cpu.h"
#endif
static inline void modify_cycles(Bits value) {
if((4*value+5) < CPU_Cycles) {
CPU_Cycles -= 4*value;
CPU_IODelayRemoved += 4*value;
} else {
CPU_IODelayRemoved += CPU_Cycles/*-5*/; //don't want to mess with negative
CPU_Cycles = 5;
}
}
//použito:
if (DOS_ReadFile(reg_bx,dos_copybuf,&toread)) {
MEM_BlockWrite(SegPhys(ds)+reg_dx,dos_copybuf,toread);
reg_ax=toread;
CALLBACK_SCF(false);
} else {
reg_ax=dos.errorcode;
CALLBACK_SCF(true);
}
modify_cycles(reg_ax);
dos.echo=false;
break;
V proměnné reg_ax/value je počet bajtů co se bude číst/zapisovat a podle toho se nějak spočte prodleva a prskne se tam. Bohužel to není dokonalé a ač to znatelně zpomaluje I/O operace (když se to zaDEFuje tak jsou I/O operace tak rychlé že načítací obrazovky jen problikávají) stále je to příliš rychlé a to úplně nezávisle na tom co se do toho zadá.
Vysledoval jsem si použití proměnné CPU_IODelayRemoved, bohužel ta má pouze informativní účel (používá se pouze ustanovování dynamicky se měnící rychlosti) a nemá žádný vliv na samotné plánování vykonávání. O to se stará proměnná CPU_Cycles respektive to co v ní zbude. Bohužel v tom je také zakopaný celý pes. I když zbude jen pár cyklů je to furt dost na to aby to načetlo spoustu dat za pár instrukcí do paměti (volá se dál fread() a to už je vlastně systémová funkce a jede rychlostí systému).
Jedním funkčním řešením je vklínění funkce usleep() či něčeho podobného do volané procedury. Stačí zadat v milisekundách jak dlouho se má spát a samotné načítání pak funguje tak jako kdysi za starých časů, jenže po dobu co se spí je samozřejmě suspendováno také vykonávání celého virtuálního stroje DOSu, takže místo prodlev to v reálné čase vypadá tak že DosBox laguje jak kráva. Což není úplně přesně to čeho chci dosáhnout.
Má někdo nějaký lepší nápad jak to implementovat? Jak se to vlastně dělalo v reálném DOSu/BIOSu že vykonávání celé mašiny nebylo zastaveno (jednoznačně si pamatuju že třeba blikal kurzor) zatímco jednotka (a přitom úplně šumák jestli ta pevná nebo ta zplihlá) seekovala a četla?
Nejde o úplně standardní dotaz, takže se asi nebudu zlobit když se na nic lepšího nepodaří přijít. Ani nemůžu.
Blikání kurzoru dělá grafická karta. Proto existují textové režimy. Rychlost blikání a velikost kurzoru (první a poslední řádek ve znaku) se dá nastavit. Detaily si už nepamatuji, protože jsem to používal naposledy tak někdy před dvaceti lety. Kurzor bude blikat, i když se procesor zastaví.
Přístup k disketové mechanice skrze BIOS je blokující. Programy, co při formátování dělali ještě něco jiného, buď pracovali přímo s I/O porty a dokončení operací kontrovaly pollingem nebo prostě dělali operace po malých blocích a prokládali je s jiným užitečným programem. Ten užitečný program stejně většinou jen čekal na stisk klávesy a pak překreslil pár znaků. Takový kooperativní taskwitching byl samozřejmě poznat, že interaktivita psaní na klávesnici šla do háje.
Tak jsem našel na disku jednotku v Pascalu. K nastavení tvaru kurzoru jsem používal službu 01h na přerušení 10h. Podle tohoto návodu je možné místo přerušení BIOSu si popovídat přímo s grafickou kartou kartou skrze I/O porty 0x3d4 a 0x3d5.
Frekvenci blikání prý ale standardně měnit nelze. Asi se mi to popletlo s pozorování, že když se změnil textový režim, změnila se i rychlost blikání kurzoru. Ta je totiž daná vertikální obnovovací frekvencí obrazovky a ta se s rozlišením mění.
Přístup k disketové mechanice skrze BIOS je blokující. Programy, co při formátování dělali ještě něco jiného, buď pracovali přímo s I/O porty a dokončení operací kontrovaly pollingem nebo prostě dělali operace po malých blocích a prokládali je s jiným užitečným programem.Jenže jak tohle implementovat? Nemůžu prostě na pár milisekund zastavit vykonávání virtuálního stroje. Resp. můžu ale chování moc neodpovídá tomu jak se to opravdu chovalo (až na to přehrávání OPLka, to to simuluje při zátěži vcelku věrně). Týden jsem se rýpal nacpáním ZMBV do mého SVN buildu abych to demonstroval a jen pro to abych zjistil, že usleep se na nahraném videu (zcela logicky ani nemůže, zastavená je aplikace a vnitřní hodiny běží jinou rychlostí a nějaké uspávání je nezajímá) se absolutně neprojevuje. V tom nahrávací obrazovka jenom blinke
Tiskni
Sdílej: