Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Aktuální předverze řady 2.6 je stále 2.6.20-rc5. Do hlavního git repozitáře však zase začaly proudit patche - zatím jich bylo asi 250. Jde převážně o opravy, ale byla přidána i sada patchů ze stromu MTD s ovladačem AT91 NAND a "Cafe" NAND (pro OLPC systémy).
Starší jádra: verze 2.6.16.38 byla vydána 21. ledna a obsahuje opravy několika bezpečnostních problémů.
Nedá se říci, že by Linux trpěl nedostatkem virtualizačních řešení. Horší je to s paravirtualizačními systémy, které by bylo snadné pochopit. Nedávný přírůstek do rodiny však tuto situaci výrazně mění. Hypervizor lguest od Rustyho Rusella (vyslovováno rʌs.ti'vai.zər) má pouhých 6000 řádků (včetně kódu pro uživatelský prostor) a poskytuje kompletní, byť spartánský, paravirtualizační mechanismus.
Jádrem lguest je natahovatelný modul lg. Při inicializaci si tento modul alokuje kus paměti a namapuje jej do jaderného adresního prostoru těsně nad oblast vmalloc - jinými slovy nahoru. Do této oblasti je natažen malý hypervizor; je to kousek kódu v assembleru, který se stará především o přepínání mezi jádrem a virtualizovaným hostem. Přepínání zahrnuje i hrátky s tabulkami stránek - co připadá jádru hostitele jako virtuální paměť, je fyzická paměť pro hosta - a správu obsahu registrů.
Hypervizor bude také ve virtuálních adresních prostorech hostů. Avšak povolit hostům úpravy hypervizora by bylo špatné, protože by jim to umožnilo uniknout ze svého virtuálního písečku. Vzhledem k tomu, že jádro hosta poběží v RING 1, nezabrání mu v provádění čachrů s kódem hypervizoru obyčejná i386 ochrana stránek. Takže je místo toho k udržení odstupu využíván segmentační mechanismus.
Modul lg také implementuje základy pro virtualizovaný I/O subsystém. Na nejnižší úrovni je "DMA" mechanismus, který prostě jen kopíruje paměť mezi buffery. DMA buffer lze navázat na určenou adresu; pokus o DMA na tuto adresu pak paměť zkopíruje do bufferu. DMA oblasti mohou být v paměti, která je sdílena hosty, a v takovém případě budou data kopírována z jednoho hosta na druhého, přičemž přijímající host obdrží přerušení; tak je implementováno síťování mezi hosty. Není-li nalezena žádná sdílená DMA oblast, budou DMA přenosy předány k provedení hypervizoru v uživatelském prostoru (popsáno níže). K dispozici jsou také jednoduché ovladače disku a konzole.
A nakonec modul lg implementuje ovládací rozhraní přístupné přes /proc/lguest - funkce, která možná bude muset být změněna, než se lguest dostane do hlavního jádra. Uživatelský hypervizor vytvoří hosta zápisem příkazu "inicializuj" do tohoto souboru. Přitom je určen rozsah paměti, který se má použít, kde najít jádro atd. Rozhraní lze také používat k přijímání a provádění DMA operací a odesílání přerušení do hostovaného systému. Zajímavé je, že spuštění hosta je zařízeno čtením z tohoto ovládacího souboru; provádění bude trvat, dokud se host nezastaví na něčem, k čemu je potřeba uživatelský zásah.
Na straně jádra je ještě implementace paravirt_ops pro práci s lguest hypervizorem; musí být zakompilována do každého jádra, které bude spouštěno jako host. Při inicializaci systému hledá tento kód speciální podpis zanechaný hypervizorem při startu hosta; je-li podpis přítomen, znamená to, že jádro běží v rámci lguest. V takovém případě budou nainstalovány paravirt_ops určené pro lguest, což jádru umožní běžet jako správný host.
Poslední součástí systému je uživatelský hypervizor klient. Jeho úkolem je alokování rozsahu paměti, která se stane hostovou "fyzickou" pamětí; obraz jádra hosta je do tohoto rozsahu namapován. Kód samotného klienta byl nalinkován speciálně tak, aby seděl ve virtuálním adresním prostoru nahoře a nechal pod sebou místo pro hosta. Jakmile je systém hosta na místě, provede uživatelský klient čtení z ovládacího souboru a host nabootuje.
Soubor na hostitelském systému může posloužit jako obraz disku pro hosta, přičemž uživatelský klient se stará o "DMA" požadavky na přesun bloků tam a zpět. Síťová zařízení lze nastavit tak, aby prováděla komunikaci mezi hosty. Síťový ovladač lg může také fungovat v loopback režimu, kdy je interní síťové zařízení připojeno k TAP zařízení nakonfigurovaném na hostiteli; tak se mohou hostované systémy vázat na porty a provozovat servery.
S trochou představivosti je z diagramu vpravo patrné, jak to všechno funguje dohromady. Lguest klient ten proces nastartuje, když je spuštěn na hostiteli v uživatelském prostoru. Alokuje paměť znázorněnou modrým rámečkem, ze které bude virtualizovaná fyzická paměť hosta, a pak namapuje jádro hosta. Jakmile uživatelský klient provede čtení z /proc/lguest, jsou upraveny tabulky stránek a popisovače segmentů tak, aby modrý rámeček vypadal jako celý systém, a kontrola je předána hostovanému jádru. Host může prostřednictvím jaderného kódu hypervizora požadovat některé služby; pro všechno ostatní je kontrola vrácena uživatelskému klientu.
Tohle je poměrně kompletní popis všeho, co lguest umí. Žádná živá migrace jako u Xen, žádná copy-on-write disková zařízení ve stylu UML, žádná správa zdrojů nad rámec toho, co nabízí jádro, atd. Jednoduchost kódu je zcela zjevně jednou z jeho nejatraktivnějších vlastností; je snadné mu porozumět a pracovat s ním. Do jádra se tedy pravděpodobně dostane mnohem snáze než některé další implementace hypervizorů. Zůstává otázkou, jestli bude kód jednoduchý i ve chvíli, kdy s ním lidi začnou doopravdy pracovat.
Následující obsah je © KernelTrap
21. led, originál
Robert Day navrhl dvě nové konfigurační volby, které by umožňovaly označit kód jako "deprecated" [zavržený] nebo "obsolete" [zastaralý]. Odvolával se na nedávné zmatky při pokusech o odstranění devfs, kdy nebylo jasné, jaký je současný stav, a co se chystá: Používání deprecated kódu je z technického hlediska v pořádku, ale používání obsolete kódu by mělo vyvolat nějaké varování. Kromě zmatků způsobených nejasným rozdílem mezi významy obou slov byla reakce na návrh vstřícná. H. Peter Anvin patch také podpořil: Když nic jiného, tak to dodá jisté mantinely těm nekonečným "odstranit či neodstranit" debatám. Robert také poznamenal, že "deprecated" by se hodilo jako kontrola při kompilaci jádra: Byl by to rychlý a jednoduchý způsob, jak z kompilace odstranit vše, co *má* být obsolete, abyste si byli jisti, že neberete žádný mrtvý kód. Patch obsahuje definice obou stavů:
Kód označený jako 'deprecated' je oficiálně stále dostupný, ale většinou už byl určen k odstranění, takže byste udělali nejlépe, kdybyste si začali hledat náhradu.
Kód označený jako 'obsolete' už není oficiálně podporován a neměl by být součástí žádné běžné kompilace, ale přesto může být stále k dispozici, pokud jeho funkci nutně potřebujete. *Velmi* se doporučuje na obsolete kód dlouhodobě nespoléhat.
21. led, originál
Theodore Ts'o oznámil, že Linux Kernel Summit bude v roce 2007 přesunut z tradiční Ottawy v Kanadě do Cambridge v Anglii. Rozhodnutí popsal jako jednorázový experiment, který bude později vyhodnocen, aby se zjistilo, jestli má v budoucnu cenu summit přesouvat do jiných míst: Je mi jasné, že kdyby to bylo je na nás, vývojářích, tak bychom měli konferenci v Honolulu, Austrálii nebo na Novém Zélandu. Bohužel to záleží i na jiných věcech a finančních okolnostech.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Hypervizor od Rustyho Rusella lguest (vyslovováno rʌs.ti'vai.zər) má…V té současné verzi jsem dumal nad tím, proč se tam ta poznámka o výslovnosti je a co se takhle vlastně vyslovuje, když tam je ta podivná část rʌs.ti' – až když jsme to nechal být a dočetl za závorku, došlo mi to…
[<c01485ba>] filemap_nopage+0x2ba/0x3e0 [<c0152a5b>] __handle_mm_fault+0x10b/0x930 [<c0115316>] do_page_fault+0x126/0x630 [<c01151f0>] do_page_fault+0x0/0x630 [<c03779c4>] error_code+0x74/0x7c [<c0370033>] xdr_buf_from_iov+0x3/0x30 ======================= Mem-info: DMA per-cpu: CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0 Normal per-cpu: CPU 0: Hot: hi: 186, btch: 31 usd: 147 Cold: hi: 62, btch: 15 usd: 14 Active:102055 inactive:2415 dirty:0 writeback:0 unstable:0 free:1177 slab:4749 mapped:96 pagetables:844 DMA free:1992kB min:88kB low:108kB high:132kB active:9668kB inactive:128kB present:16256kB pages_scanned:16123 all_unreclaimable? yes lowmem_reserve[]: 0 476 Normal free:2716kB min:2744kB low:3428kB high:4116kB active:398552kB inactive:9532kB present:487428kB pages_scanned:640578 all_unreclaimable? yes lowmem_reserve[]: 0 0 DMA: 0*4kB 1*8kB 0*16kB 0*32kB 1*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 1992kB Normal: 19*4kB 2*8kB 0*16kB 0*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 1*2048kB 0*4096kB = 2716kB Swap cache: add 12881, delete 12881, find 1724/1811, race 0+0 Free swap = 0kB Total swap = 0kB Free swap: 0kBTo ted zlobi pri kompilaci a i jinych cinnostech me. Ale musim rict, ze suspend-to-ram && suspend-to-disk ma 2.6.20 perfektne funkcni! Jsem zvedavy na zmeny v ACPI v 2.6.21.