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 .

Weston — Wayland. . , weston
.
. « » (root window), , , «» , . «» . .
, (DM) . , , ( ) . - , ( , , ). , . ~/.xinitrc
. startx
.


:
GDM GNOME;
SDDM KDE;
LightDM — ;
FlyDM — Astra Linux.
(DE) , , :
;
;
;
;
, ;
;
, ;
( );
., .
, GNOME KDE, , . Awesome i3.

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).

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.


:

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) .