Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.
OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzích 2.2.2 a 2.1.14. Přináší důležitou opravu chyby vedoucí k možnému poškození dat.
V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023…
Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
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 23.11 Topi. Přehled novinek v Changelogu.
Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.
Byla vydána nová stabilní verze 23.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Tapir. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) upozorňuje na hrozbu spojenou s používáním mobilní aplikace WeChat a její čínské verze Weixin (dále jen WeChat). Ta sbírá velký objem uživatelských dat, a právě to by – v kombinaci se způsobem jejich sběru – mohlo sloužit k přesnému zacílení kybernetických útoků.
Nejak nemuzu najit jednoduche vysvetli prepoctu address processoru (v mem pripade 32-bit ARM) po pouziti funkci mmap. Nejaky odkaz na matematiku adresovani.
#define MAP_SIZE 4096UL #define MAP_MASK (MAP_SIZE - 1) #define PIOB_BASE=$FFFFF600; #define PIOC_IFDR PIOC_BASE + 0x0024 d = open("/dev/mem", O_RDWR | O_SYNC)); map_base = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PIOB_BASE & ~MAP_MASK); *((unsigned long *) (map_base + (PIOB_IFDR & MAP_MASK))) = PIO_B27;
Proc pri mapovani stranky rozmerem 4096 (0x1000) se musi BASE adress se delit na celo 0x1000 (PIOB_BASE & ~MAP_MASK)= div(PIOB_BASE,0x1000)?
Proc dalsi pro zapis na dalsi adresu PIOC_IFDR vychazi posun na (PIOB_IFDR & MAP_MASK)=0x624?
Dekuji moc.Řešení dotazu:
PIOB_BASE & ~MAP_MASK
není dělení, nýbrž zaokrouhlení. A to mi nepřijde jako zvláštní požadavek, když se mají stránky systémové paměti namapovat do prostoru virtuální paměti procesu.
Mate pravdu je to vlaste deleni s zaokroulenim. Ale mne zajima jak se addresy prepocitavaji po namapovani pomoci funkci mmap. Potrebuji jen nasmerovat
.Pochobil jsem ze base address PIOB_BASE se ma rozdelit na velikost stranky 0x1000. A pak offset na dalsi addresu PIOB_OER PIOB_BASE + 0x0010 se ma delat pomoci vstahu (PIOB_BASE + 0x0010) & MAP_MASK
#define PIOB_BASE=$FFFFF600; #define PIOB_IFDR_OFFSET 0x0024 map_base = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PIOB_BASE - (PIOB_BASE % MAP_SIZE); *((unsigned long *) (map_base + (PIOB_BASE % MAP_SIZE) + PIOB_IFDR_OFFSET)) = neco;Takhle je to myslím pochopitelnější. Mimochodem ten kód je dost zprasený, předpokládá se, že se bude mapovat jen jedna stránka, MAP_SIZE by mělo jmenovat PAGE_SIZE, které by se mělo zjistit voláním getpagesize() a ne to mít definované natvrdo a úplně ten kód přestane fungovat, pokud by offset registru překročil hranici stránky. Více man 2 mmap.
Dekuji za odpoved'. Tento kod se tyka primo urciteho druhu procesoru a ovladani PIO (parallel input output) pinu na devepment boardu a v tom to pripade jedna stranka bohate staci. Mate pravdu, ze kod je prasacky a tezko se chape z toho jak se pocitaji adresy. Ale je to vice mene nejaky priklad. Stejne vlastni aplikaci budu psat na FreePascalu.
Jinak mi slo o to proc se to ma tak pocitat. A je to dane tim,ze v Linuxu se pouziva strankova pamet'. A to znamena,ze v pripade 32-bitove adresy offset z budou tvorit 12 mladsich bitu (pocet bitu offsetu=log2(page_size)), zbylych starsich 20-bitu je cislo stranky.
Omluvam se za to, ze asi jsem nespravne zformuloval otazku. Dekuji vsem.
Tiskni
Sdílej: