การเปิดตัวระบบปฏิบัติการ DragonFly BSD 5.8

มีอยู่ ปล่อย DragonFlyBSD 5.8ระบบปฏิบัติการที่มีเคอร์เนลไฮบริด สร้าง ในปี 2003 โดยมีวัตถุประสงค์เพื่อการพัฒนาทางเลือกของสาขา FreeBSD 4.x ในบรรดาคุณสมบัติของ DragonFly BSD เราสามารถเน้นระบบไฟล์เวอร์ชันแบบกระจายได้ ค้อนรองรับการโหลดเคอร์เนลของระบบ “เสมือน” เป็นกระบวนการของผู้ใช้, ความสามารถในการแคชข้อมูล FS และข้อมูลเมตาบนไดรฟ์ SSD, ลิงก์สัญลักษณ์ตัวแปรที่ไวต่อบริบท, ความสามารถในการหยุดกระบวนการในขณะที่บันทึกสถานะบนดิสก์, เคอร์เนลไฮบริดที่ใช้เธรดน้ำหนักเบา (ลวเคท).

หลัก การปรับปรุงเพิ่มใน DragonFlyBSD 5.8:

  • องค์ประกอบหลักประกอบด้วยอรรถประโยชน์ ซินธ์ออกแบบมาสำหรับการประกอบภายในและการบำรุงรักษาที่เก็บไบนารี 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 สำหรับ Intel GPU ได้รับการซิงโครไนซ์กับเคอร์เนล Linux 4.8.17 พร้อมโค้ดที่ถ่ายโอนจากเคอร์เนล 5.4 เพื่อรองรับชิปใหม่ (Skylake, Coffelake, Amber Lake, Whisky Lake และ Comet Lake) ไดรเวอร์ drm/radeon สำหรับการ์ดแสดงผล AMD ซิงโครไนซ์กับเคอร์เนล Linux 4.9

  • อัลกอริธึมการเพจหน่วยความจำเสมือนได้รับการปรับปรุงอย่างมีนัยสำคัญ ช่วยให้เราสามารถกำจัดหรือลดปัญหาการตอบสนองในส่วนติดต่อผู้ใช้เมื่อมีหน่วยความจำไม่เพียงพอ ปัญหาเกี่ยวกับการค้างของ Chrome/Chromium เนื่องจากหน่วยความจำระบบไม่เพียงพอได้รับการแก้ไขแล้ว
  • ปรับปรุงขนาดเคอร์เนลบนระบบที่มีแกนประมวลผลจำนวนมาก ลดเวลาการร้องขอเพจหน่วยความจำเสมือน ลดการช่วงชิง SMP เมื่อหน่วยความจำเหลือน้อย เพิ่มประสิทธิภาพของการเรียก "open(... O_RDWR)"
  • ตัวสร้างตัวเลขสุ่มหลอกในเคอร์เนลได้รับการออกแบบใหม่ ไดรเวอร์ RDRAND ได้รับการปรับให้สะสมเอนโทรปีจาก CPU ทั้งหมด ความเข้มลดลง
    และขนาดของฟีด RDRAND ซึ่งก่อนหน้านี้ใช้เวลา CPU 2-3% ในระหว่างเวลาว่าง

  • เพิ่มการเรียกระบบใหม่ realpath, getrandom และ lwp_getname (อนุญาตให้ใช้งาน pthread_get_name_np)
  • เพิ่มการรองรับกลไกการป้องกัน SMAP (Supervisor Mode Access Prevention) และ SMEP (Supervisor Mode Execution Prevention) SMAP ช่วยให้คุณสามารถบล็อกการเข้าถึงข้อมูลพื้นที่ผู้ใช้จากรหัสสิทธิพิเศษที่ทำงานในระดับเคอร์เนล SMEP ไม่อนุญาตให้เปลี่ยนจากโหมดเคอร์เนลไปเป็นการเรียกใช้โค้ดที่อยู่ในระดับผู้ใช้ซึ่งทำให้สามารถบล็อกการใช้ประโยชน์จากช่องโหว่จำนวนมากในเคอร์เนลได้ (โค้ดเชลล์จะไม่ถูกดำเนินการเนื่องจากอยู่ในพื้นที่ผู้ใช้)
  • ทำใหม่ตัวแปร sysctl สำหรับการกำหนดค่า Jail เพิ่มความสามารถในการเมานต์ nullfs และ tmpfs จาก Jail
  • เพิ่มโหมดฉุกเฉินสำหรับระบบไฟล์ HAMMER2 ซึ่งสามารถใช้ระหว่างการกู้คืนหลังจากเกิดความล้มเหลว ในโหมดนี้ เป็นไปได้ที่จะทำลายสแน็ปช็อตเมื่ออัปเดตไอโหนดในเครื่อง (อนุญาตให้คุณลบไฟล์และไดเร็กทอรีในกรณีที่ไม่มีเนื้อที่ว่างบนดิสก์ เมื่อไม่สามารถใช้กลไกการคัดลอกเมื่อเขียนได้) ปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญโดยการทำงานสนับสนุนการจัดส่งเธรดใน HAMMER2 ใหม่ กระบวนการล้างบัฟเฟอร์ได้รับการปรับปรุงอย่างมีนัยสำคัญ
  • ปรับปรุงความน่าเชื่อถือและประสิทธิภาพของ TMPFS เพิ่มประสิทธิภาพการทำงานเมื่อหน่วยความจำว่างในระบบไม่เพียงพอ
  • สแต็กเครือข่าย IPv4 รองรับคำนำหน้า /31 แล้ว (RFC 3021).
    Tap ได้ปรับปรุงการจัดการ SIOCSIFMTU ioctl เพื่อรองรับ MTU > 1500 เพิ่มการรองรับสำหรับ SIOCSIFINFO_IN6 และ SO_RERROR

  • ไดรเวอร์ iwm ซิงโครไนซ์กับ FreeBSD พร้อมรองรับชิปไร้สาย Intel (เพิ่มการรองรับ iwm-9000 และ iwm-9260)
  • เพิ่มฟังก์ชัน basename() และ dirname() ที่เข้ากันได้กับ Linux เพื่อปรับปรุงความเข้ากันได้ของพอร์ต
  • ย้าย fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 จาก FreeBSD ไปยัง libc/getaddrinfo(), ปฏิทิน (1), rcorder-visualize.sh ฟังก์ชั่นจาก math.h ถูกย้ายจาก OpenBSD แล้ว
  • เวอร์ชันอัปเดตของส่วนประกอบของบุคคลที่สาม รวมถึง Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3 คอมไพเลอร์เริ่มต้นคือ gcc-8

ที่มา: opennet.ru

เพิ่มความคิดเห็น