Paglabas ng DragonFly BSD 5.8 operating system

Magagamit pakawalan DragonFlyBSD 5.8, isang operating system na may hybrid kernel, nilikha noong 2003 para sa layunin ng alternatibong pagpapaunlad ng sangay ng FreeBSD 4.x. Kabilang sa mga tampok ng DragonFly BSD, maaari naming i-highlight ang isang distributed versioned file system HAMMER, suporta para sa paglo-load ng "virtual" na mga kernel ng system bilang mga proseso ng user, ang kakayahang mag-cache ng data ng FS at metadata sa mga SSD drive, mga link na simbolikong variant na sensitibo sa konteksto, ang kakayahang mag-freeze ng mga proseso habang sine-save ang kanilang estado sa disk, isang hybrid na kernel gamit ang magaan na mga thread (LWKT) .

Ang pangunahing mga pagpapabutiidinagdag sa DragonFlyBSD 5.8:

  • Kasama sa pangunahing komposisyon ang utility dsynth, na idinisenyo para sa lokal na pagpupulong at pagpapanatili ng iyong sariling DPort binary repository. Ang parallelization ng pagpupulong ng isang arbitrary na bilang ng mga port ay sinusuportahan, na isinasaalang-alang ang dependency tree. Bilang paghahanda para sa bagong release, gumawa din ang DPort ng malaking bilang ng mga pagbabago na naglalayong pabilisin ang pagbuo ng ilang mga nakadependeng pakete.
  • Ang libc ay nagpapatupad ng isang epektibong mekanismo ng pag-mask ng signal, na ginagawang posible na protektahan ang malloc*() at mga katulad na function mula sa mga problema dahil sa pagkagambala ng mga ito ng isang signal. Para sa panandaliang pagharang at pag-unblock ng mga signal, ang sigblockall() at sigunblockall() function ay iminungkahi, na gumagana nang hindi gumagawa ng system call. Bilang karagdagan, inangkop ng libc ang strtok() function para sa paggamit sa mga multi-threaded na application, idinagdag ang mga constant na TABDLY, TAB0, TAB3 at ang __errno_location function upang mapabuti ang suporta sa dports.
  • Ang mga bahagi ng interface ng DRM (Direct Rendering Manager) ay naka-synchronize sa Linux kernel 4.9, na may mga piling feature na naka-port mula sa 4.12 kernel na naglalayong pahusayin ang suporta sa Wayland.
    Ang drm/i915 driver para sa mga Intel GPU ay naka-synchronize sa Linux kernel 4.8.17 na may code na inilipat mula sa 5.4 kernel upang suportahan ang mga bagong chips (Skylake, Coffelake, Amber Lake, Whiskey Lake at Comet Lake). Ang drm/radeon driver para sa AMD video card ay naka-synchronize sa Linux 4.9 kernel.

  • Ang mga algorithm ng paging ng virtual na memorya ay lubos na napabuti, na nagpapahintulot sa amin na alisin o bawasan ang mga problema sa pagtugon sa interface ng gumagamit kapag walang sapat na memorya. Ang mga problema sa pagyeyelo ng Chrome/Chromium dahil sa hindi sapat na memorya ng system ay nalutas na.
  • Pinahusay na kernel scaling sa mga system na may malaking bilang ng mga core ng processor. Nabawasan ang oras ng kahilingan sa pahina ng virtual memory. Nabawasan ang pagtatalo sa SMP kapag mababa ang memorya. Tumaas na kahusayan ng "bukas(... O_RDWR)" na tawag.
  • Ang pseudo-random number generator sa kernel ay muling idinisenyo. Ang driver ng RDRAND ay iniangkop upang makaipon ng entropy mula sa lahat ng mga CPU. Nabawasan ang intensity
    at ang laki ng RDRAND feed, na dating tumagal ng 2-3% ng oras ng CPU sa oras ng idle.

  • Nagdagdag ng mga bagong system call na realpath, getrandom at lwp_getname (pinapayagan ang pagpapatupad ng pthread_get_name_np).
  • Nagdagdag ng suporta para sa mga mekanismo ng proteksyon ng SMAP (Supervisor Mode Access Prevention) at SMEP (Supervisor Mode Execution Prevention). Hinahayaan ka ng SMAP na harangan ang access sa data ng user-space mula sa privileged code na tumatakbo sa antas ng kernel. Hindi pinapayagan ng SMEP ang paglipat mula sa kernel mode hanggang sa pagpapatupad ng code na matatagpuan sa antas ng user, na ginagawang posible na harangan ang pagsasamantala ng maraming mga kahinaan sa kernel (ang shell code ay hindi isasagawa, dahil ito ay nasa espasyo ng gumagamit);
  • Reworked sysctl variable para sa pag-configure ng Jail. Nagdagdag ng kakayahang mag-mount ng nullfs at tmpfs mula sa Jail.
  • Idinagdag ang emergency mode para sa HAMMER2 file system, na maaaring magamit sa panahon ng pagbawi pagkatapos ng pagkabigo. Sa mode na ito, posible na sirain ang mga snapshot kapag nag-a-update ng inode nang lokal (pinapayagan kang tanggalin ang mga file at direktoryo sa kawalan ng libreng puwang sa disk, kapag imposibleng gamitin ang mekanismo ng copy-on-write). Malaking pinahusay na performance sa pamamagitan ng muling paggawa ng thread dispatch support sa HAMMER2. Ang proseso ng pag-flush ng mga buffer ay makabuluhang napabuti.
  • Pinahusay na pagiging maaasahan at pagganap ng TMPFS. Tumaas na kahusayan sa pagpapatakbo kapag may kakulangan ng libreng memorya sa system.
  • Sinusuportahan na ngayon ng IPv4 network stack ang /31 prefix (RFC 3021).
    Pinahusay ng tap ang SIOCSIFMTU ioctl handling upang suportahan ang MTU > 1500. Nagdagdag ng suporta para sa SIOCSIFINFO_IN6 at SO_RERROR.

  • Ang iwm driver ay naka-synchronize sa FreeBSD na may suporta para sa Intel wireless chips (nagdagdag ng suporta para sa iwm-9000 at iwm-9260).
  • Nagdagdag ng mga function na basename() at dirname() na katugma sa Linux upang mapabuti ang pagiging tugma ng port.
  • Inilipat ang fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 mula sa FreeBSD patungo sa libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Ang mga function mula sa math.h ay inilipat mula sa OpenBSD.
  • Mga na-update na bersyon ng mga bahagi ng third-party, kabilang ang Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Ang default na compiler ay gcc-8.

Pinagmulan: opennet.ru

Magdagdag ng komento