O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.
Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.
Byla vydána nová major verze 9.0 softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je podpora AI.
Wasmer byl vydán ve verzi 7.0. Jedná se o běhové prostředí pro programy ve WebAssembly. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V reakci na nepopulární plán Microsoftu ještě více ve Windows prohloubit integraci umělé inteligence Copilot, Opera na sociální síti 𝕏 oznámila, že připravuje nativní linuxovou verzi prohlížeče Opera GX. Jedná se o internetový prohlížeč zaměřený pro hráče, přičemž obsahuje všechny základní funkce běžného prohlížeče Opera. Kromě integrace sociálních sítí prohlížeč například disponuje 'omezovačem', který umožňuje uživatelům omezit využití sítě, procesoru a paměti prohlížečem, aby se tak šetřily systémové zdroje pro jinou aktivitu.
NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.
Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na
… více »V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.
Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.
Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.
lib.c:
#include <stdio.h>
void neco() {
printf("Něco\n");
}
Toto je první program prog1.c:
void neco();
int main() {
neco();
return 0;
}
Toto je druhý program prog2.c:
#include <dlfcn.h>
void (*neco)();
int main() {
void *lib = dlopen("./lib.so", RTLD_NOW);
neco = dlsym(lib, "neco");
neco();
dlclose(lib);
return 0;
}
A teď k překladu:
gcc -fPIC -shared -o lib.so lib.c gcc -o prog1 prog1.c ./lib.so -ldl gcc -o prog2 prog2.c -ldlA teď k testování:
time { for i in `seq 1 1000`; do ./prog1 >& /dev/null; done; }
time { for i in `seq 1 1000`; do ./prog2 >& /dev/null; done; }
První program je uměle spojen s knihovnou dl, aby se zaváděla také a spušení brzdila. Můžete zkusit -ldl vyhodit.
dlopen a dlsym.
$ more tst_so.c
void dummy() {}
$ more tst_main.c
#include < dlfcn.h>
#include < stdio.h>
#include < stdlib.h>
#include < asm/msr.h>
#define TIME(x) { \
int b, e; rdtscl(b); x; rdtscl(e); \
printf (#x ": %d\n", e - b);}
void dump (char *txt, unsigned char *p)
{
int i;
printf("%s at %p:", txt, p);
i = 10; do printf(" %02x", *p++); while (--i);
printf("\n");
}
extern int dummy (void);
int main ()
{
int i;
dump("dummy", (unsigned char*)dummy);
i = 10; do TIME(dummy()) while (--i);
void *module = dlopen("./tst_so.so", RTLD_NOW);
if (!module) { perror("dlopen"); exit(1); }
int (*dummy_ptr)() = dlsym(module, "dummy");
if (!dummy_ptr) { perror("dlsym"); exit(1); }
dump("dummy_ptr", (unsigned char*)dummy_ptr);
i = 10; do TIME(dummy_ptr()) while (--i);
}
$ gcc -O -fomit-frame-pointer -fpic -shared tst_so.c -o tst_so.so
$ gcc -O -fomit-frame-pointer tst_main.c tst_so.so -ldl
$ LD_LIBRARY_PATH=. ./a.out
dummy at 0x804851c: ff 25 d8 99 04 08 68 30 00 00
dummy(): 1358
dummy(): 49
dummy(): 70
dummy(): 38
dummy(): 38
dummy(): 38
dummy(): 38
dummy(): 38
dummy(): 38
dummy(): 38
dummy_ptr at 0xb7f804bc: c3 90 90 90 55 89 e5 56 53 e8
dummy_ptr(): 375
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
dummy_ptr(): 35
Tiskni
Sdílej: