sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Aktuální předverze je 2.6.19-rc3, vydaná 23. října. Obsahuje poměrně dost oprav, ale vypadá to, že dochází ke zpomalení přílivu. Vizte podrobnosti v dlouhém changelogu.
Od vydání 2.6.19-rc3 bylo začleněno jen velmi málo patchů - a většinou to byly opravy.
Adrian Bunk udržuje seznam regresí v 2.6.19, který je překvapivě krátký.
Aktuální verze -mm stromu je 2.6.19-rc2-mm2. Mezi nedávné změny patří přidání stromu s I/OAT DMA engine, velká sada x86 patchů, sdílení tabulek stránek u velkých TLB stránek, sada knihovnových funkcí pro obracení bitů v hodnotě a pokračující práce na ovladači tty.
Vývojáři rádi žertují o tom, jakou má Al Viro v LKML hrůzu nahánějící pověst. Ve skutečnosti se tam však poslední dobou příliš neprojevoval. To ale neznamená, že by se stal vývojářem Plan 9 na plný úvazek. Místo toho pracoval na vylepšování nástrojů pro statickou analýzu používaných pro objevování chyb, než na ně doplatí nějaký uživatel.
Nedávno vyústila tato práce v dlouhou sérii patchů začleněných do hlavního jádra - téměř všechny byly vedeny jako "označení endianity". Patche povětšinou měnily deklarované typy u různých funkcí, proměnných a členů struktur. Nové typy možná mnoho lidi nepozná, protože jsou relativně nové - i když na zas tak moc; byly zavedeny v 2.6.9. Jde o __le16, __le32, __le64, __be16, __be32 a __be64.
Cílem je pokusit se vyznačit, jestli je daná (bezznaménková) celočíselná hodnota big-endian (nejvýznamnější bajt první) nebo little-endian. Ve většině případů není u programování - dokonce ani v jádře - endianita důležitá; věci prostě fungují, aniž by se jimi musel programátor zvláště zabývat. Jaderný kód však musí často pracovat s daty kódovanými pomocí určitého řazení bajtů. Příkladem jsou třeba síťové protokoly, datové struktury souborových systémů na disku a registry zařízení. Obecně platí, že pokud jádro pracuje s daty řazenými jiným než nativním způsobem, musí bajty nejprve prohodit, aby odpovídaly tomu, co očekává procesor. Když se tak nestane, může docházet k nejrůznějším podivným chybám.
Existuje dost maker, která s tímto úkolem mohou pomoci. Například klasická funkce jako htonl(), která převádí 32bitové celé číslo od hostitele na "síťové" (big-endian) řazení. Pro obecnější použití nabízí jádro makra jako __le32_to_cpu(), které převede little-endian 32bitovou veličinu na řazení vyžadované procesorem. Tato makra umožňují portování kódu; na systémech, kde je to potřeba, provedou požadovanou změnu a ve zbývajících případech prostě zmizí.
Konverzní funkce však fungují pouze tehdy, když si je programátor vzpomene použít. V případě jejich nepřítomnosti vypadají hodnoty s nenativním řazením jako celá čísla a chybu nelze zachytit, dokud něco nebouchne. A to se vůbec nemusí stát původnímu vývojáři; kód může fungovat bezchybně, dokud se jej někdo nepokusí spustit na jiné architektuře - pak jdou věci do háje.
Bylo by fajn zachytávat chyby endianity dříve. A to je účel typů jako __be32; umožňují programátorovi u dat vyznačit určité řazení hned při prvním vstupu do systému. Pak už může příhodně chytrý nástroj zkontrolovat kód, který s daty manipuluje, a zajistit, aby je nemíchal s nativně řazenými daty, nezkoušel na nich aritmetiku atd. Jakmile je vše označeno, mohou být odchyceny celé třídy chyb ještě než by bylo jádro nabootováno. A to nemůže být nic špatného.
Ten "příhodně chytrý nástroj", který práci provede, je "sparse". Statický kontrolor, který původně napsal Linus Torvalds. Systém pro sestavení jádra má podporu sparse zabudovanou, takže je snadné hledat chyby. Složité je ten nástroj získat. Balíčky poskytuje jen málo distribucí, takže případní uživatelé si musí kód zkompilovat sami.
Pravým zdrojem sparse je git repozitář na kernel.org. Pomocí gitu stačí:
git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git
A jednoduché "make" ve výsledném adresáři vám dá funkční binárku sparse. Nástroj se mění tak často, že je pravděpodobně vhodné pravidelně aktualizovat z repozitáře. Nemáte-li po ruce git, můžete si stáhnout tarball ze stránky Davea Jonese.
Jakmile máte sparse nainstalovaný, je velmi snadné jej pustit na zdrojové kódy jádra. V adresáři se zdrojáky proveďte:
make C=2
Parametr C=2 způsobí, že bude sparse spuštěn na každý .c soubor; použijete-li C=1, budou zkontrolovány pouze soubory, které musí být zkompilovány. Kontrola endianity vyžaduje ještě jeden parametr:
make C=2 CF=-D__CHECK_ENDIAN__
Počet varování, která takový příkaz vypíše, může být dost vysoký - ale jak se Al propracovává kódem, tak pomalu mizí.
Velmi se doporučuje kontrolovat pomocí sparse veškerý posílaný kód - je to jeden z kroků uvedených v seznamu kroků před odesláním patche dodávaném s jádrem. Používání sparse je však pořád spíše výjimka než pravidlo. Ale je to velmi snadné a velmi užitečné - takže skutečně není důvod kód nezkontrolovat. Je koneckonců daleko lepší, když za vás hloupé chyby odhalí počítač v soukromí, než když je vytroubíte do světa.
Ndiswrapper je modul, který umožňuje natažení NDIS ovladačů z Windows do linuxového jádra. Používá se na systémech s hardwarem (hlavně bezdrátové síťové adaptéry), který linuxové ovladače nepodporují; natažením ovladače z Windows umožní ndiswrapper používání takového hardwaru. Ale protože jde o mechanismus vytvořený k tomu, aby do linuxového jádra cpal ty nejproprietárnější binární moduly, vždycky vzbuzoval trochu nedůvěru.
Jednou ze změn, které se dostaly do jádra 2.6.16, byla explicitní kontrola, jestli není přítomen modul ndiswrapper. Je skutečně velmi explicitní:
if (strcmp(mod->name, "ndiswrapper") == 0) add_taint_module(mod, TAINT_PROPRIETARY_MODULE);
Tento test znamená, že jakýkoliv systém s nataženým modulem ndiswrapper bude mít nastaven příznak "proprietární modul". A v důsledku toho je dost nepravděpodobné, že by vývojáři jádra byli ochotni pomoci s problémy, které se objeví při provozu takového jádra. Ale protože 2.6.16 bylo vydáno v březnu, mohl by se člověk divit, že se autor ndiswrapperu Giridhar Pemmasani ozval až teď. Ukázalo se, že vývojáři celou věc posunuli s vydáním jader 2.6.19-rc ještě o krok dále.
Jádro už dlouho modulům exportuje symboly ve dvou režimech. Symboly exportované s EXPORT_SYMBOL jsou k dispozici všem nataženým modulům, kdežto ty, které jsou exportovány s EXPORT_SYMBOL_GPL, mohou být používány pouze těmi, které o sobě tvrdí, že mají GPL kompatibilní licenci. Takové rozlišení ndiswrapperu nikdy nevadilo, protože je licencován GPL. Takže i po přidání explicitní kontroly mohl být ndiswrapper natažen a normálně fungovat.
Do 2.6.19 byl ale začleněn patch od Florina Mality, který mírně mění určování GPL symbolů. Místo kontrolování, jestli má modul GPL kompatibilní licenci, ověřuje nový kód, jestli má modul nastaven bit "proprietární modul". Ve většině případů je výsledek stejný. Pro ndiswrapper to však znamená, že GPL symboly, ke kterým měl dříve přístup, už nejsou k dispozici. A to znamená, že ndiswrapper už do jádra nelze natáhnout. Autor modulu si myslí, že to není fér, protože ndiswrapper je licencován GPL.
Alan Cox odpověděl takto:
EXPORT_SYMBOL_GPL() se používá k zaručení toho, že jde naprosto jistě o neveřejný symbol. EXPORT_SYMBOL exportuje symboly, které by veřejné mohly být, ale i tak platí pravidlo o odvozené práci. Označíš-li ovladač jako GPL, pak je mu povoleno používat _GPL symboly. Ale pokud je používá, nemůže pak jít a natáhnout nějaký jiné ne-GPL modul, aniž by se lidi nepozastavili nad tím, jestli je to správné.
Základní idea dává smysl: GPL omezení nejsou příliš platná, lze-li je jednoduše obejít natažením zprostředkovacího modulu. Zůstává však otázkou, jestli byl v tomto případě vybrán ten správný terč.
Účelem GPL exportů je zabránit vytváření proprietárních produktů odvozených od jádra. Těžko si představit argumentaci, podle které by mohl být typický NDIS modul odvozeným produktem linuxového jádra. Tyto ovladače jsou psány pro úplně jiný operační systém lidmi, kteří pravděpodobně se zdrojovými kódy Linuxu nikdy nepřišli do styku. Na rozdíl od jiných druhů proprietárních modulů jsou NDIS ovladače zcela jasně nezávislé práce. Nemusí se nám líbit představa natahování takového ovladače do jádra, ale těžko tvrdit, že by to nějak zakazoval copyrightový zákon.
Také se zdá divné trestat modul za to, že má určité jméno. Například natahování modulu MadWifi, který také využívá binární komponentu, kontrolováno není. Obyčejné přejmenování modulu by tuto kontrolu obešlo a vývojářům jádra by pár měsíců trvalo, než by zase díru zalepili. Dalo by se představit, že si zarputilý programátor vymyslí náhodné jméno při každé kompilaci modulu, což by tuto kontrolu porazilo zcela. Autora ndiswrapperu však podobné hry nelákají; místo toho se snažil s jadernou komunitou spolupracovat. Modul sám už přidává ne-GPL příznak, kdykoliv je natažen NDIS ovladač.
Jenže vývojářům se asi tuto změnu stáhnout nechce. To staví autora ndiswrapperu do pozice, kdy by musel buď celý modul předělat, aby nepoužíval GPL symboly, nebo vymyslet jiný způsob, jak zase umožnit jeho natahování. Možná to není to nejlepší řešení, ale ndiswrapper má nezanedbatelné množství uživatelů, kteří jej potřebují, aby mohli provozovat v Linuxu svůj hardware.
Na frontě síťových kanálů je už nějakou dobu klid. Ale to neznamená, že by se nic nedělo. Důkazem budiž skutečnost, že Jevgenij Poljakov přišel s novou verzí, o které tvrdí, že dokáže daleko lépe škálovat než současná implementace síťování.
Tato verze síťových kanálů se na problém zaměřuje více z pohledu uživatelského rozhraní a jadernou infrastrukturu nechává na jindy. Přidává proto nové systémové volání netchannel_control(), které propojuje funkci kanálů s uživatelským kódem. netchannel_control() je další z multiplexních rozhraní, která Evgeniy zjevně preferuje; funguje jako ioctl() volání s třemi hlavními operacemi:
Jaderná strana implementace je prozatím jednoduchá a jasná: volání NETCHANNEL_SEND alokuje strukturu sk_buff a naplní ji uživatelskými daty pomocí copy_from_user(); paket je pak obvyklým způsobem odeslán tam, kam patří pomocí síťového stacku. Návrh předpokládá budoucí přidání dalších, rychlejších způsobů přenášení dat - například pomocí Evgenijova mechanismu síťového alokátoru.
Aktuální patch přidává síťový stack v uživatelském prostoru, který využívá nový mechanismus síťových kanálů. V současné době prý zvládá TCP a UDP a očekává se množství dalších funkcí; aplikacím je prezentováno "socketu podobné rozhraní". Zatím na tuto sadu patchů nikdo nereagoval, takže těžko říci, jestli ostatním vývojářům síťování připadá rozumná nebo ne. Evgenij však vypadá jako vytrvalý člověk, takže se s tímto kódem asi ještě setkáme.
Tato velká sada patchů (KVM), kterou poslal Avi Kivity, by mohla trochu probrat oblast virtualizace. Jedná se o implementaci virtualizačních rozšíření od Intelu (podpora od AMD je prý na spadnutí), která by Linuxu umožnila snadný provoz virtuální strojů bez potřeby supervizora jako je Xen. Mělo by se však zmínit, že patch obsahuje dost kódu z Xenu.
S tímto patchem implementuje Linux nové zařízení zvané /dev/kvm. Otevřením tohoto zařízení dojde k vytvoření virtuálního stroje se sadou ioctl() volání. Jedna z důležitých operací pro tento stroj vytváří virtuální procesory; v současné době je podporován pouze jeden virtuální procesor. Jiná operace přidává klientskému stroji paměťovou oblast. Paměť je organizována do "slotů" modelovaných podle skutečných slotů na základní desce; hodí se pro nastavování struktur jako je paměťová díra na 640K, která pořád na některých PC systémech je. A další operace umožňují vytváření záznamů v tabulce stránek na klientu, manipulaci s registry virtuálního stroje, zachycování operací s vyššími právy a vlastní spouštění programů v klientu. Je poskytnuta také sada debugovacích operací.
O patch je docela zájem; vypadá to, že by mohlo jít o (relativně!) snadný způsob přidání podpory hardwarové virtualizace do jádra. Jeden z komentářů si všiml podobnosti této funkčnosti s prací, která se týkala podpory "součinných procesních jednotek" (SPU - synergistic processing units) na architektuře Cell. Podpora SPU, která je v jádře od 2.6.16, používá k ovládání klientů místo ioctl() speciální souborový systém. Spojení těchto subsystémů by tedy pravděpodobně znamenalo i změnu rozhraní /dev/kvm. Tato sada patchů se proto ještě před případným začleněním může dost změnit.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Pak je obecně interpretace taková, že ndiswrapper je část celku, kde druhou částí celku je binární ovladač
Řekl bych, že tohle byste u soudu obhajoval velmi těžko i s velmi zručným právníkem. Jestliže je ndiswrapper vytvořen autorem AA pro platformu PA, licencován licencí LA a distribuován kanálem CA, zatímco příslušný driver je vytvořen autorem AB pro platformu PB, licencován licencí LB a šířen kanálem CB (zcela nezávisle na ndiswrapperu), pak považovat jejich potenciální kombinaci (která vznikne až v počítači uživatele na základě jeho osobního rozhodnutí a jeho akce) za "celek" podléhající licenci LA, mi připadá hodně přitažené za vlasy.
no ona na tom asi nebude AMD-ATI lépe
fglrx
, ale to už je teď minulostí - byla to špatná volba, ale tenkrát jiný NTB se "solidní" GK nebyl r300
a jsem spokojen. To k čemu potřebuji 3D akceleraci běží a když pomůžu vývoji tohoto ovladače, tak mě to bude jen a jen těšit.
Tebe snad někdo či něco nutí mít a používat právě takovou grafickou nebo bezdrátovou kartu? Je to otázka priorit.Ekonomické faktory nejsou dostatečným tlakem? A co třeba výkon u grafických karet? Někde se dá najít alternativa relativně snadněji, třeba u zmíněných grafických karet o možnosti nahrazení zatím nevím.
No pak je právě otázka, jestli by bylo víc lidí, kteří by si pro elektrárnu bez zplodin, iPod bez DRM a cigarety bez kouře byli ochotni "svinit kernel binárním svinstvem" než těch, kteří by byli radši svinili ŽP, používali drm a kouřili ostatním pod nosem. Jak by hodnotil obě alternativy na příslověčnách vahách?Tuhle konstrukci jsem nějak nepochopil. Já jsem chtěl tím příměrem pouze poukázat na to, že se to odvíjí jen od toho, jak moc člověku na daném principu záleží. Když si někdo chce koupit hardware, který bude fungovat se svobodnými ovladači, není to problém.
Při zachování všech legislativních a licenčních požadavků ale spotřebitel používat proprietární ovladače můžeJá reagoval pouze na zmínku o nedostupnusti určitého hardwaru. Co se týče ostatních věcí diskutovaných v tomto vlákně, tak tam se přikláním spíše k tomu, co je řečeno už v článku: zakazovat natahování ndiswrapperu je nesmysl, protože NDIS ovladače nelze ani omylem považovat za odvozeniny jádra. Takže z hlediska GPL je vše v pořádku.
Ekonomický faktor? To by mě zajímalo, co člověka _nutí_ si kupovat takový hardware. U výkonu grafických karet je to stejné. Když někdo tvrdí, že _musí_ mít kartu s určitým výkonem, tak IMHO zapomíná, že např. hraní her není žádná nutnost. Jen záliba.Tebe snad někdo či něco nutí mít a používat právě takovou grafickou nebo bezdrátovou kartu? Je to otázka priorit.Ekonomické faktory nejsou dostatečným tlakem? A co třeba výkon u grafických karet? Někde se dá najít alternativa relativně snadněji, třeba u zmíněných grafických karet o možnosti nahrazení zatím nevím.
hardware se zrovna u notebooku ovlivňuje docela špatně - hlavně vzhledem k rozpočtu
3D používám třeba ve VariCADu a to moc hraní není
Já chtěl poukázat na to, že jak wifi@5GHz tak elektrárny bez zplodin můžou být pro některé (nebudu si vymýšlet čísla) důležitější než čistota kernelu i když to pak nejde pouze s gpl ovladači. Nenapsal jsem to ale vůbec jasně a hlavní z mého pohledu je, že se v otázce NDISwrapperu shodujeme. O vztahu nutnosti a záliby zde myslím nemá cenu debatovat. Určitě ne u překladu LKML.No pak je právě otázka, jestli by bylo víc lidí, kteří by si pro elektrárnu bez zplodin, iPod bez DRM a cigarety bez kouře byli ochotni "svinit kernel binárním svinstvem" než těch, kteří by byli radši svinili ŽP, používali drm a kouřili ostatním pod nosem. Jak by hodnotil obě alternativy na příslověčnách vahách?Tuhle konstrukci jsem nějak nepochopil. Já jsem chtěl tím příměrem pouze poukázat na to, že se to odvíjí jen od toho, jak moc člověku na daném principu záleží. Když si někdo chce koupit hardware, který bude fungovat se svobodnými ovladači, není to problém.
Linux vdaci za svoje rozsirenie a "kvalitu" a mnozstvo vyvojarov prave GPL.
Máte toto tvrzení něčím podloženo? Proč konkrétně tvrdíte, že Linux za své rozšíření a vývojářskou základnu vděčí zrovna GPL? Osobně si myslím, že to bylo spíš tím, že se objevil v nejvhodnější možné době, která jeho modelu vývoje nahrávala.
objevil v nejvhodnější možné době, která jeho modelu vývoje nahrávala.On ten "model vývoje" do značné míry vychází právě z použité licence, ne?
big-endian (nejdůležitější bajt první)Spíš by se hodilo nejvýznamnější.
Důkazem budiž skutečnost, že Evgeniy Polyakov přišel s novou verzí,...V jaderných novinách z 31.5.2006 je jméno Evgenij Poljakov. Možná by bylo dobré to nějak sjednotit.
V jaderných novinách z 31.5.2006 je jméno Evgenij Poljakov.Dík za upozornění.
Ja som za kazde efektivnejsie/rychlejsie/viac super riesenie, ale co sa tyka toho userspace network stacku, vie mi niekto vysvetlit, ako to moze byt az o tolko rychlejsie?Dobrá otázka. Přesně tu samou si položili nejchytřejší linuxoví síťoví vývojáři taky a jejich odpověď je, že by nemělo. A pokud skutečně je, je možné upravit stack v kernelu tak, aby už nebylo. A nebo je tam zrada někde jinde (jako že se zdá, že je, viz dále). To je právě důvod, proč jsou síťové kanály (po počátečním nadšení) nyní přijímány už jen vlažně. Konkrétně se zdá, že kernelová implementace není tak rychlá, jak by teoreticky mohla být, protože nefilter. Linux má totiž velmi chytré možnosti nastavení filtrování (někteří si myslí, že až příliš). Pokud je odbouráme, to to pofrčí! Vy chcete mít ale kernel bez podpory iptables?
Dalsia vec - ked je ten stack nejaka kniznica, ako sa da ochranit proti zneuzitiu?Nijak. Máte prý používat SSL či obdobné technologie.
Ja som za kazde efektivnejsie/rychlejsie/viac super riesenie, ale co sa tyka toho userspace network stacku, vie mi niekto vysvetlit, ako to moze byt az o tolko rychlejsie?Dobrá otázka. Přesně tu samou si položili nejchytřejší linuxoví síťoví vývojáři taky a jejich odpověď je, že by nemělo.
Jenze je tu jedna vec, ktera bude vzdy vadit: prepinani kontextu. To je tak osklive draha operace, ze se vyplati zustat v kernel space.