فري: أفضل بكثير من جنو / لينكس

قارن FreeBSD مع أنظمة جنو / لينكس. كل هذا هو رأي شخصي حصري! الكثير من هذا هو تجربتي فقط. ما يقرب من 100٪ من الوقت الذي أمضيه على الكمبيوتر وحصريًا على أنظمة Unix ، تقريبًا مثل FreeBSD و GNU / Linux ، لمدة تزيد عن 20 عامًا حتى الآن.

تُستخدم أيضًا على معظم مزايا FreeBSD أيضًا على أنظمة BSD المجانية الشائعة الأخرى: NetBSD و OpenBSD و DragonflyBSD. شيء ما في هذه الأنظمة سيكون أفضل ، الكثير من الأشياء لم تظهر لأول مرة في FreeBSD ، ولكن تم ترحيلها إليه. يرث FreeBSD الكثير من NetBSD (برامج تشغيل وأنظمة فرعية مختلفة) ، من OpenBSD (تقنيات الشبكة) ، DragonflyBSD (أفضل قابلية التوسع على الأنظمة الأساسية متعددة المعالجات) ، من Solaris (DTrace ، فكرة Jails ، ZFS) ، والجمع بين الأفضل على الإطلاق.

باختصار ، FreeBSD تعني الجودة العالية والموثوقية وسهولة الاستخدام وسهولة الاستخدام. غنو / لينكس هو حديقة حيوانات ، ومكب تفريغ للشفرة المزدوجة ، القليل الذي يمكن استكماله حتى النهاية ، ونقص التوثيق ، والفوضى ، والبازار.

الاختلافات الرئيسية


فريغنو / لينكس
BSD هو نظام تشغيل كامل كامل ، تم تطويره ككل. إذا قررت إضافة دعم لخوارزمية ضغط Zstd ، فإن هذا لا يظهر فقط في الضواغط ، ولكن أيضًا في تدوير سجل النظام وأماكن أخرى. إذا كانت هناك أوامر لإصدار أي إحصائيات ، فإنهم جميعًا يستخدمون مكتبة مثل libxo ، لتوحيد خيارات الإخراج المختلفة. يتم إنشاء جميع الفرق تحت مشط واحد.
غنو مجرد مجموعة من البرامج ، يوحدها اسمها ، وأصحاب حقوق النشر ، ونصائح لإنشاء الوثائق وتكوين التجميع. Linux هو أحد خيارات kernel ، إلى جانب Hurd أو FreeBSD. هناك المئات (آلاف؟) من التوزيعات التي تجمع كل هذا معًا ، مع متطلبات مختلفة تمامًا ومختلفة ، ومديري الحزم ، والمناهج ، ومراقبة الجودة ، وما إلى ذلك. هناك توزيعات وتقريبا لا يوجد برمجيات غنو. هناك توزيعات لا تستخدم لينكس.

لا يوجد في الواقع أي توحيد للوثائق والتكوين وإخراج المعلومات في البرنامج. في كل مكان وفي كل مكان سيكون من الواضح والواضح أن هذا البرنامج الصغير / الأداة الصغيرة مكتوبة من قبل شخص واحد ، وهذا واحد آخر. في كل مكان وفي كل مكان توجد طرق مختلفة لكل شيء: يعتقد أحدهما ذلك ، والآخر يعتقد ذلك.

بشكل أساسي ، فإن الاهتمام بإحضار كل شيء إلى مظهر موحد واحد يعتمد على أكتاف مشرف التوزيع الذين يجب عليهم تعديل البرنامج ، فمن الممكن إلحاق شيء بالمؤلف ، لأن المؤلف لا يوافق دائمًا على أي نوع من التغيير. الراحة والجودة (الوثائق الموضوعة بدقة ، والمحاسبة للديون في أنظمة تدوير السجلات ، ونظام التسجيل ، والمهام الدورية ، وما إلى ذلك) من البرامج المقدمة تعتمد على المشرفين.

من الناحية العملية ، إذا كنت تأخذ واحدة من أحدث توزيعات Ubuntu الآن ، فأنت لست حقيقة أنه لا يمكنك تثبيته على القرص الصلب الأول ، وليس حقيقة أنه يمكن تثبيت برنامج تحميل GRUB ، وليس حقيقة أنه يمكنك تكوين IPv6 ، وليس حقيقة أنه بعد تحديث الحزمة الأولى أثناء التثبيت ، سيتم تشغيل كل شيء. في الآونة الأخيرة ، واجهت عدم القدرة على تكوين MTU بشكل صحيح على واجهة شبكة في Ubuntu (بجدية!؟). كل هذا الذي مررت به في الممارسة العملية ومثل هذه الإجراءات التافهة تنهار بانتظام ولا تنجح.

باستخدام توزيعة غنو / لينكس ، يمكنك الحصول على ألف مكون برمجي جنباً إلى جنب مع جنوم ، و NetworkManager ، وما شابه ، ثم إيقاف تشغيل الأخير وإلغاء تثبيته. ويمكنك الحصول على توزيع لا يحتوي على مترجمين وحتى أدوات netcat التي ستكون قادرة على IPv6 (ولن يكون هناكtelnet ، ولا socat ) ، ولديها القليل المناسب حتى للتحقق من قابلية تشغيل شبكة نظام التشغيل.
جودة برامج أنظمة 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 غير مستخدم بالفعل هي ميزة قاتلة. ولكن إذا أخذت التوزيع بدون نظام ، فلا بأس. في الوقت نفسه ، في FreeBSD ، بين NetBSD و OpenBSD ، نظام التمهيد الأكثر تقدمًا الذي يدعم التبعيات بين الخدمات ، والتي يمكن تكوينها بسهولة باستخدام ملف نصي بسيط ، مكتوب بكمية صغيرة من الصدفة الخالصة.

هل حقا لا يملك غنو / لينكس أي جدوى؟ أستطيع أن أقول على الفور أن بعض برامج جنو المهمة أسرع بكثير من خيارات بي إس دي: sed و grepأضع GNU-shny. غالبًا ما يكون هذا على حساب تعقيد الشفرة وجميع أنواع الحيل ، ولكن لا يمكن خصم الأداء تمامًا. ما ، بالمناسبة ، لا يمكن لـ OpenBSD التفاخر به - لا يتطور بشكل جيد على معالجات متعددة.

All Articles