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í
×

včera 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
včera 00:11 | Bezpečnostní upozornění

Vývojáři linuxové distribuce Mageia na svém blogu upozorňují na narušení bezpečnosti Mageia Identity. Narušitel získal přístup k LDAP databázi a zveřejnil jména uživatelů, jejich emailové adresy a haše hesel. Hesla uživatelů byla resetována.

Ladislav Hagara | Komentářů: 1
20.2. 21:55 | Nová verze

Byla vydána verze 2.0.0 nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). Z novinek je nutno upozornit na nový zpětně nekompatibilní formát záznamu asciicast v2. S novým formátem si poradí nové verze asciinema-playeru a asciinema-serveru [Hacker News].

Ladislav Hagara | Komentářů: 0
20.2. 05:55 | Zajímavý projekt

Dle příspěvku na blogu zaměstnanců CZ.NIC byl spuštěn ostrý provoz služby Honeypot as a Service (HaaS). Zapojit se může kdokoli. Stačí se zaregistrovat a nainstalovat HaaS proxy, která začne příchozí komunikaci z portu 22 (běžně používaného pro SSH) přeposílat na server HaaS, kde honeypot Cowrie (GitHub) simuluje zařízení a zaznamenává provedené příkazy. Získat lze tak zajímavé informace o provedených útocích. K dispozici jsou globální statistiky.

Ladislav Hagara | Komentářů: 7
20.2. 04:44 | Komunita

Před týdnem společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux oznámila, že pro macOS a Linux vydají hru Rise of the Tomb Raider. Včera společnost oznámila (YouTube), že pro macOS a Linux vydají také hru Total War Saga: Thrones of Britannia. Verze pro Windows by měla vyjít 19. dubna. Verze pro macOS a Linux krátce na to.

Ladislav Hagara | Komentářů: 0
19.2. 21:33 | Nová verze

Byla vydána nová major verze 7.10 svobodného systému pro řízení vztahů se zákazníky (CRM) s názvem SuiteCRM (Wikipedie). Jedná se o fork systému SugarCRM (Wikipedie). Zdrojové kódy SuiteCRM jsou k dispozici na GitHubu pod licencí AGPL.

Ladislav Hagara | Komentářů: 0
19.2. 16:44 | Nová verze

Byla vydána nová verze 0.30 display serveru Mir (Wikipedie) a nová verze 2.31 nástrojů snapd pro práci s balíčky ve formátu snap (Wikipedie). Z novinek Miru vývojáři zdůrazňují vylepšenou podporu Waylandu nebo možnost sestavení a spouštění Miru ve Fedoře. Nová verze snapd umí Mir spouštět jako snap.

Ladislav Hagara | Komentářů: 0
19.2. 14:00 | Komunita

Na Indiegogo běží kampaň na podporu Sway Hackathonu, tj. pracovního setkání klíčových vývojářů s i3 kompatibilního dlaždicového (tiling) správce oken pro Wayland Sway. Cílová částka 1 500 dolarů byla vybrána již za 9 hodin. Nový cíl 2 000 dolarů byl dosažen záhy. Vývojáři přemýšlejí nad dalšími cíli.

Ladislav Hagara | Komentářů: 1
19.2. 11:11 | Nasazení Linuxu

Před dvěma týdny se skupina fail0verflow (Blog, Twitter, GitHub) pochlubila, že se jim podařilo dostat Linux na herní konzoli Nintendo Switch. O víkendu bylo Twitteru zveřejněno další video. Povedlo se jim na Nintendo Switch rozchodit KDE Plasmu [reddit].

Ladislav Hagara | Komentářů: 3
19.2. 05:55 | Komunita

Byla vydána vývojová verze 3.2 softwaru Wine (Wikipedie), tj. softwaru, který vytváří aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem. Z novinek lze zdůraznit například podporu HID gamepadů. Aktuální stabilní verze Wine je 3.0, viz verzování. Nejistá je budoucnost testovací větve Wine Staging s řadou experimentálních vlastností. Současní vývojáři na ni již nemají čas. Alexandre Julliard, vedoucí projektu Wine, otevřel v diskusním listu wine-devel diskusi o její budoucnosti.

Ladislav Hagara | Komentářů: 4
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (28%)
 (62%)
 (2%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 417 hlasů
 Komentářů: 35, poslední včera 19:51
    Rozcestník

    Jaderné noviny – 1. 12. 2016: statx() v3

    12. 12. 2016 | Redakce | Jaderné noviny | 2909×

    Stav vydání jádra. Citáty týdne: Paul McKenney a Linus Torvalds. statx() v3.

    Stav vývoje jádra

    Současný vývojový kernel je 4.9-rc7, vydaný 27. listopadu. Linus řekl, že se to pomalu začíná tvarovat a je možné, byť nepravděpodobné, že finální vydání 4.9 připadne na 4. prosince. „Prostě si vyhrazuji právo rozhodnout se příští víkend.“

    Verze 4.9-rc6 byla vydána 20. listopadu.

    Seznam regresí v cyklu 4.9, zveřejněný 20. listopadu, obsahoval deset otevřených problémů.

    Stabilní aktualizace: Za poslední dva týdny jsme se dočkali vydání 4.8.9 a 4.4.33 (19. listopadu), 4.8.10 a 4.4.34 (21. listopadu) a 4.8.11 a 4.4.35 (26. listopadu). Jako by to nestačilo, verze 4.8.12 a 4.4.36 byly v době psaní článku v procesu revidování a vyšly 2. prosince.

    Citáty týdne

    Vzhledem k historii RCU jsem zjevně nepoctivý praktik. Přesto se domnívám, že pro běžnou práci je poctivost tou nejlepší zásadou. Ale když jde do tuhého, robustní kombinace nepoctivosti a neortodoxnosti často bývá jedinou cestou vpřed.

    Paul McKenney

    Tajně jsme nahradili jejich normální MODVERSIONS vůbec ničím. Schválně, jestli si toho všimnou.

    Linus Torvalds

    statx() v3

    Některé změny si občas vyžádají mnoho času, než můžeme sklízet jejich plody. Přesně to se ukázalo jako případ navrhovaného systémového volání statx(). Tedy aspoň pokud jde o tu část „mnoho času“, protože na „sklizeň“ stále čekáme. Podle všech všeho se ovšem dokončení tohoto rozšíření systémového volání stat() docela blíží. Nedávné patche ukazují současný stav statx() a také co stále drhne.

    Systémové volání stat(), které vrací metadata o souboru, má dlouholetou historii. Poprvé se objevilo v prvním vydání Unixu v roce 1971. V následujících 45 letech se změnilo jen malinko, ačkoliv se proměnil zbytek operačního systému okolo. Takže asi není překvapující, že stat() často nevyhovuje dnešním požadavkům. Nedokáže reprezentovat většinu aktuálně relevantních informací o souborech, namátkou číslo verze, čas vytvoření, stav šifrování nebo třeba zda je soubor uložený na vzdáleném úložišti. Volající nemá možnost vybrat si informace, o které má zájem, čímž si může vynutit nákladné operace sbírající data, která aplikace zrovna nepotřebuje. Pole časových razítek trpí problémem roku 2038. A tak by se dalo pokračovat.

    David Howells od roku 2010 příležitostně pracuje na náhradě stat(). Jeho třetí verze patche (počítáno od chvíle, kdy počátkem letošního roku opět zapojil úsilí) vyšla 23. listopadu. Přestože se navrhovaný statx() podobá verzi z května, došlo k několika změnám.

    Prototyp statx() stále vypadá takto:

    int statx(int dfd, const char *filename, unsigned atflag, unsigned mask,
              struct statx *buffer);

    Normálně je dfd popisovačem souboru (file descriptor), který identifikuje adresář, a filename je jméno požadovaného souboru. Očekává se, že se soubor bude nacházet v relativní cestě vůči danému adresáři. Jestliže se ve filename předá NULL, pak se dfd vykládá jako přímý odkaz na požadovaný soubor. Takže statx() nahrazuje funkci jak stat(), tak i fstat().

    Argument atflag upravuje chování systémového volání. Zachází s několika příznaky, které se v současných jádrech už vyskytují: AT_SYMLINK_NOFOLLOW vede k vrácení informací o symbolickém odkazu, místo aby byl odkaz následován, a AT_NO_AUTOMOUNT brání automatickému připojení vzdálených souborových systémů. Skupina nových příznaků vyhrazených pro statx() řídí synchronizaci dat se vzdálenými servery, což umožňuje aplikacím nastavit poměr mezi aktivitou I/O a přesnými výsledky. AT_STATX_FORCE_SYNC vynutí synchronizaci se vzdáleným serverem i v případě, že si lokální jádro myslí, že má aktuální informace, zatímco AT_STATX_DONT_SYNC blokuje dotazy na vzdálený server, čímž si získá rychlé výsledky, které však mohou být neaktuální nebo zcela nedostupné.

    Parametr atflag potom určuje, jak statx() získá data. Další parametr, mask, se zase stará o to, která data mají být získána. Dostupné příznaky aplikaci umožňují vyžádat si oprávnění k souboru, typ, počet odkazů, vlastnictví, časová razítka atd. Speciální hodnota STATX_BASIC_STATS odpovídá všemu, co by vracel stat(), zatímco STAT_ALL vrací úplně vše, co je k dispozici. Snížení objemu požadovaných informací by mohlo snížit množství I/O operací nutných k vykonání systémového volání. Někteří se ale obávají, že vývojáři prostě použijí STATX_ALL, aby o tom nemuseli přemýšlet.

    Poslední argument, buffer, obsahuje strukturu, která se naplní relevantními informacemi. V této verzi patche vypadá následovně:

    struct statx {
        __u32	stx_mask;	/* What results were written [uncond] */
        __u32	stx_blksize;	/* Preferred general I/O size [uncond] */
        __u64	stx_attributes;	/* Flags conveying information about the file [uncond] */
        __u32	stx_nlink;	/* Number of hard links */
        __u32	stx_uid;	/* User ID of owner */
        __u32	stx_gid;	/* Group ID of owner */
        __u16	stx_mode;	/* File mode */
        __u16	__spare0[1];
        __u64	stx_ino;	/* Inode number */
        __u64	stx_size;	/* File size */
        __u64	stx_blocks;	/* Number of 512-byte blocks allocated */
        __u64	__spare1[1];
        struct statx_timestamp	stx_atime;	/* Last access time */
        struct statx_timestamp	stx_btime;	/* File creation time */
        struct statx_timestamp	stx_ctime;	/* Last attribute change time */
        struct statx_timestamp	stx_mtime;	/* Last data modification time */
        __u32	stx_rdev_major;	/* Device ID of special file [if bdev/cdev] */
        __u32	stx_rdev_minor;
        __u32	stx_dev_major;	/* ID of device containing file [uncond] */
        __u32	stx_dev_minor;
        __u64	__spare2[14];	/* Spare space for future expansion */
    };

    Zde stx_mask indikuje, která pole jsou ve skutečnosti platná. Bude to průnik informací požadovaných aplikací a toho, co souborový systém dokáže poskytnout. stx_attributes obsahuje příznaky popisující stav souboru. Ty indikují, zda je soubor komprimovaný, šifrovaný, neměnný, jen pro přidávání, zda nemá být zahrnut do záloh nebo zda jde o místo pro automatické připojování.

    Pole časového razítka obsahují tuto strukturu:

    struct statx_timestamp {
        __s64	tv_sec;
        __s32	tv_nsec;
        __s32	__reserved;
    };

    Pole __reserved bylo přidáno v třetí verzi patche, a to v důsledku jednoho z nejspornějších bodů v nedávných debatách o statx(). Dave Chinner navrhl, že někdy v budoucnu možná nebude rozlišení nanosekundy stačit. Řekl, že rozhraní by mělo být schopné zvládnout femtosekundová časová razítka. Tento názor zastával téměř sám – ostatní účastníci, např. Alan Cox, namítali, že rychlost světla zajistí, že nebudeme nikdy potřebovat časová razítka pod rozlišení jedné nanosekundy. Chinner ale trval na svém, takže Howells přidal pole __reserved s tím, že se může uvést do provozu, pokud to bude v budoucnu potřeba.

    Chinner měl celou řadu připomínek ohledně rozhraní, z toho některým doposud nebyla věnována pozornost. Patří mezi ně definice příznaků STATX_ATTR_, které kopírují sadu existujících příznaků používaných s voláními FS_IOC_GETFLAGS a FA_IOC_SETFLAGS ioctl(). Znovupoužívání příznaků umožňuje mikro-optimalizace kódu statx(), ale jak říká Chinner, udržuje se tím několik chyb v rozhraní, které pocházejí s minulosti. Ted Ts'o přišel s podobnou radou, když revidoval verzi tohoto patche z roku 2015, ale současná třetí verze obsahuje stejné definice příznaků.

    Největší Chinnerova námitka se týká absence komplexního souboru testů pro statx(). Příslušný kód, řekl, by neměl být začleněn, dokud testy nebudou k dispozici.

    Upřímně řečeno, myslím si, že by mělo jít o bezpodmínečný požadavek pro tak generickou a rozšiřitelnou novou funkcionalitu systémového volání. Buď pro ni před začleněním získáme pokrytí testy, nebo k začlenění nedojde. Znovu a znovu mám prokázáno, že věci nefungují, pokud je nemůžeme nejdříve otestovat a široce ověřit nezávislými vývojáři souborových systémů.

    Toto stanovisko nedávno zopakovali také další (například Michael Kerrisk). V historii jádra je až příliš mnoho zkušeností se začleňováním nových systémových volání, která nefungují tak, jak bylo inzerováno, což vede k následným bolestem. Howells tyto testy asi nakonec poskytne, ale nebude to tak brzy:

    Vzhledem k množství bikesheddingu, který se na tohle téma odehrál, jsem rád, že jsem zatím testovací nástroje *nedělal* – množství práce by to více než zdvojnásobilo. Zatím *stále* nevím, jaká bude výsledná podoba.

    Četnost změn v patchi se, zdá se, zpomaluje, takže je možné, že se začíná rýsovat jeho konečná podoba. Historie této práce ale naznačuje, že by nebylo moudré předvídat její začlenění v blízké budoucnosti. Systémové volání stat() je s námi už dlouho, takže je rozumné předpokládat, že statx() vydrží nejméně stejně dlouho. Trocha bikesheddingu navíc, aby rozhraní bylo udělané opravdu správně, se v tomto ohledu zdá být pochopitelná.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

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