Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.3. Současně oznámila, že nadcházející větší vydání 24.04-2.0 bude mít modernější webový prohlížeč.
Ploopy po DIY trackballech či sluchátkách představuje nový externí DIY trackpoint se čtyřmi tlačítky Bean. Obsahuje snímač Texas Instruments TMAG5273, spínače Omron D2LS-21 a řadič RP2040, používá firmware QMK. Schémata jsou na GitHubu; sadu lze předobjednat za 69 kanadských dolarů (bez dopravy a DPH).
Mozilla před dvěma týdny na svém blogu oznámila, že díky Claude Mythos Preview bylo ve Firefoxu nalezeno a opraveno 271 bezpečnostních chyb. Včera vyšel na Mozilla Hacks článek s podrobnějšími informacemi. Z 271 bezpečnostních chyb mělo 180 chyb vysokou závažnost, 80 chyb střední závažnost a 11 chyb nízkou závažnost. Celkově bylo v dubnu ve Firefoxu opraveno 423 bezpečnostních chyb. Čísla CVE nemusí být přiřazována jednotlivým chybám. CVE-2026-6784 například představuje 154 bezpečnostních chyb.
Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].
Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.
Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.
Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »Tento text vznikl díky dotazům lidí, kteří si neradi čtou {man,info} gcc. Trochu nepochopitelně nenese žádné prohlášení a ani nechce vyvolávat flame, za což se omlouvám
.
Gcc podporuje mnoho způsobů optimalizace kódu:
-O (-O1) - Optimize
.
A zároveň na strojích bez debugovacího rozhraní (x86?) zapíná
-O2 - Optimize even more
-O3 - Optimize yet more
-Os - Optimize for size
. Tento zapne -O2, ale vypne -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays.
Co znamenají konkrétní -ffoo si laskavý čtenář jistě už přečte sám
.
Knihovny rozlišujeme na statické a sdílené. Zatímco se ty první natvrdo
slinkují s binárkou v době kopilace, ty druhé jsou uloženy na disku a linkují se až za běhu. Mějme následující kód:
$ cat hello.{h,c}
#include <stdio.h>
#ifndef __HELLO__
#define __HELLO__
void helloWorld(void);
#endif
#include "hello.h"
void helloWorld(void) {
printf("Hello, world!\n");
}
Zdrojový kód přeložíme na objektový a ten zabalíme do statické knihovny. Název statické knihovny musí začínat na lib a končit na .a!
$ gcc -c hello.c -o hello.o $ ar rcs libhello.a hello.o
Pro sdílenou knihovnu se objektový kód kompiluje s parametrem -fPIC. Jenom upozorňuji, že parametr -Wl se jmenuje dvojité vé el
. Sdílená knihovna musí opět začínat lib a končit .so.verze_knihovny.
$ gcc -fPIC -c hello.c -o hello.o $ gcc -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0.1 hello.o
Kód z knihoven se používá naprosto stejně, jako kterýkoliv jiný. Vzhledem k tomu, že naše knihovna není na místě, kde je linker standardně hledá, musíme mu parametrem -L. sdělit, že má hledat i v aktuálním adresáři.
$ cat main.c
#include "hello.h"
int main(void) {
helloWorld();
return 0;
}
$ gcc -static main.c -L. -lhello -o main.s
$ gcc main.c -L. -lhello -o main.d
$ ls -lh main.{s,d} | awk '{print $9, $5}'
main.d 7,1K
main.s 491K
Starším (a méně bezpečným způsobem) je proměnná LD_LIBRARY_PATH. Méně bezpečným proto, že umožňuje zaměnit sdílené knihovny suid programům.
Jak mě upozornil ivok, tak se tento problém už netýká novějších verzí ld-linux.so (z glibc6). Díky!
Modernější systémy používají nástroj ldconfig, který čte soubor /etc/ld.so.conf a potřebné informace si nahrává do cache /etc/ld.so.cache. Ldconfig a /etc/ld.so.conf může editovat používat pouze root.
Ukázka mého /etc/ld.so.conf z Gentoo
# ld.so.conf autogenerated by env-update; make all changes to # contents of /etc/env.d directory /usr/local/lib /usr/lib/opengl/xorg-x11/lib /usr/i686-pc-linux-gnu/lib /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6 /usr/lib/mozilla-firefox /usr/lib /opt/sun-jre-bin-1.5.0.05/lib/i386/ /opt/sun-jre-bin-1.5.0.05/lib/i386/native_threads/ /opt/sun-jre-bin-1.5.0.05/lib/i386/xawt/ /opt/sun-jre-bin-1.5.0.05/lib/i386/server/ /usr/qt/3/lib /usr/kde/3.4/lib /usr/games/lib /usr/lib/fltk-1.1
Tiskni
Sdílej:
$ export LD_PRELOAD=libfake
$ ping
ERROR: ld.so: object 'libdoesntexit' from LD_PRELOAD cannot be preloaded: ignored.
$ export LD_PRELOAD=/usr/lib/hacklocaledir.so
$ strace ping
...
open("/usr/lib/hacklocaledir.so", O_RDONLY) = 3
...
$ stat -c %A /bin/ping
-rws--x--x
Takže tam ta chyba pořád je, nebo mám něco špatně v konfiguraci