Slashdot Mirror


A Comparison of Solaris, Linux, and FreeBSD Kernel

v1x writes "An article at OpenSolaris examines three of the basic subsystems of the kernel and compares implementation between Solaris 10, Linux 2.6, and FreeBSD 5.3. From the article: 'Solaris, FreeBSD, and Linux are obviously benefiting from each other. With Solaris going open source, I expect this to continue at a faster rate. My impression is that change is most rapid in Linux. The benefits of this are that new technology has a quick incorporation into the system.'"

16 of 318 comments (clear)

  1. Re:Filesystems by salahx · · Score: 3, Informative

    LUFS is unmaintained, it has been replaced with FUSE. FUSE includes a LUFS-to-FUSE bridge called Lufis

    FUSE is now merged into the Linux kernel, and will appear in 2.6.14.

  2. Re:The Answer is Clear by LnxAddct · · Score: 4, Informative

    A) All of those OSes are macro.

    B) Linux has SystemTap, which goes above and beyond what DTrace is capable of. It is still in heavy development by Red Hat (Intel and IBM also helped start up the effort), and it's already quite a product.

    Your post was one big troll, why do you find it amusing to spread random misinformation?

    Regards,
    Steve

  3. Re:I was expecting a beefier article... by Rik+van+Riel · · Score: 4, Informative

    It also had a few factual errors, for example ext2 and ext3 are not extent based at all, they are classical block based filesystems.

    Also, most of the Linux page fault code is architecture independant. As it happens, I just wrote an article explaining Linux page fault handling for the Linux-MM wiki. You can find some details there...

  4. Re:Filesystems by CyricZ · · Score: 3, Informative

    Revolutionary often suggests a higher degree of complexity. Licensing issues aside, it's not just a matter of getting the ReisierFS3 or ReiserFS4 code to compile with the FreeBSD kernel. It has to be tested for compatibility, quality and performance. You can't be losing data, and if it doesn't offer a performance benefit over UFS or UFS2 then there's very little point in porting it.

    The FreeBSD and Linux kernels do differ fairly significantly, so it may not even be an easy task porting over the code (again, licensing issues aside). Indeed, it may even be a better idea for the FreeBSD team to perform their own implementation of the ReiserFS4 concepts and algorithms.

    --
    Cyric Zndovzny at your service.
  5. Userspace Filesystems: try Plan 9 from Bell Labs by djs55 · · Score: 5, Informative

    Plan 9 had userspace filesystems. Moreover, it encouraged services to export control interfaces as filesystems -- so you could mount a service and then configure it using open(), read() and write().

    Have a look at the Plan 9 wiki. You can even run it inside vmware or Xen.

  6. Re:When will OSI licenses really start working? by BobNET · · Score: 3, Informative

    No, but a GPL driver can be used as a reference when writing a BSD-licensed one. This happened when the OpenBSD project reverse-engineered the Ralink 802.11 driver from Linux, for instance.

  7. Re:Filesystems by billybob2 · · Score: 5, Informative

    I noticed that the article didn't mention LUFS. This alone allows for tremenduous possibilities, not least of which is rapid development of filesystems. Do any other systems (besides GNU HURD) have userspace filesystems?

    LUFS hasn't been maintained since 2003, and is therefore almost dead. FUSE (Filesystem in Userspace) is the most promising alternative that is getting merged into the 2.6.14 mainline Linux kernel. It works with several network filesystem protocols like:
    SMB for FUSE
    SSH Filesystem (SSHFS)
    FuseDAV (WebDAV)

    Linux-FUSE can also provide all applications on the system (even shell utilities) with access to network locations set up under KDE. There's a tutorial for how to do this, but last time I tried it did not compile :-(

    These are much needed improvements to usability of the Linux desktop, because unprivileged (non-root) users shouldn't have to contact their sys. admins everytime they need to mount network locations. The KDE approach to providing network access is not complete without Linux-FUSE, because only KDE apps can open/save to network locations set up under KDE. Hopefully the KDE devs will create a GUI for mounting/unmounting FUSE shares so that all apps (GTK, Motif, even shell utilities) can access network files.

  8. Re:Filesystems by Arandir · · Score: 4, Informative

    The GPL has absolutely nothing to do with it whether or not it can be ported to FreeBSD.

    Yes it does. A filesystem is a part of the kernel. The kernel is under the BSD license. The inclusion of Reiserfs code in the kernel would require it to be under the GPL license instead.

    So is Ext2 & Ext3 file systems.

    The ability to read ext2 file systems is included, but it is not the ext2 file system itself. You cannot create and write to ext2 file systems with FreeBSD.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  9. Re:Filesystems by evilviper · · Score: 3, Informative
    Does anybody know why ReiserFS 3 hasn't been ported to any of the BSDs yet?

    Two reasons.

    1. It's GPL'd code. Why in the world would a BSD-licensed project include GPL'd code, and in the kernel of all places?

    2. UFS2 is better in just about every way. The issue of journaling vs. soft-updates has been rehashed a million times over, and soft-updates are simply better. http://www.usenix.org/publications/library/proceed ings/usenix2000/general/full_papers/seltzer/seltze r_html/index.html
    The one issue journaling had in it's favor was fsck times, and UFS2 with it's "background fsck" has eliminated that problem. A system based on UFS2 will be up-and-running far faster than a ReiserFS journaled system, due to reiserfsck taking much longer to complete.

    So let me ask you. For what reason should anyone even consider porting reiserfs to any of the BSDs?
    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  10. Re:Big lock by mi · · Score: 4, Informative

    Only for some of the drivers, which nobody got around to modifying yet. Most of the things are outside the "Giant" already. 6.0-release is imminent. Try it...

    --
    In Soviet Washington the swamp drains you.
  11. Re:The Answer is Clear by Anonymous Coward · · Score: 5, Informative

    Aparently you need to stop reading the media and do a bit deeper research into what systemtap is and how unstable it is. You can start with Active Bug, non guru mode. That bug affects non-guru mode, which is supposed to be safe to use in production. Nothing like that ever happens in dtrace. Why you may ask? Because its developed to be safe in Production use at the expense of giving up some features. For a more indepth comparison of systemtap and its problems check out the links mentioned in my blog's SystemTap Links. Systemtap vs. dtrace the debate continues is a good place to start.

    Of course, systemtap is still in its infancy, perhaps after a couple re-writes that seem standard in major components in the Linux Kernel, they can make it stable. But today its, not and any where near stable. There for your statement of "Linux has SystemTap, which goes above and beyond what DTrace is capable of. It is still in heavy development by Red Hat (Intel and IBM also helped start up the effort), and it's already quite a product." Is complete rubish. Of course one would have to think about. If its still under heavy development, also shows just how far from ready it is.

    Of course, the truth really is that DTrace is far more feature rich than systemtap is, or will be for a long time. Systemtap biggest stumbling block is "guru mode" that allows the user to disable any protection that systemtap engineers have added. Systemtap's language is lacking in some basic concepts, like variable types like struct and typeset, making guru mode necessary for far too many scripts, and in-escapable when userland probes are created. Along with the other problems documented in my blogs.

    You may try and dismiss me as a troll, but nothing could be farther from the truth. I'm stating the facts, I have also contributed to the Systemtap product, and commented on code changes. But I refuse to sit quietly as people try and pass Systemtap off as stable or better than DTrace. Dtrace is stable, and Enterprise Production ready and more full featured than Systemtap, even though they have left out features, that have to be worked around by the programmer.

  12. Re:How much of Solaris has gone open source? by Anonymous Coward · · Score: 3, Informative
    "Its been what, 2-3 years since the open-source solaris announcement came out?"

    The official announcement was last January (nine months ago). Rumors had been out earlier, of course.

    "How much has been open sourced? AFAIK, all the have opened sourced is DTrace (a very cool tool/framework), but nay else."

    That's what was released in January; as of April, the answer is (per the FAQ at http://opensolaris.org/ :

    Initially, the OpenSolaris project includes source for the Solaris OS core kernel, networking support, libraries and commands. This set of source is often referred to as the OS/Networking consolidation (O/N).

    "Lets see them open up the kernel internals like the thread model..."

    Done.

  13. Re:Linux kernel better than Solaris kernel. by ChrisGilliard · · Score: 3, Informative

    You can come up with stats that say each OS is better. Solaris supports the big iron better typically, so I'm not surprised that Linux can outperform it on a 50 mHz processor. From what I've seen Solaris handles Java threads much better, so if you're using Tomcat or another java application server Solaris could be better. Also, if you're using a 8 processor system, Solaris will typically be your best options.

    --
    No Sigs!
  14. Re:wishfull thinking by TheNetAvenger · · Score: 5, Informative

    Win32 subsystem is TOO much tied to NT kernel and closely coupled to achieve the performance it has today.
    That is why NT 3.51/3.53 was more robust than NT 4,0 which moved major parts of the UI code to kernel mode.

    Please actually read Inside Windows NT 3.51 by Helen Custer and THEN read Inside Windows NT 4.0 to know the difference.


    Sorry, hun, read both and even had this discussion with a key kernel developer at Microsoft a few years ago. (1997 in fact, as we were starting to work with Beta 1 of Windows 2000)

    NT 4.0 ONLY moved video to a lower ring. It had NOTHING to do with moving the Win32 subsystem INTO NT - that did not happen.

    That is why Windows NT Embedded exists, and also why even the WinCE is a version of the NT kernel with NO Win32 ties.

    Microsoft can STILL produce NT without any Win32, and just throw a *nix subsystem on it if they wanted to, but yet have the robustness of NT. Win32 is the just the default interface because of the common API and success of Windows applications.

    I think you are confusing Ring dropping of the video driver with something completely different.

    NT is a client/server kernel... Go look up what that means, please for the love of God.

    Win32 is a subsystem, plain and simple. Yes it is a subsystem that has tools to control the NT kernel under it, but that is just because that is the default subsystem interface. You could build these control tools in any subsystem you want to stack on NT. PERIOD.

  15. Yeah, right, NT scales so well by Anonymous Coward · · Score: 4, Informative

    Just because there's a version of NT that can run on a 128-CPU SMP box doesn't mean it scales that in real-life situations.

    If it did, with all Microsoft's billions of dollars, how come there's no NT equivalent to this for Linux, or this for Solaris?

    Those two bad boys scale damn near linearly. I know that, I don't have assume that. I can afford a 7-figure house because I can make those things sing. That Sunfire E25K has 72 CPU slots, and each UltraSPARC-IV chip has 2 full CPUs on each die. The IBM 595 has 64 CPU slots, and when I was at SC-04 in Pittsburgh last year, IBM claimed they were working on an 8-way version of their Power CPU. That's 512 CPUs on an SMP box.

    There's nothing like that in the NT world that anyone could buy. And you don't have to sign some NDA that would keep you from getting a job in a lot of places to see the source code for either OS.

    Keep your damn toy OS, and your self-admitted assumption that "NT knows how to handle more than 2 processors", because there's no commercially-available system to support that assumption.

  16. Re:Toy computers need not apply by octogen · · Score: 5, Informative

    Considering there is 128-way SMP version of Windows (running on NT) available

    I might be wrong, but AFAIR, the largest SMP configuration supported by NT is 32 CPUs (or, probably, 16 Hyperthreading-CPUs) because of a constraint compiled into the kernel (Windows "Datacenter Server" Edition).

    Anyway, even if you could run NT on some 128 CPUs, it would not scale well. If you actually knew a little about the NT implementation and not just the "microsoft propaganda", you'd possibly figure out, that a lot of (theoretically independent) code portions in the NT kernel synchronize on only one mutex-like synchronization lock (CRITICAL_SECTION) that is shared between these code portions

    Example:
    If you've got 50 independent data structures, you could use 50 mutex locks (one for each data structure), to protect it form becoming corrupted due to simultaneous modification by multiple threads. The NT design in this example would be to use only 5 CRITICAL_SECTION locks for the 50 independent data structures (one for every 10 data structures), so one thread modifying a data structure will potentially lock out 9 other threads who could be modifying 9 other data structures.

    The lack of fine grained synchronization on NT makes it scale pretty bad, especially compared to Solaris (which scales so well probably mainly because of very fine grained and sophisticated synchronization, for example by using RW-locks instead of mutex-like CRITICAL_SECTIONs in situations where this is possible).