Intel vydal 30 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20251111 mikrokódů pro své procesory.
Byla vydána říjnová aktualizace aneb nová verze 1.106 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.106 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Canonical pro své zákazníky, předplatitele Ubuntu Pro, prodloužil podporu Ubuntu LTS z 12 let na 15 let (Legacy add-on). Týká se verzí od 14.04 (Trusty Tahr).
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 5.0.0. Nově je oficiálně podporován Linux ARM64/AArch64. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byla vydána verze 10 dnes již multiplatformního open source frameworku .NET (Wikipedie). Přehled novinek v příspěvku na blogu Microsoftu. Další informace v poznámkách k vydání na GitHubu nebo v přednáškách na právě probíhající konferenci .NET Conf 2025.
Rodina hardwaru služby Steam se začátkem roku 2026 rozroste. Steam Deck doplní nový Steam Controller, herní PC Steam Machine se SteamOS s KDE Plasmou a bezdrátový VR headset s vlastními ovladači Steam Frame.
Amazon Web Services (AWS) oznámil (en) výstavbu Fastnetu – strategického transatlantického optického kabelu, který propojí americký stát Maryland s irským hrabstvím Cork a zajistí rychlý a spolehlivý přenos cloudových služeb a AI přes Atlantik. Fastnet je odpovědí na rostoucí poptávku po rychlém a spolehlivém přenosu dat mezi kontinenty. Systém byl navržen s ohledem na rostoucí provoz související s rozvojem umělé inteligence a
… více »Evropská komise zkoumá možnosti, jak přinutit členské státy Evropské unie, aby ze svých telekomunikačních sítí postupně vyloučily čínské dodavatele Huawei a ZTE. Místopředsedkyně EK Henna Virkkunenová chce změnit doporučení nepoužívat rizikové dodavatele při budování mobilních sítí z roku 2020 v právně závazný požadavek.
sudo-rs, tj. sudo a su přepsané do programovacího jazyka Rust, již obsaženo v Ubuntu 25.10, bylo vydáno ve verzi 0.2.10. Opraveny jsou 2 bezpečnostní chyby.
Kaspersky pro Linux je nově k dispozici také pro domácí uživatele.
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?