FreeBSD: Viel besser als GNU / Linux

Vergleichen Sie FreeBSD mit GNU / Linux-Systemen. All dies ist ausschließlich eine subjektive Meinung! Vieles davon ist nur meine Erfahrung. Fast 100% der Zeit, die ich seit über 20 Jahren auf einem Computer und ausschließlich auf Unix-Systemen verbringe, ungefähr so ​​viel wie FreeBSD und GNU / Linux.

Verwendet auf den meisten FreeBSD Vorteile gilt auch für andere populäre freie BSD - Systeme: NetBSD, OpenBSD, DragonflyBSD. Etwas in diesen Systemen wird besser sein, viele Dinge wurden nicht zum ersten Mal in FreeBSD angezeigt, sondern darauf migriert. FreeBSD erbt viel von NetBSD (verschiedene Treiber und Subsysteme), von OpenBSD (Netzwerktechnologien), DragonflyBSD (beste Skalierbarkeit auf Multiprozessor-Plattformen), von Solaris (DTrace, die Idee von Jails, ZFS) und kombiniert das Beste von allem.

Kurz gesagt, FreeBSD steht für hohe Qualität, Zuverlässigkeit, Benutzerfreundlichkeit und Benutzerfreundlichkeit. GNU / Linux ist ein Zoo, eine Müllkippe mit lose gekoppeltem Code, wenig, das bis zum Ende fertiggestellt werden kann, mangelnde Dokumentation, Chaos, ein Basar.

Die Hauptunterschiede


FreebsdGNU / Linux
BSD ist ein vollständiges Betriebssystem, das als Ganzes entwickelt wurde. Wenn Sie den Zstd-Komprimierungsalgorithmus unterstützen möchten, wird dies nicht nur in Kompressoren, sondern auch in der Syslog-Rotation und an anderen Stellen angezeigt. Wenn es Befehle zum Ausgeben von Statistiken gibt, verwenden alle eine Bibliothek wie libxo , um die verschiedenen Ausgabeoptionen zu vereinheitlichen. Alle Teams werden unter einem Kamm erstellt.
GNU ist nur eine Reihe von Software, die sich aus Namen, Copyright-Inhabern, Tipps zum Erstellen von Dokumentationen und zum Konfigurieren der Assembly zusammensetzt. Linux ist neben Hurd oder FreeBSD eine der Kerneloptionen. Es gibt Hunderte (Tausende?) Von Distributionen, die all dies miteinander kombinieren, mit völlig unterschiedlichen und unterschiedlichen Anforderungen, Paketmanagern, Ansätzen, Qualitätskontrolle und so weiter. Es gibt Distributionen und fast keine GNU-Software. Es gibt Distributionen, die kein Linux verwenden.

Es gibt wirklich keine Vereinheitlichung von Dokumentation, Konfiguration und Informationsausgabe in Software. Überall und überall wird klar und deutlich sichtbar, dass dieses kleine Programm / Dienstprogramm von einer Person und dieses von einer anderen Person geschrieben wurde. Überall und überall gibt es unterschiedliche Ansätze für alles: einer glaubt es, der andere glaubt es.

Grundsätzlich liegt die Sorge, alles zu einem einheitlichen Erscheinungsbild zu bringen, auf den Schultern der Distributionsbetreuer, die die Software bearbeiten müssen. Es ist möglich, etwas an den Autor anzuhängen, da der Autor keiner Änderung zustimmt. Komfort und Qualität (übersichtliche Dokumentation, Berücksichtigung von Dämonen in Protokollrotationssystemen, Protokollierungssystem, regelmäßige Aufgaben usw.) der bereitgestellten Software hängen von den Betreuern ab.

Wenn Sie jetzt eine der neuesten Ubuntu-Distributionen verwenden, ist dies in der Praxis keine Tatsache, dass Sie sie nicht auf der ersten Festplatte ablegen können, keine Tatsache, dass der GRUB-Bootloader installiert werden kann, keine Tatsache, dass Sie IPv6 konfigurieren können, keine Tatsache, dass nach dem ersten Paket-Update Während der Installation wird alles gestartet. Vor kurzem war ich mit der Unfähigkeit konfrontiert, MTU auf einer Netzwerkschnittstelle in Ubuntu richtig zu konfigurieren (ernsthaft !?). All dies habe ich in der Praxis durchgemacht und solche trivialen Aktionen brechen regelmäßig zusammen und funktionieren nicht.

Mit der GNU / Linux-Distribution können Sie tausend Softwarekomponenten zusammen mit GNOME, NetworkManager und dergleichen erhalten und diese dann deaktivieren und deinstallieren. Und Sie können ein Distributionskit erhalten, das keine Compiler oder sogar Netcat- Dienstprogramme enthält, die IPv6 verarbeiten können (und es wird keine gebenTelnet oder Socat ), die wenig zur Hand haben, was selbst zur Überprüfung der Funktionsfähigkeit des Betriebssystemnetzwerks geeignet ist.
Die Qualität der BSD-Systemsoftware ist viel besser. Wenn die Entwickler sagen, dass diese und jene Funktionalität für den industriellen Einsatz bereit ist, dann ist dies so. Im Laufe der Jahre können viele Funktionen in das Betriebssystem aufgenommen werden, mit lauten Hinweisen, dass es EXPERIMENTELL ist, und erst nach Überprüfung der Zeit und des Vertrauens der Entwickler wird diese Markierung entfernt.
Linux - , , , , , , . btrfs production ready, ( Facebook — ), .

- . POSIX file locks, , Linux.
, . , fstat, gstat, ifmcstat, iostat, ipfstat, kldstat, lockstat, netstat, nfsstat, plockstat, pmcstat, procstat, pstat, sockstat, vmstat . - ? acpiconf, atmconfig, bsdconfig, ifconfig, kldconfig, mdconfig, pciconf, usbconfig, sysctl, sysrc. , , .

Framework : rc , ifconfig .

FreeBSD firewall-: ipf, ipfw, pf — /, firewall-. ipfw IPv4, IPv6, TCP/UDP/SCTP, ICMP*, Ethernet, traffic shaper/scheduler, NAT, NAT64, NPTv6, IPsec, stateless/stateful firewall .

, , sysctl.
IP , ifconfig ip. , route ip. TUN/TAP , tunctl ip. bridge , brctl ip. bond, ifenslave ip. IPsec SA, setkey ip. iwconfig, ip. , iptunnel, ip. MAC, nameif, ip.

ip , ? STP bridge brctl, . , , . FreeBSD ifconfig.

Framework- : shell-based Debian, NetworkManager, systemd . - .

iptables, ipchains? Ethernet ebtables, IPv6 ip6tables, ARP arptables. , , iptables — , / ufw.

? . deprecated nftables. deprecated bpfilter . firewalld.

sysctl /sys, .

fdisk, parted, gdisk, sfdisk, gparted. MBR/GPT , , / , 100%/full? . FreeBSD gpart , , , , / .
12+ ZFS .
ZFS-on-Linux, , production-ready, . ARC Linux-, , , , . Linux ARC- RAM/2 — . TRIM , ZFS SSD.
man- , , , FreeBSD Handbook. , Unix, . ? man intro, intro . OpenBSD man-, handbook-, .
GNU/Linux , , . ( !) — stackexchange.com -. , . , , .
/ GNU/Linux ( /, ), — WhatsApp, 2M+ TCP . 60% ( ) Netflix, FreeBSD. — , FreeBSD. - Quake3-for-Linux FreeBSD 10-15% FPS.
GNU/Linux - , , .
.
, / OOM killer - («», ) SSH . user-space - : earlyoom, oomd, low-memory-monitor, nohang.
. — , - — . : , CUPS - GIMP?
, , - : - . — . : vim-full vim-minimal, , maintainer-.
, . , , GNU/Linux .
, , desktop- .
IPsec ESP , TFC, ESN — 10Gbps+ . Security Policies .
ESPv3 ESN TFC , , strongSwan, identities Security Policies. .

GNU/Linux


FreeBSDGNU/Linux
Production-ready ZFS 12+ .

UFS2 . UFS2, FreeBSD , ext3/ext4 .
production ready ZFS . TRIM .

ext4 10 UFS2 Linux inode allocation. , ext4 . ivi.ru ( , , ) ext4 .

ext4 16 TiB 4K .

ReiserFS , , .

GNU/Linux XFS, 90- SGI IRIX.
GEOM ( ) . : CACHE — ; CONCAT — JBOD; ELI — ; JOURNAL — ( ); LABEL — labeling; MIRROR — ; MULTIPATH — I/O multipath; NOP — , , ; RAID, RAID3; SCHED — I/O; SHSEC — ; STRIPE — striping. RAID3 , stripe- . ( target initiator) iSCSI iSER.
dm , , RAID-. iSCSI , .

, Linux losetup, .
netgraph / . L2TP, ATM, PPP, Bluetooth, PPTP, HDLC pipe- , firewall-, tee, .…
.
/ DTrace ( Solaris).
SystemTap, . DTrace real-time. SystemTap — .
jail 2000- . VIMAGE. rctl.
LXC, , 10 .
capsicum — capability and sandbox framework, . OpenBSD framework . FreeBSD , .
Linux . , ( GNU) , , .
2000- kqueue . API I/O , , , AIO.
Linux, FreeBSD, , - , epoll.

dnotify, inotify — epoll . kqueue.
2016- FreeBSD ZFS Boot Environment, Solaris.
- 2019-.
ZFS, NFSv4 ACL, POSIX ACL.
( ext3/ext4) NFSv4 ACL.
OSS4 - API. Resampling, , , , , bit-perfect .

sndio OpenBSD resampling, , ( , ), , , , MIDI ( ), near real-time .

- OSS, ALSA ( ). ALSA, , PulseAudio, . . JACK ( OSS4). PipeWire PulseAudio.
IPv6 IPsec ( IKE/ISAKMP) 1998 OpenBSD, FreeBSD.
IPsec .
2000- Yarrow PRNG /dev/random Fortuna.
Linux Fortuna, ChaCha20 PRNG, Yarrow, .
CARP ( OpenBSD), VRRP, .
ucarp .
2015- GELI .
dm-integrity .
IPv6-only .
IPv4-/ IPv6-only .
Ich schweige über die Tatsache, dass der überwiegende Teil der populären Distributionen begann, systemd aktiv zu nutzen, und die bloße Tatsache, dass * BSD nicht verwendet wird, ist bereits ein Killer-Feature. Aber wenn Sie die systemd-freie Distribution nehmen, dann gut. Gleichzeitig ist in FreeBSD unter NetBSD und OpenBSD das fortschrittlichste Boot-System, das Abhängigkeiten zwischen Diensten unterstützt, einfach mit einer einfachen Textdatei zu konfigurieren, die in einer kleinen Menge reiner Shell geschrieben ist.

Hat GNU / Linux wirklich keinen Wert? Ich kann sofort sagen, dass einige wichtige GNU-Software viel schneller ist als die BSD-Optionen: sed und grepIch habe GNU-shny gesetzt. Dies geht oft zu Lasten der Komplikation des Codes und aller Arten von Tricks, aber die Leistung kann nicht vollständig reduziert werden. Was OpenBSD übrigens nicht vorweisen kann - es lässt sich auf mehreren Prozessoren nicht gut skalieren.

All Articles