Anatomie von GNU / Linux

Vor einiger Zeit gab es auf HabrĂ© eine kleine Welle von BeitrĂ€gen zum Thema „Warum ich mich nicht fĂŒr Linux entschieden habe“. Als anstĂ€ndiger Fanatiker habe ich mir die Haare schneiden lassen, aber ich entschied, dass es produktiver war, etwas ĂŒber mein Lieblingssystem zu erzĂ€hlen, als Kopien in den Kommentaren zu brechen .





Ich hatte den Eindruck, dass viele GNU / Linux-Benutzer wenig Ahnung haben, woraus dieses Betriebssystem besteht, und behaupten daher, dass es aus den zur VerfĂŒgung gestellten Teilen verschwommen ist. Gleichzeitig ist die Architektur der meisten Distributionen gut etabliert und unterliegt einer Reihe von Standards, darunter der grafische Umgebungsstandard freedesktop.org und die Linux Standard Base, die die Unix-Standards erweitert. Als ich vor einigen Jahren in GNU / Linux eingefĂŒhrt wurde, fehlte mir eine einfache anatomische Karte einer typischen Verteilung zum Eintauchen, daher werde ich versuchen, Ihnen selbst davon zu erzĂ€hlen.





Lader

Eine Betriebssystemsitzung beginnt mit einem Bootloader wie einem Theater von einem KleiderbĂŒgel. Der heutige Standard-Bootloader ist GNU GRUB , auch bekannt als GRUB 2 . Der erste Zweig, jetzt " GRUB Legacy " genannt, ist noch verfĂŒgbar . Ein weiterer Bootloader mit einer langen Geschichte ist Syslinux .





Der Bootloader hat die Aufgabe, den Linux-Kernel zu initialisieren. Dazu mĂŒssen Sie im Allgemeinen wissen, wo sich der Kernel befindet, und diesen Ort lesen können (z. B. Abschnitt Ext4). Um dem Kernel zu helfen, zieht der Bootloader normalerweise auch das anfĂ€ngliche Boot-Image ein, worĂŒber wir spĂ€ter sprechen werden. GRUB kann viele andere Aufgaben ausfĂŒhren, z. B. das Erstellen sehr komplexer MenĂŒs und das Kettenladen anderer Bootloader (z. B. Windows Boot Manager). GRUB hat eine Shell-Ă€hnliche Konfigurationssyntax und ist in Modulen erweiterbar.





GRUB ist groß und leistungsstark, manchmal zu leistungsstark, und eingebettete Systeme verwenden hĂ€ufig den kompakten Das U-Boot .





Kern

Linux (« , !»). , , POSIX- . /boot/



vmlinuz



, «vm» , «z» , .





, :





  • mainline («»);





  • LTS ( );





  • rt ( );





  • (zen, hardened etc);





  • libre ( , ).





  • -Linux Debian GNU/Hurd ( GNU Hurd) Debian GNU/kFreeBSD ( FreeBSD ). , , GNU/Linux.





initrd initramfs. , . , .





(- ZFS, - LUKS). . . , . :





  • initramfs-tools — Debian.





  • Dracut ( ) — RHEL (CentOS, Scientific Linux etc.). , .





  • mkinitcpio Archlinux, Dracut, .





  • make-initrd — Alt Linux.





Plymouth, . (-), , , « »ℹ Ubuntu Fedora.





Init

— . PID 1. . , , /sbin/init



( /usr/bin/init



, , ).





. Sysvinit, Unix System V. Sysvinit . , , , , «-». 00-- 10- : OpenRC Gentoo, Upstart Canonical, Systemd Red Hat . Systemd. . . , - Apache 153 , apache Arch Linux — 15 . , , , , , Unix.





, . — « , », , POSIX . « » (login shell) — , . , . , /etc/passwd



.





:





  • Bourne shell (sh) — « », .





  • Bourne again shell (bash) — GNU/Linux sh.





  • Debian Almquist shell (dash) — , sh. Debian, /usr/bin/sh



    .





  • Z shell (zsh) — bash, . , .





  • BusyBox — , , — POSIX- ( : $ busybox sh



    ).





, . — X Window System 1984 . , . , Unix- . GNU/Linux ( BSD) Xfree86. X.Org Server, Xorg, XFree86.





X Window System — , , — . , . SSH , , ( sshd):





$ ssh -X hostname firefox
      
      



, X Window System : , — . «The UNIX-HATERS Handbook».





X, , , , .





X keyboard extension, , .





«» . — Wayland. Wayland . , Wayland 2008 , X .





Weston Window Manager
Weston

Weston — Wayland. . , weston



.





. « » (root window), , , «» , . «» . .





, (DM) . , , ( ) . - , ( , , ). , . ~/.xinitrc



. startx



.





Leben ohne DM
DM
Leben mit SDDM
c SDDM

:





  • GDM GNOME;





  • SDDM KDE;





  • LightDM — ;





  • FlyDM — Astra Linux.





(DE) , , :





  • ;





  • ;





  • ;





  • ;





  • , ;





  • ;





  • , ;





  • ( );





  • ., .





, GNOME KDE, , . Awesome i3.





Window Manager Window Maker
Window Maker

Window Maker GNUstep. GNUstep NeXTSTEP. .





— , , . , Windows Forms , Motif (Open Motif ).





GTK Qt. GTK GIMP GNOME. C , Python C++, Vala. Qt — , ( - ). C++ , (). . KDE .





API

Mesa — . API OpenGL , , Vulkan ( API VDPAU VAAPI). , Mesa , DirectX .





, , , , .





PAM — Pluggable Authentication Modules — . , , , . PAM , PAM Kerberos ( MIT' krb5), PAM . ( so



) . , (pam_mkhomedir.so



) (pam_mount.so



).





su sudo ( root



). — su , - , sudo — . sudo , - , - .





Polkit . sudo, , sudo — . , , JavaScript'.





Linux Security Modules (LSM) — Linux, ́ . ́ , . — SELinux AppArmor. Red Hat, Immunix Canonical Ltd. , SELinux RHEL , AppArmor — Ubuntu. . , , . , - . - . , .





GNU/Linux , , , .





CUPS — « UNIX», Apple. , , , . CUPS - ( localhost:631).





MĂŒndungsbecher
CUPS

CUPS , SANE. , SANE . CUPS. , , HPLIP HP Inc. HPLIP GNU/Linux HP. , HPLIP CUPS , HP CUPS, . hp-setup



.





ALSA. , PulseAudio ALSA. , PulseAudio — , , . JACK, . , MIDI-.





Red Hat PipeWire PulseAudio JACK. .





POSIX- . GNU/Linux , (IPC) -. D-Bus, . ? , , . .





GNU/Linux ( ). NetworkManager — Red Hat, , . NM , . NetworkManager , , , VLAN' , , nmtui



nmcli



. , Red Hat, , Debian , « » NM . , — Wicd.





WiFi-, , WPA supplicant, iwd, , Intel.





Bluez, Bluetooth-.





iptables . , , Linux Netfilter. ( ) nftables nft. , , IPv4, IPv6, ARP L2-. iptables nftables . , nft iptables.





- nftables ( ), RHEL firewalld, Ubuntu — UFW.





— . — RPM Red Hat dpkg Debian. — pacman Arch Linux. RPM dpkg : , , . , . RHEL yum, dnf, Debian apt-get apt-cache, apt. pacman , . , . nix, .





— - . , ( GNU/Linux). : Flatpack Gnome, Snap Canonical AppImage . , . , . .





, — GNOME Software KDE Discover.





KDE entdecken
KDE Discover
GNOME-Software mit einer Markentaste in der Titelleiste
GNOME Software

:





Zeitgenössisches GNU / Linux aus Sicht eines KĂŒnstlers
GNU/Linux

GNU/Linux, , . :





  • GNU Free Software Foundation;





  • Red Hat, , IBM;





  • kernel.org Linux Foundation.





, , — , ? , : open source. , . , , - , , -, . , GNU/Linux, - .






@ajijiadduh, , , .





Sie können Änderungen und VorschlĂ€ge an https://gitlab.com/bergentroll/gnu-linux-anatomy senden .





Copyright © 2020 Anton "Bergentroll" Karmanov.





Diese Arbeit ist unter der Lizenz Attribution-ShareAlike 4.0 Worldwide (CC BY-SA 4.0) lizenziert .












All Articles