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

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 4
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 17
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 26
    včera 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 713 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    26.11.2011 18:59 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    A použiješ je i na stejný účel jako v xkcd? :-D

    BTW hardlinkovat adresáře šlo krásně ve FAT. Tam se to někdy i povedlo nechtěně :-D.

    Goto v jádře je celkem normálka, v každým modulu jich je několik. Ono když se v sekvenci kontroluje třeba 10 věcí (neNULLový ukazatel na strukturu, návratová hodnota několika registračních funkcí...), tak v případě něčeho jako if, by odsazení v místě po všech kontrolách bylo extrémně vpravo :-D. Nebo by se musely použít funkce, co by to obalily a to by tam bylo zase 10 zbytečných funkcí.

    P.S. Grep v MC na .[cSh] a "goto" mě našel zatím 80000 hitů a stále roste :-D.
    26.11.2011 19:18 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Tak jasně, já to goto chápu :)
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    26.11.2011 19:29 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Njn to jsem celý já, vidím požadavek na informaci a hnedka vyhodím data :-D.
    26.11.2011 19:35 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Mimochodem, ke goto je tu tak jeden hezký strip.
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    David Watzke avatar 26.11.2011 20:15 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    True story. Od tý doby koktám :-D
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Bluebear avatar 26.11.2011 20:43 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Ale vývojáři kernelu mají od svatého Tuxe zvláštní povolení :-)

    V kernelu se goto používá jako escape continuation, v podstatě ekvivalent vyhození výjimky. To je ve skutečnosti (IMO) nejlepší způsob, jak výjimečné situace řešit; při množství věcí, které se mohou zku*vit, by skutečně muselo být skoro každé volání funkce obklopené několika úrovněmi if-ů a nevyznalo by se v tom ani to prase.
    To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
    26.11.2011 21:18 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Od toho je ale přece v C longjmp. Nebo snad v klibc longjmp nemají?
    Bluebear avatar 26.11.2011 21:56 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    IMO v rámci jedné funkce je rozumnější použít goto než longjmp; u goto je na první pohled vidět, kam směřuje, je jednodušší udělat uvolnění naalokovaných prostředků, a stack je skoro vždy ve stejném stavu jako předtím, tudíž longjmp je overkill.
    To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
    26.11.2011 23:32 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Jo tak v rámci jedné fce samozřejmě goto, to jo...
    27.11.2011 11:20 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    V C lze goto použít pouze v rámci funkce.
    26.11.2011 23:24 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    při množství věcí, které se mohou zku*vit, by skutečně muselo být skoro každé volání funkce obklopené několika úrovněmi if-ů a nevyznalo by se v tom ani to prase.

    Zvlášť při dodržení coding style, který předepisuje odsazování osmiznakovým tabulátorem a limit 80 znaků na řádek. Skalním odpůrcům goto doporučuji si nějakou funkci cvičně zkusit přepsat. Pokud by ani to nepomohlo, tak počkat půl roku a zkusit se v ní zorientovat.

    David Watzke avatar 27.11.2011 18:16 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Hehe. Na druhou stranu orientovat se v tuně goto taky není úplně jednoduchý.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    27.11.2011 18:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Záleží na způsobu použití. Pokud se používají jen k tomu, k čemu je v jádře obvyklé, tak si myslím, že kód zpřehledňují.
    26.11.2011 20:20 Kvakor
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Paamtuju, jak jsem přepsáním počátečního cluseru v adrsdářové struktuře FAT udělal disketu, na které bylo podle souborového manageru několik desitek megabytů (limit byl danný maximální délkou cesty v OS). Spolužákovy se to dokonce jednou povedlo udělat nějak omylem a když se to pokusil opravit Scandiskem, o všechna data v postiženém adresáři přišel.

    Jinjak ty goto v jádře typicky vypadají takto:
    pokus o alokaci prostředku 1;
    pokud selže goto 1;
    
    pokus o alokaci prostředku 2;
    pokud selže goto 2;
    
    pokus o alokaci prostředku 3;
    pokud selže goto 3;
    
    samotná akce;
    
    návěstí 3:
    uvolnění prostředku 3;
    
    návěstí 2:
    uvolnění prostředku 2;
    
    návěstí 1:
    uvolnění prostředku 1;
    
    Luk avatar 26.11.2011 21:49 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Jinjak ty goto v jádře typicky vypadají takto
    Přesněji takto:
    pokus o alokaci prostředku 1;
    pokud selže goto konec;
    
    pokus o alokaci prostředku 2;
    pokud selže goto uvolni1;
    
    pokus o alokaci prostředku 3;
    pokud selže goto uvolni2;
    
    ...
    
    
    uvolni2:
    uvolnění prostředku 2;
    
    uvolni1:
    uvolnění prostředku 1;
    
    konec:
    return;
    
    Je to mnohem čistší a hlavně přehlednější řešení, než kdyby se to dělalo bez goto pomocí vnořených ifů nebo pomocí opakování téhož kódu u každého selhání.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    26.11.2011 21:54 Sten
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Zlatý jakýkoliv jazyk, který umí výjimky :-D
    Bluebear avatar 26.11.2011 22:01 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    V zásadě bych i souhlasil, jenže kernel je dost specifická oblast.

    Výjimky zjednodušují kód jen v případě, že je k dispozici automatické uvolňování prostředků (což si v kernelu neumím moc představit); v opačném případě to stejně musíš někde vyřešit ručně. Přitom je to právě to uvolňování prostředků, co ten kód komplikuje. Kdyby nebylo potřeba nic extra uvolňovat, výjimečné případy by se vyřešily jedním returnem a po ftákách.

    Navíc výjimky komplikují práci se stackem, resp. více věcí se děje na stacku mimo dohled programátora, což v kernelu asi taky není to nejlepší.
    To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
    27.11.2011 14:17 Sten
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Operačních systémů napsaných v C++ znám docela dost a výjimky podporují, protože automatické uvolňování prostředků při RAII je velmi jednoduché, při té nejprimitivnější implementaci stačí na stack přidat ukazatele na destruktory, lepší implementace mívají stacky dva. Dokonce to ani nepotřebuje plné RTTI, stačí upcast pro třídy výjimek (a v jádře by asi nebylo potřeba ani to, když stačí errno). V podstatě kompilátor jenom vytvoří něco podobného těm goto automaticky, díky čemuž není problém ani s orientací na stacku. Výjimky dokonce nejsou ani pomalejší, díky tomu, že víc věcí dělá kompilátor, tím lépe to zvládne optimalizovat. Když se podívám na implementaci výjimek v LLVM libstdc++ nebo GNU libstdc++, tak jediné, co je skutečně potřeba, je jazyk, který výjimky podporuje. Na druhou stranu chápu, proč v roce 1991 zvolil Linus C, tehdejší implementace výjimek byly strašné.
    Grunt avatar 27.11.2011 10:49 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Abych pravdu řekl, já
    if (find ("goto", kod))
      body -= 2;
    nikdy nepochopil a vždy jsem to bojkotoval. Já bohužel pamatuju ještě doby BASICu a pamatuju, že ani s GOTO a GOSUB to nebylo tak strašné když to nepsalo prase, které se v tom samo nezamotalo. Tendenci vnucovat programátorovi jak má psát a snažit se ho vyučovat jsem též nikdy nepochopil. Aneb nač dělat věci jednoduše, když si to můžeme zasvinit konstruktorama, destrukotama, excepšnama a bůh ví čím ještě. Vždyť GOTO se velice snadno dá přeložit na jmp instrukci, jednu z nejpřirozenějších instrukcí procesoru.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    27.11.2011 12:13 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře

    No, ono když vidíte v kódu něco na způsob

      if (problém)
        goto label2;
    
      ...
    
    label1:
      úklid
      return 0;
    
    label2:
      něco
      goto label1;
    }
    

    tak na vás přímo dýchne tak doba BASICu na osmibitech…

    27.11.2011 14:09 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    To jako, že je v jádře goto label1 navíc (kdyby byl label2 před label1, tak se plynule přejde)? Možná to je kvůli ladění.
    27.11.2011 16:13 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře

    Tohle není kód vanilla jádra, tenhle obrat jsem viděl v jednom modulu, který ve vanilla jádře není. Prohodit pořadí nejde, protože to, co je za label2, se nemá vykonat, pokud k němu dojdete přirozenou cestou nebo na něj skočíte odjinud. Správně by to mohlo být třeba takto:

      if (problém) {
        něco
        goto label1;
      }
    
      ...
    
    label1:
      úklid
      return 0;
    }
    

    Ale i v upstreamových projektech se občas najdou strašidelné věci. Máte-li dobrý žaludek, můžete zkusit prozkoumat třeba funkci send_dg() v implementaci resolveru v glibc.

    26.11.2011 20:00 Tomáš
    Rozbalit Rozbalit vše Mac to myslím používá
    Myslím, že Mac to používá kvůli zálohování pomocí Time Machine. Je s tím spousta omezení a normálnímu smrtelníkovi ta funkce není přístupná. Přeci jenom není lepší věc, než zacyklení mezi adresáři.
    26.11.2011 23:31 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    IMHO existuje spousta jednodušších způsobů, jak si rozbít filesystém…
    27.11.2011 01:53 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Ale on se nerozbil!
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    27.11.2011 03:01 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Ano, nerozbil se, rozbil jste si ho vědomě sám. :-) (Pokud to snad nebylo jasné z minulého příspěvku, tak zacyklené adresáře považuji za rozbitý filesystém.)
    27.11.2011 13:03 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Tak nikdo vás nenutí tam ty cykly vytvářet :)
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    27.11.2011 12:04 marbu | skóre: 31 | blog: hromada | Brno
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    A mezitím budu přemýšlet, k čemu je to vlastně dobré... :)
    Jako hracka vazne dobre :) Ale realne pokud potrebujes hardlink na adresar, resilo by se to pomoci bind mount:
    mount --bind /kdesi/cosi /nekde/jinde/cosi
    .
    There is no point in being so cool in a cold world.
    pavlix avatar 27.11.2011 15:15 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    A to právě nemá s hardlinkem nic moc společného (přesněji řečeno asi tolik co se symlinkem). Navíc vzhledem k odkazu na XKCD je celkem jasné, o co tu jde :).

    Mount --bind používejte opatrně, symlinky jsou ve většině případů stejně použitelné a mnohem bezpečnější (rm -rf končí symlinkem).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    29.11.2011 18:51 Sten
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    mount --bind neprochází přes mountpointy, takže nikdy nemuže vytvořit nekonečnou smyčku.
    pavlix avatar 29.11.2011 20:50 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Zajímavé. Prakticky ověřeno.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    30.11.2011 00:20 Tyf
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Existuje i mount --rbind. Ale zacykleni jsem nezkousel.
    30.11.2011 15:27 Sten
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    rbind to sice nabinduje rekurzivně, ale před tím bindem, takže cyklus to pořád nevytvoří:
    /
      [/bind je prázdné]
      /home
      /var
    
    rbind / do /bind:
    /
      /bind
        [/bind/bind je prázdné]
        /bind/home
        /bind/var
      /home
      /var
    
    27.11.2011 22:39 nyan
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Ja nikdy nepochopil *proc* nejde udelat hardlink adresaru. Vsude rikaji ze nejde... a nikde sem nevidel opravdove vysvetleni.
    27.11.2011 22:53 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Např. by pak byl problém s položkou "..", která má odkazovat na rodiče. Jenže tady by těch rodičů bylo víc, takže byste si musel některého vybrat, což zase bude dělat problémy, když zrovna tu adresářovou položku, jejíž to byl rodič, smažete.
    28.11.2011 00:11 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Např. by pak byl problém s položkou "..", která má odkazovat na rodiče. Jenže tady by těch rodičů bylo víc, takže byste si musel některého vybrat
    IMHO, vzhledem k tomu, že nic jako ".." ve FS ani není je to irelevantní - systém to vygeneruje na základě cesty, takže tenhle problém odpadá.
    což zase bude dělat problémy, když zrovna tu adresářovou položku, jejíž to byl rodič, smažete.
    No, zatím jsem nepřišel na to, jak odstranit hardlink na adresář bez smazání obsahu :)
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    28.11.2011 06:06 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    IMHO, vzhledem k tomu, že nic jako ".." ve FS ani není je to irelevantní - systém to vygeneruje na základě cesty, takže tenhle problém odpadá.

    Co prosím? Neusuzujte, prosím, jen na základě toho, jak se (defaultně) chová příkaz cd v bashi.

    zatím jsem nepřišel na to, jak odstranit hardlink na adresář bez smazání obsahu

    To není až tak překvapivé, vzhledem k tomu, že se s jejich existencí nepočítá. Musel byste si opatchovat syscall rmdir() nebo unlinkat() a když se zamyslíte jak, zjistíte, že není úplně triviální udělat to tak, aby to fungovalo.

    30.11.2011 10:38 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Ono to nejde asi hlavne proto, aby se zachovaly dobre strukturalni vlastnosti filesystemu. Proste je mnohem vyhodnejsi predpokladat, ze adresare tvori strom a diky tomu zjednodusit spoustu algoritmu, nez povolit hardlink adresaru a vsechno implementovat s predpokladem, ze adresare tvori obecny graf.
    30.11.2011 16:53 perdy | skóre: 5 | blog: stdout
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Kaslat na GOTO, skutocny muz pouzije COMEFROM.Samozrejme spolu s dalsimi ficurami INTERCALu, coz je skvela parodia na programovaci jazyk.
    ln -s vim emacs
    4.2.2012 01:42 linux_enthusiast
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Hmmmm, pekná debata sa tu okolo toho rozbehla. :-) Nieže by sa mi nechcelo hrať sa s jadrom, ale nechcem riskovať pád systému. Som rád, že mám Linux stabilný (veď za to ho už 3 roky používam) a nechcem riskovať nejakým blbým preklepom jeho pád.
    4.2.2012 01:50 linux_enthusiast
    Rozbalit Rozbalit vše Re: Hardlink na adresáře
    Tak ma teraz napadlo. keď chcem, aby sa mi spustil môj shell script pri otvorení konkrétneho adresára, kde to mám zapísať? :-)

    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.