Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Před 35 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
Apple představil čipy M6 a M5 Ultra, Mac mini s M6 nebo M5 Pro a Mac Studio s M5 Max nebo M5 Ultra. Fedora Asahi Remix zatím podporuje jenom M1 a M2.
Firefox 157 přinese zapnutou podporu rastrového grafického formátu JPEG XL. Založena je na v Rustu napsané implementaci jxl-rs používané i v Chrome a Chromiu.
Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.
Řešení dotazu:
V Linuxe nie je problem zo stackom pri Intel/AMD pouzitom ako bezne PC, lebo ak je maly stack, da sa prealakovat a bude vacsi. V Linuxe nie je problem zo stackom pri Intel/AMD pouzitom ako bezne PC, lebo ak je maly stack, da sa prealakovat a bude vacsi.Toto nie je pravda. Da sa iba zmenit velkost pred spustenim (pripadne bez limitu).
#include <stdio.h>
#include <stdlib.h>
#define CHARS 1024
long int
move_stack(void *stack_bot, void (*jmp_addr)(void));
void
function_in_new_stack(void)
{
long int foo;
char string[CHARS];
for (char *ch = string + CHARS; ch >= string; ch--) {
*ch = 'A';
}
puts(string);
printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
}
int
main(int argc, char **argv)
{
long int foo;
void *stack, *stack_bot;
printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
stack = malloc(4096);
stack_bot = stack + 4096;
printf("New stack addr.: 0x%lx\n", (size_t) stack);
printf("New stack bottom: 0x%lx\n", (size_t) stack_bot);
puts("Moving to the new stack.");
foo = move_stack(stack_bot, &function_in_new_stack);
printf("Function worked: 0x%lx %c\n", foo, foo);
printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
puts("Freeing the stack.");
free(stack);
}
.globl move_stack move_stack: /* Tyto registry zachováváme. */ pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 /* V %rdi je spodek nového stacku, v %rsi funkce k zavolání. */ /* Poznamenáme si starou adresu stacku. */ mov %rsp, %rbx /* Přejdeme do nového stacku. */ movq %rdi, %rsp /* Adresu uložíme na nový stack. */ pushq %rbx call %rsi /* Vrátíme se zpět. */ popq %rsp /* Uklidíme po sobě. */ popq %r15 popq %r14 popq %r13 popq %r12 popq %rbx /* Vrátíme 'Y' jako návratovou hodnotu. */ movq $0x59, %rax retFunkce
move_stack zavolá funkci s daným stackem. Funguje to – viz výstup. Pokud nastavím CHARS na příliš velkou hodnotu (nový stack má 4k), spadne to na SIGSEGV, takže se používá nový stack.
(Tuším tady úkol.)
sou prázniny :O ;D
Tiskni
Sdílej: