abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | Nová verze

    Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | IT novinky

    U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).

    Ladislav Hagara | Komentářů: 7
    7.8. 16:00 | Bezpečnostní upozornění

    Vládní CERT upozorňuje (𝕏) na sérii bezpečnostních záplat (CVSS 9.9) v produktech Cisco řešících kritické zranitelnosti umožňující obejití autentizace, eskalaci oprávnění, vzdálené spuštění kódu a odepření služby. Úspěšné zneužití může útočníkům umožnit získat neoprávněný přístup k dotčeným systémům, kompromitovat zařízení Cisco Catalyst SD-WAN a Cisco IOS XE, spustit libovolný kód, zpřístupnit citlivé informace nebo narušit dostupnost postižených systémů.

    Ladislav Hagara | Komentářů: 5
    7.8. 15:33 | IT novinky

    Soud v americkém státě Nové Mexiko ve čtvrtek nařídil internetové společnosti Meta Platforms zaplatit 567 milionů dolarů (téměř 12 miliard Kč) za újmy, které její platformy působí mladým lidem. S přihlédnutím k dřívějšímu verdiktu tak má společnost celkem zaplatit 942 milionů dolarů, což je malý zlomek jejího ročního výnosu, který loni činil 60 miliard dolarů. Čtvrteční verdikt firmě také nařizuje, aby změnila způsob, jakým její

    … více »
    Ladislav Hagara | Komentářů: 14
    7.8. 12:44 | Humor

    Mark Russinovich (CTO v Microsoft Azure) se na LinkedIn pochlubil svým projektem MS Paint Doom napsaným pomocí Claude. Hru Doom umožňuje hrát v programu Malování (Microsoft Paint). Malování funguje jako monitor. Herní engine (ViZDoom) běží na pozadí a každý vykreslený snímek hry vkládá automaticky přes schránku (clipboard) do Malování.

    Ladislav Hagara | Komentářů: 4
    6.8. 08:00 | IT novinky

    Platformy ChatGPT i Roblox by mohly být zařazeny na seznam mimořádně velkých on-line platforem nebo internetových vyhledávačů, na něž se vztahují zvláštní podmínky podle nařízení o digitálních službách (DSA). Vzhledem k tomu, že ChatGPT i Roblox oznámily počet uživatelů nad prahovou hodnotou DSA, je toto označení „rozhodně možné“ a mohlo by „přijít dříve či později“. On-line platformy a vyhledávače zařazené na seznamy DSA musejí

    … více »
    Ladislav Hagara | Komentářů: 13
    5.8. 17:00 | Zajímavý software

    Společnost Cloudflare představila Cloudflare OS (GitHub), tj. open source platformu navrženou pro integraci umělé inteligence (agentů) přímo do pracovních procesů organizací.

    Ladislav Hagara | Komentářů: 0
    5.8. 12:44 | Nová verze

    Byla vydána nová verze 5.13 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    4.8. 20:44 | Zajímavý článek

    Jean-Baptiste Kempf na svém blogu představil novou verzi 9.0 "Lei" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2356 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník
    Štítky: není přiřazen žádný štítek



    Vložit další komentář
    Gilhad avatar 3.3.2014 06:04 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    důvod, proč je potřeba definovat nové volání, je jednoduchý: renameat2() postrádá způsob, jak by jádro mohlo podporovat (a uživatel mohl požadovat) změny v jeho chování. Jinými slovy, schází mu argument typu flags,

    Nema jit o renameat() ?
    3.3.2014 07:21 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Proč "podezírám Davema", ale "opravám od PeterZ"?
    3.3.2014 10:36 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Dokázal by někdo vysvětlit, proč není na otázku „Máme nějaký důvod nepřidat argument flags?“ odpověď vždy ne? Neboli proč se návrhový vzor argumentu flags nepoužívá mechanicky u všech nových systémových volání? Je to jen porušení konceptu "minimalismu" nebo je za tím něco víc? Nevedla se o tom někde diskuze? Co na to říká Linus?
    3.3.2014 11:16 random
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Znepřehledňuje to kód. Pokud chceš příklad, podívej se na ioctl(). Funkce by měla mít jen jeden účel, přesně definovaný a verifikovatelný. Přidáním flags vlastně dochází k multiplexování více různých funkcí pod jeden název.
    3.3.2014 13:06 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    To se mi ale zdá spíš jako námitka proti konkrétnímu použití flags než obecně proti jejich plošnému 'preventivnímu' použití.

    Asi je rozdíl, jestli flags použiji např pro parametrizaci funkce uvař_kafe(S_MLEKEM|BEZ_CUKRU) kde je to očividně lepší, než mít 4 varianty uvař_kafe_scukrem_smlekem(), uvař_kafe_scukrem_bezmleka() apod., nebo ve funkci uvař(KAFE|PIVO|MOTOR), kde ta funkce pak dělá očividně různé věci.

    Ví někdo ještě o nějakém dalším důvodu, proč se to nepoužívá automaticky u všecho nových systémových vlání?

    ----

    Mimo téma: v ioctl(int d, int request, ...) žádné flags nejsou, ale pochopil jsem smysl námitky.
    5.3.2014 00:52 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Protože můžete mít také funkci (záměrně jsem obrátil definice v opačné, pořadí než by byly ve zdrojáku):

    uvař_kafe(struct coffee_t *);

    struct coffee_t { int with_milk; int with_sugar; enum coffee_kind_t coffee_kind; int max_temperature; int coffeine_content; ... };

    A v tomto případě je flags zcela zbytečným řešením a i méně přehledným a méně flexibilním.

    Hint: Syscall volání jsou plné různých struktur.

    Miloslav Ponkrác
    Stanislav Brabec avatar 5.3.2014 18:12 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    A vidíte, zrovna toto je špatný návrh.

    Až budete chtít přidat do struct coffee_t další položku, změní se velikost struktury. A programy zkompilované před změnou velikosti náhle budou vařit kafe s mlékem a citronem, protože se kvůli citronu podívají na pseudonáhodné hodnoty přesahující původní velikost pole. Anebo, pokud budou zkompilovány s runtime kontrolou velikosti struktur a polí, tak rovnou spadnou.

    Lepší návrh by bylo pole značka+hodnota předem neznámé velikosti, ukončené nulovým záznamem.

    uvař_kafe(NULL) by uvařilo nějaké obyčejné standardní kafe, a přidáním položek do pole by se daly upravovat hodnoty.

    No a časem by se ukázalo, že je problém implementovat přípravu kakaa. A tak by buď vznikl tag KAFE_BEZ_KAFE, nebo nové volání uvař_kakao()

    Zrovna nedávno jsem na podobný problém v kernelu narazil: V poli pro hardwarové hodiny chybí položka pro časovou zónu, kterou mají nové BIOSy. A bude asi nutné vytvořit novou strukturu, a nová volání, protože tomu starému to není jako předat, nepočítáme-li odporné obezličky.
    6.3.2014 10:15 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    No vida, to je další obecný problém - změna velikosti datové struktury. Na to se nějakým rozumným způsobem dopředu připravit dá? (Aniž by to přinášelo problémy jako v návrhu JS1?) Občas vídávám v některých protokolech "reserved for future use". To ale asi nebude zrovna přístup, který by se v jádře používal. Nebo se mýlím?
    5.3.2014 04:54 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Kromě toho Vás nenapadá jednoduchá varianta?

    uvař_kafe(int with_milk, int with_sugar);

    5.3.2014 09:20 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Samozřejmě že napadá. A je taky zřejmé, že z hlediska dalšího možného vývoje je to varianta vedoucí do nesnází.

    Protože za měsíc od zavedení funkce uvař_kafe si někdo vzpomene, že by chtěl třeba uvařit lungo nebo americano a najednou bude muset buď volání změnit na uvař_kafe(int with_milk, int with_sugar, int more_water); nebo zavést funkci uvař_kafe2 nebo uvař_kafe3 či dělat různé obskurnosti jako nacpat argument množství vody do horních bitů with_milk;

    Proto se pídím po tom, proč právě pří vývoji jádra, kde jde o maximální udržitelnost po dlouhý čas bez rozbití stávajícího API se nějaký návrhový vzor při přidávání nové funkcionality neustálil jako standard. Ze čtení jaderných novin mám dojem, že problém "jak něco opravit / upravit / změnit a nerozbít stávající API" je poměrně častý.
    5.3.2014 18:28 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Nepovazuji se za odbornika v C ani v jadre, ale asi bych to delal tak, ze pridam extra int argument pro flagy a extra pointer argument na strukturu, ktera bude verzovana (prvni bajt/short bude cislo verze). A tak struktura se bude pouzivat pro predavani slozitejsich a mene castych parametru, normalne muze zustal NULL.
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    Stanislav Brabec avatar 5.3.2014 19:09 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Ne, že by to nefungovalo, ale komplikovalo by to kód v jádře, který by se vždy musel větvit podle toho, jaká verze parametrů byla použita.

    Navíc, napsat funkci, která si od takové struktury udělá privátní kopii, bude docela netriviální, ba dokonce nemožné bez aktuální verze příslušné knihovny v uživatelském prostoru.

    Oproti tomu nový syscall přidává pouze wrapper pro staré volání. Nové volání je již bez zbytečné režie.
    pavlix avatar 5.3.2014 22:13 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    na strukturu, ktera bude verzovana
    To už mi přijde daleko jednodušší současný systém, který verzuje celé volání. Případně se to dá do budoucna schovat za nějakou abstrakci v libc, kde nejsou takové extrémní nároky na kompatibilitu, nebo se to zabalí do abstrakce o krok dál.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    6.3.2014 11:04 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Asi mas pravdu, ale vychazel jsem z toho, ze verzovat cele volani lidem vadilo.. Aspon je videt, ze to je asi skutecne lepsi.

    Jinak si myslim, ze pro obskurni argumenty by se to i tak vyplatilo.
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    6.3.2014 06:27 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Pán je milovník netlinku :)
    pavlix avatar 6.3.2014 10:14 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Tak je fakt, že na komplikovanější věci dává nějaký takový protokol smysl.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    6.3.2014 15:10 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Koneckonců netlink vznikl právě proto, že další rozšiřování rozhraní ioctl() bylo příliš šílené a ne dost flexibilní.
    Petr Tomášek avatar 3.3.2014 15:24 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Spíše je otázkou, proč linux nemá systémová volání s proměnlivým počtem parametrů...
    multicult.fm | monokultura je zlo | welcome refugees!
    3.3.2014 17:35 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Protože je to prasečina.

    Chcete-li variabilní volání na úrovni systému, je lepší předat pointer na nějakou strukturu, kde si můžete řádit jak chcete, případně mít nějaký systémem udržovaný deskriptor, do kterého nacpete co chcete, než mít proměnný počet parametrů.

    Navíc vše musí být dostatečně přenositelné. Proto se třeba v systémových voláních vyhýbáme předávání parametrů typu floating point number, nebo boolean.

    Proměnný počet parametrů lze implementovat různými způsoby a různé jazyky to také dělají. Byl by v tom další problém.
    3.3.2014 17:29 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Protože jednou ustanovené API se velmi těžko mění.

    Ve světle dnešní rychlé doby, ba přímo módy, kdy třeba Python, Perl, Ruby a další překopávají rozhraní to mnoho lidfí těžko chápe.

    Představte si to tak, kdyby každou změnou API kernelu přestalo fungovat polovina programů. Protože se API změnilo. Nebo byste musel přepsat z každou verzí bashe skripty, protože by se nekompatibilně změnila sybtaxe shell skriptů.

    To se nesmí stát, a proto na prvním místě je stabilita a neměnnost API. Je nutné zajistit, aby jendou ustanovené volání API zůstalo na věky věků stejné. Jinak přestanou fungovat programuy, knihovny, začne se to hroutit.

    Z toho důvodu se při vymýšlení systémových volání myslí v první řadě na budoucnost, a na stabilitu a neměnnost tohoto volání v budoucnosti. Protože pokud to neodhadnete, musíte přidat později funkce2, pokud ani tak, pak funkce3 – a to vše se musí v budoucnu třeba desítky let udržovat včetně zastaralých neodhadnutých funkcí. Což má zvýšený nárok na údržbu, programátory, atd. atd. atd.

    V dlouhodobých projektech se v první řadě myslí na úzdržbu takového API.

    Rozhodně je lepší přidat flags, které se v určitých případech nepoužije, než ho nepřidat a namísto X systémových volání míst dvojnásobek a celé to udržovat.

    Mechanicky se ale flags vždy nepřidává, protože někteří lidé vyvíjející Linux nemyslí dostatečně dopředu (programují jen lidé), a nebo proto, že v některých voláních si absolutně nikdo nedokáže představit, že by to kdy mělo jakýkoli význam přidat flags.

    Odhadování budoucnosti různých volání API se zkrátka vždy nepovede. Chce to značné zkušenosti a i tak někdy vývoj překvapí.

    Miloslav Ponkrác
    4.3.2014 19:06 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Děkuji za Váš odstavec č.8, který se vyjadřuje k mé otázce (byť se mi zdá, že pouze fabulujete, chybí mi nějaký příklad či jiná fakta).

    Zbývajících 8 odstavců je sice pěkné slohové cvičení, nicméně je poněkud mimo téma.

    Neměl by náhodou někdo jiný více informací o tématu "návrhový vzor" flags v jádru linuxu"?
    5.3.2014 00:29 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Určitě měl. Jmenuje se Google.

    Jenom si člověk nesmí hrát na pašu.
    5.3.2014 09:10 nikdo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Kdybych odpověď našel pomocí gůglu, jistě bych se na ni neptal zde. Hledal jsem, nenašel. Ostatně je to ten typ dotazů, na něž gůgl odpověď dává málokdy.

    Tak ať si na něj ten člověk nehraje.
    Stanislav Brabec avatar 5.3.2014 17:49 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Ostatně zmíněná 31bitová architektura S390 je také příkladem udržování API. Existuje zde kvůli 40–60 let starým programům – 32. bit se používá jako flag. Hodnota 1 identifikuje platnost horních bitů adresy. Hodnota 0 signalizuje program pro S360 nebo S370, kde se horních 8 bitů adresy ignorovalo (tedy program pro hardware z let 1964 až 1983).

    A aby kompatibilita byla dokonalá, S390 bootuje z děrné pásky (pravda, virtuální).
    6.3.2014 14:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Dodal bych, že i když je v plánu odstranit architekturu S/390 (ve 3.16), nadále zůstane v jádře podpora pro spouštění 31-bitových aplikací na S/390-64 (podobně jako lze spouštět 32-bitové x86 aplikace na x86_64 nebo IA-64), takže ty programy ze šedesátých let v dohledné době fungovat nepřestanou, jen tam místo jedné vrstvy pro zpětnou kompatibilitu budou dvě.
    4.3.2014 20:12 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Bývaly doby, kdy jste měl v procesoru jen 4 registry k obecnému použití. Protože v Linuxu se používá jediné přerušení, tak pro argumenty systémového volání zbývají jen 3. Takže přidávat bezhlavě argument pro příznaky nebylo možné.
    5.3.2014 00:41 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Což není principiálně problém, protože další argumenty lze ukládat na stack – viz sys_ipc.

    Ostatně neexistují jenom x86 procesory, měl jsem dojem, že linux kernel chodí i na jiných procesorech. Na každém musíte vymyslet nějaké volací schéma systémových volání.

    5.3.2014 07:30 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:
    Principiální problém to není, ale je to pomalejší. Psal jsem bývaly doby. Linux začínal na x86.
    5.3.2014 08:52 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014:

    Abychom to nepřeháněli, začínalo se na 80386, sice se později objevily i pokusy portovat Linux i na starší verze, ale to byly spíš takové experimenty a IIRC to k ničemu kloudnému nevedlo.

    C sice podporuje funkce s proměnným počtem parametrů, ale kdo s tím někdy pracoval, dospěl nejspíš k závěru, že lze-li se tomu vyhnout, je rozhodně lepší tak učinit. Aspoň já ano.

    A předávat všechno přes pointer na strukturu? Jde-li o komplikovanější data, jako třeba u sigaction(), pak jistě. Ale představa, že bych místo

      L = read(fd, buf, len);
    

    měl pokaždé psát

      struct read_params par;
      ...
      par.fd = fd;
      par.buf = buf;
      par.count = len;
      L = read(&par);
    

    (s tím, že nemám-li C99, musí být první řádek na začátku bloku) mi rozhodně nepřipadá jako krok správným směrem. A i pro debugování je lepší, když u jednodušších syscallů (a těch je většina) najdu parametry v registrech a nemusím je dohledávat na zásobníku nebo dokonce v paměti, kterou nemusím ani mít k dispozici.

    Jinak řečeno, je vždycky nepříjemné, když se ukáže, že člověk nebyl dostatečně prozíravý. Ale být prozíravý až příliš také není ideální.

    10.3.2014 19:39 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 2. 2014
    počet argumentů v zásvislosti => závislosti.

    Díky za hezký překlad :-).

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.