Anatomi GNU / Linux

Beberapa waktu lalu di Habré ada gelombang kecil postingan dengan topik “Mengapa saya [tidak] memilih Linux”. Sebagai seorang fanatik yang baik, saya dipotong rambut, tetapi saya memutuskan bahwa lebih produktif untuk menceritakan sesuatu tentang sistem favorit saya daripada memecahkan salinan di komentar.





Saya mendapat kesan bahwa banyak pengguna GNU / Linux memiliki sedikit gagasan tentang apa yang membuat sistem operasi ini, jadi mereka mengklaim bahwa itu kabur dari potongan-potongan yang ada. Pada saat yang sama, arsitektur sebagian besar distribusi sudah mapan dan diatur oleh sejumlah standar, termasuk standar lingkungan grafis freedesktop.org dan Linux Standard Base, yang memperluas standar Unix. Ketika saya diperkenalkan ke GNU / Linux beberapa tahun yang lalu, saya kekurangan peta anatomi sederhana dari distribusi tipikal untuk pencelupan, jadi saya akan mencoba memberi tahu Anda tentangnya sendiri.





Pemuat

Sesi sistem operasi dimulai dengan bootloader seperti teater dari gantungan. Bootloader default saat ini adalah GNU GRUB , juga dikenal sebagai GRUB 2 . Cabang pertama, sekarang disebut " GRUB Legacy ", masih tersedia . Bootloader lain dengan sejarah panjang adalah Syslinux .





Tugas bootloader adalah menginisialisasi kernel Linux. Untuk melakukan ini, secara umum, Anda perlu mengetahui di mana kernel berada dan dapat membaca tempat ini (bagian Ext4, misalnya). Untuk membantu kernel, bootloader biasanya juga menarik image boot awal, yang akan kita bicarakan nanti. GRUB dapat melakukan banyak hal lain, seperti membangun menu yang sangat kompleks dan memuat berantai pemuat boot lainnya (Windows Boot Manager misalnya). GRUB memiliki sintaks konfigurasi seperti shell dan dapat dikembangkan dalam modul.





GRUB besar dan bertenaga, terkadang terlalu bertenaga, dan sistem tertanam sering menggunakan Das U-Boot yang ringkas .





Inti

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 .





Manajer Jendela Weston
Weston

Weston — Wayland. . , weston



.





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





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



. startx



.





Hidup tanpa DM
DM
Hidup dengan SDDM
c SDDM

:





  • GDM GNOME;





  • SDDM KDE;





  • LightDM — ;





  • FlyDM — Astra Linux.





(DE) , , :





  • ;





  • ;





  • ;





  • ;





  • , ;





  • ;





  • , ;





  • ( );





  • ., .





, GNOME KDE, , . Awesome i3.





Pembuat Jendela Window Manager
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).





Moncong CUPS
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 Temukan
KDE Discover
Perangkat Lunak GNOME dengan tombol bermerek di bilah judul
GNOME Software

:





GNU / Linux kontemporer seperti yang dilihat oleh seorang seniman
GNU/Linux

GNU/Linux, , . :





  • GNU Free Software Foundation;





  • Red Hat, , IBM;





  • kernel.org Linux Foundation.





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






@ajijiadduh, , , .





Anda dapat mengirimkan hasil edit dan saran ke https://gitlab.com/bergentroll/gnu-linux-anatomy .





Hak Cipta © 2020 Anton "bergentroll" Karmanov.





Karya ini dilisensikan di bawah lisensi Attribution-ShareAlike 4.0 Worldwide (CC BY-SA 4.0) .












All Articles