Code comparison for multiple kernels

A recent ACM paper, “A Tale of Four Kernels” compares FreeBSD, Linux, OpenSolaris, and the Windows Research Kernel in terms of code style and structure. The paper itself has a lot of blibber blabber, but it’s interesting to compare the code statistics between the different kernel types. I’d like to see a comparison between different BSD kernels; the gap between the Windows Research Kernel and Linux, for instance, is too great to be able to draw very concrete solutions. (via)

Synchronizing releases

Mark Shuttleworth, the wallet behind Ubuntu, described on his blog a desire to see major Linux distributions on a common release schedule, so that major releases of associated software can match up. (via) This would be useful for the BSD world, too, though it doesn’t affect BSD releases as dramatically – Linux distributions are more important for what third-party software they handle than anything else, so their release timing is even more critical.

The various BSDs seem to be moving towards a 6-month release schedule, in any case – that’s
the stated goal for OpenBSD and DragonFly, and hopefully someone knows (please comment if you’re that someone) if there’s a known goal for NetBSD or FreeBSD.

Yay Dion

I updated this DragonFly system from 1.12.1 to 1.12.2 Sunday night, and PHP (and therefore this WordPress-based Digest) stopped working. Dion (dblazakis in #dragonflybsd) found the reason and fixed it, for which I am very grateful.

I had a number of posts I had made ahead of time, so there’s no actual gap in posts from when the server wasn’t responding.  Make sure you catch the past few days of articles.

HAMMER, and lots of it

I have a number of HAMMER-related news items, so I’ll break out the bullet points:

  • We have a detailed explanation of how HAMMER’s pruning system will work – follow the thread for more details and ideas.
  • Matthew Dillon is trying HAMMER for his backup system. His original UFS system used hardlinks to keep all the backups together; the inodes used would be more than fsck could handle with that system’s RAM. HAMMER doesn’t need those hardlinks because of the snapshot ability, and completes the backup process much faster.
  • There’s also blogbench numbers comparing UFS and HAMMER; strangely, UFS sees a performance degradation when using a large number of files when HAMMER does not. This may mean a real speed advantage or a testing anomaly; it certainly deserves investigation.

Ports/pkgsrc at a smaller level

One of the big wins for BSD has been the packaging system.  It’s very easy to use ports or pkgsrc to download all the dependencies for a given application automatically, and even Linux tools like yum or apt-get handle this nowadays.

Ruby, Perl, Python, and etc. have the disadvantage that if you write a interpreted script that uses libraries not in the standard distribution of that language, users of that script need to perform additional software installation, assuming they have access to do so, just to run that script.  This is a major disadvantage compared to “compiled” software.  To overcome this, additional steps that turn the script and needed libraries into a single executable are required.

‘_why the lucky stiff’ has a solution that matches: Shoes, a Ruby GUI toolkit, goes and gets any needed libraries as part of its startup process. Why didn’t someone think of this 10 years ago so that it could be commonplace?

Old, old bug

I posted a little about this before, but here’s more prompted by several people mentioning it: a seekdir() bug found and fixed by Marc Balmer is apparently present in all BSDs, going back at least 25 years. 25 years! That’s older than some of you reading this post. His blog post delivers a very nice summary. (Thanks, Undeadly, Richard, Nega)