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.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Současné vývojové jádro je 3.0-rc2 vydané 6. června. Byl relativní klid, i když aktualizace btrfs je o něco větší, než jsem doufal. Krom toho se jedná hlavně o opravy ovladačů, nějaké aktualizace ubifs a několik revertů regresí. Zkrácený changelog je v oznámení, detaily najdete v kompletním changelogu.
Stabilní aktualizace: v tomto týdnu žádné nevyšly a žádné se ani v době psaní tohoto článku nerevidují.
-- Al Viro
-- Ingo Molnár
napsal Jonathan Corbet, 8. června 2011
Patch pro souborový systém next3, který do souborového systému ext3 přidal snímky [snapshot], se objevil o něco málo víc než před rokem; v Jaderných novinách z dané doby se dočtete, že je potřeba tento patch posunout více k ext4, aby ho vůbec bylo možné začlenit. K této změně došlo a nedávné patche pro snímky v ext4 vypadají jako něco, co se blíží ke stavu, ve kterém by to šlo začlenit do hlavní řady. To vedlo k novým stížnostem, které by tento proces mohly poněkud zpomalit.
Jedna stížnost přišla od Josefa Basika:
Ve své odpovědi Amir Goldstein řekl, že jeho zaměstnavatel (CTERA Networks) chce tuto vlastnost v ext4. V produktech se to již dodává a btrfs stále není považován za dostatečně stabilní, aby se v daném prostředí použil.
Další obavy pocházejí ze začlenění takto velké vlastnosti do souborového systému, který má být stabilní a připravený pro produkční nasazení. Nikdo v tuto chvíli nechce zavléct do ext4 závažné chyby. Krom toho snímky aktuálně nefungují se všemi variantami formátu ext4 na disku. Mnoho kombinací vlastností ext4 v současnosti nefunguje dobře, což vede Erica Sandeena k obavě z toho, kam tento souborový systém míří:
Správce ext4 Ted Ts'o odpověděl se vzácným (na jadernou komunitu) přiznáním, že technické záležitosti nejsou vždy jediným rozhodujícím faktorem při rozhodování o začlenění vlastností:
V tomto případě si myslí, že mnoho lidí má o snímky zájem. Má obavy, že firmy jako CTERA by mohly přestat ext4 používat, pokud ho nepůjde upravit, aby plnil jejich potřeby. Jeho plán je tedy snímky začlenit, až (1) budou patche dostatečně dobré a (2) bude se zdát, že existuje plán, jak vyřešit zbývající problémy.
napsal Jonathan Corbet, 8. června 2011
Segmenty „vsyscall“ a „vDSO“ jsou dva mechanismy, které se používají pro zrychlení některých systémových volání v Linuxu. I když je jejich funkce stejná (poskytnout rychlý přístup k funkcionalitě, která nemusí běžet v jaderném (privilegovaném) režimu), jsou mezi nimi výrazné rozdíly. Nedávno se začalo mít za to, že vsyscall zjednodušuje útoky, takže byly sestaveny patche, které ho mají začít pomalu odstraňovat. Diskuze o těchto patchích ukazuje, že neshody o tom, jak komunita řeší bezpečnostní záležitosti, jsou stále stejně silné, jako vždy byly.
Oblast vsyscall je starší z obou mechanismů. Byla přidána jako způsob, jak vykonat specifická systémová volání, která nepotřebují žádná privilegia ke spuštění. Klasickým příkladem je gettimeofday(); všechno, co tato funkce potřebuje, je načíst jaderný náhled na to, kolik právě je. Existují aplikace, které gettimeofday() volají často a to až do té míry, že je musí zajímat každý kousek režie navíc. Aby se to vyřešilo, umožňuje jádro mapovat stránku obsahující aktuální čas v režimu pouze pro čtení do uživatelského prostoru; taková stránka také obsahuje rychlou implementaci gettimeofday(). Použitím virtuálního systémového volání může C knihovna poskytnout rychlé gettimeofday(), které se nikdy nepotřebuje přepnout do jaderného režimu.
Vsyscall má nějaká omezení, mezi jinými je tam místo jenom na pár virtuálních systémových volání. Když se na tato omezení narazilo, jaderní vývojáři vytvořili flexibilnější implementaci vDSO. Rychlý pohled na současný systém ukáže, že se stále používají obě:
$ cat /proc/self/maps ... 7fffcbcb7000-7fffcbcb8000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Klíč k současné diskuzi lze vidět, když stejný příkaz spustíme znovu a porovnáme si výstupy:
$ cat /proc/self/maps ... 7fff379ff000-7fff37a00000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Všimněte si, že oblast vDSO se přesunula, zatímco stránka vsyscall zůstává na svém místě. Pozice stránky vsyscall je pevná, je to součástí jaderného ABI, ale oblast vDSO – stejně jako většina oblastí v rozvržení paměti pro uživatelský prostor – má při každém namapování náhodnou polohu.
Znáhodňování rozvržení adresového prostoru je určitou obranou vůči bezpečnostním děrám. Útočník, který je schopen přepsat zásobník, může často zajistit, aby se funkce v cílovém procesu „vrátila“ na libovolnou adresu. S ohledem na to, co je na dané adrese za instrukci, může tento návrat způsobit téměř cokoliv. Zjevným příkladem je návrat do funkce system() v C knihovně; lze ji použít ke spuštění libovolného příkazu. Jestliže ale pozice C knihovny není známa, je pro exploit těžké až nemožné skočit na užitečné místo.
Ve stránce vsyscall není funkce system(), ale je tam několik strojových instrukcí, které volají systémová volání. S trochou hraní by tyto instrukce mohlo být možné použít při přepsání zásobníku tak, aby se zavolalo libovolné systémové volání s parametry, které nastavil útočník – což není žádoucí výsledek. Bylo by tedy hezké se stránky vsyscall zbavit – nebo ji alespoň umisťovat náhodně, aby se tomuto typu útoku zabránilo. Aplikace bohužel závisí na existenci a přesné pozici této stránky, takže nelze nic dělat.
Až na to, že Andrew Lutomirski přišel na něco, co by se dalo dělat: odstranit všechny užitečné instrukce ze stránky vsyscall. Jedna byla spojena se sysctl nastavením vsyscall64, ta byla užitečná jenom pro user-mode Linux (a nefungovala správně ani tam); jednoduše byla odstraněna. Další nebyly instrukce pro systémové volání jako takové: například pokud se v pravý okamžik skočilo do systémového času (a tedy když se vykonal jako kód), vypadal jako instrukce pro systémové volání. Aby se tento problém vyřešil, byly proměnné přesunuty do samostatné stránky, kde je zakázáno vykonávání kódu.
Zbytek kódu ve stránce vsyscall byl jednoduše odstraněn a nahrazen zvláštní zachycovací [trap] instrukcí. Když se aplikace pokusí zavolat funkci ve stránce vsyscall, jádro to zachytí a požadované virtuální systémové volání emuluje v jaderném režimu. Výsledkem je, že jaderné systémové volání emuluje virtuální systémové volání, které bylo vytvořeno, aby nebylo nutné volat jaderné systémové volání. Výsledkem je „vsyscall“, který trvá o zlomek mikrosekundy déle, ale – což je kritické – neporušuje existující ABI. V každém případě bude zpomalení možné pozorovat jenom v případě, že se aplikace bude pokoušet použít stránku vsyscall místo vDSO.
Současné aplikace by to většinou dělat neměly až na malý problém: glibc stále používá time() z vsyscall. V repozitáři glibc to bylo opraveno, ale tato oprava se k uživatelům nějakou dobu nemusí dostat; do té doby budou volání time() o něco pomalejší než dříve. Neměl by to být problém, ale protože jeden nikdy neví, dal Andy dohromady konfigurační volbu, která zachovává staré způsoby. Každý, kdo má obavy z režie emulované stránky vsyscall, může nastavit CONFIG_UNSAFE_VSYSCALLS a získá původní chování.
Nikdo neměl námitky vůči sadě patchů jako celku, ale Linusovi se vůbec nelíbilo to, jak byla pojmenována ta konfigurační volba; požadoval, aby byla pojmenována CONFIG_LEGACY_VSYSCALLS. A nebo ještě lépe aby změna byla provedena bezpodmínečně. To vedle k poměrně předvídatelné reakci od vývojáře PaX o tom, jak jaderná komunita ráda skrývá bezpečnostní problémy. Na to Linus řekl:
Postačí říci, že konverzace od té chvíle poměrně upadla; kdo má zájem, může vlákno sledovat následováním odkazů ve zprávách citovaných výše.
Z diskuze vzešel jeden užitečný poznatek a sice, že statická stránka vsyscall není ve skutečnosti bezpečnostní slabinou; je to jednoduše zdroj, který může útočníkovi zjednodušit zneužití slabiny někde jinde. Jestli tento aspekt činí danou stránku „nebezpečnou“ nebo jenom „zastaralou“ [legacy] budiž cvičením pro čtenáře. Tak jako tak je její odstranění považována za dobrý nápad i když by to mohlo vést k tomu, že v jádře zůstanou neopraveny skutečné bezpečnostní chyby; hádka je o pojmenování.
V době psaní tohoto článku nebyly konečné patche zaslány, ale podoba, kterou na sebe vezmou, bude poměrně jasná. Statická stránka vsyscall nebude existovat ve své současné podobě a aplikace, které ji stále používají, budou fungovat dál o něco pomaleji. Konfigurační volba určující toto chování může existovat, ale nemusí, ale každá distribuce, která bude obsahovat jádro s touto změnou (pravděpodobně 3.1 či novější), bude také mít C knihovnu, která se již nepokouší používat stránku vsyscall. A se štěstím bude zneužití slabin o něco těžší.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Na to Linux řekl
Linux si už konečně uvědomil sebe sama, nebo je to jenom překlep? :o)
nebude to tim ze vetsina produkcnich systemu jede na rodine fs ext...."?
ze je pro tohle dost dokumentace, nastroju i zkusenych lidi okolo narozdil od brtfs u ktereho je stale poznamka ze se muze diskovy format zmenit?
No možné to je. Ovšem byly to systémy ext[3|4], které mě už několikrát vypekly. Nic však není černobílé. Na btrfs mám sice přehozená data už druhým rokem, ale pro uložení disků virtuálních strojů se moc nehodí, takže se držím osvědčeného reiserfs. Zkusil jsem i ext4. Zpočátku se to zdálo v pohodě, než přišla ta nemilá příhoda s poškozeným diskem.nebude to tim ze vetsina produkcnich systemu jede na rodine fs ext...."?
ze je pro tohle dost dokumentace, nastroju i zkusenych lidi okolo narozdil od brtfs u ktereho je stale poznamka ze se muze diskovy format zmenit?
..., ale pro uložení disků virtuálních strojů se moc nehodí, ...Proč nemít disky rovnou na LV a nezbavit se tak jedné přebytečné vrstvy?
Pravděpodobně jsem s tím měl přijít dřív, ale proč věnovat tolik snahy, aby se do ext4 natlačila takto invazivní vlastnost, když btrfs tohle všechno již umí? Proč místo snahy přijít se spoustou hacků obcházející myriádu podivných kombinací vlastností v ext4 raději nevěnovat pozornost tomu, aby se btrfs stabilizovalo a bylo připraveno k nasazení?
Jo, to mě připomíná typický komunistický myšlení...
Ale takhle přeci nikdo neargumentoval? S tím aby použili raději btrfs přišel sám vývojář roho rozšíření, jenomže jeho chlebodárce mu jasně řekl: "Ne, tohle nechcem, btrfs není stabilní a krom toho používáme filesystémy ext tak to do toho dodělej."Citace?
Takže to do té ext4 tedy nějak zabastlil a teď se to pokouší dostat do hlavní vývojové větve jádra, aby se kvůli tomu nemusel patchovat vanilla kernel.Tak tohle není moc přesný popis minimálně proto, že ten vývojář nejprve zaslal patche, které to samé dodělávaly do ext3. Odmítnuty byly proto, že ext3 už se nemá měnit a že veškeré novoty v extX patří do ext4
Přitom v té době již takzvaně nestabilní btrfs už fungovalo docela stabilně.Pokud mu třeba nedošlo místo na disku...
Ad poslední odstavec. Vlastní zkušenost? Nebo agentura JPP?Co třeba pravidelné čtení LWN.net?
Zbytek tvé reakce nemá smysl komentovat.... ano, když nemáš protiargumenty ani nejsi schopen citovat, opravdu nemá smysl komentovat.
Fajn. Takže JPP.Zkusil jsi do Googlu zadat to, co psal Jenda o příspěvek níž? Vypadlo by ti třeba tohle: https://bugzilla.redhat.com/show_bug.cgi?id=495683 Nebo ani bugzilla Red Hatu není dostatečně důvěryhodný zdroj? Stejně jako není důvěryhodný "jedna paní" autor btrfs?
Na notebooku, kde je malý disk se mi to už asi jednou nebo dvakrát stalo.Potvrzuji, já mám na desktopu zase 50 GB / a 200 GB datovou oblast (většina ~) a povedlo se mi to taky. Naštěstí to nemělo fatální následky pro systém, protože mám (ext4) rezervováno pár bloků pro roota.
Jak víme, tak nové FS se nepříjímají zrovna nejsnadněji (a má to své dobré důvody)Odkdy? Slušně navržené FS, které nedělají bordel jinde v systému a neduplikují to, co už v jádře je (např. VFS), se AFAIK dostávají vcelku snadno.
Ve své odpovědi Amir Goldstein řekl, že jeho zaměstnavatel (CTERA Networks) chce tuto vlastnost v ext4. V produktech se to již dodává a btrfs stále není považován za dostatečně stabilní, aby se v daném prostředí použil.Takze ext4 s temi made-in-garage patchi oni povazuji za "dostatecne stabilni" ? Hezky sem se zasmal.
Když k tomu připočteš, že je to zbastleno bez nějakého rozsáhlejšího reviewCože? Několik iterací v LKML, zpracování připomínek, které tam byly vzneseny, to není rozsáhlejší review?
nalepeno do systému, který k tomu vůbec nebyl navržen…Všechno nové je nalepeno do systému, který k tomu vůbec nebyl navržen. A ejhle, přesto Linux funguje.
Píšeš to, jako by to snad byla tvoje zásluha.Když k tomu připočteš, že je to zbastleno bez nějakého rozsáhlejšího reviewCože? Několik iterací v LKML, zpracování připomínek, které tam byly vzneseny, to není rozsáhlejší review?nalepeno do systému, který k tomu vůbec nebyl navržen…Všechno nové je nalepeno do systému, který k tomu vůbec nebyl navržen. A ejhle, přesto Linux funguje.
Cože? Několik iterací v LKML, zpracování připomínek, které tam byly vzneseny, to není rozsáhlejší review?Co jsem tak hledal, viděl jsem dvě iterace, což není zrovna hodně na něco, co zasahuje snad do všech částí EXT4. A už vůbec se to nedá srovnávat s otestovaností snapshotů u btrfs.
Všechno nové je nalepeno do systému, který k tomu vůbec nebyl navržen. A ejhle, přesto Linux funguje.Za svým názorem si stojím. Navíc u Linuxu musíš počítat s tím, že tam na výběr jiný systém, který je stejně funkční ale pro implementaci nějaké funkce je navržen lépe ve většině případů neexistuje.
Cože? Několik iterací v LKML, zpracování připomínek, které tam byly vzneseny, to není rozsáhlejší review?Ehm, tak co si pamatuju tak ten kod zatim nemel temer vubec zadne review :). Ja videl jen par nekompletnich patchu a to je vse. Dve iterace to ma proto, ze Amir se rozhodl ze nejdrive posle "nekompletni" patche, ktere nijak nemeni stavajici cesty v ext4, coz byl pekne blby napad. Ale i "dve iterace" nemeni nic na tom ze je to bastl, ktery jenom supluje to co uz umi dm lepe a s vice funkcekma. Od implementace snapshotu na urovni souboroveho systemu bych cekal vice, *mnohem* vice. V clanku chybi kopa informaci ktere se v tom vlakne probiraly.
Osobně mám za to, že dobrý systém má být navržen tak, že pokud jsou na disku vadné bloky, je možné takový disk bez ztráty dat vyndat a dát tam jiný.Asi ti splynul systém ve smyslu OS se souborovým systémem. Mám-li totiž dobře navržený systém ve smyslu OS, tak nemám nikdy souborový sytém přímo nad fyzickým zařízením, ale vždy nad nějakým RAID zařízením. Ovšem je-li souborový systém umístěn přímo nad fyzyckým zařízením, tak má být navržen tak, aby v případě, že se během provozu objeví vadné bloky do nich nezkoušel znovu zapisovat. Chápu že žádný FS nefunguje na bázi delfské věštírny, aby tušil, který blok se zrovna posere, ale uložit záznam o tom že blok xxxx je problémový přeci zase tak problémové není. Pokud vím, tak kupř. reiserfs udržuje při zápisu informace o datech v paralelní struktuře, takže když se něco posere a systém klekne tak je zřejmě je schopen tohle nějak ošetřit. Btrfs zase počítá kontrolní součty a interně data komprimuje - proto také není moc vhodný jako FS tam, kde se data často mění, protože je pak při IO operacích pomalejší. Ale opět. Z reálného použití mám dojem že byl navržen tak, aby počítal s možností výskytu vad na HDD.
Jo a jestli tohle je tvůj jediný argument proti stabilitě stávajícího ext4, tak být tebou raději mlčím.Opět vidíš trávu růst. Mě nezajímá nějaké prohlášení o stabilitě, ale to zda se to stabilně chová. A pokud jde o souborové systémy, tak každý má svá pro i proti, vybrat si musí každý sám. Ovšem chtít aby jeden FS obsáhnul vše, nutně dopadne stejně jako když pejsek s kočičkou pekli dort.
Asi ti splynul systém ve smyslu OS se souborovým systémemNikoliv. Slovo systém jsem zde použil jako výraz pro soustavu vzájemně propojených komponent. V tomto případě od hardwaru po OS.
Ovšem je-li souborový systém umístěn přímo nad fyzyckým zařízením, tak má být navržen tak, aby v případě, že se během provozu objeví vadné bloky do nich nezkoušel znovu zapisovat.Uznávám, že by to bylo lepší, nicméně pro mě to není nijak zásadní kritérium. Proto, že bych se zápisu nových dat na špatný disk pokusil za každou cenu vyhnout. A navíc systém, kde by nebyl RAID, neprovozuju - ani na desktopu.