Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 0 reacties
Bron: DragonFly BSD Project

Wie denkt aan een BSD-gebaseerd besturingssysteem zal meteen denken aan één van de drie bekende BSD-varianten, FreeBSD, OpenBSD of NetBSD. Maar daarnaast zijn er nog verschillende andere BSD-varianten beschikbaar zoals PC-BSD en DragonFly BSD. Deze laatste is een afsplitsing van FreeBSD 4.8 die rond juni 2003 onstaan is omdat de project leider van DragonFly BSD Matthew Dillon het destijds oneens was met de gekozen ontwikkelstrategie en aandachtsgebieden voor FreeBSD 5. Voor een overzicht van zijn doelstellingen voor DragonFly BSD kan je deze pagina volledig door spitten. Sinds enkele dagen is DragonFly BSD 1.6.0 beschikbaar waar weer een hoop verbeteringen in terug te vinden zijn. De aankondiging van deze versie ziet er als volgt uit:

Version 1.6.0:

1.6 is our fourth major DragonFly release. DragonFly's policy is to only commit bug fixes to release branches.

The biggest user-visible changes in this release are a new random number generator, a massive reorganization of the 802.11 (wireless) framework, and extensive bug fixes in the kernel. We also made significant progress in pushing the big giant lock inward and made extensive modifications to the kernel infrastructure with an eye towards DragonFly's main clustering and userland VFS goals. We consider 1.6 to be more stable then 1.4.
  • Continued work on LWP/PROC separation.
  • Continued pkgsrc integration.
  • Fix refcount bugs in the kernel module loader and unloader.
  • Lots of netif and serializer cleanups and fixes.
  • Lots of softupdates, filesystem, and buffer cache related fixes.
  • Remove more of the old ports-related infrastructure.
  • Major documentation cleanups.
  • Major code cleanups, ansification.
  • Change the system #include topology so that each include file is responsible for #include'ing any dependant include files.
  • Fix a bug in the PF fragment cache.
  • Random number generator: Instead of generating entropy from selected interrupts (and none by default), we now generate entropy from all interrupts by default and rate limit it to not interfere with high performance interrupts.
  • Random number generator: Completely replace the algorithms, remove limitations on returned bytes from /dev/random (which only served to cause programs to not use /dev/random due to its lack of dependability). Add the ability to seed the RNG. Do some automatic initial seeding at boot.
  • Adjust ssh to find the pkgsrc X11BASE instead of the old ports X11BASE.
  • Fix some compatibility issues in /bin/sh.
  • Fix a small number of critical section enter/exit mismatches.
  • Bring in a bunch of new malloc() features from OpenBSD (guard pages, free page protection, pointer guard, etc).
  • Clean up the DragonFly build system's automatic .patch handling.
  • Bring in openssh 4.3p2.
  • Retire libmsun. It was replaced by NetBSD's libm.
  • Fix a bug in the NFS timer/retry code.
  • Fix issues related to wide-char support.
  • Fix a number of private TSS bugs related to threaded programs.
  • Completely rewrite the user process scheduler and usched APIs.
  • Add system calls that allow a blocking/non-blocking flag to be passed independant of the O_NONBLOCK state of the descriptor.
  • Remove all fcntl(... O_NONBLOCK) calls from libc_r, use the new system calls instead. This solves numerous problems with file descriptors shared between threaded and non-threaded programs getting their non-blocking flag set, and then blowing up the non-threaded program.
  • Add additional red-black (RB) tree function support for ranged searches.
  • Get rid of gdb -k, replace with a separately built kgdb, and build a separate libgdb as well.
  • Implement a VM load heuristic. Remove the full-process SWAP code which never worked well and replace with page-fault rate-limiting code based on the VM load.
  • Fix a serious bug in adjtime()'s microseconds calculation.
  • Fix a serious bug in libc's strnstr() function. The function was testing one byte beyond the specified length limit. This can cause a seg-fault when, e.g. using strnstr() on a memory mapped file whos last byte abuts the end of the VM page.
  • Bring in sendmail 8.13.7.
  • Bring in SHA256 support from FreeBSD.
  • Implement a hardlink-mirroring option (-H) in cpdup.
  • Add missing code needed to detect IPSEC packet replays.
  • Enable TCP wrappers in sshd.
  • Restrict recursive DNS queries to localhost by default.
  • Massive reorganization and rewrite of the 802_11 subsystem, with many pieces taken from FreeBSD.
  • Fix a number of issues with user-supplied directory offsets blowing up readdir/getdirentries for NFS and UFS.
  • Normalize internal kernel I/O byte lengths to 'int' and remove a ton of crazy casts to and from unsigned int or size_t.
  • Remove NQNFS support. The mechanisms are too crude to co-exist with upcoming cache coherency management work and the original implementation hacked up the NFS code pretty severely.
  • Remove VOP_GETVOBJECT, VOP_DESTROYVOBJECT, and VOP_CREATEVOBJECT. They never lived up to their billing and DragonFly doesn't need them since DragonFly is capable of aliasing vnodes via the namecache. Rearrange the VFS code such that VOP_OPEN is now responsible for assocating a VM object with a vnode.
  • Formalize open/close counting for the vnode and assert that they are correct.
  • Remove the thread_t argument from most VOP and VFS calls. Remove the thread_t argument from many other kernel procedures.
  • Integrate FreeBSD's new ifconfig(8) utility.
  • Fix a race condition in the floating point fault code that could sometimes result in a kernel assertion.
  • Fix a crash in the TCP code when the MTU is too small to support required TCP/IP/IPSEC options and headers.
  • Separate EXT2 conditionals from the UFS code, copying the files in question to the EXT2 directory instead of trying to conditionalize them. Also remove function hooks and other code mess that had been implemented to allow the UFS code to be used by EXT2.
  • Greatly simplify the lockmgr() API. Remove LK_DRAIN, LK_INTERLOCK, and many other flags. Remove the interlock argument.
  • Fix a bug in the POSIX locking code (lockf). Actually, completely rewrite the POSIX locking code. The previous code was too complex and mostly unreadable.
  • Do a major clean up of all *read*() and *write*() system calls, and iovec handling.
  • Replace many instances where LWKT tokens are used with spinlocks.
  • Make spinlocks panic-friendly. Properly handle the detection of indefinite waits and other deadlock issues.
  • Improve network performance by embedding the netmsg directly in the mbuf instead of allocating a separate netmsg structure for each packet.
  • Implement both shared and exclusive spinlocks. Implement a much faster shared spinlock. Cache the shared state such that no locked bus cycle operation is required in the common case.
  • Implement msleep(). Use a novel approach to handling the interlock that greatly improves performance over other implementations.
  • Add cpu-binding support to the scheduler and add a system call to access it. A user process can be bound to a subset of cpus.
  • Prefix all syscall functions in the kernel with 'sys_' to reduce function prototype pollution and incompatibilities, and to eventually support virtualized kernels running in userland.
  • Port the enhanced SpeedStep driver (EST) for cpu frequency control.
  • Remove the asynchronous syscall interface. It was an idea before its time. However, keep the formalization of the syscall arguments structures.
  • Add a facility which statistically records and dumps program counter tracking data for the kernel.
  • Improve kernel SSE2-based bcopies by calling fnclex instead of fninit.
  • Major BUF/BIO work - make the entire BUF/BIO subsystem BIO centric.
  • Major BUF/BIO work - get rid of block numbers, use 64 bit byte offsets only.
  • Major BUF/BIO work - Clean up structures and compartmentalize driver-specific private fields. Rewrite and simplify device and vnode strategy APIs.
  • Major BUF/BIO work - Remove B_PHYS. There is no longer any differentiation between physical and non-physical I/O at the strategy layer.
  • Major BUF/BIO work - Replace the global buffer cache hash table with a per-vnode RB tree. Add sanity checks. Require that all vnode-based buffers be VMIO backed.
  • MPSAFE work - Implement the parallel route table algorithm.
  • MPSAFE work - Make the user process scheduler MPSAFE.
  • MPSAFE work - File descriptor access is now MPASFE. Many fd related functions, like dup(), close(), etc, are either MPSAFE or mostly MPSAFE.
  • MPSAFE work - Push the BGL deeper into the kernel call stack for many system calls.
  • MPSAFE work - Make the process list MPSAFE.
  • MPSAFE work - Make all cred functions MPASFE.
  • NRELEASE - compilable kernel sources are now included on the ISO.
[break]
DragonFly BSD
Moderatie-faq Wijzig weergave

Reacties


Er zijn nog geen reacties geplaatst

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True