2008-05-16

ttyrpld is a multi-OS kernel-level TTY key logger and screen logger with (a)synchronous replay support. It runs on Linux, Solaris, FreeBSD, NetBSD, and OpenBSD.


License: GNU Lesser General Public License (LGPL)
Changes:
This release updates the kernel parts for Linux 2.6.25, FreeBSD 7.0, OpenBSD 4.3, and NetBSD 4.0.

NetBSD's packages collection knows the concept of "bulk builds" since the NetBSD 1.3 days, when I wrote the bulk build infrastructure in pkgsrc/mk/bulk to test if all packages build, and to rebuild (only) things that were changed. The infrastructure grew, Dan McMahill helped to optimize many points, and it was working for its purpose. A few drawbacks were inherent, though -- a long phase of scanning all Makefiles before the build and the inability to build on more than one machine/CPU were two of the more annoying ones.

In an attempt to solve those problems, and offer other features, Joerg Sonnenberger has worked on the "pbulk" system for some optimizations. The system is still in development, and documentation is somewhat spread over several places, which makes it not a first-hand replacement for the first system.

Due to this, Aleksey Cheusov has adapted pbulk and improved it into distbb, a tool for distributed bulk builds.

Aleksey compares his system to the other ones in a separate mail. Key items are the use of many separate tools for processing bits, with the core in /bin/sh and awk. A major point for forking pbulk was also the easier maintenance for Aleksey as his own project, with less communication overhead for coordination with the pbulk author.

I guess we'll see what system is the better one. For me, I'll define the winner as the system that gives me binary packages for a NetBSD release for all platforms that NetBSD supports.

2008-05-13

2008-05-11

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?

2008-05-08

The following kernel-related projects were raised in the past few weeks:

  • Kernel Preemption: Andrew Doran has continued his work towards fine-grained locking, and he has proposed a patch to implement kernel preemption, i.e. that in a realtime environment, high-priority processes can interrupt system calls running inside the kernel.

    Handling the Floating Point Unit (FPU) was added later on -- the FPU needs special attention as saving and restoring is expensive, and doesn't need to be done in many cases. But if a program uses it, care must be taken to handle the case. The exact handling is explained by Christoph Egger.

    While there, Christoph also outlined the roadmap for getting realtime support in NetBSD - there are still a number of bits missing, but being able to preempt the kernel is a good first step!

  • Fine-grained socket locking: In order to allow fine-grained locking (instead of blocking all other processes from entering the kernel, as is done in the "biglock" SMP approach), many kernel subsystems need to be changed. The socket system is the core part of interprocess communication, and Andrew Doran has changed it to use fine-grained locking now.

    In that context, the question of what code still runs with the biglock held, and Andrew gave an overview where more work is needed: some file systems (lfs, ext2fs, nfs), most of the drivers, protocols like TCP/IP, Veriexec, and some machine-dependent parts.

    Veriexec-Hacker Brett Lymn added details on the status of Veriexec with respect to its transition towards fine-grained locking.

  • Kernel modules and ramdisk: A change in kernel modules was proposed some time ago, and Andrew Doran has used this scheme now to unify the way many ports handle the install media: There, the kernel loaded contains a ramdisk (miniroot) image inside the kernel, which is then used as root-filesystem for the kernel, containing the install tools.

    In order to split things and eventually use a stock GENERIC kernel for both running and installing, Andy has changed the x86 boot process to load the miniroot as a kernel module.

    When booting it may be useful to select one of several ramdisks: one for installing, and one for resuing the system, For this, the recently introduced boot.cfg file was extended to handle kernel modules in the boot menu.

    Izumi Tsutsui has made an ISO with all changes for testing available.

  • Device File System (devfs): Another area of the kernel where a lot of work is currently being done by Matt Fleming is NetBSD's device driver infrastructure, esp. under aspects of dynamic attaching, detaching, and suspending (power management!). To talk to the various drivers, device nodes in the /dev directory are kept right now, but those are static and need to be updated when a new driver is added. Matt is working on a Device Filesystem (devfs) that dynamically created /dev from the list of devices inside the kernel. The fileysstem will also handle dynamic creation and deletion of nodes, and as an important case it will also keep permissions across reboots, if someone changes permissions manually.

    The work is at a very mature point right now and needs some testing - see Matt's mail to the tech-kern list for more information!

  • Testing driver attachment: While talking about testing of device drivers, David Young has reminded driver developers to test individual drivers' detachment and re-attachment, suspension and resumption after changes. He has also posted a how-to for those tests, using drvctl(8). (The manpage needs some updating, sorry -- UTSL :-)

2008-05-06

Leonardo Taccari had the idea to make a reference card for NetBSD and pkgsrc, and has posted about it. The card is available in english and italian language, and covers links, commands for audio, localization, managing users and groups, monitoring the system, the NetBSD rc.d startup system, starting and stopping of services, wscons, pkgsrc and related tools and more.

2008-04-28

After the DaemonNews paper magazine is long gone, there's a new paper magazine BSD Magazine now! Dru Lavigne lists the contents in her blog article on the mag, shamelessly ripped off here:

  • Dru Lavigne, FreeBSD 7.0 Installation and Configuration
  • Michael Lucas, FreeBSD's bsnmp
  • Jan Stedehouder, Pushing BSD an an Open Source Desktop
  • Svetoslav Chukov, PC-BSD Overview
  • Richard Bejtlich, Sguil 0.7.0 on FreeBSD 7.0
  • Jay Kruizenga, How to Dual-Boot Vista with BSD
  • Peter Hansteen, Keep Smiling, Waste Spammers' Time
  • Henrik Lund Kramshoj, Defense in Depth and FOSS
  • Donald Hayford, NetBSD on the NSLU2
  • Girish Venkatachalam, OpenBSD pf
  • Eric Schnoebelen, Instant Messaging with jabber/XMPP
  • Federico Biancuzzi, Interview with FreeBSD Developer Jeff Roberson
  • Mikel King, What is in a Certification
  • Henrik Lund Kramshoj, Review of the Book of PF
Besides the articles, the mag contains a DVD with FreeBSD 7.0.

I guess this is a very good thing, and an opportunity to show what NetBSD is and can do. I'm sure the publishers will be happy to receive more articles about NetBSD -- contribute!

Feeds

Feed RSS Last update Next update
#NetBSD Community Blog XML 2008-05-16 15:20 2008-05-16 17:20
bsdtalk XML 2008-05-16 15:20 2008-05-16 17:20
DragonFly BSD Digest XML 2008-05-16 15:20 2008-05-16 17:20
freshmeat.net announcements (Global) XML 2008-05-16 15:20 2008-05-16 17:20
http://ndis-netbsd.blogspot.com/ XML 2008-05-16 15:20 2008-05-16 17:20
hubertf's NetBSD blog XML 2008-05-16 15:20 2008-05-16 17:20
i summon one kim XML 2008-05-16 15:20 2008-05-16 17:20
Implementality XML 2008-05-16 15:20 2008-05-16 17:20
Jeremy C. Reed's blog XML 2008-05-16 15:20 2008-05-16 17:20
Latest Secunia Security Advisories XML 2008-05-16 15:20 2008-05-16 17:20
NetBSD CVS Digest RSS Feed XML 2008-05-16 16:15 2008-05-16 22:15
NetBSD.org News XML 2008-05-16 15:20 2008-05-16 17:20
OSNews XML 2008-05-16 15:20 2008-05-16 17:20
The Julipedia XML 2008-05-16 15:20 2008-05-16 17:20
unsigned long geek = random(); XML 2008-05-16 15:20 2008-05-16 17:20
Yareev's schmonz.com - Technology XML 2008-05-16 15:20 2008-05-16 17:20