Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 133 (pdf) a HackSpace 70 (pdf).
Po půl roce vývoje od vydání verze 44 bylo vydáno GNOME 45 s kódovým názvem Rīga. Přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Krátké představení na YouTube. Jednou z nejviditelnějších změn je odstranění tlačítka Činnosti (Activities) v levém horním rohu. Nově je tam indikátor ploch. Výchozím prohlížečem obrázků je nově Loupe, nahradil Eye of GNOME (eog). Novou aplikací pro práci s webovou kamerou je Snapshot, nahradil Cheese. Rozšíření GNOME Shellu fungující v předchozích verzích nejsou s verzí 45 kompatibilní.
Linux Foundation představila a zaštítila svobodný a otevřený fork Terraformu s názvem OpenTofu. Ten vznikl pod původním názvem OpenTF jako reakce na přelicencování Terraformu na BSL (Business Source License) společností HashiCorp.
Google oznámil (en), že konverzační AI Bard (Wikipedie) může nyní komunikovat s aplikacemi a službami Google: "Díky nejnovějšímu rozšíření služby může Bard najít a zobrazit relevantní informace z nástrojů společnosti Google, které používáte každý den, jako je například Gmail, Dokumenty, Disk, Mapy, YouTube a Letenky Google, a to i když jsou potřebné informace v různých aplikacích a službách."
Apache Pinot (GitHub, Wikipedie) dospěl do verze 1.0. Jedná se o realtimeový distribuovaný OLAP datastore navržený tak, aby na OLAP dotazy odpovídal s nízkou latencí.
Byla vydána Java 21 / JDK 21. Nových vlastností (JEP - JDK Enhancement Proposal) je 15. Jedná se o LTS verzi. Nová Java / JDK vychází každých 6 měsíců.
Byla vydána betaverze Fedora Linuxu 39, tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 17. října. Nový Fedora Linux přinese GNOME 45, LibreOffice 7.6, GCC 13.2, …
Byla vydána verze 17.0.1, tj. první veřejná verze z nové řady 17.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Z aktuálních akcí na Humble Bundle lze vypíchnout sady knih Become a Python Expert by Pearson a Software Architecture by O'Reilly nebo hru PC Building Simulator (Steam, ProtonDB).
Craig Loewen se na blogu Microsoftu rozepsal o zářijové aktualizaci Windows Subsystému pro Linux (WSL) aneb o předběžném vydání 2.0.0. Nové experimentální vlastnosti (autoMemoryReclaim, sparseVhd, networkingMode, dnsTunneling, firewall, autoProxy) představil také na YouTube.
Dobrý den,
před nějakou dobou jsem si řekl, že zkusím proniknout trochu hlouběji do Linuxu. Začal testovat Ubuntu, učit se s příkazovou řádkou a s konzolovými nástroji, číst si články na internetu. Ale pořád je pro mě Linux tak trochu chaos. Už jen proto, že každá linuxová distribuce mi přijde uplně jiná a s každou, aby se tak člověk učil totálně odznova.
Co by mě v tuto chvíli nejvíc zajímalo (snad mi to pomůže pochopit další věci) je, co vlastně umí ono jádro Linuxu samo o sobě? A co už je jen nádstavba, kterou nad jádrem postavili tvůrci distribucí?
Děkuji moc za odpovědi.
Už jen proto, že každá linuxová distribuce mi přijde uplně jiná a s každou, aby se tak člověk učil totálně odznova.Tak to děláš něco špatně… většinou by mělo stačit chvíli nadávat nad jiným balíčkovacím systémem a pak by to mělo být v pohodě.
Co by mě v tuto chvíli nejvíc zajímalo (snad mi to pomůže pochopit další věci) je, co vlastně umí ono jádro Linuxu samo o sobě? A co už je jen nádstavba, kterou nad jádrem postavili tvůrci distribucí?Jádro neumí celkem nic pro uživatele zajímavého. Můžeš mu pomocí nějakého binárního rozhraní dávat příkazy jako „otevři soubor“ (vrátí ti nějaký deskriptor) a „alokuj mi paměť“, ale nic moc dalšího s ním neuděláš
většinou by mělo stačit chvíli nadávat nad jiným balíčkovacím systémem a pak by to mělo být v pohodě.
Jo, kéž by...
Původní pisatel není zas tak daleko od pravdy...
příkaz install foo příkaz remove foos drobnými syntaktickými (a sémantickými ;) nuancemi. SysV unit je unixová klasika, které se asi nevyhneš, i kdyby všechny linuxová distra používala systemd (což naneštěstí v dohledné době asi nenastane) -- no a upstart je nečekaně zase ubunťácká exotika. Celkově myslím, že seznam variant se dost zjednoduší, když vyřadíš Ubuntu...
Tak jsem nad tím přemýšlel, hledal na netu atd. Zatím mám o tom představu takovouto... chápu to správně?
Díky za zodpovězení kterékoli z těchto otázek, případně opravení toho, co chápu špatně
3.1 je to tak, může se stát, že budou podporovat hw který ještě nebyl vyroben..
A jak to pak funguje, když si doinstalovávám nesvobodné ovladače na grafickou kartu (např. protože mi nefunguje 3D akcelerace) - to se pak nějak "vsunou" přímo do jádra? Nebylo by v takovém případě nutné celé jádro (i s novým ovladačem) znovu zkompilovat?
U modulů které jsou součástí zdrojů jádra, se musí překompilovat znova celé (nastavuje se jen rozdíl)
Jádro se kompilovat nemusí kvůli ext. modulům, které nejsou součástí zdrojů jádra. Jen moduly proti jádru.
Jádro o nich nemusí vědět, ale modul o jádru ano.
Obvykle sou moduly už přeložené proti konkrétním verzím jádra, a proto můžou být dodány v uzavřené formě.
Proto taky musíš jednou za čas (cca další vydání distribuce) aktualizovat celý modul.
Nebo u příkladu AVermedia, sou dodány jak hotové moduly proti konkrétním verzím jádra, tak je napůl otevřený zdroj. kód, Můžeš si sestavit svůj modul, pro verzi jádra, které nebylo v té době k dispozici. S tím, že ale není s otevřenou licencí, a jsou neměně nastaveny optimalizace.
/usr/libexec/coreutils/libstdbuf.so /usr/share/info/coreutils.info.bz2 /usr/share/man/man1/base64.1.bz2 /usr/share/man/man1/echo.1.bz2 /usr/share/man/man1/uname.1.bz2 /usr/share/man/man1/chown.1.bz2 /usr/share/man/man1/ls.1.bz2 /usr/share/man/man1/printenv.1.bz2 /usr/share/man/man1/tac.1.bz2 /usr/share/man/man1/link.1.bz2 /usr/share/man/man1/split.1.bz2 /usr/share/man/man1/nproc.1.bz2 /usr/share/man/man1/mkdir.1.bz2 /usr/share/man/man1/cat.1.bz2 /usr/share/man/man1/runcon.1.bz2 /usr/share/man/man1/rm.1.bz2 /usr/share/man/man1/uniq.1.bz2 /usr/share/man/man1/unlink.1.bz2 /usr/share/man/man1/factor.1.bz2 /usr/share/man/man1/users.1.bz2 /usr/share/man/man1/comm.1.bz2 /usr/share/man/man1/env.1.bz2 /usr/share/man/man1/csplit.1.bz2 /usr/share/man/man1/cut.1.bz2 /usr/share/man/man1/mv.1.bz2 /usr/share/man/man1/touch.1.bz2 /usr/share/man/man1/sum.1.bz2 /usr/share/man/man1/who.1.bz2 /usr/share/man/man1/nl.1.bz2 /usr/share/man/man1/nice.1.bz2 /usr/share/man/man1/join.1.bz2 /usr/share/man/man1/dd.1.bz2 /usr/share/man/man1/chmod.1.bz2 /usr/share/man/man1/cp.1.bz2 /usr/share/man/man1/sha256sum.1.bz2 /usr/share/man/man1/df.1.bz2 /usr/share/man/man1/vdir.1.bz2 /usr/share/man/man1/ptx.1.bz2 /usr/share/man/man1/pwd.1.bz2 /usr/share/man/man1/fold.1.bz2 /usr/share/man/man1/tsort.1.bz2 /usr/share/man/man1/paste.1.bz2 /usr/share/man/man1/logname.1.bz2 /usr/share/man/man1/dircolors.1.bz2 /usr/share/man/man1/chcon.1.bz2 /usr/share/man/man1/shred.1.bz2 /usr/share/man/man1/readlink.1.bz2 /usr/share/man/man1/stat.1.bz2 /usr/share/man/man1/expand.1.bz2 /usr/share/man/man1/false.1.bz2 /usr/share/man/man1/tty.1.bz2 /usr/share/man/man1/cksum.1.bz2 /usr/share/man/man1/expr.1.bz2 /usr/share/man/man1/pinky.1.bz2 /usr/share/man/man1/mktemp.1.bz2 /usr/share/man/man1/truncate.1.bz2 /usr/share/man/man1/mkfifo.1.bz2 /usr/share/man/man1/true.1.bz2 /usr/share/man/man1/arch.1.bz2 /usr/share/man/man1/tee.1.bz2 /usr/share/man/man1/stdbuf.1.bz2 /usr/share/man/man1/sort.1.bz2 /usr/share/man/man1/md5sum.1.bz2 /usr/share/man/man1/fmt.1.bz2 /usr/share/man/man1/timeout.1.bz2 /usr/share/man/man1/test.1.bz2 /usr/share/man/man1/nohup.1.bz2 /usr/share/man/man1/date.1.bz2 /usr/share/man/man1/id.1.bz2 /usr/share/man/man1/unexpand.1.bz2 /usr/share/man/man1/tr.1.bz2 /usr/share/man/man1/whoami.1.bz2 /usr/share/man/man1/sha384sum.1.bz2 /usr/share/man/man1/basename.1.bz2 /usr/share/man/man1/seq.1.bz2 /usr/share/man/man1/wc.1.bz2 /usr/share/man/man1/sha224sum.1.bz2 /usr/share/man/man1/mknod.1.bz2 /usr/share/man/man1/hostid.1.bz2 /usr/share/man/man1/pr.1.bz2 /usr/share/man/man1/dir.1.bz2 /usr/share/man/man1/dirname.1.bz2 /usr/share/man/man1/sync.1.bz2 /usr/share/man/man1/yes.1.bz2 /usr/share/man/man1/tail.1.bz2 /usr/share/man/man1/ln.1.bz2 /usr/share/man/man1/shuf.1.bz2 /usr/share/man/man1/pathchk.1.bz2 /usr/share/man/man1/rmdir.1.bz2 /usr/share/man/man1/sha1sum.1.bz2 /usr/share/man/man1/head.1.bz2 /usr/share/man/man1/stty.1.bz2 /usr/share/man/man1/printf.1.bz2 /usr/share/man/man1/install.1.bz2 /usr/share/man/man1/chroot.1.bz2 /usr/share/man/man1/od.1.bz2 /usr/share/man/man1/sha512sum.1.bz2 /usr/share/man/man1/du.1.bz2 /usr/share/man/man1/chgrp.1.bz2 /usr/share/man/man1/sleep.1.bz2 /usr/share/doc/coreutils-8.14/ChangeLog-2006.bz2 /usr/share/doc/coreutils-8.14/ChangeLog.bz2 /usr/share/doc/coreutils-8.14/ChangeLog-2007.bz2 /usr/share/doc/coreutils-8.14/README.bz2 /usr/share/doc/coreutils-8.14/AUTHORS.bz2 /usr/share/doc/coreutils-8.14/THANKS.bz2 /usr/share/doc/coreutils-8.14/TODO.bz2 /usr/share/doc/coreutils-8.14/NEWS.bz2 /usr/share/doc/coreutils-8.14/ChangeLog-2008.bz2 /usr/share/doc/coreutils-8.14/ChangeLog-2005.bz2 /usr/share/locale/cs/LC_TIME/coreutils.mo /usr/share/locale/cs/LC_MESSAGES/coreutils.mo /usr/bin/yes /usr/bin/dir /usr/bin/printenv /usr/bin/ptx /usr/bin/tail /usr/bin/fmt /usr/bin/mktemp /usr/bin/fold /usr/bin/comm /usr/bin/tr /usr/bin/hostid /usr/bin/tsort /usr/bin/id /usr/bin/md5sum /usr/bin/shuf /usr/bin/dircolors /usr/bin/expr /usr/bin/sha256sum /usr/bin/unexpand /usr/bin/arch /usr/bin/dirname /usr/bin/du /usr/bin/stdbuf /usr/bin/truncate /usr/bin/tty /usr/bin/sha384sum /usr/bin/od /usr/bin/join /usr/bin/link /usr/bin/touch /usr/bin/nl /usr/bin/uniq /usr/bin/timeout /usr/bin/expand /usr/bin/mkfifo /usr/bin/basename /usr/bin/split /usr/bin/readlink /usr/bin/runcon /usr/bin/env /usr/bin/seq /usr/bin/sleep /usr/bin/nice /usr/bin/uname /usr/bin/sha512sum /usr/bin/tee /usr/bin/vdir /usr/bin/[ /usr/bin/logname /usr/bin/cut /usr/bin/test /usr/bin/chcon /usr/bin/unlink /usr/bin/install /usr/bin/who /usr/bin/shred /usr/bin/sort /usr/bin/wc /usr/bin/chroot /usr/bin/paste /usr/bin/pinky /usr/bin/pathchk /usr/bin/printf /usr/bin/nohup /usr/bin/sum /usr/bin/cksum /usr/bin/sha1sum /usr/bin/whoami /usr/bin/stat /usr/bin/head /usr/bin/tac /usr/bin/nproc /usr/bin/base64 /usr/bin/pr /usr/bin/factor /usr/bin/users /usr/bin/sha224sum /usr/bin/csplit /etc/DIR_COLORS /bin/chmod /bin/yes /bin/dir /bin/mknod /bin/tail /bin/mktemp /bin/cp /bin/true /bin/pwd /bin/date /bin/tr /bin/echo /bin/expr /bin/dirname /bin/du /bin/tty /bin/df /bin/cat /bin/chown /bin/touch /bin/chgrp /bin/mkfifo /bin/basename /bin/readlink /bin/dd /bin/env /bin/seq /bin/sleep /bin/uname /bin/rmdir /bin/vdir /bin/cut /bin/rm /bin/mv /bin/sort /bin/wc /bin/chroot /bin/stty /bin/false /bin/ln /bin/ls /bin/head /bin/sync /bin/mkdirdalší popis je na FHS Ještě k 1.1 už jsem si vyzkoušel jádro bez VT. Při zavádění jádra nejsou vidět výpisy, ani se nelze přepínat pomocí ^ALT+Fnum. Pokud sou ale X dobře nastavená tak normálně fungují. Jinak, programy lze používat, ale ne přes konzoli (či jak tomu rozhranní kdo říká). Znamená to že nový obraz jádra s VT jsem musel sestavit, v GUI, ne s menuconfig, z běžícího obrazu jádra.
Znamená to že nový obraz jádra s VT jsem musel sestavit, v GUI, ne s menuconfig, z běžícího obrazu jádra.Dívím se, že se nad tím nikdo nepozastavil, protože by to nebylo možné. Musel jsem určitě najet z výměnného disku.
Ad 1)
- Konzole (shell) součástí jádra není. Ta je spuštěna zvlášť jako uživatelský proces, dokonce jich existuje více (bash, dash, zsh, ...). Pravda je, že jádro může obsahovat tzv. recovery console, která se ale spouští jen v single-user režimu. Používá se v případě, že se v systému něco rozsype tak, že není možno nabootovat (např. pokud se nezdaří připojit disk s /bin či /usr/bin)
- Jak moc jsou hardcodované cesty k /etc/passwd a podobně si nejsem jistý, /home existovat nemusí, není-li vytvořen kromě roota žádný jiný účet. V principu by asi nemusel existovat ani /root, ale spousta programů včetně bashe si do domovského adresáře ukládá svoje nastavení. su a sudo jsou jen programy, teoreticky opět být přítomny nemusí.
Řečeno jednoduše, jádro je to, co stojí mezi hardwarem počítače a aplikacemi, aplikace je to, co stojí mezi jádrem a uživatelem.
Ad 2)
cp, ls a rm součástí jádra nejsou, pouze cd je tzv. "shell builtin" a ne samostatný program, opět ale není součástí jádra.
Ad 3)
Tohle je skutečně pravda, velká většina ovladačů je přímo součástí jádra. Je ale samozřejmě možné další ovladače doinstalovat; typicky např. proprietální ovladače ke grafickým kartám nVidia či AMD.
Já bych to pro tazele upřesnil: Ovladače mohou být (a taky že většinou jsou) ve formě tzv. modulů. To je kus kódu, který lze za běhu vložit/odstranit. Výhoda je jasná: stačí mít přímo v jádře jenom nezbytné ovladače a všechny ostatní budou jako moduly. Stačí tedy nahrát jenom potřebné moduly. Kdyby byly všechny ovladače přímo v jádru, tak by jádro zabíralo hodně z paměti RAM.
vmlinuz
v adresáři /boot
. Ten vytvoří přistup na základní HW. rozpozná disky a souborové systémy a má řízení procesoru, paměti azákladní funkce. Další moduly do jádra vytvoří přístup na další specializovaný HW typicky v /lib/modules/verze_jádra
driver na grafiku a wifi je obvykle zde.
Vše ostatní jsou programy. Na příkazové řádce jsou distribuce velmi podobné, ale podobně jako v jiných případech jsou i na přikazové nebo serverové rovině více programů se stejným cílem. (např. ziskání své internetové identity - dhcp klient - bývá jednak dhcpcd
a jednak dhclient
některá distribuce preferuje jeden, jiná druhý přístup. Větší rozdíly jsou v umístění některých konfigurací, ale všichni dodržují, že konfigurace jsou v /etc
. v grafice je vetší rozdíl, ale díky tomu, že KDE, Gnome a další jsou nadstavby X windows systém, je možné použít v podstatě jakýkoliv program z jednoho prostředí v prostředí druhém.
Konzole.Respektive driver pro konzoli.
Uživatelské účty, jejich oprávnění, data a přihlašování uživatelů (tzn. v systému musí existovat adresář /home a soubor /etc/passwd ?).Podpora pro oprávnění jo, ale účty, přihlašování a další věci se řeší v userspace (třeba pomocí getty nebo grafických správců obrazovky).
ale příkazy jako cd, ls, cp, rm apod jsou součástí jádra?Ne. To jsou normální programy sídlící většinou v /bin.
Někde jsem četl, že ovladače hardwaru se neinstalují jako ve Windows zvlášť, ale že se instalují aktualizací jádra. To znamená, že v jádru Linuxu jsou obsaženy ovladače na veškerý možný HW, se kterým se lze setkat?Ano, téměř všechny ovladače HW jsou v jádře. Výjimkou jsou user-space ovladače například tiskáren nebo některých USB zařízení.
Příkazy ls, cd, cp, rm nejsou součástí jádra (ale jsou součastí shellu).a to právě, tak není. Všimni si toho coreutils. Shelly s těmi programi jen počítají, jinak sou nezávislé jak ty programy, tak shelly (bash,zsh atd.). Je to jen v tom, že se to instaluje vždy společně, takže se nestane, že by shell nemohl ty programy používat, co by také moc jiného dělal. Shelly se liší hlavně předáváním proměných prostředí.
cd
, záleží od shellu.
make menuconfig
. Tím se spustí rozhraní, ve kterém si můžeš procházet a volit jednotlivé součásti kernelu (který by sis poté mohl zkompilovat, nijak se tím samozřejmě nemění ten aktuální). Vše je rozděleno do kategorií a k většině položek je k dispozici nápověda.
No, to aby si na to vzal dovolenou, protože tam jsou stovky (tisíce?) voleb.
Tiskni
Sdílej: