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

Software-update: DragonFly BSD 1.4.4

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.4.4 beschikbaar waar weer een hoop verbeteringen in terug te vinden zijn. De volledige aankondiging van de 1.4.x reeks ziet er als volgt uit:

Version 1.4.4:

1.4.4 is the fourth bug-fix sub-release in the 1.4 release branch.
  • Fixed a bug in pcb_ext, used when mapping I/O.
  • Fixed a number of bugs in UFS's softupdates.
  • Fixed a bug related vesa mode screen restore.
  • Fixed a module ref counting bug.
  • Reengineered the Random Number Entropy gathering algorithm.
  • Sysmouse termio defaults are now correct by default.
  • Various NFS races have been fixed.
  • A bug in the NFS access cache was fixed, related to coarse offset adjustments to the time of day.
  • MSDOS filesystems can now be exported via NFS.
  • A number of wchar related fixes have been made.
  • A serious sendmail security fix was brought in.
  • Numerous kernel memory disclosure holes have been closed.
  • Various VFS races which could lead to filesystem corruption have been fixed.
  • Various bugs in NDIS have been fixed.
  • A microseconds vs nanoseconds mixup in adjtime() has been fixed.
  • A number of IPSEC related bugs have been fixed
  • A bug in the fork/exit code that could result in a hung process has been fixed.
  • Numerous networking issues have been fixed.
  • A linker bug related to TLS vs non-TLS storage has been fixed.
  • Numerous installer errata has been fixed.

Version 1.4.0:

1.4 is our third major DragonFly release. DragonFly's policy is to only commit bug fixes to release branches.

The two biggest user-visible changes in this release are (a) A major revamping of libc, ctype, and wchar support, as well as changes made in the kernel which require us to bump the major rev for all of our shared libraries, and (b) The introduction of PKGSRC to manage third party applications. DragonFly no longer supports the FreeBSD PORTS system.

A huge amount of under-the-hood work has been accomplished with this release, in particular with network device drivers and protocol stacks, journaling, and the scheduler. A phenominal amount of work has gone into stabilizing major subsystems as part of our effort to remove the big giant lock. A lot of obscure race conditions and bugs have been found and fixed. From a stability perspective we believe this is our best release to date!
  • Add the closefrom() system call.
  • GCC 3.4 is now the default compiler. 2.95.x is no longer supported (it can't handle the new threading storage classes properly).
  • Import Citrus from NetBSD.
  • Implement direct TLS support for programs whether threaded or not.
  • Major library and user-visible system structure changes (dirent, stat, errno, etc), and other work requires a major library bump for libc and other libraries. libc is now
  • stat: inode size now 64 bits, nlink now 32 bits. new fields, added pad.
  • dirent: inode size now 64 bits, various fields disentangled from the UFS dirent.
  • statfs: new fields, added pad.
  • Clean up RC scripts that are not used by DragonFly.
  • Remove the OS keyword requirement for RC scripts.
  • Add support for unsigned quads to sysctl.
  • Implement DNTPD, DragonFly's own NTP client time synchronization demon.
  • Correct a large number of bugs in the third party ntpd code, but for client-side operations we now recommend you use dntpd.
  • Add a framework for aggregating per-cpu structures for user reporting.
  • Userland TLS (data spaces for threads) support added.
  • Create a binary library compatibility infrastructure that allows us to install and/or upgrade older revs of shared libraries on newer machines to maintain compatibility with older programs.
  • Fix issues related to the expansion of symbolic links by the bourne shell.
  • Many, Many mdoc cleanups and fixes.
  • Update cvs, openssl, ssh, sendmail, groff, and other numerous contributed applications.
  • Bring in a brand new pam infrastructure.
  • Introduce pkgsrc support.
  • Get rid of libmsun.
  • Implement backwards scanning and partial-transaction handling features in jscan.
  • FreeBSD-SA-05:06.iir - major disk access vulnerability for IIR
  • FreeBSD-SA-05:04.ifconf - memory disclosure vulnerability
  • FreeBSD-SA-05:08.kmem - memory disclosure vulnerability
  • FreeBSD-SA-05:16.zlib - possible buffer overflow in zlib
  • FreeBSD-SA-05:18.zlib - possible buffer overflow in zlib
  • FreeBSD-SA-05:15.tcp - fix TCP RESET window check (DOS attack vulnerability)
  • ? - a bzip2 vulnerability
  • Fix a bug in the TCP NewReno algorithm which could result in a large amount of data being unnecessarily retransmitted.
  • Fix numerous TCP buffering issues.
  • Implement TCP Appropriate Byte Counting
  • Bring in ALTQ and reorganize the IF queueing code to remove per-driver depdendancies on ALTQ.
  • Strip away numerous TCP hidden indirections that make code hard to read and understand.
  • Introduce BPF_MTAP which includes an address family parameter.
  • Reimplement network polling with a systimer, allowing the frequency to be adjusted on the fly.
  • Remove the really bad hack that was calling the network polling code from the trap code.
  • Completely rewrite nework polling support.
  • Make the network IF serializer mandatory for all network device driver interrupts, ioctl's, and if_ callbacks.
  • Implement a very fast memory object caching infrastructure. This will eventually replace zalloc() (but not yet).
  • Rewrite the mbuf allocator using the new memory object caching infrastructure. Remove many crazily-large mbuf macros in favor of the new infrastructure.
  • Convert all remaining uses of the old mbuf m_ext API to the new API. Remove support for the old API.
  • Reorder the detach sequence in all network drivers. Unhook the interrupt first rather then last.
  • Fix all instances where an mbuf packet header and mbuf data buffer were being referenced by the wrong name and all instances where the packet header flag was being improperly set or cleared.
  • Fix a number of mbuf statistics counting bugs.
  • Fix numerous bugs in ipfw/ipfw2 where m_tag data was not being stored in the right place, resulting in a panic.
  • Add support for the experiemental SCTP protocol.
  • Fix an issue with cloned interfaces being added twice.
  • Add a passive IPIQ call for non-time-critical events such as memory free() calls.
  • Add TLS support for threads using the GDT instead of the LDT.
  • Greatly simplify and demystify the NTP kernel interface. Convert most aspects of the interface over to sysctls.
  • Implement ranged fsync's in-kernel. This capability will eventually replace the write-behind heuristic.
  • Introduce MP-safe mountlist scanning code.
  • Introduce rip-out-safe red-black tree scanning code.
  • Use the new RB scanning code to get rid of VPLACEMARKER and generally use the new RB scanning code to handle all RB tree scanning in a safe way (allowing the scan code callback to block).
  • Zoneinfo upgrades
  • Rename cpu_mb*() functions to cpu_mfence(), cpu_lfence(), and cpu_sfence() to make their function more apparent.
  • Fix bugs in the LWKT token code related to token references being lost due to a preemption or blocking condition.
  • Fix bugs in the LWKT rwlock code relating to preemption occuring during token acquisition.
  • Fix a bug in the LWKT thread queueing and dequeueing code related to a preemption.
  • Increase the size of the physmap[] array to accomodate newer PC's which have a larger number of memory segments and fix an overflow bug.
  • Use the ACPI timer if present instead of one of the other 8254 timers (which are not dependable because BIOS calls might manipulate them).
  • Change cpu statistics to be accounted for on a per-cpu basis.
  • Make network routing statistics per-cpu.
  • Extend the interrupt vector code to pass a frame as a pointer.
  • Remove the last vestiges of the old mbuf tagging code.
  • Add a serializer API and code (basically blockable mutexes).
  • Add interrupt enablement and disablement features to the new serializer module to deal with races against blocked serializer locks when e.g. removing a driver.
  • Remove bus_{disable,enable}_intr(), it was not generic enough for our needs.
  • Remove all spl*() procedures and convert all uses to critical sections.
  • Do not try to completely halt all cpus when panic()ing as this will likely leave the machine in a state that prevents it from being able to do a dump.
  • Try to unwind certain conditions when panic()ing from a trap in order to give the machine a better chance to dump its core.
  • A number of malloc()'s using M_NOWAIT really needed to be using M_WAITOK.
  • Attempt to avoid a livelocked USB interrupt during boot by delaying the enablement of the EHCI interrupt until after all companion controllers have been attached.
  • Reimplement the kernel tracepoint facility (KTR) to greatly reduce the complexity of the API as well as remove all hardwired flags and values. In addition, record two levels of call backtrace for each entry, if enabled.
  • Beef up ktrdump to display symbolic results when possible.
  • Beef up the slab allocator build with INVARINTS by adding a bitmap to detect duplicate frees and such.
  • Remove the 16 bit count limit for file descriptors.
  • Replace the file descriptor allocator with an O(log N) full-on in-place binary search tree.
  • Allow the initial stack pointer for a use process to be randomized.
  • Fix numerous scheduling issues that could cause the scheduler to lose track of a reschedule request, resulting in poor interactive performance. Rewrite the interactive/batch heuristic.
  • Begin to implement a management system to allow multiple userland schedulers to be configured in a system.
  • Add rm -I and add an alias for interactive shells to use it by default. -I is a less invasive -i.
  • Fix a bug in the pipe code that was not handling kernel-space writes correctly. Such writes can occur whenever the kernel writes KVM-referenced data to a descriptor, such as that journaling code might do.
  • Fix many issues with the high level filesystem journaling code. High level journal records are now considered fairly solid.
  • Implement the transactional features of the high level journaling subsystem by allowing a journaling record to be written prior to the VFS operation being executed, then aborted if the VFS operation fails.
  • Implement UNDO records for most journaling transaction types.
  • Implement the journaling code's full-duplex ack protocol feature which allows journals to be broken and restarted without losing data.
  • Implement a stat-visible FSMID (filesystem modification id). This identifier changes whenever any modifying operation on the file or directory occurs, and for directories this identifier also changes if anything in the sub-tree under the directory is modified (recursively). The FSMID is synthesized for filesystems which do not implement it directly in order to guarentee its usefulness for at least a subset of operations.
  • Implement pesistent storage of the FSMID for UFS.
  • Implement shutdown() support for pipes.
  • Implement a low level spinlock facility. Basically the implementation gives us an MP-safe critical section type of vehicle. However, being a spinlock the facility may only be used for very short sections of code.
  • Fix a bug with USB<->CAM communication for USB mass storage devices.
  • Fix numerous bugs in USB, primarily EHCI.
  • Fix multiple panics when a fatal trap occurs from an IPI or FAST interrupt. Interlock panics on multiple cpus so only the first is recognized as the 'real' panic.
  • Add a large number of assertions to the scheduler and interrupt subsystems.
  • Fix a critical IPI messaging bug (SMP only).
  • Do not compile the kernel with the stack protector. The stack protector generates weird incorrect or unexpected code in some cases which interfere with the C<->assembly interactions in the kernel build
  • Various bug fixes to softupdates.
  • Fix a bitmap scanning bug in UFS which could sometimes result in a sanity check panic, but no data corruption.
  • Fix a deadlock in UFS's ffs_balloc() related to an incorrect buffer locking order.
  • Continued work on the buffer cache.
  • Separate out APIC and ICU interrupt management.
  • Rewrite the interrupt setup code.
  • Major rewriting of the VFS directory scanning code. Add a new function vop_write_dirent() to create the dirent for return to userland. The new API is mandatory and filesystem code (not even UFS) may not make assumptions about the size of the userland-returned dirent.
  • Major cleanup of the device identification method.
  • Lots of driver updates.
  • Ansify a great deal more of the codebase.
  • Remove the now obsolete smp_rendezvous() mechanism.
  • Compile up both the TFTP and the NFS PXE bootp code rather then the (previous) make.conf option to select one or the other.
  • Convert the lockmgr interlock from a token to a spinlock, also incidently fixing an issue where non-blocking locks would still potentially issue a thread switch.
  • Fix bugs in the interrupt livelock code.
  • Rewrite the code handling stopped user processes.
  • Rewrite tsleep()/wakeup() to be per-cpu and MPSAFE. Reorganize the process states (p_stat), removing a number of states but resynthesizing them in eproc for 'ps'.
  • Integrate the new if_bridge code from Open/Net/FreeBSD.
  • Add an emergency interrupt polling feature that can be used to get an otherwise non-working system working.
DragonFly BSD
Versienummer 1.4.4
Website DragonFly BSD Project
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Japke Rosink


Reacties (7)

Wijzig sortering
en zo is er weer een afsplitsing...

geloof me ik ben best een voorstander van open software enzo. maar uiteindelijk zie je door de bomen het bos niet meer. x verschillende bsd versies xxx verschillende linux varianten..

hoe zat dat ook alweer met unix???

Unix zitten ook zat afsplitsingen in, alleen de meeste Unixen worden voornamelijk gebruikt op specifiek gebied en daarom vrij onbekend bij de meeste mensen.

En BSD is Unix :P
dat bedoelde ik eigenlijk ook. Wat ik begreep is dat de grote hoeveelheid unixen ook de "ondergang" van unix betekende. Maar dat durf ik dan ook niet met zekerheid te zeggen..

dat bsd unix is dat wist ik dan nog net wel :) maar toch bedankt hehe...
Wat uit het artikel niet blijkt, maar PC-BSD is ook gebasseerd op FreeBSD. In feite is het FreeBSD 6 met een voorgeinstalleerde desktop en software en wat usuability adjustments (meer gericht op de beginnende BSD'er).
Misschien een domme vraag hier, maar wat is precies het verschil tussen linux en bsd?
De BSD kernel is anders dan de Linux kernel

BSD is trouwens ook meer dan een kernel, maar een complete distrobutie die ook een kernel bevat.

Linux is alleen een kernel.
En distro pakt de Linux kernel + software (bv redhat, suse, ect)

Op dit item kan niet meer gereageerd worden.

Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Elektrische auto

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack,, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True