Π Π΅Π»ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы DragonFly BSD 5.8

ДоступСн Ρ€Π΅Π»ΠΈΠ· DragonFlyBSD 5.8, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы с Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΌ ядром, созданной Π² 2003 Π³ΠΎΠ΄Ρƒ с Ρ†Π΅Π»ΡŒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ развития Π²Π΅Ρ‚ΠΊΠΈ FreeBSD 4.x. Из особСнностСй DragonFly BSD ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму HAMMER, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ «Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…» ядСр систСмы ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚Π°-Π΄Π°Π½Π½Ρ‹Ρ… Π€Π‘ Π½Π° SSD-накопитСлях, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ контСкст Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ символичСскиС ссылки, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΊΠΈ процСссов с сохранСниСм ΠΈΡ… состояния Π½Π° дискС, Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠ΅ ядро, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ лСгковСсныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ (LWKT).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² DragonFlyBSD 5.8:

  • Π’ основной состав Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° dsynth, прСдназначСнная для локальной сборки ΠΈ сопровоТдСния собствСнных Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² DPort. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ распараллСливаниС сборки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа ΠΏΠΎΡ€Ρ‚ΠΎΠ², учитывая Π΄Π΅Ρ€Π΅Π²ΠΎ зависимостСй. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ выпуска Π² DPort Ρ‚Π°ΠΊΠΆΠ΅ внСсСно большоС число ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ускорСниС сборки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… зависимых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
  • Π’ libc Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ эффСктивный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ маскирования сигналов, позволивший Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ malloc*() ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ·-Π·Π° ΠΈΡ… прСрывания сигналом. Для краткосрочной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ сигналов ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sigblockall() ΠΈ sigunblockall(), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π±Π΅Π· ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² libc функция strtok() Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° для примСнСния Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… прилоТСниях, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ константы TABDLY, TAB0, TAB3 ΠΈ функция__errno_location для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ dports.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ интСрфСйса DRM (Direct Rendering Manager) синхронизированы с ядром Linux 4.9 с ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ· ядра 4.12 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Wayland.
    Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ drm/i915 для GPU Intel синхронизирован с ядром Linux 4.8.17 c пСрСносом ΠΈΠ· ядра 5.4 ΠΊΠΎΠ΄Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ² (Skylake, Coffelake, Amber Lake, Whiskey Lake ΠΈ Comet Lake). Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ drm/radeon для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ AMD синхронизирован с ядром Linux 4.9.

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти, позволившиС ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ Π² интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти. Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с подвисаниям Chrome/Chromium ΠΏΡ€ΠΈ нСдостаткС систСмной памяти.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ядра Π½Π° систСмах с большим числом процСссорных ядСр. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ врСмя запроса страниц Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π° конкурСнция SMP Π² условиях нСдостатка памяти. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° «open(… O_RDWR)».
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ псСвдослучайных чисСл Π² ядрС. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ RDRAND Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ для накоплСния энтропии ΠΎΡ‚ всСх CPU. Π‘Π½ΠΈΠΆΠ΅Π½Π° ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ
    ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠΎΡ€ΠΌΠΊΠΈ RDRAND, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°Π½ΡŒΡˆΠ΅ ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΎ 2-3% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ CPU Π²ΠΎ врСмя простоя.

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ realpath, getrandom ΠΈ lwp_getname (ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ pthread_get_name_np).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ SMAP (Supervisor Mode Access Prevention) ΠΈ SMEP (Supervisor Mode Execution Prevention). SMAP позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, выполняСмого Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра. SMEP Π½Π΅ Π΄Π°Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, находящСгося Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Ρ‚ΠΎ позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠ½ΠΎΠ³ΠΈΡ… уязвимостСй Π² ядрС (shell-ΠΊΠΎΠ΄ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ находится Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ);
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ sysctl-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для настройки Jail. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ монтирования nullfs ΠΈ tmpfs ΠΈΠ· Jail.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы HAMMER2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² процСссС восстановлСния послС сбоя. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ допускаСтся Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ inode ΠΏΠΎ мСсту (позволяСт ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€ΠΈ отсутствии свободного дискового пространства, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ copy-on-write). Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, благодаря ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ диспСтчСризации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² HAMMER2. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ процСсс сброса Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² (flush).
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TMPFS. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ свободной памяти Π² систСмС.
  • Π’ сСтСвом стСкС для IPv4 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прСфиксов /31 (RFC 3021).
    Π’ tap ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ioctl SIOCSIFMTU для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ MTU > 1500. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SIOCSIFINFO_IN6 ΠΈ SO_RERROR.

  • C FreeBSD синхронизирован Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ iwm с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ бСспроводных Ρ‡ΠΈΠΏΠΎΠ² Intel (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° iwm-9000 ΠΈ iwm-9260).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ совмСстимыС с Linux Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ basename() ΠΈ dirname() для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ совмСстимости Π² ΠΏΠΎΡ€Ρ‚Π°Ρ….
  • Из FreeBSD пСрСнСсСны fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 Π² libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Из OpenBSD пСрСнСсСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· math.h.
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ вСрсии сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ компилятор gcc-8.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru