Společnost OpenAI představila GPT-5 (YouTube).
Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.
Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.
Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.
Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.
Byla vydána nová verze 1.54.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Jan Václav.
Knižní edice správce české národní domény přináší novou knihu zkušeného programátora Pavla Tišnovského s názvem Programovací jazyk Go. Publikace nabízí srozumitelný a prakticky zaměřený pohled na programování v tomto moderním jazyce. Nejedná se však o klasickou učebnici, ale spíše o průvodce pro vývojáře, kteří s Go začínají, nebo pro ty, kdo hledají odpovědi na konkrétní otázky či inspiraci k dalšímu objevování. Tištěná i digitální verze knihy je již nyní k dispozici u většiny knihkupců.
OpenAI zpřístupnila (en) nové nenáročné otevřené jazykové modely gpt-oss (gpt-oss-120b a gpt-oss-20b). Přístupné jsou pod licencí Apache 2.0.
nice
a renice
sloužící k nastavení priority procesům, a také umask
, který umí zjistit či nastavit masku oprávnění pro vytváření souborů.Příkaz nice
slouží ke spuštění programu s danou prioritou. Poprvé se objevil v AT&T UNIXu verze 6. Název vznikl z anglického slova nice, které lze přeložit jako hodný nebo milý.
Abych upřesnil první větu, program nenastavuje přímo prioritu, ale tzv. hodnotu „nice“ (niceness value), která prioritu procesu ovlivňuje (o to se stará plánovač v jádře operačního systému).
Hodnota „nice“ může být v rozsahu -20 až 19 (někde 20). Vyšší hodnota znamená nižší prioritu. To si snadno zapamatujete podle toho, že program je méně „hodný“, když má menší hodnotu „nice“.
Tento příkaz přijde vhod ve chvíli, kdy vám v systému běží více procesů, které vyžadují hodně procesorového času. Pomocí nice
snadno ovlivníte, který z nich má plánovač upřednostňovat při přidělování procesorového času.
Uživatel se standardními právy zpravidla může nastavovat hodnotu „nice“ pouze za nezáporné hodnoty, a to z bezpečnostních důvodů. Dostane-li nějaký hladový proces vyšší prioritu než jiná kritická součást systému, může to způsobit problémy jako třeba pomalou odezvu, atp.
Příkaz lze použít bez přepínačů tak, že za něj pouze zadáme název příkazu, který chceme spustit, spolu s jeho přepínači:
nice convert -resize 10% -quality 70 hugephoto.png smallphoto.jpg
Pomocí přepínače -n lze zadat konkrétní hodnotu „nice“:
nice -n 3 lame --decode soubor.mp3 soubor.wav
Pokud se programu nice
nepodaří nastavit hodnotu „nice“, vypíše pouze varování, ale program spustí a návratová hodnota zůstane neovlivněna.
$ nice -n -20 oggenc soundtrack.wav -o track.ogg nice: hodnotu nice nelze nastavit: Operace zamítnuta
Na GNU/Linuxu je v balíku util-linux(-ng) dostupný program ionice
, který slouží k podobnému účelu, ovšem neovlivňuje plánování CPU, ale I/O.
renice
slouží ke změně hodnoty „nice“ u běžících procesů. Znáte-li PID procesu a máte dostatečné oprávnění, můžete změnit prioritu daného procesu:
# změní hodnotu nice procesu s PID 1024 na 5 renice -n 5 -p 1024
Kromě PID s přepínačem -p můžete zadávat ještě GID (ID skupiny procesů) s přepínačem -g nebo UID či jméno uživatele s přepínačem -u.
# změní hodnotu nice všech procesů uživatele „hal“ na 2 renice -n 2 -u hal
umask
slouží k nastavení masky práv pro vytváření nových souborů (či adresářů) pro daný proces. Název je zkratkou anglického výrazu user mask, což znamená „uživatelská maska“.
Základy unixových práv si můžete osvěžit přečtením relevantní části jednoho z předchozích dílů tohoto seriálu. Chování masky pochopíte rychle, pokud znáte síťovou masku (netmask).
# vypíše si aktuální masku $ umask 0022 # vytvoříme soubor a adresář $ touch xyz $ mkdir zyx # všimneme si jaká práva má soubor (644) a adresář (755) $ ls -ld xyz zyx -rw-r--r-- 1 dave home 0 13. srp 00.15 xyz drwxr-xr-x 2 dave home 4096 13. srp 00.15 zyx
Adresář má práva 755 a vyšší by ani dostat nemohl, protože skupina a ostatní jsou omezeni dvojkami v masce. Ale soubor má 644, i když by maska dovolila 755. Čím to? Je to tím, že tato maska nijak neříká, že nové soubory či adresáře musí mít nějaká konkrétní práva, pouze omezuje horní hranici těchto práv pro nově vytvářené soubory či adresáře. Programy obvykle vytvářejí obyčejné soubory pouze s právy pro čtení a zápis, protože spouštění nebývá třeba (bylo by nesmyslné).
Alternativní způsob zadávání masky je podobný jako u chmod
. Přepínač -S umožňuje vypsat masku v tomto tvaru:
$ umask -S u=rwx,g=rx,o=rx
Můžete ji v tomto tvaru i nastavit:
# totéž jako: umask 0037 umask u=rwx,g=r,o=
Vhodný způsob pro nastavení této masky pro shell je přidat příkaz do souboru, který se spouští při spouštění shellu. Pro Bash například ~/.bash_profile
.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
nice
? Tj. když proces vznikne, aby měl automaticky např. nižší prioritu. Ideálně aby pak uživatel nemohl pomocí renice
prioritu zvýšit.
Uvítal bych v rámci
Pak měl jednu poznámku k umask
. Reálná využitelnost této metody definice výchozích práv často není možná, protože: 1) nejde mít různá nastavení pro různé adresáře a 2) i při spuštění v rámci přihlašovacího skriptu se neuplatní např. při vytváření souborů přes FTP, Sambu, nebo třeba z PHP skriptů. Potom je lepší zapnout na filesystemu ACL, a pak lze nastavit výchozí práva libovolně pro každý adresář nezávisle na způsobu přístupu. Jistě se ale hodí o příkazu umask
vědět.
Uvítal bych v rámciNějak jsem to nedopsal ... už je pozdě. Chtěl jsem navrhnout pro další díly popis příkazu
ulimit
, který je pro systémy sdílené více uživateli dost užitečný, a umožňuje např. zamezit shození systému skrze fork-bomb. Ale je okolo toho celá infrastruktura vč. PAM, takže to je skoro na samostatný článek.
Hodnota nice se dědí, takže stačí hodit příkaz do přihlašovacího shellu nebo do pam_exec.
Na nějaké větší čachry jsou ale vhodnější control groups (čistě linuxová věc).
a 2) i při spuštění v rámci přihlašovacího skriptu se neuplatní např. při vytváření souborů přes FTP, Sambu, nebo třeba z PHP skriptů. Potom je lepší zapnout na filesystemu ACL, a pak lze nastavit výchozí práva libovolně pro každý adresář nezávisle na způsobu přístupu. Jistě se ale hodí o příkazu umask
vědět.
Někde jsem to už nastavoval, stačí někam do konfigurace pam, která se vztahuje k tomu co ty soubory vytváří přihodit pam_umask.so a dát tam tu masku a fungujeto. Nastavoval jsem to pro sftp a ještě pro něco jiného.
Existuje mechanismus, jak přiřadit procesům určitého uživatele nějakou výchozí hodnotu nice?
Lze použít např. PAM modul pam_limits
.
Uživatel se standardními právy zpravidla může nastavovat hodnotu „nice“ pouze za nezáporné hodnoty
Přesnější by bylo napsat, že normální uživatel smí niceness nastavovat pouze vlastním procesům a smí ji pouze zvyšovat. Znaménko nehraje roli vůbec, takže má-li proces niceness např. -5, smím mu ji zvýšit na -4, naopak pokud bude mít niceness 5, nesmím mu ji snížit na 4. Nula je významná jen tím, že je to obvyklá hodnota niceness, se kterou se uživateli spouští jeho login shell nebo desktopové prostředí, takže pod ni se potom sám (bez pomoci roota) nedostane.