Slashdot Mirror


DragonFly BSD Announced

JoshRendlesham writes "Matt Dillon announced today on the freebsd-hackers mailing list the creation of the DragonFly BSD project. It seeks to build on the work of FreeBSD 4.x, including a rewrite of the packaging and distribution system, among other goals."

23 of 460 comments (clear)

  1. In other news by imipak · · Score: 4, Funny

    Brad Pitt announced a new fork from the -AC kernel tree.

    1. Re:In other news by Tumbleweed · · Score: 5, Funny

      > Brad Pitt announced a new fork from the -AC kernel tree

      Rule 1: You do not talk about the -AC kernel tree.
      RUle 2: You DO NOT talk about the -AC kernel tree.
      Rule 3: If it's your first night in the -AC kernel tree, you HAVE to post.

  2. Wonderful by Anonymous Coward · · Score: 5, Funny

    This is great news. God knows we need another BSD, I don't think anyone is happy that currently we only have FreeBSD, NetBSD, OpenBSD, TrustedBSD, XMach, Darwin, and Microsoft Windows.

    1. Re:Wonderful by Eric_Cartman_South_P · · Score: 5, Funny
      FreeBSD, NetBSD, OpenBSD, TrustedBSD, XMach, Darwin, and Microsoft Windows.

      And listed in order of stability, too! Informative post. :)

  3. Why dork with the existing FreeBSD... by Anonymous Coward · · Score: 5, Insightful

    ...packages and ports system. They're part of the best things FreeBSD has above Linux right now!

  4. Re:Another one? by Kiriwas · · Score: 4, Interesting

    That doesn't make sense to me. Thats like deciding there are too many car manufacturers and complaining to Ford that there should be fewer and better car manufacturers. In fact, it would be EASIER to do this in the car industry because you can probably get the major car manufacturers together. No one ever said this new BSD was going to be good, just that it was here. No one said you should support it, but then again maybe you should. Each distro of anything is subject to the people that make it. If you want one final all encompassing sent-from-God BSD then go and make it!

  5. PORTAGE! by MarcQuadra · · Score: 4, Insightful

    I'd like to see Gentoo's Portage move onto BSD, it was originally inspired by the BSD ports system, but has become very easy to use and refined. It's time for a BSD to try out Portage (Mac OS X is geting Portage soon!)

    --
    "Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
    1. Re:PORTAGE! by Simon+Kongshoj · · Score: 5, Funny

      That's it. I'm going to mail Daniel Robbins and ask him to make the next in his brilliant series of articles at IBM DeveloperWorks a "OS advocacy for overzealous Gentoo freaks" piece.

      The first and most important bit: Always bring up Gentoo whenever ANYONE mentions ANY other operating system! This is of UTMOST importance! Just like annoying potential customers works for Internet advertisers, annoying potential users must work for OS advocates!

      Longhorn would kick ass if they installed unwanted software using PORTAGE instead of Windows Update!!!!! PR0T4G3 R0XX0RZ J00R B0XX0RS!

      I'm going to be burned at the stake for this, but don't worry, my karma ensures that I'll be back as a lotus blossom to annoy all you bloody geeks with pollen.

      --
      Six sick .sigs, the Number of the Beast!
  6. pkg could be a lot better by HiFire · · Score: 5, Insightful

    I find this project exciting. Having tried gentoo's portage it has become clear to me that ports could be a lot better. While ports does work, it has a bunch of tools which make its use easier which arent included by default and could be integrated into ports.

    1. Re:pkg could be a lot better by iiioxx · · Score: 5, Informative

      I gotta chime in here:
      It really pisses me off that FreeBSD does not let you (by default)
      cd /usr/ports
      make update

      I dunno, I think cvsup and portupgrade do the deed quite nicely.

      # cd /usr/ports/net/cvsup-without-gui
      # make install && make clean
      # cd /usr/ports/sysutils/portupgrade
      # make install && make clean

      # mkdir -p /usr/local/etc/cvsup/sup
      # cp /usr/share/examples/cvsup/refuse /usr/local/etc/cvsup/sup


      ... tweak /etc/make.conf ...

      CFLAGS= -O -pipe
      COPTFLAGS= -O -pipe
      NOPROFILE= true
      USA_RESIDENT= YES (if you are)


      ... create /usr/local/etc/cvsup/sup/supfile ...

      *default host=cvsup2.freebsd.org
      *default base=/usr/local/etc/cvsup
      *default release=cvs tag=RELENG_5_1 (or your version)
      *default delete use-rel-suffix
      *default compress
      src-all
      ports-all tag=.
      doc-all tag=.

      ... then update your src and ports ...
      # /usr/local/bin/cvsup -g -L 2 /usr/local/etc/cvsup/sup/supfile
      # /usr/local/bin/portupgrade -ra

      Granted, you have to build a supfile, and tweak your /etc/make.conf a little first... But those are minor things, and in the case of cvsup, there are loads of good examples provided in /usr/share/examples/cvsup.

    2. Re:pkg could be a lot better by iiioxx · · Score: 4, Insightful

      WORST example EVER. 2 lines in gentoo(cd to the ports dir, and make update) compred to 20 freaking lines you posted where you have to edit a file, make a directory and other crap that i don't want, or should have, to do.

      I wasn't trying to show that FreeBSD ports was somehow *easier* than Portage (or anything else for that matter), simply that it was not very difficult at all, and it gets the job done nicely.

      Personally, I don't see the problem with doing a little configuration to make the system behave exactly as I want. To me, that's a feature, not a flaw. Not to mention the fact that the 20 or so lines of command and code you seem to have a problem with, is a one-time setup task. After that, the system is a two-command process, one command if I create a simple shell script, no command if I add a cron job to do it once a week. This is just like your two-command process, except for the fact that *I* have dictated the mechanics of the process, rather than allowing a distributor to decide those mechanics for me.

      Ports in freebsd are cool. But updating packages installed, and updating the whole system, are two very cool things i would like to see.

      All you have to do is look, it's all right there. CVSup will update your ports tree, your source tree, your docs, or a custom combination of all of the above. Portupgrade will update all of your ports with one command. As to updating the system, the system and the ports are kept separate *by design*. The system can be upgraded independently from the ports, and vice versa. Updating the system itself is as simple as a 'make buildworld', 'make kernel', 'make installworld', and reboot.

      I dunno. Maybe this is just an "old school vs. new school" issue. "Old school" UNIX users and sysadmins simply see this as a reasonable means to get things done. "New school" Linux users (a lot of whom are migrating from the Windows world) seem to be looking for the command-line equivalent of clicking a button to get everything done. No work, and no knowledge of the system itself and how it operates, required.

      I, for one, prefer the old school way.

  7. Re:just what this planet needs ... by cant_get_a_good_nick · · Score: 4, Informative

    Oh well, it's probably about hurt egos again. :(

    In a way it is. Matt Dillon got lost commit access to cvs a while ago because he was trying to get some stuff into 4.8 and got rebuffed. Looked like he violated their code of conduct a few too many times, got kicked out, and started a project where he made the rules. TdR in the house?

  8. Paging Lorraine by jonabbey · · Score: 4, Insightful

    Matt Dillon's early background as an Amiga programmer is really showing through here. He's basically proposing doing a piecewise conversion of BSD to an Amiga-style message-passing operating system.

    He's basically doing the reverse of what so many folks (NeXT, HURD) have done or tried to do.. not taking a microkernal and putting a UNIX layer over it, but taking a UNIX and scooping out the inside to replace it with a message-passing microkernal.

    This will definitely be a fun one to watch. Go, Matt, go.

  9. Oh no, not another! by foolip · · Score: 4, Insightful

    My first reaction was "oh, forking is bad, we don't need another". But in truth, this is no more remarkable than the fact that there are 100s if not 1000s of different flavors of GNU/Linux.

    So there.

  10. Re:Messaging layer by Chexum · · Score: 5, Interesting
    The proposed new messaging layer sounds really interesting and powerful. A little like Mach or QNX, perhaps?
    No (or perhaps yes), from the superficial look, it seems very similar to the AmigaOS exec.library's functions. No surprise here, given Matt's background as an arch-developer for Amiga :) See also DICE: Dillon's C Compiler... It's very weird to see the Amiga resurrected inside BSD..
    --
    "Ten years from now, they could do it in a few seconds." -- The Racketeer of the Hellfire Club, 1993, Phrack 42
  11. Re:Matt Dillon, eh? by m.dillon · · Score: 5, Interesting
    You are welcome, and ditto to the other followup poster! Now for the scary part: Despite the demise of the Amiga there are still people who use DICE, and DASM (65xx/687xx assembler). Apparently DASM has become a favorite in the classic Atari world. There are also still many old hardware installations based on the 68K and DICE is one of the few (complete) compiler toolsets for the 68K that can be run on a modern platform. Yow!

    -Matt

  12. *BSD Basher Dead at 16 by slickwillie · · Score: 5, Funny

    Anonymous Howard, who made a career of proclaiming the demise of the *BSD Operating Systems, was found dead at his keyboard this afternoon. He had just turned 16. An unnamed police spokeswoman said it was an apparent case of "autoerotic asphyxiation gone haywire". [You know the rest of the story.]

  13. Well, good luck to him! by DarkHelmet433 · · Score: 5, Interesting

    Having NetBSD/FreeBSD seperate was good in many ways because it kept mutually incompatable folks away from each others throats. Once things cooled down, technology began to flow in both directions between NetBSD and FreeBSD. Later on, OpenBSD came along. All sorts of good things came from that. Can you say OpenSSH?

    It would be nice if DragonFlyBSD (gah, ENAMETOOLONG) was a similar deal. As a FreeBSD developer, I hope that there will be plenty of opportunities to take good stuff in both directions. If we can keep people away from each others throats and work on making the code better, then everybody wins.

    Diversity is good. Developers fighting each other is bad. Forks can be a good way to relieve the stress. There is no need to make a Big Deal(TM) about it.

  14. Re:Why 4.x? by m.dillon · · Score: 5, Informative
    That is the crux of the issue. The problem is that while a great deal of work has gone into FreeBSD-5.x, it is all based on a fine-grained mutex locking MP model that is simply not compatible with the methodologies being implemented for DragonFly. 4.x isn't actually 'old', a good deal of non-MP related work has been merged from 5.x into 4.x. We miss out on a few big things, like UFS2, snapshots, and the security infrastructure in 5.x, but 6 months down the road when we have our new infrastructure in place reimplementing those items will be a trivial exercise. Also, 4.x is a far more stable base to work from then 5.x.

    Insofar as performance goes, a higher version number does not mean higher performance. 4.x is a lot faster then 5.x for many types of tasks. DragonFly will be able to implement critical subsystems in MP, like the TCP stack, using an essentially mutexless design, which ultimately means that DragonFly will theoretically be able to perform better then 5.x in an MP environment once both are able to completely remove the MP lock. But that is down the road quite a bit and a lot can happen between then and now.

  15. Re:New Packaging System by dododge · · Score: 5, Informative
    Are they talking about replacing the ports system?

    It's more than just replacing ports with portage, or apt-get, or some other userspace packaging system.

    What they're talking about doing is having kernel support for packaging. Multiple versions of the same library could be installed with the same filename simultaneously. An application would see the correct versions of the things it needs, and it would see only the things it needs, despite what else might be installed. This is to allow for piecemeal/partial upgrades among other things.

    To which I say: HALLELUJAH BROTHER!

    This is exactly what I've been wanting to graft onto Linux for some time now; my latest thinking is that it could be done with a userspace filesystem (to make files visible/invisible), extended attributes (to associate the visibility contexts with application binaries), and a bit of extra process state. If the DragonFlyBSD folks make it work, it'll be intrestesting to see how this behaves from an administrative point of view.

    In any case, this is not just a userspace change. This involves the kernel itself.

  16. Re:Messaging layer by Billly+Gates · · Score: 4, Interesting
    Matt Dilion was fired from the FreeBSD team.

    Technically its not a job but they refuse all his patches and he lost write access. The chances now of it being merged into FreeBSD are remote.

    He had no choice but to fork if he wanted to continue developing. That or join the Openbsd team or Linux.

    Infact Dillion help fixed the vm bug in Linux 2.4. He actually has already developed Linux code.

  17. Re:Messaging layer by m.dillon · · Score: 5, Informative
    There are many Amiga-like concepts incorporated into the model, and plenty of new stuff as well. The Amiga had a highly optimal messaging system oweing to the fact that it ran on such a slow cpu making every cycle golden. Two features have been taken from the Amgia I/O model. First, the idea that the target can choose to perform an operation synchronously or asynchronously entirely independant of the type of operation the client has requested. In the Amiga model the client passes a hint which the target may choose to act on or choose to ignore and so do we.

    Another feature taken from the Amiga I/O model (for those who ever looked at the actual assembly code) is the ability to short-cut queueing operations. For example, if the target is able to execute a message synchronously regardless of what the client requested, the target can execute the message in the client's context and return a synchronous result code without even bothering to queue the message (I/O request in Amiga terminology). Likewise, if the client wants to run an operation synchronously and the target decides to run it asynchronously the target doesn't have to queue the message back to the client's reply port when it is through, it simply wakes the (blocked) client up.

    To make messaging truely efficient the 'optimal' case must have the lowest possible overhead. The Amiga model serves this requirement very nicely, making optimally handled messages take no more overhead then a subroutine call would take. This is extremely important in an MP design because queueing operations often require some sort of lock and being able to avoid a queueing operation in the optimal case is simply *HUGE*.

    Consider the optimal syscall path given the above. If a syscall can run without blocking your syscall 'message' winds up costing no more then a traditional syscall would. After all, there is no point asynchronizing a syscall that can run without blocking, you only have one cpu for any given userland thread anyway so you can't make things faster by switching out to handle something else and then back again. Yet in a traditional asynchronizing model like AIO, a great deal of effort and overhead is taken before you even know whether the I/O operation would block or not, making AIO expensive no matter how you cut it. The same goes with a select() based operation. And in a KSE style operation the expense occurs in having to maintain multiple kernel threads for system calls which are in-progress, instead of much smaller message structuers for system calls which are in-progress. The above Amiga-like features make it possible to encapsulate *ALL* system calls in messages, request asynchronous completion, yet still deal with synchronous completion in a manner which does not introduce a performance penalty.

  18. Re:Good luck to you Matt. by m.dillon · · Score: 4, Interesting
    You know, I hear this junk all the time and I can only conclude that the people who spout it off have no real understanding of what the BSD or GPL licenses actually are, let alone their respective effects on the environment around them. The hype has far outstripped the reality and the result are hoards of young programmers slapping the GPL on trivia and minutia that has no other effect then that of relegating their bits to the dustbin of history. And the really sad thing is that it can take years sometimes to realize you've screwed yourself when, say, ten years down the line you want to use work you did on a collaborative project for something that doesn't quite fit the license and find you can't because you have no idea who else to contact to unwind the GPL'd mess. Oops! I find the GPL useful only if I intend to potentially relicense to commercial entities under separate cover and that is pretty much it. The BSD does a better job, statistically, in polluting commercial source bases with open standards and always will. Even microsoft's attempts to proprietize BSD licensed code has resulted in a far greater adoption of open standards, such as with kerberos, then if they had written their own from scratch which would have been 100% proprietary instead of only 5% proprietary. TCP and DNS also come to mind. Those were big wins for our side folks, mostly looked over because you idiots focused in on what microsoft tried to do rather then the actual big picture effect of what they wound up doing.

    The problem with the GPL is that it doesn't trust its fate to human nature but instead tries to force an effect that tends to be against human nature. GPL is a license based on fear and uncertainty, at least from an idealogical standpoing. The BSD license recognizes human nature and works with it to far greater effect for the society as a whole. I prefer trust to fear. I'm just not the paranoid type and if one doesn't have commercial motives for using the GPL one really has to have a high level of paranoia to justify it. That is the reality of the GPL. I use it occassionally, but for commercial reasons only. Everything else I do under the BSD.

    -Matt