Slashdot Mirror


DragonFlyBSD 1.2 Released

vsarunas writes "The DragonFlyBSD Team is pleased to announce the official release of DragonFly 1.2.0! Get it here, or here, or as a torrent. DragonFlyBSD is a continuation of the stable and high-performance FreeBSD 4 branch of FreeBSD with acpica5 and updated drivers so it runs on more and newer machines. DragonFlyBSD can execute FreeBSD 4 and Linux binaries and uses the FreeBSD ports collection. In addition, DragonFlyBSD is also officially supported by pkgsrc. This release represents a significant milestone in efforts to improve the kernel infrastructure. It features a standards-conformant SACK implementation, improvements to the VFS layer, and a multithreaded networking stack that utilizes the DragonFly lightweight message passing system to communicate among processors. More information can be found on Matt Dillon's journal and the Status page of the DragonFly wiki."

45 of 184 comments (clear)

  1. DragonFly is awesome! by Anonymous Coward · · Score: 2, Funny

    Fly Fred Fly!!!!

  2. FreeBSD alternatives on the rise... by Ars-Fartsica · · Score: 3, Interesting
    NetBSD in particular and DragonFlyBSD to a lesser extent seem to be taking off in the wake of what seems like mass disillusionment in FreeBSD 5.x.

    I would be interested in hearing from people how either of these BSD alternatives stack up as a desktop box.

    1. Re:FreeBSD alternatives on the rise... by dinivin · · Score: 5, Interesting

      DragonFly doesn't stack up as a desktop box at the moment. Here's a post I made on osnews.com about it:

      Go ahead, install Dfly, and cvsup the latest FreeBSD ports tree and DragonFly dfports tree. Now try to build some useful apps... Way too many apps won't build from the ports tree. If you're lucky enough, there's a dfports override. If you're even luckier, it'll be the same version as the ports tree. Let's assume you actually get those apps installed... A few weeks later you cvsup the ports tree again and try to do a portupgrade. Suddenly SDL in the ports tree is upgraded... By SDL in the dfports tree isn't. Great... Now you have apps that want the newer SDL that keep building SDL from dfports, which you already have installed and which isn't up-to-date...

      You can always try pkgsrc, if you want.

      First, you need to build and install the bootstrap code. Then you need to update bmake from the bmake package (the forget to tell you that on the gobsd.com site). Forget about getting enlightenment running, imlib2 fails to build. You currently need to patch the gtk2 port (assuming the patch hasn't been committed yet). Firefox won't build, nor will SDL. If you want to build Blender, it'll try to build nasm, which requires the gcc3-c package... Which won't build. (You can edit the nasm Makefile to remove the gcc3-c dependency).

      Sorry folks, but DragonFly is really only suited for developers at the moment, IMHO.

    2. Re:FreeBSD alternatives on the rise... by xedx · · Score: 3, Informative

      Unfortunately DragonFly doesn't yet have its own package manager, so some applications may not build or will require some extra effort like patches to build. But most if not all can be built using the DragonFly override of ports (DFPORTS) and PKGSRC

    3. Re:FreeBSD alternatives on the rise... by puppy0341 · · Score: 4, Informative

      I'm using DragonFlyBSD as my desktop without problems.
      You still need the libmap patch for flash, because they think it's too dirty to integrate.
      http://leaf.dragonflybsd.org/mailarchi ve/users/200 5-01/msg00045.html

      Packages are also availbale either built from netbsd pkgsrc of freebsd ports:
      wiki.dragonflybsd.org/index.php/Packages

      I also use the citrus patch to get wide char support:
      leaf.dragonflybsd.org/~joerg/citrus5.dif f

      Packages for use with the citrus patch are availble here:
      http://ftp.fortunaty.net/DragonFly/inoffici al/port s-packages-libc.so.5-gcc34/All/

      If you use gcc34 packages/world everything is compiled with stack protector.
      It's also very snappy :)

    4. Re:FreeBSD alternatives on the rise... by puppy0341 · · Score: 2, Informative

      If you are not a developer you should use packages.
      Of course it's not yet perfect, but who would exepct that.
      And i've yet to see a desktop without problems.

    5. Re:FreeBSD alternatives on the rise... by Anonymous Coward · · Score: 3, Interesting

      I think the "packaging" idea of dragonflybsd deserves a comentary

      Tha plan of matt is to move part of the VFS to userspace (ala plan9 it looks to me, but don't trust me).

      This will allow to do neat tricks too. Say,you have a app depending in randomlib 1.0. Now you want to install something that installs randomlib 2.0 and and breaks the previous app. With the packaging work, matt seems to expect to allow both packages to live at the same time - randomlib 1.0 will be showed to one app and randomlib 2.0 with another.

      Join that VFS work to a good packagin system, and you'll have a system where you can install ANY package without conflicting with other packages - everything could be manipulated by the VFS to avoid conflicts. This means you won't have the conflicts you can have in current systems. With fragonfly, you'll be able to run 5-years old apps at the same time than beta code without incurring in package conflicts.

    6. Re:FreeBSD alternatives on the rise... by dinivin · · Score: 2, Interesting

      If you are not a developer you should use packages.

      If that's the case, why not say that on their website? They don't (or as of this morning, they didn't). Instead, they point out that the FreeBSD ports, combined with the DragonFly dfports is the official method for installing software.

      Of course it's not yet perfect, but who would exepct that. And i've yet to see a desktop without problems.

      Nor did I ever make the claim that the developers said it'd be perfect. Far from it. I was simply responding to the top posters question about how DragonFly stacks up as a desktop OS.

      Dinivin

    7. Re:FreeBSD alternatives on the rise... by drmerope · · Score: 2, Insightful

      I wouldn't call it disillusionment. It is more impatience. I've been using FreeBSD on the desktop since 5.0-Current in 2001, the only real glitch was when they broke signal delivery in 2002.

      As a desktop OS, FreeBSD is pretty healthy--the performance short-comings that still linger in 5.x are not so important on the desktop... imo.

  3. BSD? by stratjakt · · Score: 2, Interesting

    If I wanted to install a BSD on my little home router/gateway, just for the sake of playing around with BSD, which BSD is the one to cut your teeth on?

    With linux, the choice of distro is pretty much irrelevant - to me at least - because I wind up with virtually the same system, the only differences being the layout of some rc scripts.

    The world of BSD isn't the same though, so which is the most prolific, or newbie-friendly, or has the widest support for common hardware, etc?

    About the only thing keeping me from playing with BSD is the lack of a single "entry point".

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:BSD? by swimmar132 · · Score: 2, Informative

      FreeBSD, for sure.

    2. Re:BSD? by random_culchie · · Score: 3, Informative

      I would go with FreeBSD if I was in your shoes.

      Its Installer is a breeze to use and rarely have problems with com mon hardware.

      OpenBSD's Install is a nightmare for a new user (last time I used it!) and is clearly aimed at the security concious user. (The tin foil hat distro hehe)

      I have never used NetBSD but its claim to fame is the sheer number of platforms it supports.

    3. Re:BSD? by niteice · · Score: 2, Informative

      OpenBSD, definitely, since you're running it on a router/gateway.

      --
      ROMANES EUNT DOMUS
    4. Re:BSD? by compass46 · · Score: 2, Funny
      OpenBSD's Install is a nightmare for a new user

      http://www.openbsd.org/faq/faq4.html ;)

      Specifically section 4.5. I use both Free and Open and I like the Open installer MUCH better and find it actually easier to deal with. I printed out section 4 of the FAQ and read along as I installed one of my first times. That install was my first successful one.

    5. Re:BSD? by DesScorp · · Score: 5, Informative

      "which BSD is the one to cut your teeth on?"

      That implies he doesn't know much about BSD. Advocating Open as a first install then, might not be the best of ideas...

      --
      Life is hard, and the world is cruel
    6. Re:BSD? by Nimrangul · · Score: 3, Informative
      OpenBSD is the suggested often for a router because it is a tight little system with a fair number of security enhancements and it's pf packet filter is native to OpenBSD, thus more tightly integrated and tuned for Open.

      It's partly that you don't want a router cracked and partly cause you want the best packet handler, pf is that.

      Plus you can set it up as your mail relay and stop spam, and yadda, yadda, yadda... It's a generally nice small system and the ports with it almost all run without fuss.

      --
      I'm sick of following my dreams - I'm just going to ask them where they're going and hook up with them later.
    7. Re:BSD? by KutuluWare · · Score: 2

      Ideally you will probably want OpenBSD on a router/gateway, since it's typically considered 'more secure' than the others. This is really 'more secure out-of-box', though, since a little effort with any *BSD will get you to the game point.

      However, having installed all four of them in the past 2 months, I can tell you that FreeBSD is the easiest to get up and running. The FreeBSD installer, and all it's well-documented problems, is still much better than the install process for OpenBSD or NetBSD. I would suggest installing the latest released version of FreeBSD 5.x, get used to that, and then try moving up to -STABLE. This will get you used to the ports process, the rebuilding world process, and the general operating of a BSD system.

      Once you are used to BSD, if you feel a need to migrate off of FreeBSD, I would suggest OpenBSD. I would avoid NetBSD unless you need it's platform support, as (IMO) it's the most advanced-admin-centric of the BSD variations.

    8. Re:BSD? by Anonymous Coward · · Score: 2, Insightful

      'About the only thing keeping me from playing with BSD is the lack of a single "entry point".'

      So you're saying that out of the 200+ Linux distributions you can find an easy entry point, but with the 3 BSD OSs (DragonFly is for developers for now) you can't make up your mind?

    9. Re:BSD? by onetruedabe · · Score: 5, Informative

      The common mantra has always been:

      For security, choose OpenBSD.
      For portability, choose NetBSD.
      For usability, choose FreeBSD.

      About the only thing keeping me from playing with BSD is the lack of a single "entry point".

      That's also the biggest strength -- different (*cough*) "distros" have different strengths and weaknesses. (You said it yourself, Linux has become "beige".)

      If you want to breathe new life into an old Alpha you picked up online, NetBSD is the way to go. (Or if you have a handful of different architectures you would like to keep synced to a common source tree.)

      If you want a lean, mean, server machine, you should opt for OpenBSD. [My preference.]

      If you're looking to build a box to use on your desktop and start "fiddling" with, go with FreeBSD -- this is the likely first choice for 80% of the BSD population, and it sounds like what you're looking for.

      (My other criteria is "If you need to run X, run FreeBSD" because it supports the most graphics cards & monitors.)

    10. Re:BSD? by synthespian · · Score: 3, Informative

      OpenBSD install is *not* a nightmare. It's regarded as pretty straightforward. You just have to have some attention span to read the FAQ. Can you do that?
      Otherwise, it's a smooth install. It's not a Linux install, though, it's different. And, also, they generally assume you will *not* be dual-booting.
      Let's dismistify this thing that OpenBSD in an alien OS. It's a rock-solid Unix, secure, peer-verified-code with mechanisms built-in to prevent attacks. It's ports tree is growing.
      The "average" open-source person will not be missing a lot on their ports tree. Only if you need unsual software (unusual in terms of the average Unixhead), like some Common Lisp compilers, or cutting-edge programming languages (Alice, Oz, Mercury, etc) you will miss stuff in the ports tree. You can even install Java (you might miss Mono - but probably nobody's given a serious try at compiling Mono on OpenBSD (*)) But this is not your Linux-kid OS that wants a M$ replacement.
      Please remember BSD has a long history of Unix development. It doesn't have the money that Linux currently is attracting from the suits, but please take an unbiased view: look at the security record of any BSD and compare with *this year's* Linux kernel exploits (25, IIRC). However, people have different needs (some want Java, some want security, some want performance, others have different different hardware and need portability, others need to work on a supercomputer - whatever), so that has to be taken into account. My point is: all this is Unix. And that's a Good Thing.

      (*) A whole different problem, that seems to be growing, is people writing software full of Linuxisms, instead of writing stuff for *UNIX*, in which case it should be portable. This has been a cause of trouble for some programs, for me at least.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    11. Re:BSD? by CondeZer0 · · Score: 2, Insightful

      From a conversation with a friend earlier today:

      "OpenBSD was my first *NIX, and I thank God for initiating me to Unix with the only barely sane *NIX at the time."

      Of course this days I know of better things.

      --
      "When in doubt, use brute force." Ken Thompson
    12. Re:BSD? by SillyNickName4me · · Score: 2, Interesting

      > OpenBSD is the suggested often for a router because it is a tight little system with a fair number of security enhancements

      Definitely but it is still lacking FreeBSD style jails (not often an issue on a router but can be very nice for seperating your mail environment a bit better from the router itself, see below)

      > and it's pf packet filter is native to OpenBSD, thus more tightly integrated and tuned for Open.

      Its native for open, but integration in freebsd seems to be pretty good. What is more, FreeBSD gives a choice of 3 different packet filters

      > It's partly that you don't want a router cracked and partly cause you want the best packet handler, pf is that. ...

      > Plus you can set it up as your mail relay and stop spam, and yadda, yadda, yadda... It's a generally nice small system and the ports with it almost all run without fuss.

      Uh, I can do the same with virtually any Unix, and setting this up with NetBSD, FreeBSD or Linux is really easy and well documented.

      When you want your router to also handle your mail, I'd prefer a system where I can run the smtp services in a well seperated environment, which means more then a mere chroot. Despite all the good work of Wietse, smtp, esp together with virus and spam checking and blocking is a too complex thing to trust it running on my router without such seperation. (perl, substantial amount of perl scripts for amavis and spamassasin etc)

      Regardless, I seconf your opinion that openbsd would be the better choice, but mostly because of the first reason, their very nice security enhancements.

  4. Does anyone have any metrics by Timesprout · · Score: 4, Interesting

    for the performance differential between DragonFly and the regular FreeBSDs ?

    --
    Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
    What truth?
    There is no dupe
    1. Re:Does anyone have any metrics by IBeatUpNerds · · Score: 5, Informative

      It's my understanding that this is currently on-par with FreeBSD 4.x (which I believe is faster than 5.x). The real performance imporvements are (supposedly) to come after everything has been ported over to use the messaging infrastructure (mainly the buffer cache). If the design holds true to its promise, then it should be a good step faster than FreeBSD 4.x in a few years. Especially in the area of SMP.

    2. Re:Does anyone have any metrics by Teja · · Score: 2, Informative

      does this help?

      --
      - Teja
    3. Re:Does anyone have any metrics by flynn_nrg · · Score: 4, Informative

      Wow, that's my weblog :)

      That entry is pretty old, and the situation is hardly the same. As of today, FreeBSD 5.4 (soon to be out) performs much better than the previous releases, but for UP machines NetBSD 2.0 or DragonFlyBSD are IMHO better choices.

      I run FreeBSD 5.4 on a SMP box and it's much better than it used to be. If/When I can allot some time I'll do some benchmarking of FreeBSD 5.4 vs DragonFlyBSD 1.2 on my dual PIII.

  5. I have to hand it to BSD by Anonymous Coward · · Score: 5, Funny

    It outlived the Pope.

  6. Re:This looks pretty interesting. by Codename_V · · Score: 3, Informative

    I don't know what the heck you've been reading, but performance has never been one of OpenBSD's strong points as compared to Linux and the various other BSD's.

    --
    Free will is just an illusion
  7. Freebsd not dead, lot of things happening by Anonymous Coward · · Score: 5, Insightful

    FreeBSD has not been the best FreeBSD release but it's *not* dead. 5.3 has been the *first* stable release of the 5.x series, and as expected is not as polished as it should be

    I read the mailing lists (I'm not a FreeBSD user tough), and lots of work is happening. All those benchmarks you've seen where freebsd 5.3 loses were done with the 5.3 code which didn't incorported lots of performance work, just to get a stable 5.3 release

    Expect 5.4 to be the real 5.x release ie: fast (LOTS of performance work is happening in the threading and VFS land) and stable (lots of critical bugs has been fixed, 5.3 was the first public release)

    And no, FreeBSD 5 is not dying. RIght now FreeBSD is the BSD with better SMP support (and getting better), and dual core CPUs are starting to be sold this quarter. NetBSD and OpenBSD are not even near of the SMP support Freebsd has (oth of them detect several CPUs, but it will take all the year s it took to freebsd 5.x to use them efficiently, and most of the benchmarks done against NetBSD/OpenBSD are with only one CPU, which doesn't measure all the work done in the 5.x branch.

  8. Curius about SMP by thanasakis · · Score: 4, Interesting

    It was my impression that one of the reasons for FreeBSD-5.x was to rearchitecture several parts of the kernel for better SMP support. I know, I know, there were problems but it seems that it had to be done, and the sooner the better.

    Now, if DragonFlyBSD continues down the road that was set by the 4.x train, what is going to be done about multiprocessor systems? I mean, multicore processors are right around the corner and other OS's (besides the BSD's I mean) like Linux are getting better and better(I won't even bother to mention Solaris).

    I do not profess to be some kind of expert, anyone has anything informative to say about DragonFly's plans on this?

    1. Re:Curius about SMP by Wesley+Felter · · Score: 3, Insightful

      DragonFly is rearchitecting for SMP, just in a different way than FreeBSD 5.x.

  9. Are you sure he's dead? by MikeCapone · · Score: 3, Funny

    It outlived the Pope.

    Are you sure he's dead? Has Netcraft confirmed it?

  10. What exactly is the reason by iamdrscience · · Score: 2, Insightful

    I was excited when I heard a while ago about a new BSD variant because there are areas where BSD isn't specifically tuned to. However, Dragonfly BSD doesn't seem to address any particular deficit of the other BSDs. Every other BSD split has had a mission, OpenBSD to concentrate on security and NetBSD to concentrate on remaining cross-platform portability. What exactly is the reason for Dragonfly BSD?

    1. Re:What exactly is the reason by Anonymous Coward · · Score: 2, Informative

      DragonFlyBSD is just FreeBSD 4 with a bunch of updates and bug fixes, with a saner development model than the FreeBSD "core" team. It builds on all the things that FreeBSD did right and tries to fix the things that it does wrong.

    2. Re:What exactly is the reason by drmerope · · Score: 3, Interesting

      DragonflyBSD is aiming to make a name in Single-System-Image distributed computing. Think Plan 9 but an evolutionary move from a well established code + user base (FreeBSD 4).

      On traditional single machine installations, DragonflyBSD is being optimized for batch processing performance. The kernel is being re-architected to handle heterogenous resources. You often hear about per-cpu/per-core on their mailing lists, this is a reference to their desire to respect and avoid the high costs of IPC except when not using IPC and processor migration would itself be a penalty. You also hear a lot about cache-coherency, which is a desire to not thrash the processor caches and attempt to localize information to as few caches as possible.

      If you can do this, then if you have m processors, you have m*per_cpu_cache_size fast memory. Conversely, if you aren't careful you approach having only per_cpu_cache_size of fast memory.

      If it all works out (which is still an if) then you'll have an OS that is performance competitive and scales from one to hundreds of processors. This should rival FreeBSD for the performance title in the end...

    3. Re:What exactly is the reason by Anonymous Coward · · Score: 3, Informative

      > What exactly is the reason for Dragonfly BSD?

      Speed. That used to be FreeBSD's claim to fame, and they're certainly improving, but Dragonfly thinks it can do one better. They also aim for HURD-like flexibility, which will be more of a side effect.

      NetBSD, by the way, isn't just portable, you could print out the kernel source and it would be a textbook. It's all wonderfully commented and very clean code.

  11. Mass disillusionment is a myth by ikewillis · · Score: 2, Insightful
    NetBSD in particular and DragonFlyBSD to a lesser extent seem to be taking off in the wake of what seems like mass disillusionment in FreeBSD 5.x.

    I certainly don't see any kind of "mass disillusionment". FreeBSD 5.x has brought about added complexity for the sake of performance, namely in the SMP and multithreading arenas. These are areas where you will find the performance of NetBSD rather lacking. While NetBSD may win at certain meaningless microbenchmarks, the real world performance of FreeBSD, especially on multiprocessor systems, will generally be quite better. NetBSD has always had its primary focus on portability, whereas FreeBSD's has been primarily on performance. Microbenchmarks indicate, if anything, that FreeBSD has chosen higher overhead implementations which increase overall performance, whereas NetBSD has implementations whose simplicity incurs lower overhead on microbenchmarks.

    Firefly has taken a radically different approach and is attempting to refactor a BSD kernel into a more microkernel-like operating system. So while FreeBSD decided to take the SunOS/Solaris-like approach, DragonFly has gone the way of Mach. This is a rather fundamental design schism, and is more indicative that microkernel concepts are still quite valid than any kind of mass disillusionment over FreeBSD 5.x. I think it's great that they're introducing microkernel concepts to a stable and mature POSIX compatible OS rather than starting from scratch, but sadly I think DragonFly will be an OS that has trouble finding its niche.

    1. Re:Mass disillusionment is a myth by BasharTeg · · Score: 5, Interesting

      Microkernel-like because they're going to a messaging / IPC based system instead of traditional syscall implementation maybe?

      I support both DragonFly and FreeBSD. As an admin, I need FreeBSD to step up to the plate and offer scalable SMP support because I run 100% SMP boxes. I am willing to wait for FreeBSD 5.x to clean up and show the performance benefits.

      However, I am highly interested in Matt's work on DragonFly because in my opinion, most of the popular "*nix" variants today stick too closely to the vanilla unix design which is why our socket code still uses select() and most I/O is done synchronously. I hope Matt expands his work to include super-scalable I/O systems like I/O Completion Ports. I heard there are Linux developers working on IOCP right now, so I'm hoping eventually this spawns a similar BSD effort.

      DragonFly will probably work very nicely with multi-core systems down the road. I believe in the long run NetBSD will continue to destroy FreeBSD 5.x in single CPU benchmarks.

      But there's the catch...

      How many multi-core processors have to roll off the production line for everyone to realize that all of this anti-FreeBSD naysaying is going to turn into a huge crow eating contest because when everything is dual or quad core down the road and FreeBSD scales nicely to match, nobody will give a god damn that NetBSD is faster on a single CPU system.

    2. Re:Mass disillusionment is a myth by BasharTeg · · Score: 2, Informative

      I'm aware of kqueue, but although it provides an I/O completion type mechanism, I believe the difference is, under the NT kernel and a couple other IOCP implementations, threads which are attached to an IOCP are put into a special scheduler which only activates N cpu threads at once, letting a thread run until it blocks again on I/O. Because threads attached to IOCPs are typically I/O bound, this leads to an excellent reduction of useless context switching, allowing longer bursts of execution between I/O events. Any type of blocking, be it sleep, waiting for events/handles, synchronous I/O operations, etc, will dequeue another thread from the runnable queue. The goal being to keep exactly N cpu threads from the IOCP program in the running state at all times (eliminating thread contention between threads in the same IOCP program). This also provides more optimal locking paths, because only N cpu threads are running at once, it is more likely that locks (critical sections) will be immediately available, and that the locks will be released before the context switch. This allows for maximum multi-threaded performance for I/O based systems, especially on SMP systems.

      There's a little more to it than just queueing I/O requests.

    3. Re:Mass disillusionment is a myth by BasharTeg · · Score: 2, Insightful

      I don't know, how long did it take them to implement SMP?

      Switching away from the giant lock model will require the same process of FreeBSD 4 -> 5, where the giant lock is replaced by fine grained locking for each data structure being protected. If they make that change, they'll be in the same boat as FreeBSD 5, only they're about two years behind.

      NetBSD's speed advantage over FreeBSD 5 on single CPU systems is mostly DUE to the fact that they use the giant lock model. If they move away from that, they're no better off than FreeBSD 5.

      Which I might point out, is why it's completely stupid to benchmark NetBSD's giant locked kernel against FreeBSD 5's fine grained locking kernel. Apples to oranges. If you want to benchmark NetBSD to show how the new release has great performance for a giant locked kernel, benchmark it against FreeBSD 4 or OpenBSD.

      You can't have your cake and eat it too. You can either have fine grained locking, and take a performance hit on single CPU systems, or you can have a giant lock, and take a performance hit on multi-CPU systems. Either design decision is fine today, but when all the chips being produced are dual core, fine grained locking will matter a whole lot more. How long will we have to wait for fine grained NetBSD? I have a lot of respect for NetBSD and OpenBSD, their accomplishments are golden in my eyes, but it seems they're quite a bit late to the SMP party, when the era of dual core is damn near upon us.

  12. FreeBSD (Re:BSD?) by argent · · Score: 2, Informative

    FreeBSD is the most polished and user-friendly BSD for your x86 box, by far.

  13. Not Your Ordinary BSD.. by \\ · · Score: 2, Funny

    ..features a standards-conformant SACK implementation..

    DragonFlyBSD: The BSD with Balls

  14. OpenBSD by ArbitraryConstant · · Score: 2, Interesting

    This is my personal opinion, the biggest problem I had with other BSDs was the way they didn't fit with the way I prefer to do things. People with different preferences can easily have similar needs and come to different conclusions.

    OpenBSD's goal is security, but as a side effect it's very easy to set up (eg hard to screw up and have an insecure configuration), and there are very few bugs compared to FreeBSD.

    You don't tweak the kernel because the default one has almost everything that is supported. It makes the kernel bigger than it might otherwise need to be, but if you've got more than 16 mb of memory it doesn't matter.

    There is a performance disadvantage (although PF performs well, and that's usually the only thing that matters), but things are easier to set up most of the time. If it's just a home gateway/router, your computer is probably bigtime overkill anyway, so you don't notice the performance disadvantage and you do notice the ease of configuration.

    I probably wouldn't use it as a desktop OS because of the lack of software, but all the BSDs suffer from this. I couldn't even get by with FreeBSD as a desktop due to the lack of software. As a router, I haven't had any problems with getting software. What isn't in ports generally compiles fine. The one thing I haven't been able to get working with OpenBSD is a Haskell compiler, and the Haskell interpreter works fine so I don't care that much...

    --
    I rarely criticize things I don't care about.
  15. DragonFly Notes by m.dillon · · Score: 4, Informative

    Well, I have to say the slashdot response to this release is a marked improvement over the response to the last release. Most people are actually getting the concepts right this time! Kudos!

    There are a few things I will clarify about the release, in particular about our approach to SMP and the inevitable comparisons against, FreeBSD.

    On the SMP front what we are doing is basically rearchitecting big chunks of the kernel to operate efficiently in both UP and SMP environments, to be NUMA-friendly, and to be as maintainable as possible. Rather then throw mutexes around existing code we are undertaking a huge effort to make as many of our subsystems as mutex-free as possible by localizing the subsystem's operation on a per-cpu basis. Most of the time that means rewriting them from scratch.

    One example of this is our core Light Weight Kernel Thread scheduler (LWKT). Each cpu has its own indepenant LWKT scheduler which means that any given copy of the scheduler itself does not have to deal with or worry about contention between cpus. The code is very, very clean. If you think about it a bit you will realize that such a beast would work just as efficiently in an SMP environment as it would in a UP environment, and that is indeed one of our major goals.

    A second example of this is our network protocol stack (whos major architect is Jeffrey Hsu). A TCP connection goes through a hash and is routed to a tcp protocol handling thread on a particular cpu. If you have N cpus then your TCP connections will generally be split about evenly between the cpus. Any given connection is localized to its cpu which means that all the work related to that connection occurs on a single cpu and thus does not have to worry about or deal with contention between cpus... and operates as efficiently on a UP system as on a SMP system. The L1/L2 cache effects are an important bonus as well but the winning ticket is the ability for the protocol threads to run in a tight loop without needing to obtain or release a single mutex, lock, or other synchronizing mechanism other then the occassional critical section (which is a cpu-localize synchronization mechanism against interrupts).

    Another major goal is to make the code more maintainable... readable, understandable, etc, without any major gotchas to an unwary programmer, especially new programmers who are attracted to the project. This does not mean that FreeBSD is less stable, but I certainly believe that DragonFly's code base is a lot easier to maintain and a lot easier for new programmers to work with, with a much shorter ramp-up time then someone trying to dig into the FreeBSD codebase and far fewer new bugs introduced. I am taking a long-term view here.

    The problem with building an SMP friendly algorithm which requires a lot of synchronization to avoid contention (the mutex model) is that it is really easy to make a mistake and introduce a hard-to-find bug, especially if you are just ramping up on the codebase. The solution is to use algorithms (aka cpu-localization algorithms) that avoid the contention in the first place, and that is what we are doing. Regardless of FreeBSD's current stability (and I believe that FreeBSD is now far more stable then it was a year ago), they had to go and stomp hundreds of bugs introduced by experienced programmers. That's a red flag in my book, one that I am making a major effort to avoid in the DragonFly codebase.

    In less then two years of work (with very little destabilization of the kernel during that period, by the way), we are now within shouting distance of FreeBSD's and Linux's SMP parallelism. The only area where we are still significantly behind is in boot-time interrupt routing. This release is the last release where the Big Giant Lock is going to be in the critical path. We spent a lot of time isolating subsystems in order to reach this point, to be able to now take the last few steps and actually turn the Big Giant Lock *off* on a thread by thread basis. Not only tha

    1. Re:DragonFly Notes by m.dillon · · Score: 4, Insightful

      I don't think it's a good idea to incorporate binary modules not buildable from openly availble source, but I'm not rabid about not using such modules when it makes something work that I need to make work. I have to use NDIS on my laptop to get the wireless working and frankly I'm a very happy guy because it works :-).

      But that doesn't mean I have to like it! I think it's a mistake to try to cow-tow to vendors that clearly don't understand the value open source gives them (specifically, the fact that they don't have to support the drivers themselves). There are many reasons why vendors don't like to give out source. For one thing, chipsets often have a lot of bugs in them that the driver code has to work around and the vendors don't like to reveal the fact that those bugs exist. Another reason is that vendors are often paranoid about their code, even when it is substandard compared to other drivers that might be available as open-source (commercial entities invariably believe that their hired guns can code better then we can, and they are invariably proven wrong when such code occassionally sees the light of day).

      The question is do we want to support the bozo vendors and just perpetuate the problem? Or do we want to focus on supporting vendors that do provide good information on their drivers (or at least don't go nuts when someone reverse engineers it)?

      Another problem with binary-only modules is that, well, they might have bugs which you can't fix because you don't have the source. Or they might rely on API breakages that you would really like to rip out of your system. Or they might not work with a later rev of the chip in question even when the later rev is only an incremental improvement over the previous chip. Or they may not work with a particular configuration that you want to make work. Then you are stuck with a substandard driver that only works on older machines.

      If I were to state a position it would be that the occassional exception might be necessary, but that it just isn't a good idea for the open-source community to rely on vendor-provided binary modules to make hardware work.

      This brings up a far more important question, which is whether it is possible for an open-source 'trust' to be setup for the purposes of maintaining a driver whos source a vendor does not want to be released to the general public. That is, an entity which any open source programmer can join and through the signing of a simple non-invasive license then have access to the source for the purposes of making it work for that vendor's product line on open-source operating systems. The source would not be open to the public, but it would still be under the effective control of whatever open source programmers are interested in working on it. That is something I could live with and I think vendors could live with too if they took the time to think about it.

      -Matt