Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.
Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapy a AI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.
Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).
Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
lspci
. Ne vždy nalezne člověk tento příkaz v příslušném repozitáři a kompilovat jej ručně bývá na dlouhé lokte,zvláště pro nějakou tu exotičtější architekturu. Ano, většinou má jádro připojené /sys, ale hrabat se v něm ručně taky není příliš user-friendly. Jako rychlou náhražku tu proto mám následující narychlo napsaný skript (závislosti: jádro se sysfs připojené na /sys, /bin/sh, /bin/sed a chcete-li lidsky čitelná jména, pak /usr/bin/host a DNS konektivita):
#!/bin/sh PCIID_DNS=pci.id.ucw.cz HOST_BIN=/usr/bin/host SED_BIN=/bin/sed ( cd /sys/bus/pci/devices/ for ID in * ; do ID_OK=$(echo $ID | $SED_BIN 's/^0000://') VENDOR=$($SED_BIN 's/^0x//' < $ID/vendor ) DEVICE=$($SED_BIN 's/^0x//' < $ID/device ) CLASS=$($SED_BIN 's/^0x//' < $ID/class ) CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)....$/\1/') CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)..$/\1/') if [ -x "$HOST_BIN" ] && [ "$1" != "-n" ] then VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else VENDOR_STR="???" fi DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else DEVICE_STR="???" fi CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS) if test "$?" -eq "0" ; then CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else CLASS_STR="???" fi echo "$ID_OK $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]" else echo "$ID_OK $CLASS_H$CLASS_L $VENDOR:$DEVICE" fi done )
Výstup pak vypadá třeba nějak takto (skoro jako "lspci -nn"):
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] 00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] 00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] 00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] 00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4] 00:1c.3 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] 00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] 00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] 00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] 00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] 00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] [8086:27c4] 00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] 06:01.0 Ethernet controller: Broadcom Limited BCM4401-B0 100Base-TX [14e4:170c] 06:02.0 Network controller: Qualcomm Atheros AR922X Wireless Network Adapter [168c:0029] 06:04.0 CardBus bridge: ENE Technology Inc CB-712/4 Cardbus Controller [1524:1412] 06:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller [1524:0530] 06:04.2 SD Host controller: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller [1524:0550] 06:04.3 FLASH memory: ENE Technology Inc FLASH memory: ENE Technology Inc: [1524:0520] 06:04.4 FLASH memory: ENE Technology Inc SD/MMC Card Reader Controller [1524:0551]
Pokud ovšem v systému nemáme /usr/bin/host (nebo pokud skript spustíme s volbou „-n
“ jako prvním parametrem), vypíše pouze numerická ID, asi takhle (prostřední číslo je „class“):
00:01.0 0604 11ab:6820 00:02.0 0604 11ab:6820 00:03.0 0604 11ab:6820 01:00.0 0280 168c:002e 02:00.0 0280 168c:003c 03:00.0 0200 10ec:8168
Pokud tento výpis uložíme do souboru, můžeme z něj dostat „lidsky čitelný“ výstup pomocí následujícího skriptu (třeba na jiném počítači, které /usr/bin/host nainstalované má...):
#!/bin/sh if test $# -eq 0; then echo "$0 <file>" 1>&2 exit 666 fi PCIID_DNS=pci.id.ucw.cz HOST_BIN=/usr/bin/host SED_BIN=/bin/sed while read line ; do ID=$(echo $line| awk '{print $1}') CLASS=$(echo $line | awk '{print $2}') VENDEV=$(echo $line | awk '{print $3}') VENDOR=$(echo $VENDEV | sed 's/^\(....\):....$/\1/') DEVICE=$(echo $VENDEV | sed 's/^....:\(....\)$/\1/') CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)..$/\1/') CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)$/\1/') VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else VENDOR_STR="???" fi DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS) if test "$?" -eq "0" ; then DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else DEVICE_STR="???" fi CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS) if test "$?" -eq "0" ; then CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//') else CLASS_STR="???" fi echo "$ID $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]" done < $1
A výstup z něj bude vypadat třeba takto:
00:01.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 00:02.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 00:03.0 PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820] 01:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] 02:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter [168c:003c] 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168]
Tiskni
Sdílej:
/usr/share/misc/pci.ids
, ale existuje i ta možnost pomocí DNS. A jelikož jsem byl línej parsovat ten soubor, použil jsem druhou možnost. Mimochodem, není vůbec náhoda, že ten DNS je v doméně .cz, protože za tím stojí (snad se neurazí, když řeknu) linuxová legenda Martin Mareš