FreeBSD:比GNU / Linux好得多

将FreeBSD与GNU / Linux系统进行比较。所有这些都是主观意见!这很多只是我的经验。到目前为止,我花了将近100%的时间全部花在计算机上,并且只花在Unix系统上,与FreeBSD和GNU / Linux差不多,这已经有20多年了。

使用大部分的FreeBSD的优点也适用于其他流行的免费的BSD系统:NetBSD的,OpenBSD的,DragonflyBSD。这些系统中的某些东西会变得更好,很多东西在FreeBSD中不是第一次出现,而是迁移到了它。 FreeBSD从NetBSD(各种驱动程序和子系统),OpenBSD(网络技术),DragonflyBSD(多处理器平台上的最佳可伸缩性),Solaris(DTrace,Jails,ZFS的构想)继承了很多优点。

简而言之,FreeBSD代表着高质量,可靠性,可用性和易用性。GNU / Linux是一个动物园,是松散耦合代码的垃圾堆,几乎无法完成到最后,缺少文档,混乱,集市。

主要区别


FreebsdGNU / Linux
BSD是一个完整的完整操作系统,是作为一个整体开发的。如果您决定添加对Zstd压缩算法的支持,那么这不仅会出现在压缩器中,还会出现在syslog旋转和其他位置。如果有用于发布任何统计信息的命令,则它们都使用libxo之类的库,以统一各种输出选项。所有团队都在一个梳子下创建。
GNU只是一套软件,由其名称,版权持有者,创建文档和配置程序集的技巧结合在一起。 Linux是Hurd或FreeBSD的内核选项之一。有数百(数千个)发行版将所有这些结合在一起,并具有完全不同的需求,包管理器,方法,质量控制等。有发行版,几乎没有GNU软件。有些发行版不使用Linux。

实际上,软件中的文档,配置和信息输出之间没有任何统一。随处可见,这个小程序/实用程序是由一个人编写的,而另一个是另一个人编写的。处处和处处都有不同的处理方法:一个人这样认为,另一个人这样认为。

基本上,要使所有内容具有统一的外观是必须由必须维护软件的发行维护人员承担的,因此可以向作者添加一些内容,因为作者并不总是同意任何更改。所提供软件的便利性和质量(排列整齐的文档,对日志轮换系统,日志记录系统,定期任务等的守护程序进行说明)取决于维护者。

实际上,如果您现在就使用最新的Ubuntu发行版,那么您就不是不能将其放置在第一个硬盘上,不是可以安装GRUB引导加载程序的事实,不是可以配置IPv6的事实,不是在第一个软件包更新之后的事实。在安装过程中,所有内容都会启动。最近,我遇到了无法在Ubuntu中的网络接口上正确配置MTU的问题(严重!!)。在实践中,我经历了所有这些琐碎的动作,这些动作经常崩溃,无法正常工作。

使用GNU / Linux发行版,您可以获得一千个软件组件以及GNOME,NetworkManager和类似的东西,然后关闭并删除后者。而且,您可以获得的发行版没有编译器,甚至没有能够使用IPv6的netcat实用程序(而且将没有telnet,也没有socat),几乎没有什么适合检查OS网络的可操作性。
BSD系统软件的质量好得多。如果开发人员说这样的功能已经准备好用于工业用途,那么事实就是这样。多年来,操作系统中可以包含许多功能,但要大声说它是“实验性的”,只有在检查了开发人员的时间和信心之后,才会删除此标记。
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, inotifyepoll . 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 .
对于流行发行版的主要部分开始积极使用systemd的事实,以及不使用* BSD的事实,它已经成为了杀手silent,我对此保持沉默。但是,如果您选择无系统发行版,那就好了。同时,在FreeBSD中,NetBSD和OpenBSD是最先进的引导系统,它支持服务之间的依赖关系,可以使用简单的文本文件轻松配置,并用少量的纯shell编写。

GNU / Linux真的没有优点吗?我可以马上说,一些重要的GNU软件比BSD选项要快得多:sedgrep我放了GNU-shny。这通常以使代码复杂和各种技巧为代价,但是不能完全降低性能。顺便说一下,OpenBSD不能吹嘘-它不能在多个处理器上很好地扩展。

All Articles