Elon Musk na akci We, Robot (YouTube, 𝕏) představil Robotaxi, Robovan a vylepšeného Tesla Bota (Optimus).
Internet Archive je offline (𝕏, Bluesky, Mastodon). Unikly údaje 31 milionů uživatelů. Probíhal / probíhá na něj DDoS útok.
Alyssa Rosenzweig se v příspěvku na svém blogu rozepsala o hraní AAA her na Asahi Linuxu. Na YouTube je záznam její včerejší přednášky na XDC 2024 (X.Org Developer's Conference).
Vláda schválila Národní polovodičovou strategii: Česká republika má velký potenciál stát se významným hráčem v oblasti výroby čipů, zejména v evropském měřítku. Využít tento potenciál je cílem Národní polovodičové strategie, kterou připravilo Ministerstvo průmyslu a obchodu ve spolupráci s experty, a která navazuje na evropský Akt o čipech.
V lete vyšiel Aeonwave 4.0, ktorý niekoľkonásobne menej vyťažuje procesor pri interpretácií priestorového zvuku než OpenAL Soft. Autor hľadá prispievateľov do knižnice libaaxopenal za účelom pridania ALC_EXT_EFX rozšírení využívaných napr. v hre Doom 3 cez port Dhewm3 v Linuxe.
Linuxová distribuce Ubuntu 24.10 „Oracular Oriole“ byla vydána. Jde o průběžné vydání s podporou 9 měsíců. Obsahuje mj. Linux 6.11 či GNOME 47 s několika odkazy na první vydání Ubuntu (4.10 „Warty Warthog“) před 20 lety. K dispozici jsou také oficiální deriváty s odlišnými výchozími desktopovými prostředími anebo balíky aplikací.
Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové major verzi 2.0 (YouTube). Důležité změny v Migration Guide.
Apache Tomcat (Wikipedie) slaví 25 let. Při té příležitosti byla vydána nová verze 11.0. Přehled novinek v poznámkách k vydání.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 24.09.0. Přehled novinek v poznámkách k vydání. O3DE má nového maskota: Odie.
Kdo chce podpořit společnost Nintendo v jejím boji proti open source softwaru (Ryujinx, yuzu, …), může si koupit Nintendo budík Alarmo za 100 dolarů. Za jak dlouho bude na budík naportován Doom?
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: