AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.
Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.
Na Humble Bundle běží akce Humble Tech Book Bundle: All Things Raspberry Pi by Raspberry Pi Press. Se slevou lze koupit elektronické knihy od nakladatelství Raspberry Pi Press a podpořit Raspberry Pi Press, Raspberry Pi Foundation North America nebo Humble.
Přidaný režim autonomního řízení vozidel Tesla Mad Max je dostupný pro vybrané zákazníky v programu EAP (Early Access Program). Nový režim je na silnici agresivnější, častěji mění pruhy a ne vždy dodržuje rychlostní limity. Agentura JPP spekuluje, že v Česku by se mohl nový režim namísto Mad Max jmenovat Mad Turek...
Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.
bat, tj. vylepšený cat se zvýrazňováním syntaxe a integrací s gitem, byl vydán ve verzi 0.26.0.
Byla vydána první verze 0.0.1 [Mastodon] multipatformního renderovacího jádra webového prohlížeče Servo (Wikipedie). Vývoj Serva započal v roce 2012 v Mozilla Corporation. V roce 2020 bylo Servo předáno nadaci Linux Foundation. Servo je napsané v programovacím jazyce Rust.
Cloudovou službu Amazon Web Services (AWS) americké firmy Amazon dnes postihl globální výpadek. Omezil dostupnost řady aplikací a webů, například populární platformu Snapchat nebo aplikaci s prvky umělé inteligence (AI) Perplexity. Podle webu Downdetector hlásily problémy také uživatelé obchodu Amazon, streamovací platformy PrimeVideo nebo platební služby PayPal.
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: