Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.
V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.
Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.
Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.
Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.
Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.
Otázkou je jestli není lepší nejprve tlačit na změny standardů.To je dobrá otázka. Ale zatím se mi daří tlačit leda tak na záchodě. Nebudu generovat tunu errat či draftů, které nikdy nikdo nezačlení a zatím nemám za sebou ani jeden úspěšný. http://tools.ietf.org/html/draft-gont-6man-slaac-dns-config-issues-00 Zatím moc žádná odezva a to je tam se mnou podepsaný člověk, který už se IETF nějak účastnil. Pokud se ke mě někdo připojí a pomůže mi opravy standardů prosadit, tak budiž. Do té doby ale radši budu produkovat funkční nestandardní implementace.
Celkově ale, ať už by to bylo implementováno jakkoli, jsem skeptický k praktickým výsledkům. Programátoři si buďto na paměť dávají pozor, a pak jsou jejich programy obvykle paměťově snesitelné, anebo na to kašlou, optimalizacemi se nezabývají, a tudíž ani s tímhle API se nebudou zabývat, se obávám...IMO pro autory virtuálních strojů / garbage collectorů to může být užitečné.
/proc
, možná rovnou i do /proc/meminfo
, kde by jádro jasně říkalo, jak moc potřebuje volnou paměť. Přece jenom GC nebo nějaká ta údržba paměťových struktur se nemusí pouštět zas tak často, aby to mělo nějaký zásadní vliv na výkonost.
No nevim no, unix signals jsou dost prasečina (hlavně způsob, jakým jejich obsluha přerušuje tok programu) a jsou vázány vždy na konkrétní proces, takže bys například nemohl funkcionalitu šetření paměti implementovat do sdílené knihovny / toolkitu bez nějaké explicitní spolupráce s hlavním programem.To je možné, ale zas na druhou stranu vidím několik - dle mého názoru zásadních - rozdílů: Např. nějak nedokážu pochopit, proč získání pouze orientační a obecné informace vůbec vázat na nějakou informaci o velikosti struktury. Další nevýhoda, kterou v tomto případě vidím, že kontrolu musím provádět průběžně za běhu programu, nebo před každou alokací paměti. Na co? Pokud chci sledovat informativní stav nějakého zdroje stačí mi tři udaje : dostatek, dochází, kritický stav. K předání takových informací se prostě skvěle hodí signály, nebo jediné systémové volání. Signály mají ještě tu výhodu, že si napíši a zaregistruji odpovídající obslužné handlery a a tím pádem mi odpadá pravidelná kontrola a problém se řeší až opravdu nastane. A pokud mě to nezajímá, žádné handlery neřeším a aplikace bude tím pádem veškeré snahy jádra ji předběžně informovat zatvrzele ignorovat.
Např. nějak nedokážu pochopit, proč získání pouze orientační a obecné informace vůbec vázat na nějakou informaci o velikosti struktury.Tak to je poměrně zvykem, že se podobná informace v těhle strukturách předává. Celkem bych ty 4 bajty neviděl jako problém. Krom toho, to je otázka tohohle konkrétního návrhu, klidně může to API být řešeno jinak. Jak píšou v článku, v téhle podobě to stejně nejspíš neprojde...
Na co? Pokud chci sledovat informativní stav nějakého zdroje stačí mi tři udaje : dostatek, dochází, kritický stav.Kvůli každýmu stavu zavádět další signál je imho blbost. Signály jsou určeny na správu procesů jako takových, ne detailů ohledně správy paměti procesu a už vůbec ne na IPC.
Signály mají ještě tu výhodu, že si napíši a zaregistruji odpovídající obslužné handlery a a tím pádem mi odpadá pravidelná kontrola a problém se řeší až opravdu nastane.Neodpadá, protože způsob, jakým se signal handlery vykonávají, je hrozně debilní. Ten handler se nevykoná v nějakým jiným vlákně, místo toho se prostě přeruší hlavní vlákno programu, jen tak hala bala, bez jakýchkoli ohledů na to, co se v něm dějě - takže to klidně přeruší thread-unsafe funkce, syscally, afaik i I/O, atd. Nemáš ale vyhráno ani ve chvíli, kdy už se spustí handler, protože se klidně může stát, že mezitím dorazí stejný signál znova nebo jiný a tvůj milej handler je přerušen, protože se vykoná jiný handler nebo bez varování znova ten samý. Takže v handleru toho nemůžeš moc dělat, rozhodně v něm nemůžeš uvolňovat někde nějakou paměť, protože to není reentrantní. Takže by sis stejně v signal handleru mohl tak akorát zamknout mutex, nastavit nějaký globalní příznak, odemknout mutex, co nejrychleji vypadnout a ten příznak pak vzít v úvahu během jiné činnosti programu, takže by tě to vyšlo úplně nastejno, jako s nějakým
poll()
. Nehledě na řadu možných race condition, pokud tvůj program používá víc vláken, což nejspíš používá.
Navíc u signálů není garantováno, že budou doručeny ve stejném pořadí jako byly vyslány. Takže by se technicky vzato mohlo stát, že by jádro vyslalo signál VMPRESSURE_LOW
a vzápětí VMPRESSURE_MEDIUM
, ovšem program by je obdržel v opačném pořadí, takže by se choval, jako kdyby systém měl paměti habaděj, což by ale ve skutečnosti nebyla pravda.
Celkově vzato, signály vypadají hezky na papíře, když ale člověk veme v úvahu tyhle detaily, tak zjistí, že signály jsou fakt dobrý tak akorát na SIGTERM
, SIGKILL
a podobně...
Nemáš ale vyhráno ani ve chvíli, kdy už se spustí handler, protože se klidně může stát, že mezitím dorazí stejný signál znova nebo jiný a tvůj milej handler je přerušen, protože se vykoná jiný handler nebo bez varování znova ten samý.
Jen pro pořádek: defaultně je signál, který se právě zpracovává, blokován. Můžete to samozřejmě potlačit, např. pomocí SA_NODEFER
, ale pak už si za své problémy můžete sám.
takže to klidně přeruší thread-unsafe funkce, syscally, afaik i I/OKvůli tomu se taky syscally obalují makrem TEMP_FAILURE_RETRY, které v případě návratové hodnoty -1 a errno == EINTR daný syscall zavolá znova.
To, co je ve výstupu ps
vidět jako stav D, může interně znamenat dvě různé věci (možná i víc, ve scheduleru se moc nevyznám) podle toho, jestli má task nastavený flag TASK_WAKEKILL - buď je opravdu nepřerušitelný nebo je sice nepřerušitelný, ale lze ho zabít signálem KILL
.
Jinak ale syscally, kde se čeká na I/O (read(), recv(), poll(), …) - a vlastně obecně syscally, kde se na něco čeká - by měly být přerušitelné. Userspace procesy by neměly ve stavu D viset zbytečně dlouho, pokud ano, je to většinou příznak, že něco není v pořádku.
před každou alokací pamětiDoporucuju si precist sekci BUGS v manualove strance malloc. K alokovani libovolne velke casti pameti potrebujete 0 az _pamet_nutna_pro_vytvoreni_tabulky_stranek_ B.
No nevim no, unix signals jsou dost prasečinaAsi tak, než signály je lepší mít otevřený deskriptor a toho se ptát, když na to je správný čas. Ostatně tak se dá pracovat i se signály samotnými - signalfd()
Ostatně tak se dá pracovat i se signály samotnými - signalfd()Aha, díky, to jsem neznal...
Jak kdy, treba signal poslany pri nevalidni instrukci se pres signalfd bude osetrovat velmi spatne. Obcas se proste hodi mit dalsi zasobnik.No nevim no, unix signals jsou dost prasečinaAsi tak, než signály je lepší mít otevřený deskriptor a toho se ptát, když na to je správný čas. Ostatně tak se dá pracovat i se signály samotnými - signalfd()
Bohužel není nic jako EKERNELSCREWEDUP [kód pro „jádro to podělalo“], tak obvykle používáme EINVAL [neplatná vstupní hodnota].V GNU Hurd už podobně barvitý chybový kód je -
EIEIO
aneb Computer bought the farm
(to první je odkaz refrén ve známé písničce, zatímco to druhé je v angličtině známý eufemismus), nícméně tam znamená spíše to, co v Linuxu panika jádra.
Tiskni
Sdílej: