DragonFly BSD เป็นระบบปฏิบัติการ BSD แบบโอเพนซอร์สซึ่งได้รับการออกแบบมาให้มีความต่อเนื่องตรรกะของชุดระบบปฏิบัติการ FreeBSD-4.x คล้ายกับการแจกจ่ายแบบ BSD อื่น ๆ เช่น FreeBSD, NetBSD หรือ OpenBSD มันเป็นทางแยกในเส้นทางเพื่อที่จะพูดให้ฐาน BSD โอกาสที่จะเติบโตในทิศทางใหม่ทั้งหมดจากที่ถ่ายในชุด FreeBSD-5 นอกเหนือจากนั้นยังมีชุดคุณลักษณะเฉพาะซึ่งทำให้แตกต่างจาก OSes อื่นที่คล้ายคลึงกัน
HAMMER เป็นแหล่งท่องเที่ยวหลัก
HAMMER เป็นสถานที่ท่องเที่ยวหลักของ DragonFly ระบบไฟล์ที่ทันสมัยและมีประสิทธิภาพสูงที่มีฟังก์ชันการเข้าถึงที่เก่าแก่และมีมิเรอร์ในตัว เคอร์เนลเป็นหนึ่งในเหตุผลที่ DragonFly มีการแจกจ่าย BSD ที่ดีกว่า
มีตัวกำหนดตารางเวลาสำหรับเคอร์เนลสองแบบ
เคอร์เนลของ DragonFly มีตัวกำหนดตารางเวลาที่แตกต่างกันสองตัวซึ่งจะกำหนดหน่วยประมวลผลทั้งหมด (Light Kernel Thread) และอีกชุดหนึ่งที่เลือกเธรดผู้ใช้คนละชุดสำหรับแต่ละโปรเซสเซอร์และบทคัดย่อหัวข้อผู้ใช้ (User Thread Scheduler) นอกจากนี้เคอร์เนลยังมีตัวจัดสรรหน่วยความจำเคอร์เนลที่ซับซ้อนซึ่งประกอบด้วยตัวจัดสรรหน่วยความจำเชิงวัตถุและเคอร์เนล malloc ที่เรียกว่า kmalloc () ระบบไฟล์อุปกรณ์ DragonFly (DEVFS) เคอร์เนลเสมือน (VKERNEL), NFS V3 RPC asynchronization และ ดิสก์ I / O กรอบกำหนดการ (dsched)
คุณสมบัติคุณสมบัติมากมาย
ท่ามกลางคุณสมบัติที่น่าสนใจอื่น ๆ เราสามารถพูดถึง NULL Filesystem Layer (NULLFS) ที่สนับสนุนจุดเมานท์โดยพลการใด ๆ ที่ไม่ใช่ loop, TMPFS (ระบบแฟ้มชั่วคราว VFS), การเข้ารหัสดิสก์โปร่งใส, การจัดการ SSD (Solid Storage Device), ตัวแปร (บริบท อ่อนไหว), DNTPD (DragonFly Network Time Daemon) และ DMA (DragonFly Mail Agent) นอกจากนี้ผู้ใช้จะสามารถด่านหรือระงับกระบวนการลงในดิสก์ได้ตลอดเวลา ไดรฟ์เวอร์มีไดร์เวอร์ AHCI ที่แข็งแกร่งชื่ออุปกรณ์ที่มีเสถียรภาพตลอดจนการเข้ารหัสและการจัดการระดับเสียงที่ดีขึ้น
บรรทัดด้านล่าง
โดยรวมแล้ว DragonFly พิสูจน์ได้ว่าเป็นระบบปฏิบัติการแบบ UNIX ที่ทันสมัยใช้งานง่ายและสามารถเข้าถึงได้ง่าย สามารถใช้งานได้ทุกวันเป็นระบบเดสก์ท็อปหรือเป็นเซิร์ฟเวอร์ BSD ที่มีประสิทธิภาพ
มีอะไรใหม่ ในรุ่นนี้:
- เวอร์ชัน Dragonfly 5.2.1 ได้รับการเผยแพร่โดย Meltdown / Spectre mitigation การปรับปรุงวิดีโอ HAMMER2, ipfw และวิดีโอเร่งรัดมากมายรวมทั้งการปรับปรุง (ในการอัปเดต 5.2.1) สำหรับ CVE-2018-8897
มีอะไรใหม่ ในเวอร์ชัน:
- Christian Groessler (1):
- telnetd: พิมพ์ข้อมูลระบบ (ระบบปฏิบัติการและสถาปัตยกรรม) ก่อนเข้าสู่ระบบ
- Matthew Dillon (7):
- ค้อน 2 - แก้ไขแบ่งตามเผ่าพันธุ์ 0
- kernel - เลือก MFC ของ kernel umtx จาก master
- kernel - อัปเดตเอกสาร umtx
- libc และ pthreads - แก้ไขปัญหาเกี่ยวกับ atfork ด้วย nmalloc, update dmalloc
- hammer2 - แก้ไขการแข่งขันเปลี่ยนชื่อ
- hammer2 - เพิ่มประสิทธิภาพ hammer2_pfs_memory_wakeup ()
- hammer2 - แก้ไขโซ่สกปรกที่ไม่ จำกัด เนื่องจากเปลี่ยนชื่อ
- Sascha Wildner (5):
- hammer2.8: แก้ไขข้อผิดพลาด
- พูด 'hammer2' แทน 'hammer' ในที่ต่างๆ
- mtree: แก้ไขเจ้าของไดเรกทอรีต่างๆใน / usr / share
- libc / nls: ใช้ตำแหน่งที่ตั้งปัจจุบัน (กำหนดโดยเธรด)
- libarchive: เปลี่ยนการกระทำที่ไม่ได้ตั้งใจที่จะผลักดัน
- Kernel:
- โค้ดแคชแคชของ Refactor เพื่อลบการจอง KVA แบบไดนามิก แต่ KVA ทั้งหมดจะถูกสงวนไว้ในเวลาบูต บันทึกเราจาก IPI ที่ไม่จำเป็นและช่วยให้สามารถใช้งานโค้ดแคชแคชได้อย่างมีนัยสำคัญ
- เพิ่ม vfs.repurpose_enable (ภายใต้การทดสอบปิดการใช้งานตามค่าเริ่มต้น) คุณลักษณะนี้สามารถเปิดใช้งานเพื่อลดภาระการจัดการ IPI และ VM ลงบนเครื่องซึ่งกำลังทำไฟล์ I / O จำนวนมากเช่นจาก NVMe SSD โดยการหลีกเลี่ยงกลไกการรีไซเคิลเพจ VM ทั่วไป เมื่อเปิดใช้คุณลักษณะนี้จะเรียกเฉพาะเมื่อโหลด I / O สูงเท่านั้น ทำงานโดย repurposing หน้า VM ต้นแบบบัฟเฟอร์ในสถานที่ (เมื่อเป็นไปได้) เพื่อที่จะไม่ต้อง kremove / kenter หน้าใน KVA บัฟเฟอร์ การรีไซเคิลหน้าเว็บ VM ปกติ (ซึ่งอาจถูกทำให้ล้นหลามด้วยการโหลด I / O) จะถูกข้ามไปด้วยเช่นกัน
- เปลี่ยนวิธีการประมวลผล IPIQ โดยเฉพาะสร้างกลไกเวคเตอร์ Xinterrupt แบบเอกอักซ์สำหรับการ invalidations หน้าซึ่งละเว้น (จะทำงาน) แม้ว่าจะมีส่วนที่สำคัญ ใช้งาน machdep.optimized_invltlb (ปิดใช้งานโดยค่าเริ่มต้นภายใต้การทดสอบ) ซึ่งจะหลีกเลี่ยงการส่ง IPI ที่เป็นโมฆะไปเป็นไม่ใช้งาน
- แก้ไขการแข่งขันจำนวนมากที่อาจเกิดขึ้นภายใต้แรงสุดขีด กรณีการใช้งานส่วนใหญ่จะไม่เกิดขึ้นเหล่านี้ แต่กล่องของเราสร้างเป็นครั้งคราว ตัวอย่างเช่นมีการแข่งขันสองคำสั่งที่บิตของซีพียูสำหรับ pmap จะถูกล้าง (สำหรับสองคำสั่ง) และทำให้ TLB IPI เกิดขึ้นในเวลาเดียวกันกับซีพียูตัวอื่นสำหรับ pmap เดียวกันเพื่อไม่ให้ทราบว่าซีพียูใช้ pmap . การแก้ไขคือการปิดใช้งานการเพิ่มประสิทธิภาพการโหลด CR3 สำหรับ LWP- & gt; LWP (same proc) switch case.
- แก้ไขข้อบกพร่องของ HAMMER ซึ่งอาจส่งผลให้เกิดข้อผิดพลาดเกี่ยวกับ DATA CRC ที่รายงานไม่ถูกต้อง
- แก้ไขการเขียนข้อมูลสองครั้งที่เรียกโดย HAMMER ใช้ cluster_write () ทำให้ประสิทธิภาพการเขียนของ HAMMER ดีขึ้นอย่างมาก
- มีการล้างข้อมูลและการแก้ไขอื่น ๆ อีกมากมายใน HAMMER ด้วย
- แก้ไขล็อกฮาร์ดดิสก์ที่อาจเกิดขึ้นใน getpbuf * () เนื่องจากการตีความผิดค่าส่งคืนของ atomic op
- แก้ไขการขัดจังหวะแบบสแต็กที่อาจเกิดขึ้นในหน้าต่างคำสั่ง 10 คำซึ่งอาจมีอยู่ (แต่ไม่พบในป่า) ที่รันเคอร์เนลสแต็คออก
- ตัดค่า IPI ที่เกี่ยวข้องในครึ่งหนึ่งสำหรับการดำเนินการแคชบัฟเฟอร์บางอย่างโดยไม่รบกวนการทำ TLB และด้านพลิกกลับทำให้ TLB มีความถูกต้องเมื่อป้อน PTE ใหม่แม้ว่าเนื้อหาก่อนหน้านี้จะไม่ถูกต้องก็ตาม การเพิ่มประสิทธิภาพนี้ช่วยเพิ่มประสิทธิภาพและทำให้การแก้จุดบกพร่องง่ายขึ้นโดยการลบการเพิ่มประสิทธิภาพที่มีปัญหา
- แก้ไขปัญหาเกี่ยวกับการแข่ง SMP ที่ยากต่อการช็อตโดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับการทำ umounts พร้อมกันของจุดยึดที่ต่างกันซึ่งอาจทำให้เกิดการสร้างกลุ่มได้ ยังแก้ไขการแข่งขัน mountctl vs umount
- ลดจำนวนอะตอม ops ในเส้นทางการเปลี่ยน
- แก้ไขปัญหาการแข่งขัน / ความตื่นตระหนกของ namecache ซึ่งอาจเกิดขึ้นภายใต้การโหลดที่มากเกินไปควบคู่ไปกับกิจกรรม mount / umount มากมาย
- จำกัด % rip การสุ่มตัวอย่างเป็น root
- แก้ไขปัญหา getpid () ใน vfork () เมื่อมีเธรด vfork () ในโปรแกรม threaded อาจทำให้ PID ผิดพลาดโดย getpid () ใน child ก่อน exec
- แก้ไขปัญหาการแข่งขัน / การเรียกสายสั้น ๆ ที่ไม่ค่อยพบในขณะที่ตั้งเวลาเรียกเข้าแฮงเอาท์ก่อนที่จะตั้งค่า
- การล้างข้อมูลบนแผงควบคุมของ namecache บนคอนโซล โดยเฉพาะรายงานเวลาที่ผ่านไปที่ถูกต้องและ td_comm ของเธรดที่เกี่ยวข้อง
- ลดการทดสอบหน่วยความจำและการเริ่มต้น zeroing ในช่วงต้นเพื่อปรับปรุงเวลาในการบูตระบบที่มี RAM จำนวนมาก
- ลบโค้ด zeroing page ที่ไม่ได้ทำงานออกทั้งหมด การ zeroing หน้าบนซีพียูแบบใหม่ตามความต้องการทำได้ดีกว่าด้วยเหตุผลหลายประการและอาจทำงานได้เร็วขึ้นเมื่อรวมกับผู้บริโภคเข้าถึงข้อมูลในหน้าเว็บเนื่องจากผลของแคช นำ PG_ZERO ออกเนื่องจากไม่จำเป็นต้องใช้อีกต่อไป การลบ PG_ZERO จะทำให้เคอร์เนลสามารถแก้ปัญหาได้มากขึ้นโดยการเอาแหล่งที่มาของการปนเปื้อนข้ามอื่น ๆ ออกไป
- Refactor และดำเนินการติดตั้ง CPU localization สำหรับการจัดสรรหน่วยความจำเคอร์เนล รวมกับการรับรู้ NUMA นี่ทำงานได้กับโครงสร้างข้อมูลเคอร์เนลของซีพียูหรือใช้งานได้นาน ทั้งสองถูกรวมเข้าด้วยกันในนามธรรม PQ_L2_SIZE ของเราที่เคยเป็นรหัสระบายสีของหน้า VM รหัสนี้จะจัดการกับภาษาท้องถิ่นของ CPU และการรับรู้ NUMA ด้วย
- แก้ไขปัญหา vkernel จำนวนมากและปรับปรุงประสิทธิภาพของ vkernel อย่างมาก
- อัปเดต kern.proc.pathname ซึ่งเป็นโปรแกรมที่ใช้โดยโปรแกรมเพื่อค้นหาเส้นทางของโปรแกรมที่กำลังทำงานอยู่ sysctl นี้ถูกนำมาใช้ก่อนที่เราจะเก็บข้อมูลที่เพียงพอเพื่อส่งคืนเส้นทางที่ถูกต้อง
- ซิงค์ ACPICA จาก Intel (นี่คือเหตุการณ์ปกติ)
- แก้ไขแอสเซมบลีของ memcpy () ABI แอสเซมบลีไม่ส่งคืนอาร์กิวเมนต์เดิม (dst) ไม่สามารถแก้ไขปัญหาที่ทราบ แต่ปิดรูเมื่อ GCC ตัดสินใจที่จะเรียกเมมพิเดียในขณะที่สร้างโค้ด
- หลายคนมีหน้าที่ในการทำความสะอาดคำเตือนและข้อผิดพลาด O2 เคอร์เนลถูกรวบรวมโดยค่าเริ่มต้น -O2
- เพิ่มวิธีแก้ไขปัญหาสำหรับผลตอบแทนที่ไม่ถูกต้องในเส้นทาง ACPI (aka buggy ACPI code)
- แก้ไขการแข่งขัน STOP / CONT ที่อาจถูกเรียกใช้โดยสัญญาณที่รอดำเนินการในเวลาที่ไม่ถูกต้อง
- แก้ไข coredump แบบเกลียวและแก้ไข lockup ที่เกี่ยวข้องกับหัวข้อเดียวกันเมื่อมีหลายเธรดของกระบวนการเดียวกัน seg-fault ในเวลาเดียวกัน
- แก้ไขปัญหาการหยุดชะงัก CAM / VM ที่อาจเกิดขึ้นเนื่องจากข้อบกพร่องใน uiomove_nofault () ซึ่งอาจทำให้ 'บัฟเฟอร์รอไม่ จำกัด ' ในระหว่างเพจ / การแลกเปลี่ยนแบบหนา
- เพิ่มรหัสเพื่อตรวจจับและจัดการกับ IPI ที่สูญหาย นี่เป็นส่วนสำคัญสำหรับ vkernels ที่โฮสต์เสมือนสามารถสูญเสีย IPI ได้ ซีพียูที่แท้จริงไม่ควรสูญเสีย IPIs
- การแก้ไขต่างๆกับ clock_gettime ()
- ลบร่องรอยของ MPLOCK เพิ่มเติม เส้นทางที่สำคัญทั้งหมดมีการปลดล็อกจากบล็อกนี้แล้ว แต่ยังคงมีสถานที่ที่ไม่สำคัญจำนวนน้อยที่ใช้งานอยู่
- ประมวลผลโค้ดการประมวลผลความจำต่ำและแก้ไขจำนวนเชื้อชาติที่สามารถป้องกันไม่ให้คุณลักษณะทำงานได้
- แก้ไขการล็อกระบบด้วย VMM และรีสตาร์ทโค้ด VMX
- แก้ไขการหยุดชะงักเมื่อ numvnodes เข้าถึง maxvnodes ซึ่งอาจเกิดขึ้นภายใต้การโหลดที่หนักหน่วง ยังแก้ไขรั่วหน่วยความจำเคอร์เนลเล็กน้อยเมื่อ 'df' หรือซิงค์ระบบแฟ้มแข่งกับ umount ลดการคำนวณ maxvnodes ด้วยความสุภาพ ตัวอย่างเช่นเครื่องที่มี RAM ขนาด 8GB จะตั้งค่า maxvnodes เป็น 478483 แทนที่จะเป็น 598103
- แก้ไขความตื่นตระหนกที่หาได้ยากซึ่งสามารถเรียกใช้โดย vm_object_page_remove () เมื่อ user_yield () ถูกเรียกไม่ถูกต้องขณะถือ spinlock และตัดสินใจกำหนดเวลาไว้
- ลดขนาดโครงสร้างเคอร์เนลที่จัดสรรแบบไดนามิก โดยเฉพาะการจัดสรรตาราง hasode ที่มีขนาดใหญ่เกินไปมีขนาดเล็กลง มีผลต่อ UFS โดยส่วนใหญ่ (ซึ่ง DragonFlyBSD ไม่ใช้มากนัก)
- เพิ่มวิธีแก้ปัญหาสำหรับ AMD erratum 793
- แก้ไขปัญหาการหยุดชะงักที่อาจเกิดขึ้นได้ในกลุ่ม _ * () การเรียก I / O แบบ stacked
- แก้ไขข้อบกพร่องที่โหลดโมดูล recursive อาจหยุดชะงัก
- แก้ไขข้อบกพร่องแบบโง่ ๆ ในโค้ด sillyrename NFS (เซิร์ฟเวอร์ฝั่ง NFS) ซึ่งอาจทำให้โค้ด sillyrename ของเซิร์ฟเวอร์ NFS ไม่เคยลบไฟล์ที่เปลี่ยนโง่ โง่อย่างไร!
- ทำงานได้ดีขึ้นรองรับการกำหนดค่าสูง ncpu + หน่วยความจำต่ำ
- Refactor แบ่งปัน spinlocks เพื่อลดจำนวนการปั่นด้ายซึ่งอาจเกิดขึ้นได้เมื่อ CPU หลายตัวได้รับ spinlock ร่วมกันในเวลาเดียวกัน
- ปรับปรุงการดำเนินงานของ namecache เพื่อลดความขัดแย้งของ SMP ให้ดียิ่งขึ้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพของคอมโพเนนต์เดี่ยวที่ไม่ขัดแย้งกันพร้อม ๆ กันอย่างน้อย 25 เท่าในระบบที่มีแกนหลาย ๆ ตัวและช่วยลดการทำงานของ vnode และ mount ref และการดำเนินงานที่ไม่ได้ใช้งานได้อย่างมาก
- ตรวจสอบโครงสร้างของเคอร์เนลจำนวนมากเพื่อปรับปรุงพื้นที่แคชและลดการตีกลับของแคช
- แก้ไขข้อบกพร่องในไฟล์เปลี่ยนชื่อของ SMBFS
- ใช้ RLIMIT_RSS ตัวประมวลผล RSS แบบต่อกระบวนการซึ่งจะบังคับเพจแยกตามท้องถิ่นบนพื้นฐานของแต่ละกระบวนการ คุณลักษณะนี้สามารถใช้เพื่อป้องกันขั้นตอนหนึ่งจากการเปลี่ยนส่วนที่เหลือของเครื่องให้กลายเป็นกรณีที่ยาก
- เพิ่มพื้นที่ swap ที่รองรับสูงสุด สูงสุดจะถูก จำกัด โดย ram โดยส่วนใหญ่จะอยู่ในสิบเทราไบต์ (ถ้าคุณมี RAM เพียงพอสำหรับโครงสร้างการจัดการสนับสนุน) เพิ่ม KVM ของเคอร์เนลจาก 128G เป็น 511G
- ใช้การลบ PMAP แบบไดนามิก (ปิดใช้งานโดยค่าเริ่มต้น) โค้ดนี้จะนำโค้ด pmap ไปใช้เพื่อลบหน้าตารางเพจระดับกลางและ PD จาก pmap ทันที อาจเป็นประโยชน์หากหน่วยความจำมีระดับพรีเมี่ยม แต่โปรดทราบว่าหากเปิดใช้งานจะทำให้โปรแกรมทำงานช้าลงซึ่งจัดสรรและยกเลิกการจัดสรรหน่วยความจำในอัตราที่สูง
- ปรับแต่งระดับการใช้งานของผู้ใช้ที่ 'ดี' ทำให้ค่าที่เลือกที่ดีกว่าที่เคยเป็นมา
- เพิ่มไดรเวอร์ NVME แบบเดิมที่มีประสิทธิภาพสูงไปยัง DragonFly ที่เขียนโดยแมตต์ดิลลอน ไดรเวอร์นี้จะใช้เวกเตอร์ MSI-X และคิวที่มีอยู่ทั้งหมดที่อุปกรณ์รองรับการกำหนดตำแหน่งต่อ CPU โดยไม่มีการล็อคหรือการล็อกที่น้อยที่สุด (ไม่มีข้อขัดแย้ง SMP ในกรณีส่วนใหญ่) และมีความสามารถในการ IOPS และการส่งผ่านข้อมูลที่ผิดพลาด
- Graphics:
- ทำให้ Broadwell และ Skylake มีเสถียรภาพนำเราไปสู่ DRM เทียบเท่ากับ Linux 4.6
- ใช้ Linux i2c API เพื่อทำให้การย้ายข้อมูลเป็นเรื่องง่ายขึ้น
- แก้ไขข้อผิดพลาดบางอย่างเก่ารวมถึงการกลับรายการคำสั่งซื้อที่ล็อกได้ซึ่งอาจทำให้การเล่นวิดีโอไม่หยุดชะงัก (และส่วนที่เหลือของ X)
- แก้ไขข้อผิดพลาดลำดับความสำคัญของเธรด kernel drm ที่อนุญาตให้กระบวนการของผู้ใช้มีลำดับความสำคัญสูงกว่าเธรดของผู้ช่วย drm การแก้ไขปัญหาแผงควบคุมวิดีโอชั่วคราวส่วนใหญ่ที่รายงานในเบราว์เซอร์
- จัดการ framebuffer EFI ผ่าน DRM ปรับปรุงการสลับ VT ของ syscons และแก้ไขปัญหาการหยุดชะงักที่เกี่ยวข้อง นอกจากนี้เคอร์เนลยังพยายามที่จะเปลี่ยนกลับไปที่คอนโซล VT จาก X เมื่อเกิดความตื่นตระหนก
- เครือข่าย:
- มีการปรับปรุงมากมายทั่วทั้งคณะ
- iwm - แก้ไขปัญหาที่เกิดจากเหตุผลทางกลับกัน การปรับปรุงอื่น ๆ อีกมากมายที่ช่วยปรับปรุงประสิทธิภาพได้เป็นอย่างมาก
- wlan - รองรับการสแกนแบบ Asynchronous bg และเพิ่มคุณสมบัติอื่น ๆ
- ไดรเวอร์อื่น ๆ :
- nvme - เพิ่มลงในการสร้างเคอร์เนลเริ่มต้นบวกการแก้ไขและการปรับปรุงประสิทธิภาพ
- mmcsd - การสนับสนุน eMMC ที่สำคัญที่เพิ่มลงใน DragonFly
- ahci - การปรับเปลี่ยนความเข้ากันได้บางอย่างและ quirks เพิ่มเติมเพิ่มเพื่อสนับสนุน chipsets เสียในตัวคูณพอร์ตโดยเฉพาะ ใช้ FBS (FIS-Based-Switching) เมื่อได้รับการสนับสนุนจากชิปเซ็ต
- เพิ่มการสนับสนุน Trackpoint และ Elantech
- Userland:
- systat เพิ่มขึ้นเพื่อขัดจังหวะการขัดจังหวะหลายครั้งที่อยู่ในโปรแกรมควบคุมเดียวกันเนื่องจากมักจะมีรายการมากเกินไปในรายการ
- systat -vm 1 ได้รับการปรับปรุงและปรับปรุงใหม่อย่างมากเพื่อรายงานข้อมูลที่เป็นประโยชน์มากขึ้นและเพื่อแกะกล่องข้อมูลเพื่อไม่ให้เกิดการชนกัน และเพิ่ม 'nvme' เพื่อจับคู่อุปกรณ์บล็อก ปรับการแสดงผล vmstats แบบขยายและเปลี่ยนวิธีรายงาน ozfod และ nzfod
- 'รีมาร์เก็ตติ้ง' vmstat 1 ' ทุ่งนาทั้งหมดกำลังวิ่งเข้าหากันเนื่องจากประสิทธิภาพของโองการเครื่องสมัยใหม่ที่เกิดขึ้นเมื่อ 30 ปีก่อน
- เปลี่ยนการส่งสัญญาณ mount / mountd เพื่อลดการสแกนและคำสั่ง mountlist ที่ไม่จำเป็นจากการดำเนินการ mount_null และ mount_tmpfs เฉพาะเรื่องที่เกิดขึ้นภายใต้การใช้ mount / umount ร่วมกันเป็นจำนวนมากเท่านั้น แต่การสร้างแบบกลุ่มจะสร้างสถานการณ์นั้นขึ้นอย่างจริงจัง
- แก้ไขรั่วไหลของฟอร์ก / exec * () ที่ libc สามารถเรียกใช้เนื่องจากไม่ใช้ O_CLOEXEC ในแบบอะตอม เพิ่มคุณสมบัติต่างๆของ O_CLOEXEC ลงในฟังก์ชันเช่น popen () และ mk * stemp * () (เพิ่ม mkostemp () และ mkostemps ()) แก้ไขไฟล์ descriptor descriptor ที่รั่วไหลใน popen () เมื่อทำงานในสภาวะแวดล้อมแบบมีเธรด
- ดีกว่าที่จะ pthreads ใน vfork () โดยให้ sub-process ใหม่ lwp TID เดียวกับที่เรียกว่า vfork () อนุญาตให้ฟังก์ชันการสนับสนุน pthread ทำงานได้ในเด็กระหว่าง vfork โดยไม่ทำให้เกิด pthreads
- การแก้ไขปัญหาความเข้ากันได้กับส่วนหัวเพื่อปรับปรุง dports ที่สร้างขึ้นเป็นจำนวนมาก
- การนำเข้า OpenSSL หลายรายการสำหรับการแก้ไขด้านความปลอดภัย
- Resync OpenSSH เพื่อให้สามารถเก็บข้อมูลอัปเดตได้ง่ายขึ้น
- แยกเคอร์เนล C ออกจากเคอร์เนลโดยใช้ KCFLAGS แทน CFLAGS
- ลบไดรเวอร์ ISA เก่าจำนวนมากจากต้นไม้ทั้งหมด เนื่องจาก DragonFlyBSD มีเฉพาะ 64 บิตเท่านั้นเราจึงสามารถเริ่มนำไดรเวอร์เก่าที่ไม่มีอยู่ในแพลตฟอร์ม 64 บิตออกได้
- แนะนำ WORLD_CFLAGS และ WORLD_CCOPTLEVEL โดยค่าเริ่มต้นเป็น -O วิธีนี้ทำให้การรวบรวมข้อมูลโลก -O2 หรือสิ่งอื่น ๆ ได้ง่ายขึ้น (เช่น WORLD_CCOPTLEVEL = 2) อย่างไรก็ตามเราไม่สนับสนุนการใช้งาน 3 ขึ้นไป ค่าที่ถูกต้องคือ 0, 1, 2, 3, s, g และ 'fast'
- ปรับการจัดรูปแบบ STATUS สำหรับ ps เพื่อให้สามารถอ่านได้ง่ายขึ้นและลบธงโบราณที่ไม่สามารถใช้ได้อีกต่อไปและสร้างความยุ่งเหยิง
- แก้ไขการจัดตำแหน่ง malloc () สำหรับการจัดสรรขนาดเล็ก การจัดตำแหน่งต่ำสุดคือตอนนี้ 16 การจัดสรรอยู่ในช่วง 16-128 ไบต์แทน 8. หมายเหตุว่าอำนาจของ 2 จัดสรรได้รับเสมอชิดธรรมชาติ แต่บางโปรแกรมใช้หลายรายการ (เช่น) 16 เช่น '48' และ สมมติว่ามีการจัดตำแหน่ง 16 ไบต์
- เพิ่มคำสบประมาทแล้วเพิ่ม
- powerd - เพิ่มการจัดการตามอุณหภูมิเพื่อ powerd ด้วยตัวเลือกใหม่ -H lotemp: hightemp คุณลักษณะนี้มีประโยชน์อย่างมากสำหรับแล็ปท็อปที่มีการระบายความร้อนที่ไม่ดีและ BIOSs whos ตั้งใจเค้นที่อุณหภูมิสูงเกินไป ขณะนี้ Powerd ยังตรวจจับการเปลี่ยนแปลงสถานะพลังงาน (ซึ่งสามารถเปลี่ยนความถี่ของความถี่ที่มี) และเปลี่ยนการบริการได้อย่างถูกต้องเมื่อมีการเปลี่ยนแปลงสถานะพลังงาน
- Lots of libthread_xu / pthreads แก้ไขและปรับปรุงเพื่อปรับปรุงความเข้ากันได้ของ dports
- เพิ่มคุณสมบัติการคัดลอกลงใน vkernel ตัวอย่างเช่นอนุญาตให้ใช้ vkernels หลายรูปแบบเพื่อใช้ภาพดิสก์ตัวเดียวได้โดยการปรับเปลี่ยน COW แต่ละตัวไปเป็น ram
- / usr / src / ความปลอดภัยที่เชื่อมต่ออยู่ความขัดแย้งที่ถูกลบออกจาก libmd, libcrypt
- เครื่องมือต่างๆได้รับการอัปเกรดในระบบฐาน:
- คอมไพเลอร์อัปเดตไปที่ GCC 5.4.1 แล้ว
- ขณะนี้เรามีผู้ประสานงานทองกับ LTO แล้ว
- binutils 2.25
- น้อยกว่า 481
- OpenSSL / LibRESSL ปรับปรุงใหม่อย่างสมบูรณ์ ฐานใช้ libressl แล้ว
- อัปเดตเขตเวลาหลายรายการ
- สถานะค้อน:
- การปรับปรุงเบ็ดเตล็ด สิ่งหนึ่งที่ไม่ได้ทำให้กลายเป็นรุ่นที่เผยแพร่คือการชนรุ่นเพื่อใช้อัลกอริธึม CRC ที่รวดเร็วขึ้นด้วยพหุนามที่แตกต่างกัน งานนี้จะเป็น MFC'd เพื่อให้ได้รับเมื่อการทดสอบเสร็จสิ้น อย่างไรก็ตามผู้ใช้ไม่ควรกังวลเรื่องนี้มากนักเนื่องจากมีการแก้ไขปัญหาประสิทธิภาพที่ร้ายแรงที่สุดในรุ่น (แก้ไขโค้ด cluster_write () สำหรับระบบไฟล์ที่เขียน)
- Hammer2 สถานะ:
- การพัฒนายังคงดำเนินต่อไป แต่ยังไม่มีคำใดในการเผยแพร่ครั้งแรก
- สถานะฉาง:
- มีการเพิ่มกรอบเริ่มต้นสำหรับการใช้ clang เป็นคอมไพเลอร์ฐานอื่นใน DragonFly เพื่อแทนที่ gcc 4.7 ยังไม่เสร็จสมบูรณ์ คุณสามารถเพิ่ม Clang ได้ในรูปแบบแพคเกจ
- สถานะ 64 บิต:
- โปรดทราบว่า DragonFly เป็นระบบปฏิบัติการแบบ 64 บิตเท่านั้นเมื่อใช้เวอร์ชัน 4.6 และจะไม่ทำงานบนฮาร์ดแวร์แบบ 32 บิต
- การสนับสนุน AMD Ryzen กำลังอยู่ระหว่างการเปิดตัวและการพัฒนาเพิ่มเติมของ Ryzen จะเกิดขึ้นต่อไป มีปัญหา CPU-reported-topology บางอย่างที่จะแก้ไขและ MFC'd ปัญหาเสถียรภาพบางอย่างกำลังรอการอัปเดตของไมโครโปรเซสเซอร์ AMD เพื่อแก้ไข / สอบซ่อม ผู้ใช้ Ryzen สามารถมั่นใจได้ว่าเราจะอยู่เคียงข้างคุณ!
- Kernel:
- โค้ดแคชแคชของ Refactor เพื่อลบการจอง KVA แบบไดนามิก แต่ KVA ทั้งหมดจะถูกสงวนไว้ในเวลาบูต บันทึกเราจาก IPI ที่ไม่จำเป็นและช่วยให้สามารถใช้งานโค้ดแคชแคชได้อย่างมีนัยสำคัญ
- เพิ่ม vfs.repurpose_enable (ภายใต้การทดสอบปิดการใช้งานตามค่าเริ่มต้น) คุณลักษณะนี้สามารถเปิดใช้งานเพื่อลดภาระการจัดการ IPI และ VM ลงบนเครื่องซึ่งกำลังทำไฟล์ I / O จำนวนมากเช่นจาก NVMe SSD โดยการหลีกเลี่ยงกลไกการรีไซเคิลเพจ VM ทั่วไป เมื่อเปิดใช้คุณลักษณะนี้จะเรียกเฉพาะเมื่อโหลด I / O สูงเท่านั้น ทำงานโดย repurposing หน้า VM ต้นแบบบัฟเฟอร์ในสถานที่ (เมื่อเป็นไปได้) เพื่อที่จะไม่ต้อง kremove / kenter หน้าใน KVA บัฟเฟอร์ การรีไซเคิลหน้าเว็บ VM ปกติ (ซึ่งอาจถูกทำให้ล้นหลามด้วยการโหลด I / O) จะถูกข้ามไปด้วยเช่นกัน
- เปลี่ยนวิธีการประมวลผล IPIQ โดยเฉพาะสร้างกลไกเวคเตอร์ Xinterrupt แบบเอกอักซ์สำหรับการ invalidations หน้าซึ่งละเว้น (จะทำงาน) แม้ว่าจะมีส่วนที่สำคัญ ใช้งาน machdep.optimized_invltlb (ปิดใช้งานโดยค่าเริ่มต้นภายใต้การทดสอบ) ซึ่งจะหลีกเลี่ยงการส่ง IPI ที่เป็นโมฆะไปเป็นไม่ได้ใช้งาน
- แก้ไขการแข่งขันจำนวนมากที่อาจเกิดขึ้นภายใต้แรงสุดขีด กรณีการใช้งานส่วนใหญ่จะไม่เกิดขึ้นเหล่านี้ แต่กล่องของเราสร้างเป็นครั้งคราว ตัวอย่างเช่นมีการแข่งขันสองคำสั่งที่บิตของซีพียูสำหรับ pmap จะถูกล้าง (สำหรับสองคำสั่ง) และทำให้ TLB IPI เกิดขึ้นในเวลาเดียวกันกับซีพียูตัวอื่นสำหรับ pmap เดียวกันเพื่อไม่ให้ทราบว่าซีพียูใช้ pmap . การแก้ไขคือการปิดใช้งานการเพิ่มประสิทธิภาพการโหลด CR3 สำหรับ LWP- & gt; LWP (same proc) switch case.
- แก้ไขข้อบกพร่องของ HAMMER ซึ่งอาจส่งผลให้เกิดข้อผิดพลาดเกี่ยวกับ DATA CRC ที่รายงานไม่ถูกต้อง
- แก้ไขการเขียนข้อมูลสองครั้งที่เรียกโดย HAMMER ใช้ cluster_write () ทำให้ประสิทธิภาพการเขียนของ HAMMER ดีขึ้นอย่างมาก
- มีการล้างข้อมูลและการแก้ไขอื่น ๆ อีกมากมายใน HAMMER ด้วย
- แก้ไขล็อกฮาร์ดดิสก์ที่อาจเกิดขึ้นใน getpbuf * () เนื่องจากการตีความผิดค่าส่งคืนของ atomic op
- แก้ไขการขัดจังหวะแบบสแต็กที่อาจเกิดขึ้นในหน้าต่างคำสั่ง 10 คำซึ่งอาจมีอยู่ (แต่ไม่พบในป่า) ที่รันเคอร์เนลสแต็คออก
- ตัดค่า IPI ที่เกี่ยวข้องในครึ่งหนึ่งสำหรับการดำเนินการแคชบัฟเฟอร์บางอย่างโดยไม่รบกวนการทำ TLB และด้านพลิกกลับทำให้ TLB มีความถูกต้องเมื่อป้อน PTE ใหม่แม้ว่าเนื้อหาก่อนหน้านี้จะไม่ถูกต้องก็ตาม การเพิ่มประสิทธิภาพนี้ช่วยเพิ่มประสิทธิภาพและทำให้การแก้จุดบกพร่องง่ายขึ้นโดยการลบการเพิ่มประสิทธิภาพที่มีปัญหา
- แก้ไขปัญหาเกี่ยวกับการแข่ง SMP ที่ยากต่อการช็อตโดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับการทำ umounts พร้อมกันของจุดยึดที่ต่างกันซึ่งอาจทำให้เกิดการสร้างกลุ่มได้ ยังแก้ไขการแข่งขัน mountctl vs umount
- ลดจำนวนอะตอม ops ในเส้นทางการเปลี่ยน
- แก้ไขปัญหาการแข่งขัน / ความตื่นตระหนกของ namecache ซึ่งอาจเกิดขึ้นภายใต้การโหลดที่มากเกินไปควบคู่ไปกับกิจกรรม mount / umount มากมาย
- จำกัด % rip การสุ่มตัวอย่างเป็น root
- แก้ไขปัญหา getpid () ใน vfork () เมื่อมีเธรด vfork () ในโปรแกรม threaded อาจทำให้ PID ผิดพลาดโดย getpid () ใน child ก่อน exec
- แก้ไขปัญหาการแข่งขัน / การเรียกสายสั้น ๆ ที่ไม่ค่อยพบในขณะที่ตั้งเวลาเรียกเข้าแฮงเอาท์ก่อนที่จะตั้งค่า
- การล้างข้อมูลบนแผงควบคุมของ namecache บนคอนโซล โดยเฉพาะรายงานเวลาที่ผ่านไปที่ถูกต้องและ td_comm ของเธรดที่เกี่ยวข้อง
- ลดการทดสอบหน่วยความจำและการเริ่มต้น zeroing ในช่วงต้นเพื่อปรับปรุงเวลาในการบูตระบบที่มี RAM จำนวนมาก
- ลบโค้ด zeroing page ที่ไม่ได้ทำงานออกทั้งหมด การ zeroing หน้าบนซีพียูแบบใหม่ตามความต้องการทำได้ดีกว่าด้วยเหตุผลหลายประการและอาจทำงานได้เร็วขึ้นเมื่อรวมกับผู้บริโภคเข้าถึงข้อมูลในหน้าเว็บเนื่องจากผลของแคช นำ PG_ZERO ออกเนื่องจากไม่จำเป็นต้องใช้อีกต่อไป การลบ PG_ZERO จะทำให้เคอร์เนลสามารถแก้ปัญหาได้มากขึ้นโดยการเอาแหล่งที่มาของการปนเปื้อนข้ามอื่น ๆ ออกไป
- Refactor และดำเนินการติดตั้ง CPU localization สำหรับการจัดสรรหน่วยความจำเคอร์เนล รวมกับการรับรู้ NUMA นี่ทำงานได้กับโครงสร้างข้อมูลเคอร์เนลของซีพียูหรือใช้งานได้นาน ทั้งสองถูกรวมเข้าด้วยกันในนามธรรม PQ_L2_SIZE ของเราที่เคยเป็นรหัสระบายสีของหน้า VM รหัสนี้จะจัดการกับภาษาท้องถิ่นของ CPU และการรับรู้ NUMA ด้วย
- แก้ไขปัญหา vkernel จำนวนมากและปรับปรุงประสิทธิภาพของ vkernel อย่างมาก
- อัปเดต kern.proc.pathname ซึ่งเป็นโปรแกรมที่ใช้โดยโปรแกรมเพื่อค้นหาเส้นทางของโปรแกรมที่กำลังทำงานอยู่ sysctl นี้ถูกนำมาใช้ก่อนที่เราจะเก็บข้อมูลที่เพียงพอเพื่อส่งคืนเส้นทางที่ถูกต้อง
- ซิงค์ ACPICA จาก Intel (นี่คือเหตุการณ์ปกติ)
- แก้ไขแอสเซมบลีของ memcpy () ABI แอสเซมบลีไม่ส่งคืนอาร์กิวเมนต์เดิม (dst) ไม่สามารถแก้ไขปัญหาที่ทราบ แต่ปิดรูเมื่อ GCC ตัดสินใจที่จะเรียกเมมพิเดียในขณะที่สร้างโค้ด
- หลายคนมีหน้าที่ในการทำความสะอาดคำเตือนและข้อผิดพลาด O2 เคอร์เนลถูกรวบรวมโดยค่าเริ่มต้น -O2
- เพิ่มวิธีแก้ไขปัญหาสำหรับผลตอบแทนที่ไม่ถูกต้องในเส้นทาง ACPI (aka buggy ACPI code)
- แก้ไขการแข่งขัน STOP / CONT ที่อาจถูกเรียกใช้โดยสัญญาณที่รอดำเนินการในเวลาที่ไม่ถูกต้อง
- แก้ไข coredump แบบเกลียวและแก้ไข lockup ที่เกี่ยวข้องกับหัวข้อเดียวกันเมื่อมีหลายเธรดของกระบวนการเดียวกัน seg-fault ในเวลาเดียวกัน
- แก้ไขปัญหาการหยุดชะงัก CAM / VM ที่อาจเกิดขึ้นเนื่องจากข้อบกพร่องใน uiomove_nofault () ซึ่งอาจทำให้ 'บัฟเฟอร์รอไม่ จำกัด ' ในระหว่างเพจ / การแลกเปลี่ยนแบบหนา
- เพิ่มรหัสเพื่อตรวจจับและจัดการกับ IPI ที่สูญหาย นี่เป็นส่วนสำคัญสำหรับ vkernels ที่โฮสต์เสมือนสามารถสูญเสีย IPI ได้ ซีพียูที่แท้จริงไม่ควรสูญเสีย IPIs
- การแก้ไขต่างๆกับ clock_gettime ()
- ลบร่องรอยของ MPLOCK เพิ่มเติม เส้นทางที่สำคัญทั้งหมดมีการปลดล็อกจากบล็อกนี้แล้ว แต่ยังคงมีสถานที่ที่ไม่สำคัญจำนวนน้อยที่ใช้งานอยู่
- ประมวลผลโค้ดการประมวลผลความจำต่ำและแก้ไขจำนวนเชื้อชาติที่สามารถป้องกันไม่ให้คุณลักษณะทำงานได้
- แก้ไขการล็อกระบบด้วย VMM และรีสตาร์ทโค้ด VMX
- แก้ไขการหยุดชะงักเมื่อ numvnodes เข้าถึง maxvnodes ซึ่งอาจเกิดขึ้นภายใต้การโหลดที่หนักหน่วง ยังแก้ไขรั่วหน่วยความจำเคอร์เนลเล็กน้อยเมื่อ 'df' หรือซิงค์ระบบแฟ้มแข่งกับ umount ลดการคำนวณ maxvnodes ด้วยความสุภาพ ตัวอย่างเช่นเครื่องที่มี RAM ขนาด 8GB จะตั้งค่า maxvnodes เป็น 478483 แทนที่จะเป็น 598103
- แก้ไขความตื่นตระหนกที่หาได้ยากซึ่งสามารถเรียกใช้โดย vm_object_page_remove () เมื่อ user_yield () ถูกเรียกไม่ถูกต้องขณะถือ spinlock และตัดสินใจกำหนดเวลาไว้
- ลดขนาดโครงสร้างเคอร์เนลที่จัดสรรแบบไดนามิก โดยเฉพาะการจัดสรรตาราง hasode ที่มีขนาดใหญ่เกินไปมีขนาดเล็กลง มีผลต่อ UFS โดยส่วนใหญ่ (ซึ่ง DragonFlyBSD ไม่ใช้มากนัก)
- เพิ่มวิธีแก้ปัญหาสำหรับ AMD erratum 793
- แก้ไขปัญหาการหยุดชะงักที่อาจเกิดขึ้นได้ในกลุ่ม _ * () การเรียก I / O แบบ stacked
- แก้ไขข้อบกพร่องที่โหลดโมดูล recursive อาจหยุดชะงัก
- แก้ไขข้อบกพร่องแบบโง่ ๆ ในโค้ด sillyrename NFS (เซิร์ฟเวอร์ฝั่ง NFS) ซึ่งอาจทำให้โค้ด sillyrename ของเซิร์ฟเวอร์ NFS ไม่เคยลบไฟล์ที่เปลี่ยนโง่ โง่อย่างไร!
- ทำงานได้ดีขึ้นรองรับการกำหนดค่าสูง ncpu + หน่วยความจำต่ำ
- Refactor แบ่งปัน spinlocks เพื่อลดจำนวนการปั่นด้ายซึ่งอาจเกิดขึ้นได้เมื่อ CPU หลายตัวได้รับ spinlock ร่วมกันในเวลาเดียวกัน
- ปรับปรุงการดำเนินงานของ namecache เพื่อลดความขัดแย้งของ SMP ให้ดียิ่งขึ้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพของคอมโพเนนต์เดี่ยวที่ไม่ขัดแย้งกันพร้อม ๆ กันอย่างน้อย 25 เท่าในระบบที่มีแกนหลาย ๆ ตัวและช่วยลดการทำงานของ vnode และ mount ref และการดำเนินงานที่ไม่ได้ใช้งานได้อย่างมาก
- ตรวจสอบโครงสร้างของเคอร์เนลจำนวนมากเพื่อปรับปรุงพื้นที่แคชและลดการตีกลับของแคช
- แก้ไขข้อบกพร่องในไฟล์เปลี่ยนชื่อของ SMBFS
- ใช้ RLIMIT_RSS ตัวประมวลผล RSS แบบต่อกระบวนการซึ่งจะบังคับเพจแยกตามท้องถิ่นบนพื้นฐานของแต่ละกระบวนการ คุณลักษณะนี้สามารถใช้เพื่อป้องกันขั้นตอนหนึ่งจากการเปลี่ยนส่วนที่เหลือของเครื่องให้กลายเป็นกรณีที่ยาก
- เพิ่มพื้นที่ swap ที่รองรับสูงสุด สูงสุดจะถูก จำกัด โดย ram โดยส่วนใหญ่จะอยู่ในสิบเทราไบต์ (ถ้าคุณมี RAM เพียงพอสำหรับโครงสร้างการจัดการสนับสนุน) เพิ่ม KVM ของเคอร์เนลจาก 128G เป็น 511G
- ใช้การลบ PMAP แบบไดนามิก (ปิดใช้งานโดยค่าเริ่มต้น) โค้ดนี้จะนำโค้ด pmap ไปใช้เพื่อลบหน้าตารางเพจระดับกลางและ PD จาก pmap ทันที อาจเป็นประโยชน์หากหน่วยความจำมีระดับพรีเมี่ยม แต่โปรดทราบว่าหากเปิดใช้งานจะทำให้โปรแกรมทำงานช้าลงซึ่งจัดสรรและยกเลิกการจัดสรรหน่วยความจำในอัตราที่สูง
- ปรับแต่งระดับการใช้งานของผู้ใช้ที่ 'ดี' ทำให้ค่าที่เลือกที่ดีกว่าที่เคยเป็นมา
- เพิ่มไดรเวอร์ NVME แบบเดิมที่มีประสิทธิภาพสูงไปยัง DragonFly ที่เขียนโดยแมตต์ดิลลอน ไดรเวอร์นี้จะใช้เวกเตอร์ MSI-X และคิวที่มีอยู่ทั้งหมดที่อุปกรณ์รองรับการกำหนดตำแหน่งต่อ CPU โดยไม่มีการล็อคหรือการล็อกที่น้อยที่สุด (ไม่มีข้อขัดแย้ง SMP ในกรณีส่วนใหญ่) และมีความสามารถในการ IOPS และการส่งผ่านข้อมูลที่ผิดพลาด
- Graphics:
- ทำให้ Broadwell และ Skylake มีเสถียรภาพนำเราไปสู่ DRM เทียบเท่ากับ Linux 4.6
- ใช้ Linux i2c API เพื่อทำให้การย้ายข้อมูลเป็นเรื่องง่ายขึ้น
- แก้ไขข้อผิดพลาดบางอย่างเก่ารวมถึงการกลับรายการคำสั่งซื้อที่ล็อกได้ซึ่งอาจทำให้การเล่นวิดีโอไม่หยุดชะงัก (และส่วนที่เหลือของ X)
- แก้ไขข้อผิดพลาดลำดับความสำคัญของเธรด kernel drm ที่อนุญาตให้กระบวนการของผู้ใช้มีลำดับความสำคัญสูงกว่าเธรดของผู้ช่วย drm การแก้ไขปัญหาแผงควบคุมวิดีโอชั่วคราวส่วนใหญ่ที่รายงานในเบราว์เซอร์
- จัดการ framebuffer EFI ผ่าน DRM ปรับปรุงการสลับ VT ของ syscons และแก้ไขปัญหาการหยุดชะงักที่เกี่ยวข้อง นอกจากนี้เคอร์เนลยังพยายามที่จะเปลี่ยนกลับไปที่คอนโซล VT จาก X เมื่อเกิดความตื่นตระหนก
- เครือข่าย:
- มีการปรับปรุงมากมายทั่วทั้งคณะ
- iwm - แก้ไขปัญหาที่เกิดจากเหตุผลทางกลับกัน การปรับปรุงอื่น ๆ อีกมากมายที่ช่วยปรับปรุงประสิทธิภาพได้เป็นอย่างมาก
- wlan - รองรับการสแกนแบบ Asynchronous bg และเพิ่มคุณสมบัติอื่น ๆ
- ไดรเวอร์อื่น ๆ :
- nvme - เพิ่มลงในการสร้างเคอร์เนลเริ่มต้นบวกการแก้ไขและการปรับปรุงประสิทธิภาพ
- mmcsd - การสนับสนุน eMMC ที่สำคัญที่เพิ่มลงใน DragonFly
- ahci - การปรับเปลี่ยนความเข้ากันได้บางอย่างและ quirks เพิ่มเติมเพิ่มเพื่อสนับสนุน chipsets เสียในตัวคูณพอร์ตโดยเฉพาะ ใช้ FBS (FIS-Based-Switching) เมื่อได้รับการสนับสนุนจากชิปเซ็ต
- เพิ่มการสนับสนุน Trackpoint และ Elantech
- Userland:
- systat เพิ่มขึ้นเพื่อขัดจังหวะการขัดจังหวะหลายครั้งที่อยู่ในโปรแกรมควบคุมเดียวกันเนื่องจากมักจะมีรายการมากเกินไปในรายการ
- systat -vm 1 ได้รับการปรับปรุงและปรับปรุงใหม่อย่างมากเพื่อรายงานข้อมูลที่เป็นประโยชน์มากขึ้นและเพื่อแกะกล่องข้อมูลเพื่อไม่ให้เกิดการชนกัน และเพิ่ม 'nvme' เพื่อจับคู่อุปกรณ์บล็อก ปรับการแสดงผล vmstats แบบขยายและเปลี่ยนวิธีรายงาน ozfod และ nzfod
- 'รีมาร์เก็ตติ้ง' vmstat 1 ' ทุ่งนาทั้งหมดกำลังวิ่งเข้าหากันเนื่องจากประสิทธิภาพของโองการเครื่องสมัยใหม่ที่เกิดขึ้นเมื่อ 30 ปีก่อน
- เปลี่ยนการส่งสัญญาณ mount / mountd เพื่อลดการสแกนและคำสั่ง mountlist ที่ไม่จำเป็นจากการดำเนินการ mount_null และ mount_tmpfs เฉพาะเรื่องที่เกิดขึ้นภายใต้การใช้ mount / umount ร่วมกันเป็นจำนวนมากเท่านั้น แต่การสร้างแบบกลุ่มจะสร้างสถานการณ์นั้นขึ้นอย่างจริงจัง
- แก้ไขรั่วไหลของฟอร์ก / exec * () ที่ libc สามารถเรียกใช้เนื่องจากไม่ใช้ O_CLOEXEC ในแบบอะตอม เพิ่มคุณสมบัติต่างๆของ O_CLOEXEC ลงในฟังก์ชันเช่น popen () และ mk * stemp * () (เพิ่ม mkostemp () และ mkostemps ()) แก้ไขไฟล์ descriptor descriptor ที่รั่วไหลใน popen () เมื่อทำงานในสภาวะแวดล้อมแบบมีเธรด
- ดีกว่าที่จะ pthreads ใน vfork () โดยให้ sub-process ใหม่ lwp TID เดียวกับที่เรียกว่า vfork () อนุญาตให้ฟังก์ชันการสนับสนุน pthread ทำงานได้ในเด็กระหว่าง vfork โดยไม่ทำให้เกิด pthreads
- การแก้ไขปัญหาความเข้ากันได้กับส่วนหัวเพื่อปรับปรุง dports ที่สร้างขึ้นเป็นจำนวนมาก
- การนำเข้า OpenSSL หลายรายการสำหรับการแก้ไขด้านความปลอดภัย
- Resync OpenSSH เพื่อให้สามารถเก็บข้อมูลอัปเดตได้ง่ายขึ้น
- แยกเคอร์เนล C ออกจากเคอร์เนลโดยใช้ KCFLAGS แทน CFLAGS
- ลบไดรเวอร์ ISA เก่าจำนวนมากจากต้นไม้ทั้งหมด เนื่องจาก DragonFlyBSD มีเฉพาะ 64 บิตเท่านั้นเราจึงสามารถเริ่มนำไดรเวอร์เก่าที่ไม่มีอยู่ในแพลตฟอร์ม 64 บิตออกได้
- แนะนำ WORLD_CFLAGS และ WORLD_CCOPTLEVEL โดยค่าเริ่มต้นเป็น -O วิธีนี้ทำให้การรวบรวมข้อมูลโลก -O2 หรือสิ่งอื่น ๆ ได้ง่ายขึ้น (เช่น WORLD_CCOPTLEVEL = 2) อย่างไรก็ตามเราไม่สนับสนุนการใช้งาน 3 ขึ้นไป ค่าที่ถูกต้องคือ 0, 1, 2, 3, s, g และ 'fast'
- ปรับการจัดรูปแบบ STATUS สำหรับ ps เพื่อให้สามารถอ่านได้ง่ายขึ้นและลบธงโบราณที่ไม่สามารถใช้ได้อีกต่อไปและสร้างความยุ่งเหยิง
- แก้ไขการจัดตำแหน่ง malloc () สำหรับการจัดสรรขนาดเล็ก การจัดตำแหน่งต่ำสุดคือตอนนี้ 16 การจัดสรรอยู่ในช่วง 16-128 ไบต์แทน 8. หมายเหตุว่าอำนาจของ 2 จัดสรรได้รับเสมอชิดธรรมชาติ แต่บางโปรแกรมใช้หลายรายการ (เช่น) 16 เช่น '48' และ สมมติว่ามีการจัดตำแหน่ง 16 ไบต์
- เพิ่มคำสบประมาทแล้วเพิ่ม
- powerd - เพิ่มการจัดการตามอุณหภูมิเพื่อ powerd ด้วยตัวเลือกใหม่ -H lotemp: hightemp คุณลักษณะนี้มีประโยชน์อย่างมากสำหรับแล็ปท็อปที่มีการระบายความร้อนที่ไม่ดีและ BIOSs whos ตั้งใจเค้นที่อุณหภูมิสูงเกินไป ขณะนี้ Powerd ยังตรวจจับการเปลี่ยนแปลงสถานะพลังงาน (ซึ่งสามารถเปลี่ยนความถี่ของความถี่ที่มี) และเปลี่ยนการบริการได้อย่างถูกต้องเมื่อมีการเปลี่ยนแปลงสถานะพลังงาน
- Lots of libthread_xu / pthreads แก้ไขและปรับปรุงเพื่อปรับปรุงความเข้ากันได้ของ dports
- เพิ่มคุณสมบัติการคัดลอกลงใน vkernel ตัวอย่างเช่นอนุญาตให้ใช้ vkernels หลายรูปแบบเพื่อใช้ภาพดิสก์ตัวเดียวได้โดยการปรับเปลี่ยน COW แต่ละตัวไปเป็น ram
- / usr / src / ความปลอดภัยที่เชื่อมต่ออยู่ความขัดแย้งที่ถูกลบออกจาก libmd, libcrypt
- เครื่องมือต่างๆได้รับการอัปเกรดในระบบฐาน:
- คอมไพเลอร์อัปเดตไปที่ GCC 5.4.1 แล้ว
- ขณะนี้เรามีผู้ประสานงานทองกับ LTO แล้ว
- binutils 2.25
- น้อยกว่า 481
- OpenSSL / LibRESSL ปรับปรุงใหม่อย่างสมบูรณ์ ฐานใช้ libressl แล้ว
- อัปเดตเขตเวลาหลายรายการ
- สถานะค้อน:
- การปรับปรุงเบ็ดเตล็ด สิ่งหนึ่งที่ไม่ได้ทำให้กลายเป็นรุ่นที่เผยแพร่คือการชนรุ่นเพื่อใช้อัลกอริธึม CRC ที่รวดเร็วขึ้นด้วยพหุนามที่แตกต่างกัน งานนี้จะเป็น MFC'd เพื่อให้ได้รับเมื่อการทดสอบเสร็จสิ้น อย่างไรก็ตามผู้ใช้ไม่ควรกังวลเรื่องนี้มากนักเนื่องจากมีการแก้ไขปัญหาประสิทธิภาพที่ร้ายแรงที่สุดในรุ่น (แก้ไขโค้ด cluster_write () สำหรับระบบไฟล์ที่เขียน)
- Hammer2 สถานะ:
- การพัฒนายังคงดำเนินต่อไป แต่ยังไม่มีคำใดในการเผยแพร่ครั้งแรก
- สถานะฉาง:
- มีการเพิ่มกรอบเริ่มต้นสำหรับการใช้ clang เป็นคอมไพเลอร์ฐานอื่นใน DragonFly เพื่อแทนที่ gcc 4.7 ยังไม่เสร็จสมบูรณ์ คุณสามารถเพิ่ม Clang ได้ในรูปแบบแพคเกจ
- สถานะ 64 บิต:
- โปรดทราบว่า DragonFly เป็นระบบปฏิบัติการแบบ 64 บิตเท่านั้นเมื่อใช้เวอร์ชัน 4.6 และจะไม่ทำงานบนฮาร์ดแวร์แบบ 32 บิต
- การสนับสนุน AMD Ryzen กำลังอยู่ระหว่างการเปิดตัวและการพัฒนาเพิ่มเติมของ Ryzen จะเกิดขึ้นต่อไป มีปัญหา CPU-reported-topology บางอย่างที่จะแก้ไขและ MFC'd ปัญหาเสถียรภาพบางอย่างกำลังรอการอัปเดตของไมโครโปรเซสเซอร์ AMD เพื่อแก้ไข / สอบซ่อม ผู้ใช้ Ryzen สามารถมั่นใจได้ว่าเราจะอยู่เคียงข้างคุณ!
- mmcsd (4): แก้ไขข้อผิดพลาดในอาร์เรย์ disk_create () อนุญาตให้เข้าถึงการ์ดหน่วยความจำ SD / MMC & gt; 1
- เพิ่มซิป (1) ถ้าคุณไม่สามารถเอาชนะได้ให้เข้าร่วม em
- เรียกคืนความสามารถของโทในการสร้าง Release 4.4
- buildworld - อนุญาตให้รีเซ็ตสร้างบนต้นแบบ
- etc / rc.d - การปรับเปลี่ยนแบบไม่ใช้ดิสก์
- kernel - เพิ่มการสนับสนุน kqueue ไปยัง NFS (แก้ไขปัญหา firefox ด้วย / nfs)
- นำเข้า OpenSSL 1.0.1s
- การปรับท้องถิ่นสำหรับ OpenSSL 1.0.1s
- ซิงค์ฐานข้อมูล zoneinfo กับ tzdata2016b จาก ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): อย่าเตือนเกี่ยวกับคำย่อเช่น '-05'
- zic (8): ลบ 'register' ที่พุ่งเข้ามาในการกระทำครั้งสุดท้าย
- kernel / acpi_timer: เพิ่ม cpu_enable_intr ที่หายไป () หลังจากทดสอบตัวจับเวลา
- em.4: พูดถึงการสนับสนุนของ i219
- ig_hal / em / emx: เพิ่มการสนับสนุน I219 (Skylake)
- sys / vfs / hammer: แก้ไขข้อผิดพลาดในการลบหัวเรื่องส่วนหัวของไดรฟ์ข้อมูล
- sbin / hammer: อย่าเข้าถึงบัฟเฟอร์ผู้ใช้ HAMMER เกินกว่า 16KB
- sbin / hammer: เพิ่มตัวเลือก obfuscate เพื่อแสดงค้อน
- sys / vfs / hammer: แก้ไขปัญหาชั่วคราวของ kernel panic บน volume-del
- mmcsd (4): แก้ไขข้อผิดพลาดในอาร์เรย์ disk_create () อนุญาตให้เข้าถึงการ์ดหน่วยความจำ SD / MMC & gt; 1
- เพิ่มซิป (1) ถ้าคุณไม่สามารถเอาชนะได้ให้เข้าร่วม em
- เรียกคืนความสามารถของโทในการสร้าง Release 4.4
- buildworld - อนุญาตให้รีเซ็ตสร้างบนต้นแบบ
- etc / rc.d - การปรับเปลี่ยนแบบไม่ใช้ดิสก์
- kernel - เพิ่มการสนับสนุน kqueue ไปยัง NFS (แก้ไขปัญหา firefox ด้วย / nfs)
- นำเข้า OpenSSL 1.0.1s
- การปรับท้องถิ่นสำหรับ OpenSSL 1.0.1s
- ซิงค์ฐานข้อมูล zoneinfo กับ tzdata2016b จาก ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): อย่าเตือนเกี่ยวกับคำย่อเช่น '-05'
- zic (8): ลบ 'register' ที่พุ่งเข้ามาในการกระทำครั้งสุดท้าย
- kernel / acpi_timer: เพิ่ม cpu_enable_intr ที่หายไป () หลังจากทดสอบตัวจับเวลา
- em.4: พูดถึงการสนับสนุนของ i219
- ig_hal / em / emx: เพิ่มการสนับสนุน I219 (Skylake)
- sys / vfs / hammer: แก้ไขข้อผิดพลาดในการลบหัวเรื่องส่วนหัวของไดรฟ์ข้อมูล
- sbin / hammer: อย่าเข้าถึงบัฟเฟอร์ผู้ใช้ HAMMER เกินกว่า 16KB
- sbin / hammer: เพิ่มตัวเลือก obfuscate เพื่อแสดงค้อน
- sys / vfs / hammer: แก้ไขปัญหาชั่วคราวของ kernel panic บน volume-del
- mmcsd (4): แก้ไขข้อผิดพลาดในอาร์เรย์ disk_create () อนุญาตให้เข้าถึงการ์ดหน่วยความจำ SD / MMC & gt; 1
- เพิ่มซิป (1) ถ้าคุณไม่สามารถเอาชนะได้ให้เข้าร่วม em
- เรียกคืนความสามารถของโทในการสร้าง Release 4.4
- buildworld - อนุญาตให้รีเซ็ตสร้างบนต้นแบบ
- etc / rc.d - การปรับเปลี่ยนแบบไม่ใช้ดิสก์
- kernel - เพิ่มการสนับสนุน kqueue ไปยัง NFS (แก้ไขปัญหา firefox ด้วย / nfs)
- นำเข้า OpenSSL 1.0.1s
- การปรับท้องถิ่นสำหรับ OpenSSL 1.0.1s
- ซิงค์ฐานข้อมูล zoneinfo กับ tzdata2016b จาก ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): อย่าเตือนเกี่ยวกับคำย่อเช่น '-05'
- zic (8): ลบ 'register' ที่พุ่งเข้ามาในการกระทำครั้งสุดท้าย
- kernel / acpi_timer: เพิ่ม cpu_enable_intr ที่หายไป () หลังจากทดสอบตัวจับเวลา
- em.4: พูดถึงการสนับสนุนของ i219
- ig_hal / em / emx: เพิ่มการสนับสนุน I219 (Skylake)
- sys / vfs / hammer: แก้ไขข้อผิดพลาดในการลบหัวเรื่องส่วนหัวของไดรฟ์ข้อมูล
- sbin / hammer: อย่าเข้าถึงบัฟเฟอร์ผู้ใช้ HAMMER เกินกว่า 16KB
- sbin / hammer: เพิ่มตัวเลือก obfuscate เพื่อแสดงค้อน
- sys / vfs / hammer: แก้ไขปัญหาชั่วคราวของ kernel panic บน volume-del
- virtio_blk: ใช้ contigmalloc / contigfree สำหรับการจัดสรร vtblk_request
- drm / radeon: เราต้องการที่อยู่จริงของหน้าดัมมี่ไม่ใช่เสมือน
- if_iwm: ใช้การเปลี่ยนแปลงบางอย่างจาก OpenBSD, if_iwm.c รอบ 1.39 - & gt; 1.42
- if_iwm: เพียงเก็บตัวชี้เฟิร์มแวร์โครงสร้างเช่น if_iwn ไม่ได้
- if_iwm: ลบความคิดเห็นที่อ้างถึงลินุกซ์ไฟล์ iwlwifi ของ Linux
- if_iwm: แก้ไขการใช้ IEEE80211_ADDR_COPY ()
- if_iwm: แก้ไขโค้ดการตั้งค่าการควบคุมอัตราค่าใช้จ่าย
- etc / rc.d: อัปเดตข้อมูล rtsold
- i915 - เพิ่มความล่าช้าหลังจากแนบเพื่อหลีกเลี่ยงการแข่งขันคอนโซล / X
- kernel - ลด ltrp_signotify () latency
- devfs - แก้ไขความหวาดกลัวเกี่ยวกับ devfs พิเศษเมื่อมีกฎอยู่
- ssh - ลบการสนับสนุนข้ามเขตแบบไม่ได้รับการสนับสนุน CVE-2016-0777 CVE-2016-0778
- kernel - เพิ่ม quirks สำหรับ xhci (usb)
- ค้อน - ลบการแก้จุดบกพร่อง kprintf
- libc / stdtime: แก้ไขสองกรณีที่ตัวชี้ NULL อาจเป็นค่าว่าง () 'd.
- kernel / vga: ลบ lwkt_reltoken () ที่ไม่ถูกต้อง ยังไม่ถึงจุดนี้
- libc / nls: ซิงค์ข้อความ str (ข้อผิดพลาด, สัญญาณ} () ด้วย
- w (1): inet_addr () จะส่งกลับ INADDR_NONE เมื่อความล้มเหลว
- ee (1): แก้ไขตัวแปรที่ไม่ได้เริ่มดำเนินการ
- kernel: แก้ไข kern.dumpdev sysctl
- นำเข้า OpenSSL 1.0.1r.
- การปรับท้องถิ่นสำหรับ OpenSSL 1.0.1r.
- gcc50 / libconv_supc: cp-demangle.c ต้องการ HAVE_CONFIG_H.
- ซิงค์ฐานข้อมูล zoneinfo กับ tzdata2016a จาก ftp://ftp.iana.org/tz/releases
- อัปเกรด: เพิ่มเขตเวลาที่ล้าสมัย
- igb: แก้ไขการตั้งค่า DMACR
- ifconfig: แก้ไขการลบที่อยู่ inet6
- Kernel:
- ปรับปรุงการตั้งค่าการประหยัดพลังงานของ CPU
- ลดการจัดสรรไฟล์ / การโต้แย้งฟรี
- ลดการโต้แย้งของ kqueue
- ดำเนินการเรียกระบบ lwp_setname (2)
- แก้ไข dsp (4) การสนับสนุนการดำเนินการ nonblocking
- เพิ่ม Aperf (4) driver เพื่อแสดงความถี่ของ CPU ที่มีประสิทธิภาพ
- การล้างข้อมูลจำนวนมากและการแก้ไข HAMMER
- ซิงค์ ACPICA กับ 20151124
- ส่วนใหญ่แล้วเสร็จแล้วเอาบิต i386 (32 บิต) ออก
- ปรับฮีปบูตเพื่อจัดการกับภาพ MD ขนาดใหญ่
- รหัสผ่านการล้างข้อมูลบนรหัส kernel ที่ตายแล้ว (ยังคงมีการเชื่อมต่อ syslink)
- ถูกลบออก (เกิดข้อผิดพลาดและไม่ทำงานได้ดีกับ SSD)
- ขั้นตอนวิธีการกู้คืนเพจเจอร์สำหรับหน่วยความจำต่ำและหน่วยความจำ pkill
- Graphics:
- ไดร์เวอร์ drm / i915 และ drm / radeon ตรงกับ kernel Linux 3.18
- i915 สนับสนุน ValleyView / Baytrail และ Cherryview Atom SOCs
- GPU ในบรอดเวย์ตอนนี้เร่งขึ้นอย่างเต็มที่
- เตรียมงานให้การสนับสนุน Skylake
- ตอนนี้ระบบคอนโซลสนับสนุนกราฟิก DRM ตามค่าเริ่มต้นแล้ว เทอร์มินัลเสมือนไม่ได้แสดงหน้าจอสีดำอีกต่อไปเมื่อเริ่มต้น Xorg และโมดูลเคอร์เนลหนึ่งกิโลเมตรที่โหลด
- จัดการพลังงานที่ดีขึ้น แผงรีเฟรชตัวเองพร้อมใช้งานบนฮาร์ดแวร์ i915
- เซ็นเซอร์วัดอุณหภูมิได้รับการสนับสนุนบนฮาร์ดแวร์ Radeon แล้ว
- เครือข่าย:
- สนับสนุน Realtek 8168H ในอีก (4)
- เพิ่ม driver iv (iwm) แล้ว
- rtadvd อัปเดตเพิ่ม rtadvctl
- การเชื่อมต่อ UDP แบบอะซิงโครนัสสำหรับการจัดการโหลดที่มากขึ้น
- หน้าต่างเริ่มต้น TCP ใหม่ขึ้นสำหรับการเชื่อมต่อที่มีความหน่วงสูง
- ค่า Nmbcluster ของเคอร์เนลสามารถปรับค่าได้จริงสำหรับการเข้าชมที่รุนแรงระบบเครือข่าย:
- ทำให้เสถียรภาพของซ็อกเก็ตโดเมน UNIX
- รหัส GC ใหม่สำหรับ fd-passing over unix domain sockets
- การซิงค์ IPv6 อื่น ๆ กับ FreeBSD
- ปรับปรุงประสิทธิภาพ socket (2) สำหรับ TCP และ UDP
- ปรับปรุงการเชื่อมต่อ TCP (2) พอร์ตภายในที่ปรับปรุงใหม่
- เพิ่มการยอมรับ (4) การเรียกระบบ
- เพิ่มการสนับสนุน SOCK_CLOEXEC และ SOCK_NONBLOCK ซ็อกเก็ต (2) และ accept4 (2) flags
- ทำให้คุณลักษณะการควบคุมการไหลของ HW สามารถใช้งานได้ ifconfig
- เพิ่ม tunables เพื่อให้ NFSROOT iosize และ readahead ถูกตั้งค่าไว้
- นำไฟล์ ipfw ที่ขยายจาก FreeBSD (เรียกว่า ipfw3 ใน DFly)
- ไดรเวอร์อื่น ๆ :
- สนับสนุน MIDI แล้ว
- bugfixes จำนวนมากสำหรับเครื่องแม็ปอุปกรณ์
- dm-delay และ dm-flakey ถูกเพิ่มเข้าไปในเครื่องแม็ปอุปกรณ์
- โมเด็ม USB ทำงานได้ดีขึ้น (หรืออย่างน้อยก็ไม่ต้องตื่นตระหนกเคอร์เนล)
- เพิ่มการเข้าถึงคุณลักษณะและสถานะของ ECC ram ECC
- wlan ได้รับการอัปเดตจาก FreeBSD (ก่อนการถอดอุปกรณ์แบบแยก)
- Userland:
- ไลบรารี regex ถูกแทนที่ด้วยไลบรารี regex TRE แบบหลายไบต์และโดยทั่วไป ตรงกับคุณสมบัติของ OSX (DF เป็น BSD ตัวแรกที่ย้ายไปยัง TRE หลังจาก MacOS)
- libm ถูกแทนที่ด้วยเวอร์ชัน OpenBSD (นี่คืองานที่กำลังทำงานร่วมกันอยู่ระหว่างดำเนินการ)
- libc มีคุณลักษณะเวอร์ชันสัญลักษณ์ซึ่งสามารถใช้งานไบนารีที่สร้างขึ้นใน Release 4.4 เพื่อดำเนินการใน DragonFly เป็นเวลาหลายปีในอนาคต
- ตรวจสอบการปรับปรุงและปรับปรุงตำแหน่งรวมทั้งการใช้การเรียงข้อมูล
- malloc.h removed (DragonFly เป็น BSD ตัวแรกที่เอาหัวข้อนี้ออก)
- gcc50 libstdc ++ ที่ได้รับการแก้ไขเพื่อให้สามารถใช้ฟังก์ชัน C99 ได้อย่างเต็มที่ใน
- เป็นผลมาจากการอัพเดต locales ผลลัพธ์ของ ls (1) รูปแบบที่ยาวและ -T รูปแบบมีการเปลี่ยนแปลงเมื่อใช้ชื่อ locales (โดยใช้คำจำกัดความของ POSIX จึงรับประกันได้ทั้งแบบรวดเร็วและสามตัวอักษรกว้าง) และปี, ชั่วโมงและข้อมูลที่สองจะปรากฏขึ้นเสมอ ภายใต้ตำแหน่ง C / POSIX จะไม่มีการเปลี่ยนแปลงในผลลัพธ์ ls (1) ที่ไม่ใช่การจัดการประทับเวลาในอนาคตได้รับการแก้ไขให้ตรงกับข้อกำหนดมาตรฐาน POSIX
- ถ้ามีการใช้ WPA Supplicant จากฐานข้อมูลจะมีการหน่วงเวลา 10 วินาทีในระหว่างการบู๊ตเมื่อมีข้อความปรากฏขึ้นซึ่งขอแนะนำให้ใช้รุ่น DPorts (security / wpa_supplicant) แทน
- ปรับปรุง powerd (8)
- เพิ่มผลลัพธ์ด้านบน (1) และ ps (1) สำหรับ LWP และเธรดของเคอร์เนล
- แก้ไขการสนับสนุน pthread_set_name_np (3)
- ย้าย tcpdrop (8)
- การเพิ่มตำแหน่งที่ตั้งใหม่ ๆ รวมถึงภาษาอาหรับหกแห่ง (UAE, ซาอุดิอาระเบียอียิปต์จอร์แดนโมร็อกโกกาตาร์) สถานที่อื่น ๆ ในสเปน (เม็กซิโกอาร์เจนตินาคอสตาริกา) สถานที่อื่น ๆ ในภาษาอังกฤษ (ฟิลิปปินส์สิงคโปร์ฮ่องกง) (นอร์เวย์และนอร์เวย์) เซอร์เบียนำเสนอทั้งแบบอักษรซีริลลิกและลาตินในขณะนี้ ('locale -a' แสดงรายการที่สมบูรณ์)
- rtadvc นำเข้าจาก FreeBSD
- เครื่องมือต่างๆได้รับการอัปเกรดในระบบฐาน:
- nvi2 อัปเดตเป็นเวอร์ชัน 2.1.3
- เพิ่ม libexecinfo (ซิงค์จาก FreeBSD)
- ไอคอนตรงกันกับ FreeBSD
- openssl อัปเดตเป็น 1.0.1q
- xz อัปเดตเป็น 5.2.2
- libedit อัปเดตเป็นเวอร์ชัน 2015-03-25
- binutils อัปเดตเป็น 2.25.1
- grep อัปเดตเป็น 2.22
- tcsh อัปเดตเป็น 6.19.00
- libdialog ได้รับการอัปเดตเป็น v1.2-20150920
- (tn) อัปเดต FTP เป็น '10 ต.ค. 2015 '
- gcc อัพเดตเป็น 5.2
- acpica อัปเดตเป็น 20150717
- sort (1) ซึ่งมาจาก NetBSD ถูกแทนที่ด้วยเวอร์ชัน FreeBSD
- localedef (1) เครื่องมือภายในที่มีต้นกำเนิดใน Illumos
- cldr2def เครื่องมือภายในที่มีต้นกำเนิดในโครงการ FreeBSD ที่ถูกละทิ้ง แต่ขยายไปสู่ DF
- นำออกจากระบบฐาน:
- hostapd (มีเวอร์ชันล่าสุดผ่าน dports: net / hostapd)
- mklocale (ถูกแทนที่ด้วย localedef)
- colldef (ถูกแทนที่ด้วย localedef)
- การปรับปรุง HAMMER:
- มีการล้างข้อมูลจำนวนมากและแก้ไข Hammer1 ด้วย Tomohiro Kusumi
- การปรับปรุงอื่น ๆ :
- DPorts มีจำนวนประมาณ 22,800 พอร์ต พอร์ตที่เสียไปก่อนหน้านี้หลายแห่งได้รับการแก้ไขโดยผู้ใช้ปกติเนื่องจากมีส่วนร่วมที่นำเสนอผ่านกลไกการดึงข้อมูลของ GitHub (ขอขอบคุณ!)
- หกชุด "อย่างเป็นทางการ" ของวอลเปเปอร์ DragonFly สามารถดูได้ที่ x11-themes / dragonfly-wallpapers (pkg install dragonfly-wallpapers) เหล่านี้จะถูกติดตั้งโดยอัตโนมัติและกำหนดไว้ล่วงหน้าสำหรับผู้ใช้ KDE และติดตั้งโดยอัตโนมัติสำหรับผู้ใช้ XFCE4 แต่วอลล์เปเปอร์ยังคงได้รับการเลือกด้วยตนเองด้วยเดสก์ท็อปนั้น (อย่างน้อยตอนนี้) ได้รับการติดตั้งที่แชร์ / วอลเปเปอร์ซึ่งเชื่อมโยงไปถึงการแบ่งปัน / ภูมิหลัง / แมลงปอ
มีอะไรใหม่ ในเวอร์ชัน 4.8.1:
มีอะไรใหม่ ในเวอร์ชัน 4.8.0:
มีอะไรใหม่ ในเวอร์ชัน 4.6.0:
มีอะไรใหม่ ในเวอร์ชัน 4.4.3 / 4.6.0 RC2:
มีอะไรใหม่ ในเวอร์ชัน 4.4.3:
มีอะไรใหม่ ในเวอร์ชัน 4.4.2:
มีอะไรใหม่ ในเวอร์ชัน 4.4.1:
ความคิดเห็นที่ไม่พบ