Monthly Archive for November, 2008

Erwin Lansing: FreeBSD ISO download statistics

I decided today that I could do with a day without sightseeing and it was time for some good oldfashioned hacking. I’ve been wanting to graph the downloads from the FreeBSD mirror I’m administrating for some time, but never found the time. Today was a good day to do something about that.

The most significant, and easy to quantify, data is the number of installation disc downloads, so I wrote a quick and dirty logfile parser to filter out the disc1 isos. Quite a large number of downloads are aborted or cancelled halfway, so they needed to be filtered out. There still seems to be an issue with the data from some 10 weeks back seemed really glad to graph data per second and my measurements are only once a day, they were a factor 86400 off. Changing datatypes from absolute to gauge fixed this, so I’m happy to let this run while I’m off to Sydney at 5am tomorrow.

Related posts:

  1. FreeBSD 9.0 packages and 8.0 freeze update Earlier today, Ken Smith bumped the version of the HEAD...

Related posts brought to you by Yet Another Related Posts Plugin.

Will Backman: bsdtalk166 – Asterisk Open Source Community Director John Todd

An interview with Asterisk Open Source Community Director John Todd, who also happens to be a user of BSD. We talk about Asterisk on BSD, and his choice of OpenBSD for his systems.

File Info: 23Min, 11MB

Ogg Link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk166.ogg

Gleb Kurtsou: ipfw: layer2 lookup tables

I had an opportunity to spend some extra time improving layer2 filtering.
I’ve extended lookup tables in ipfw to support several layer2 addresses for a single layer3 address/mask. It means that it’s possible to assign mac addresses to network (in case ip’s are dynamically distributed by dhcp or whatever). Besides, wildcard ip address ‘any’ is supported, and entries with wildcard ip can be used for layer2 filtering.

For example:

ipfw table 1 add 192.168.1.0/24 ether 00:11:11:11:11:11
ipfw table 1 add 192.168.1.0/24 ether 00:22:22:22:22:22
ipfw table 1 add 192.168.1.0/24 ether 00:33:33:33:33:33

# equivalent to: ipfw table 2 add any ether ...
ipfw table 2 add ether 00:11:11:11:11:11
ipfw table 2 add ether 00:22:22:22:22:22
ipfw table 2 add ether 00:33:33:33:33:33
ipfw table 2 add ether ff:ff:ff:ff:ff:ff

ipfw add 1000 allow ip from 'table(2)' to 'table(2)' layer2

# layer3
ipfw add 2000 allow ip from 'table(1)' to 'table(1)'

Will Backman: bsdtalk165 – Julian Elischer

An interview with Julian Elischer at MeetBSD in California. We talk about his early days with BSD and his work using BSD at various companies. He is currently with IronPort, which was bought by Cisco.

File Info: 35Min, 16MB.

Ogg link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk165.ogg

Philip Paeps: The ultimate geek experience

21:39 PST

More meetBSD devsummit at Google today. I spent most of the day kicking the Coverity nightly builds back into shape. They've been down for 18 months, mostly waiting for someone to put on the "okay, I'll do it" hat and actually do it. So that's me. I know, I'm a static analysis fanboy.

After the devsummit, I took plosher up on an offer to take a tour of ISC's datarooms in Redwood City. I also took along a todo-list of FreeBSD boxes we've got there to see if I could poke them into doing something more meaningful than suck power and distress airco. The ultimate geek experience!

I saw (part of) the wayback machine. It's red. :-)

Off to Boston very early tomorrow morning. I'm taking Caltrain from Mountain View to SFO at 05:30. That should put me in just the right mood for a six-hour flight with Untied. What fun.

I had a great time at meetBSD and the devsummit again. A very productive time too. As usual, I was very good to see everyone in meatspace again, and add some new face-to-name mappings along the way. Next time, Tokyo I think.

Philip Paeps: Hacking at meetBSD

10:24 PST

I was fairly productive at the devsummit yesterday. Catching up on core email and trying to get the Coverity stuff going full steam again. I have a feeling there is still some paperwork between me and getting all the necessary super powers, but I'm happy to go through that.

Dinner last night at Paul's. I finally met the infamous dogs! I have added Robert to my list of people to trust with finding food. Delicious Indian food. Lots of it.

Much merriment when I explained how Linux "oops" worked. It made Peter cry. I still can't believe most Linux people run with "panic on oops" turned off. They must be nuts. Or on very bad drugs.

Today I plan to spend some more time in the socket code. It shouldn't be too difficult to do what we want to do.

Philip Paeps: Crypto Acceleration slides online

14:42 PST

As expected, my talk came out a bit shorter than I expected. I aimed for about forty minutes-ish and I finished in just about 25 minutes. I got about fifteen minutes of very good questions though, so it worked out fairly well in the end.

I've put my slides online here, if anyone is interested. I plan to spend some time perhaps on my next flight fleshing it out with more interesting numbers and such.

Philip Paeps: MeetBSD day 1

09:42 PST

Yesterday was the first day of MeetBSD at Google. Finding the right building was an interesting experience involving many u-turns (a Californian speciality) after that, things went fairly smoothly.

I still need to work on my talk a bit. It turns out I'm talking about crypto acceleration. I wish I had found this out before I got on my plane and not after. I have a feeling my talk is going to be a bit hand-wavy and probably come out a bit short.

Last night, we celebrated the 15th birthday of FreeBSD with cake at the Zen Lounge. Kirk did an excellent job of carving up the cake. Sadly, I didn't bring my camera with me. I'm sure a number of good pictures will find their way to the interwebnets later on.

A number of us left when the music starting getting a bit too loud. We survived a ride from Peter. No christmas trees were encountered.

No hangover this morning. American beer... Though I did find some surprisingly tasty stuff. Completely lacking in alcohol, however.

Daniel Gerzo: FreeBSD Forums

As I have mentioned a few times, I was working together with a few other FreeBSD developers on an official FreeBSD web based forums. This initiative has started a pretty long time ago and took us almost a year (if not more) to finish it. There were times we felt like the work has been stalled, however we haven’t resigned.

Finally, we have annouced today the public launch of the official FreeBSD forums, that can be found at http://forums.freebsd.org. We are pleased to welcome you there.

The key members in this project are brd@, who kindly donated the vBulletin licence and is providing hosting services, joel@ who took the responsibility for creating the structure of the forum and writing its rules together with lme@ and miwi@ who have also participated in these efforts and who were given moderator privileges. These people deserve a lot of credits for their work. I have been working on the overall design and I hope you will like it :-)

If you have any ideas for improvements and/or you would like to submit some criticique, you are welcome to reach us at the Feedback forum.

Rink Springer: Encrypting your laptop with ELI and ZFS

Some time ago, I've given my laptop yet another FreeBSD reinstall - mostly beause I wanted to encrypt its contents (hey, you never know!). It turns out the best way to do this is to use GEOM_ELI. Of course, I can't quite live without ZFS, so the idea was that I have a minimal /boot paritition and everything else lives on ZFS, which is encrypted using ELI. In order to do this, I first performed a minimal 7.0-RELEASE install, using the following layout:

   ad0s2a = 512MB = /
   ad0s2b = 2GB = swap
   ad0s2d = everything else = /X
  
Once installed, I rebooted. The idea is to move the install to the swap partition so I could turn ad0s2a into /boot. I used the commands below to do this:
   # swapoff -a
   # newfs /dev/ad0s2b
   # mount /dev/ad0s2b /mnt
   # cd /
   # tar cf - --one-file-system * | tar xpf - -C /mnt
  
I edited /mnt/etc/fstab, so it would understand ad0s2b as /, and no swap or anything. Once that was done, I rebooted, and entered '0:ad(0,b)/boot/loader' (note the 'b' !) in the bootprompt, as I wanted to boot from the 'b' slice. Once I was in my new install, I initialized my ELI encryption on ad0s2d and put a ZFS pool on it (note: the '-s 4096' means use a sector size of 4KB - this speeds ZFS up quite a lot - also, you do not need data authentication by means of '-a algo' as ZFS uses Merkle trees, which already perform the required authentication)
   # geli init -b -v -s 4096 /dev/ad0s2b
   # zpool create tank ad0s2b.eli
   
It's now time to create the new /boot and pollute it. Since the bootloader only understands /boot/..., we have to apply symlink magic to ensure our things like 'make installkernel' work correctly afterwards (/boot/... needs to go to ad0s1a:/boot/...)
   # newfs /dev/ad0s2a
   # mkdir /tank/bootdir
   # mount /dev/ad0s2a /tank/bootdir
   # cp -Rp /boot /tank/bootdir/
   # ln -sf /tank/boot /tank/bootdir/boot
   
Note: ZFS needs a file '/boot/zfs/zpool.cache' if you attempt to boot from it. By the order of the commands above, it should be created before we are initializing the new /boot, but better make sure it is there or your system will not boot! Now, edit /tank/boot/loader.conf and ensure it contains the following:
   zfs_load="YES"
   geom_eli_load="YES"
   
Note: on my laptop, I need 'hint.kbdmux.0.disabled=1' there as well - otherwise, the ELI password prompt misses keypresses. This appears to be a known issue. We have to create /tank/bootdir/etc/fstab too, so the loader knows which filesystem to pass to the kernel; put the following in it:
   tank      /    zfs     rw     0     0
   
We have a working /boot now, so let's fill up the ZFS root:
   # cd /
   # tar cf - --one-file-system * | tar xpf - -C /tank
   
We need to update the fstab on the ZFS partion now, so edit /tank/etc/fstab and put the following into it (we can use ad0s1b as swap again once the system is rebooted):
   tank            /           zfs     rw     0     0
   /dev/ad0s2a     /bootdir    ufs     rw     1     1
   /dev/ad0s2b     swap        swap    sw     0     0
   
Final step is to prevent ZFS from re-mounting tank, as it will be used to root filesystem. This can be done by:
   # zfs set mountpoint=legacy tank
   
The previous command probably will give an error regarding being unable to umount - this can be safely ignored. Finally, reboot, and enjoy your uber-secure ELI-protected ZFS system! You'll probably want to fetch sources and build/install world/kernel, but I'll leave that up to you. Closing words, I used to following guides to construct this post: http://www.wanda25.de/geli.html on how to initialize ELI, and http://wiki.freebsd.org/ZFSOnRoot on how to place / on ZFS.

Matteo Riondato: Magnis Itineribus (going on by huge steps)

Lighthouse? In little more than one month at Brown University, under the supervision of Prof. Upfal and Prof. Pietracaprina, I think I learned a lot, both in terms of new concepts, ideas, tools and in terms of how to do research.

Yes, I’m really proud of myself and of the work I’ve been doing since I came here. =)

As a side note, I got a new MacBook and I’m testing VMware Fusion with FreeBSD as guest OS ATM. If I’m satisfied with it, I may even buy Fusion, since the student price is reaaaalllly convenient. This also leads to the consideration that I’m back with a FreeBSD machine, although virtual, and ready to start contributing to FBSD again. Yay!