hubertf's NetBSD Blog
Send interesting links to hubert at feyrer dot de!
[20080527] The great source-changes catch-up for late March, April, and May 2008
Ok, after more weeks of slacking, some gems that I've found noteworthy, i.e. that have some "enduser" effect, where I also included developers and programmers in that group. I.e. not purely cosmetic/internal changes. "Fun stuff", i.e., not the hard labor that's still needed, and much appreciated! Here we go:

Changes related to SMP:

  • Yamamoto Takashi has started the yamt-nfs-mp branch to make the NFS client MP-safe
  • After merge of the yamt-lazymbuf branch, the send(2) and recv(2) system calls are MP-safe
  • Other system calls that have been made MP-safe are for NTP, PMC, reboot, sysarch and time. With the exception of the Darwin and Irix emulations, all system falls are now MP-safe!
  • Progress on the wrstuden-revivesa branch to get back support for Scheduler Activations. Much of the code that was removed when Andrew's 1:1 threading was added is put back in a way that both threading mechanisms can co-exist. Affected areas are the interface to the generic scheduler and locking.
Changes related to networking:
  • In the networking code, stats for ICMP, ICMP6, UDP, TCP, IP and IPv6 were changed from a structure to an array of uint64_t values by Jason Thorpe. This removes a few structs from the kernel header files. The change is ABI compatible with the old structures, as such tools like netstat(1) will continue to work.
  • Also, while moving towards a multi-threaded network stack, stats for protocols like UDP6, IP, PIM6, ARP, IGMP, IPSEC, IPSEC_FAST, PF_KEY, Appletalk DDP, and CARP are accounted on a per-cpu base, and routines were added to support collating per-cpu-gathered network statistics.
  • ifconfig(8) got a major overhaul towards improved modularity and extensibility. The internal parser's cleaner, and it should be easier to add new commands.
  • In the search for replacing the ISC DHCP client dhclient(8) with something smaller, Rob Marpled's DHCP Client Daemon dhcpcd(8) was imported. It is 1/6 of the size, yet has about all the features plus adds support for more modern RFCs like IPv4LL (RFC 3927), Classless Static Routes (RFC 3442) and Node-specific Client Identifiers (RFC 4361).
  • Kernel support for adding/removing link-layer (i.e. MAC/ethernet) addresses using SIOCALIFADDR AND SIOCDLIFADDR, respectively. Corresponding ifconfig(8) changes were announced to come soon.
Many other changes:
  • Progress on the mjf-devfs2 branch: adding wedge support, devfsd is started by init(8) before going multiuser
  • Thor Lancelot Simons has extended the crypto(4) interface to handle asynchronous operations. Ioctl calls to create, submit/retrieve and destroy multiple sessions were added, which should make it easier to write new crypto applications overall. The code for this was contributed to TNF by Coyote Point Systems, Inc.
  • Clauses 3 and 4 were removed from TNF licenses. There's an outstanding press release on this one, but interested parties are OK to remove those closes from existing older code, following UCB's prior example.
  • Kernel-option MULTIPROCESSOR is now mandatory on i386
  • i386 and amd64 now have a default boot.cfg file, allowing to boot either single user or multi user (= normally), wither with or without ACPI and/or SMP.
  • For new kernel modules, the suffix will be .kmod (over the old .o, see your /etc/rc.lkm.conf), and the designated place is /kernel/modules for now. A number of drivers that aren't in GENERIC are now built as modules to allow easier testing or loading when needed, and the x86 boot loader can now load new style modules and pass them to the kernel. Also, the miniroot (ramdisk) for kernels can be loaded as a module as well - this will mean one kernel for both installation and running - no more separate INSTALL kernels, yai!

    Curious parties can try the new scheme by setting MKMODULAR=yes in their /etc/mk.conf file and by adding option MODULAR to the kernel config, see src/share/mk/bsd.README for more information.

  • The UDF DVD/etc. file system now supports writing. Use the new mmcformat(8) tool to format rewritable CD/DVD discs and newfs_udf(8) to create the filesystem.
  • Support for the LC_MESSAGE, LC_MONETARY and LC_NUMERIC locale categories was added.
  • src/external was made as new directory where "external" sources from 3rd party projects will live in the future. This includes the sources that are in src/gnu/dist, src/dist etc. right now. Src/external has subdirectories named by license, and src/gnu/dist will become src/external/gpl (or so) in the future, OpenLDAP was the first package to be imported here, it lives in src/external/bsd/openldap.
  • Numerous drivers were added:
    • isv(4) for the IDEC Supervision/16 ISA image capture board
    • finsio(4) for the Hardware Monitor in the Fintek LPC Super I/O chips
    • amdtemp(4) for AMD CPU Temperature Sensors
    • hpqlb(4) for the HP Quick Launch buttons on the HP Pavilion notebooks
    • acpidalb(4) for PNP0C32 Hotkeys AKA "direct application launch buttons"
    • cpi(4) for the Creative Systems Inc. Hurdler CPI parallel printer card
    • siisata(4) for the Silicon Image SteelVine SATA-II controllers
    • lii(4) for the Atheros/Attansic L2 Fast-Ethernet chip found e.g. on the Asus EeePC
    • uberry(4) to charge a RIM BlackBerry on a USB port
  • Various imports and updates of in-tree 3rd party software:
    • IPfilter was updated to 4.1.29
    • libevent was updated to 1.4.4-stable
    • OpenSSL was updated to a snapshot from 20080509
    • OpenSSH 5.0 was imported
    • ATF 0.5 was imported
    • libarchive 2.5.4b was imported
    • nvi 1.81.6 was imported
    • OpenLDAP 2.4.9 was imported in the new src/external directory
    • nawk was imported from the 20070501 Bell Labs sources
    • + probably others that I've missed

[Tags: , ]

Disclaimer: All opinion expressed here is purely my own. No responsibility is taken for anything.

Access count: 30631329
Copyright (c) Hubert Feyrer