Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.
Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Funkcie v bashi sa môžu volať rekurzívne. Manuál tvrdí: "No limit is imposed on the number of recursive calls." V reále to nie je až tak neobmedzené, ale na druhej strane je to celkom postačujúce. Zaujímavé je, že bashovská rekurzia nie je obmedzená veľkosťou dostupnej pamäte, ale pravdepodobne chybou v bashi.
Spustite si skriptíček#!/bin/bash
recurent() {
[[ "$1" -eq 10000 ]] &&
return
echo "$1"
recurent "$(($1+1))"
}
a napíšte do diskusie pri akom čísle vám to spadlo. U mňa to končí nie úplne deterministicky na číslach 8176 až 8182 s chybou "Segmentation fault". Kde asi tvorca bashu urobil chybu?
Nemusíte sa báť to spustiť. Na mojom Athlone64 3200+ (@2.2GHz) trvá skript 20s a hodnota VIRT v top-e ukazuje maximálne cca 24000 (znamená to pre program bez veľkého objemu zdieľaných knižníc veľkost alokovanej pamäte v kB?). Aký je vzťah medzi touto hodnotou a skutočne obsadenou pamaťou si už ani zďaleka nepamätám, ale rozhodne vám to nedostaví počítač divokým swapovaním. Na grafe spotreby pamäte som to ani nezaregistroval.
Zároveň si môžete vyskúšať aké spomalenie znamenajú niektoré drobné úpravy v kóde. Napríklad pridanie alokácie (pridať local i pred echo) jednej premennej predĺži čas behu na trojnásobok. Pričom vidno, že s rastúcimi číslami sa beh spomaľuje a spomaľuje. Pravdepodobne prehľadáva niečo ako lineárny zásobník stále od jeho začiatku.
Pre info, testujem to na bashi:
$ echo $BASH_VERSION 3.2.33(1)-release
Tiskni
Sdílej:
9515 Neoprávněný přístup do paměti (SIGSEGV)
marek@mantisha:~> echo $BASH_VERSION 3.2.39(1)-release marek@mantisha:~>
).
Já jsem si ho musel upravit, aby to vůbec něco dělalo...
9027 Neoprávněný přístup do paměti (SIGSEGV) $ echo $BASH_VERSION 3.2.17(1)-release $ uname -a Linux HF 2.6.22-gentoo-r8 #14 Mon Mar 17 21:43:08 CET 2008 i686 Intel(R) Celeron(R) CPU 2.60GHz GenuineIntel GNU/Linux
11381
Segmentation fault
[progdan@notas ~]$ echo $BASH_VERSION
3.2.39(1)-release
[progdan@notas ~]$ uname -a
Linux notas 2.6.27-ARCH #1 SMP PREEMPT Sat Nov 8 09:52:52 UTC 2008 x86_64 Intel(R) Core(TM)2 Duo CPU T5250 @1.50GHz GenuineIntel GNU/Linux
PS: Do toho skriptu by to chtelo pridat volani te samotne funkceTo je jen maličká zkouška pozornosti
Linux f 2.6.25-gentoo-r7 #1 SMP Sun Aug 10 09:24:29 CEST 2008 x86_64 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linuxto dává segmentation fault pro 8441 rekusí za asi 20 sec. Kdežto pro starý sh ve versi pro
FreeBSD xxx.xxx.xxx.xxx 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Sun Sep 7 17:10:51 CEST 2008 xxx@xxx.xxx.xxx.xxx:/usr/obj/usr/src/sys/XXX i386to je plný počet rekursí během 1.2 (!!) sec. (Přitom jsem nahradil podminku [[ ... ]] za: test ...). Sneslo to i omezení na sto tisíc vnoření, víc jsem nezkoušel. (V obou případech to bylo zdržované vypisem na terminal.)
To ze to sleti je celkem normalni a pada to protoze dojde stack.
ulimit -s unlimited, pak už jen tak nespadne;)
man bash, vyhledat ulimit (jelikoz je to shell builtin). Dozvite se, ze:
-s The maximum stack size
Rychlejší než hledat v několikatisíciřádkovém manuálu je použít vestavěnou nápovědu: help ulimit
(Stačí jen párkrát zavolat POP (E)AX.)
Assembler jsem opustil někdy v dobách i486, ale není ten zásadní problém, že zatímco na data segment si nikdo nedovolí zapsat bez předchozí alokace, tak na stack segment se vesele zapisuje a optimisticky se očekává, že tam pořád nějaké místo bude.
Má vůbec na x86 smysl omezovat zásobník, ale neomezovat haldu? Vždyť oba jsou ve stejném virtuálním prostoru a operační systém má docela dobrou představu, které stránky jsou alokovány a které vyvolají výjimku.
Jak říkám, neznám detaily dnešní x86 architektury, ale podle manuálu sigaltstack(2) si mohu požádat operační systém o vytvoření náhradního zásobníku o velikosti, jakou si sám zvolím.
Někde jsem četl pěknou ukázku, jak tuhle službu používat. Zcela normálně se tam ta paměť nejprve malloc()ovala a pak se přes sigaltstack() zaregistrovala. Takže bych řekl, že fyzicky spojitý adresní prostor není třeba.
Podle mě to funguje tak, že ve virtuálním prostoru procesu máte zespoda rostoucí haldu a ze shora o dost pomaleji rostoucí zásobník (i když ten z dlouhodobého hlediska neroste, protože tak fungují dnešní programy). Pokud se procesor pokusí přistoupit za konec alokovaného zásobníku, tak se vyvolá přerušení, operační systém zjistí, že zasažená stránka sousedí se zásobníkem (tzn. zásobník je plný), a tak přialokuje další kus paměti k zásobníku (technicky vzato pouze nastaví atributy stránky), vrátí se do kontextu procesu a procesor restartuje vykonávání instrukce procesu. (Stejný mechanismus jako je obsluha výpadku stránky haldy/textu.)
Avšak pouze ve dvou případech operační systém odmítne prodloužit zásobník: buď se zásobník potkal s haldou (prostě došla paměť), nebo velikost zásobníku dosáhla run-time limit pro velikost zásobníku, který se nastavuje přes ulimit(1)/setrlimit(2). V takovém případě pošle procesu SIGSEGV a pokud proces nemá předchystán náhradní zásobník (siglatstack(2)) nebo neobsluhuje SIGSEGV, tak končí.
K tomu mě vede vzpomínka na manuál k céčkové funkci/makru, která alokuje virtuálně souvislý blok na vrcholu zásobníku, kde je poznámka cosi o dynamicky rostoucím zásobníku, který může potkat haldu. Taktéž existují podivné služby, kterými se mohu dotázat na libovolnou virtuální adresu, mohu nastavovat na daných regionech příznaky (jen pro čtení, nespustitelný) ad.. Takže docela odmítám věřit, že by správa zásobníku zhlediska operačního systému byla tak předpotopně žádná.
a tak přialokuje další kus paměti k zásobníku (technicky vzato pouze nastaví atributy stránky)
Zapomněl jsem dodat, že také nastaví záznamy v TLB, aby k virtuální stránce existovala fyzická.
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
8308
Segmentation fault
12468 Segmentation fault milos@raketa:/tmp$ echo $BASH_VERSION 3.2.39(1)-release
12464 Neoprávněný přístup do paměti (SIGSEGV) [user@host ]$ echo $BASH_VERSION 3.2.39(1)-release
ulimit -s unlimited zaberie. Mozno je v Ubuntu nastaveny defaultne inak. Limit je dostatocne velky, ale aj tak by som uvital nejake ine riesenie, nez spadnut na SEGFAULT.
by som uvital nejake ine rieseniePřevést na cyklus?