Joris GIOVANNANGELI has posted a description of his Summer of Code project for DragonFly, implementing the Capsicum kernel APIs. I expect the other students will post summaries soon, too.
If you are running DragonFly 3.5, make sure you do a full buildworld depending on how recent your version is. Just a quickworld will cause problems. DragonFly 3.4.x users are unaffected.
I pointed out in my converting-to-dports post from yesterday that I had to download dports and build pkg by hand in order to install binary packages. This was because my DragonFly system was upgraded from 3.2 to 3.4 and therefore didn’t have pkg installed.
John Marino has added a ‘pkg-bootstrap’ option to /usr/Makefile, for fixing exactly that problem. It downloads a static version of pkg, which then lets you upgrade to the full pkg and install binaries as you’d expect.
I changed shiningsilence.com over from pkgsrc to dports over the last 48 hours or so. Here’s how it went, in a series of bullet points:
- I had to download dports source and build the pkg tool by hand; since this system was upgraded from DragonFly 3.2 to DragonFly 3.4, pkg wasn’t automatically present as it would be for a new installation.
- I took the output of ‘pkg_info’ and culled it down to the applications I knew I used, and that formed my ‘to-install’ list for dports. That worked in a very straightforward way.
- It took so long mostly because of two things: I was also dealing with an email problem at my workplace, which usually took precedence. Also, I had several applications that I had previously installed by hand and needed to reconfigure to work as a dports item.
- Installing from binaries is really fast! Really, the dports part of this was possibly the most brief.
- The only thing I needed to compile from source was php, in order to get the Apache plugin. I’m sort of surprised the option isn’t on by default.
- Using ‘pkg search packagename’ is a good idea, because ‘pkg install’ can pick up multiple versions of a package. e.g. ‘pkg install mysql-server’ selects mysql-server51, mysql-server55, and mysql-server56. You probably don’t want to install all three. Or even one, depending on your opinions.
- Overall, it went more easily than I had expected, given it only had half of my attention.
I finally got DragonFly 3.4.2 img/iso files uploaded, so they are available now or at least soon at your local mirror. These are built using pkgsrc, so if you want dports, go for a snapshot image.
Are you using it and unable to upgrade to KDE4 for a specific reason other than aesthetic preference? You should check this thread about support for 3.5, at least in dports.
There’s more download statistics on dports and pkgsrc packages, from Francois Tigeot. There’s a heck of a lot of dports activity, though there’s probably much more pkgsrc building from source than this would report on. So, not necessarily representative of actual numbers, but an interesting ratio none the less.
Matthew Dillon and Sascha Wildner have converted snapshot/release building over to use dports instead of pkgsrc. If you want to try one of those snapshots, look in the snapshots directory… Oh, and here’s the mention of this on kernel@.
Here’s another “getting started with dports” article. It runs through the basic range of commands, similar to my existing writeup – but much less verbose.
Phoronix has another set of benchmarks that include DragonFly and PC-BSD, along with several Linux distributions. It’s interesting to see, though don’t take them as performance measurements. 7-Zip as a benchmark doesn’t describe much other than the program itself, and the Himeno benchmark results are because of the compiler in use rather than any underlying performance aspect of the operating system – for instance. The DragonFly benchmarks disappear after page 3.
I’ve tagged DragonFly 3.4.2. The major reasons for this point release were fixes for DragonFly under Xen with more than 2 CPUs specified, and for booting x86_64 DragonFly in KVM. The 3.4.2 tagged commit has every detail.
If you’ve already got a working 3.4.1 installation, you don’t need to rush to upgrade; this is mostly for the people affected by the issues listed above. I’m working on 3.4.2 install images; give that some time to complete and upload if you need one.
Here’s the accepted projects for DragonFly and Google Summer of Code 2013:
- Block compression feature in HAMMER2, Daniel Flores Tafur, mentored by Matthew Dillon
- Capsicum kernel implementation, Joris GIOVANNANGELI, mentored by Alex Hornung
- Implement hardware nested page table support for vkernels, Mihai Carabas, mentored by Venkatesh Srinivas
- Make vkernels checkpointable, Pawel Dziepak, mentored by Samuel Greear
- Userland System V Shared Memory / Semaphore / Message Queue implementation, Grigore Larisa-Ileana, mentored by Markus Pfeiffer
Like last year, we had more excellent proposals than we could accommodate with available slots and mentors. We now enter the ‘community bonding’ period, so that students can get used to the DragonFly environment and make sure they have all the tools needed to perform work. The work itself starts on June 17th.
Good luck to everyone involved!
Sascha Wildner’s added a man page for dports. Don’t forget the existing how-to page.
SO_REUSEPORT has been added and turned on by Sepherosa Ziehau. This is an implementation of a feature found in the Linux kernel. Check the very lengthy commit message for a description of what it does.
Rados?aw Szymczyszyn has manged to get support for DragonFly’s bootloader into GRUB. This is part of his Master’s project to make DragonFly multiboot capable, at least for i386.
(I love having new things show up from new people, out of the blue.)
We’re in the picking and choosing stage of Summer of Code. I posted a note to kernel@ describing the next dates to watch for.
Loïc BLOT posted about his benchmark of several operating systems using KVM and Postgres 9.1. Happily, DragonFly is the fastest, with one exception. Linux/ext4 comes out faster – if you run it with barrier=0, which can be dangerous in a non-battery-backed-up volume.
New builds of dports have been uploaded and updated, for x86_64 and i386. (x86_64 was already done; I linked the note about i386) This means you can change PACKAGESITE in /usr/local/etc/pkg.conf to point at LATEST instead of RELEASE and get newer packages. ‘pkg upgrade’ is all it takes, with dports.
The tpm(4) driver has been added by Sascha Wildner, ported from FreeBSD. What’s it do?
From the man page: “The tpm driver provides support for various trusted platform modules (TPM) that can store cryptographic keys.” Crypto keys stored in hardware, where they are in theory unmangleable, instead of on the disk. At least, that’s my impression after 30 seconds of research.
Sepherosa Ziehau has posted some numbers showing improvements in ip forwarding rates. He’s done this before, except this time it’s with bnx(4), probably because of his recent commits.