GNU / Linuxの解剖学

少し前にHabréで、「なぜ私がLinuxを選択しなかったのか」というトピックに関する小さな投稿の波がありました。まともな狂信者として、私は髪を切ったが、コメントでコピーを壊すよりも、私のお気に入りのシステムについて何かを話す方が生産的であると判断した。





多くのGNU / Linuxユーザーは、このオペレーティングシステムが何でできているのかほとんどわからないという印象を受けたため、手元にある断片からそれが不明瞭になっていると主張しています。同時に、ほとんどのディストリビューションのアーキテクチャは十分に確立されており、freedesktop.orgグラフィカル環境標準やUnix標準を拡張するLinux標準ベースなどの多くの標準によって管理されています。数年前にGNU / Linuxを紹介されたとき、私は浸漬のための典型的な分布の単純な解剖学的マップを欠いていたので、それについて自分で話そうと思います。





ローダ

オペレーティングシステムセッションは、ハンガーからの劇場のようなブートローダーから始まります。今日ブートローダデフォルトはGNU GRUBとしても知られている、GRUB 2。現在「GRUBLegacyと呼ばれている最初のブランチは、引き続き利用できます。長い歴史を持つもう1つのブートローダーはSyslinuxです。





ブートローダーの仕事は、Linuxカーネルを初期化することです。これを行うには、一般に、カーネルがどこにあるかを知り、この場所を読み取ることができる必要があります(たとえば、セクションExt4)。カーネルを支援するために、ブートローダーは通常、最初のブートイメージもプルします。これについては後で説明します。GRUBは、非常に複雑なメニューの作成や他のブートローダー(Windows Boot Managerなど)のチェーンロードなど、他の多くのことを行います。GRUBにはシェルのような構成構文があり、モジュールで拡張できます。





GRUBは大きくて強力で、時には強力すぎることもあり、組み込みシステムはコンパクトなDasU-Bootを使用することがよくあります





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

Weston — Wayland. . , weston



.





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





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



. startx



.





DMのない生活
DM
SDDMとの生活
c SDDM

:





  • GDM GNOME;





  • SDDM KDE;





  • LightDM — ;





  • FlyDM — Astra Linux.





(DE) , , :





  • ;





  • ;





  • ;





  • ;





  • , ;





  • ;





  • , ;





  • ( );





  • ., .





, GNOME KDE, , . Awesome i3.





ウィンドウマネージャーウィンドウメーカー
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).





銃口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ディスカバー
KDE Discover
タイトルバーにブランドボタンが付いたGNOMEソフトウェア
GNOME Software

:





アーティストから見た現代のGNU / Linux
GNU/Linux

GNU/Linux, , . :





  • GNU Free Software Foundation;





  • Red Hat, , IBM;





  • kernel.org Linux Foundation.





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






@ajijiadduh, , , .





編集や提案はhttps://gitlab.com/bergentroll/gnu-linux-anatomyに送信できます





Copyright©2020Anton "bergentroll" Karmanov。





この作品は、Attribution-ShareAlike 4.0 Worldwide(CC BY-SA 4.0)ライセンスの下でライセンスされています。












All Articles