hubertf's NetBSD Blog
Send interesting links to hubert at feyrer dot de!
[20080713] Another source-changes catch-up (late may until second week of july 2008)
The following list gives changes to NetBSD-current between end of may to second week of july. Note that NetBSD is currently in a feature-freeze to prepare the 5.0 release, so there are more stability improvements going in than new features being added:
  • Work on the wrstuden-revivesa is ongoing. The old Scheduler Activations (SA) based threading code that was removed from NetBSD after 4.0 is adapted for NetBSD-current, so any applications that depend on SAs can continue to run. This is important for binary compatibility.
  • More changes towards the new kernel modules (kmod) framework:
    • file systems' sysctl init code is now ran in a fashion so that the modules can either be linked statically into the kernel, or loaded as module during runtime, without recompiling the code. (this used to be done via some #defines previously, which either expanded to code for the LKM, or to code for static inclusion).
    • the uaudio driver can now be compiled as kmod. More work is done to actually attach audio to newly found devices, though.
  • Wasabi's journaling filesystem support was added on the simonb-wapbl branch. There are still a number of issues to be resolved before this gets to flight under real life conditions.
  • Support for LVM as part of this year's Google Summer of Code was added on the haad-dm branch. Currently it is possible to create a logical volume, newfs and mount it with the Linux lvm2tools lvcreate utility - the NetBSD driver is API-compatible with Linux.
  • After TNF has changed its copyright from 4-clause to 2-clause, other holders of material in NetBSD's code base have made similar changes.
  • The yamt-pf42 branch was merged, which merges in a newer PF packet filter from OpenBSD 4.2.
  • Management of processor sets and thread affinity was added, see the cpuset(3), affinity(3), pthread_setaffinity_np(3) and pthread_getaffinity_np(3) manpages as well as the cpuctl(8) and psrset(8) commands.
  • The Red-Black-Tree code was optimized more, and moved in a place so that the same code can be used both from userland (libc) and kernel code.
  • ifconfig(8) was changed to allow easy adding/removal of features such as address families (inet, inet6, iso, atalk) and protocols (802.11, 802.3ad, CARP) via the Makefile.
  • SSH was extended with the HPN-SSH patch, which aims at improving performance of SCP and the underlying SSH2 protocol by dynamically allocating buffers. See the HPN-SSH homepage for more information.

[Tags: , ]

[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: , ]

[20060118] Zlib, kernel sources and src/common (Updated)
Christos Zoulas has merged a new version of the Zlib compression library into NetBSD. As the library is not only used in userland by gzip(1) and friends but also inside the kernel e.g. for PPP compression and in the bootloaders to load compressed kernels. To not have multiple copies of the same sources, it was moved into src/common.

This is important to note, as it is no longer sufficient to just grab src/sys to build a kernel, but src/common is also needed if you need to build something that uses zlib, like bootloaders (src/sys/arch/*/stand) and various kernel options (PPP, IPsec, OpenCrypto, VND_COMPRESSION).

Update: Actually the above is not true - Christos told me that ``there is a separate copy of zlib in /usr/src/sys/net; this is used for ppp and it cannot be merged with the current zlib because the old one is hacked to do packetized mode that pppd needs and the new one is too different to apply the same hacks. Before we had 3 copies of zlib; now we have 2.'' Close...

[Tags: , , ]

[20050522] Doxygen'd kernel documentation
Rui Paulo has pushed some parts of the NetBSD kernel source through doxygen, and the result is cross reference of a number of kernel subsystems -- UVM, netinet, netinet6, netipsec, net80211, nfs, libkern. Data available is a list of data structures, file list, data fields and global symbols as well as call graph for functions and include file dependencies(!).

[Tags: , , ]

Tags: , 2bsd, 34c3, 3com, 501c3, 64bit, acl, acls, acm, acorn, acpi, acpitz, adobe, adsense, Advocacy, advocacy, advogato, aes, afs, aiglx, aio, airport, alereon, alex, alix, alpha, altq, am64t, amazon, amd64, anatomy, ansible, apache, apm, apple, arkeia, arla, arm, art, Article, Articles, ascii, asiabsdcon, aslr, asterisk, asus, atf, ath, atheros, atmel, audio, audiocodes, autoconf, avocent, avr32, aws, axigen, azure, backup, balloon, banners, basename, bash, bc, beaglebone, benchmark, bigip, bind, blackmouse, bldgblog, blog, blogs, blosxom, bluetooth, board, bonjour, books, boot, boot-z, bootprops, bozohttpd, bs2000, bsd, bsdca, bsdcan, bsdcertification, bsdcg, bsdforen, bsdfreak, bsdmac, bsdmagazine, bsdnexus, bsdnow, bsdstats, bsdtalk, bsdtracker, bug,, busybox, buttons, bzip, c-jump, c99, cafepress, calendar, callweaver, camera, can, candy, capabilities, card, carp, cars, cauldron, ccc, ccd, cd, cddl, cdrom, cdrtools, cebit, centrino, cephes, cert, certification, cfs, cgd, cgf, checkpointing, china, christos, cisco, cloud, clt, cobalt, coccinelle, codian, colossus, common-criteria, community, compat, compiz, compsci, concept04, config, console, contest, copyright, core, cortina, coverity, cpu, cradlepoint, cray, crosscompile, crunchgen, cryptography, csh, cu, cuneiform, curses, curtain, cuwin, cvs, cvs-digest, cvsup, cygwin, daemon, daemonforums, daimer, danger, darwin, data, date, dd, debian, debugging, dell, desktop, devd, devfs, devotionalia, df, dfd_keeper, dhcp, dhcpcd, dhcpd, dhs, diezeit, digest, digests, dilbert, dirhash, disklabel, distcc, dmesg, Docs, Documentation, donations, draco, dracopkg, dragonflybsd, dreamcast, dri, driver, drivers, drm, dsl, dst, dtrace, dvb, ec2, eclipse, eeepc, eeepca, ehci, ehsm, eifel, elf, em64t, embedded, Embedded, emips, emulate, encoding, envsys, eol, espresso, etcupdate, etherip, euca2ools, eucalyptus, eurobsdcon, eurosys, Events, exascale, ext3, f5, facebook, falken, fan, faq, fatbinary, features, fefe, ffs, filesystem, fileysstem, firefox, firewire, fireworks, flag, flash, flashsucks, flickr, flyer, fmslabs, force10, fortunes, fosdem, fpga, freebsd, freedarwin, freescale, freex, freshbsd, friendlyAam, friendlyarm, fritzbox, froscamp, fsck, fss, fstat, ftp, ftpd, fujitsu, fun, fundraising, funds, funny, fuse, fusion, g4u, g5, galaxy, games, gcc, gdb, gentoo, geode, getty, gimstix, git, gnome, google, google-soc, googlecomputeengine, gpio, gpl, gprs, gracetech, gre, groff, groupwise, growfs, grub, gumstix, guug, gzip, hackathon, hackbench, hal, hanoi, happabsd, Hardware, hardware, haze, hdaudio, heat, heimdal, hf6to4, hfblog, hfs, history, hosting, hotplug, hp, hp700, hpcarm, hpcsh, hpux, html, httpd, hubertf, hurd, i18n, i386, i386pkg, ia64, ian, ibm, ids, ieee, ifwatchd, igd, iij, image, images, imx233, imx7, information, init, initrd, install, intel, interix, internet2, interview, interviews, io, ioccc, iostat, ipbt, ipfilter, ipmi, ipplug, ipsec, ipv6, irbsd, irc, irix, iscsi, isdn, iso, isp, itojun, jail, jails, japanese, java, javascript, jetson, jibbed, jihbed, jobs, jokes, journaling, kame, kauth, kde, kerberos, kergis, kernel, keyboardcolemak, kirkwood, kitt, kmod, kolab, kvm, kylin, l10n, landisk, laptop, laptops, law,, ldap, lehmanns, lenovo, lfs, libc, license, licensing, linkedin, links, linksys, linux, linuxtag, live-cd, lkm, localtime, locate.updatedb, logfile, logging, logo, logos, lom, lte, lvm, m68k, macmini, macppc, macromedia, magicmouse, mahesha, mail, makefs, malo, mame, manpages, marvell, matlab, maus, max3232, mbr95, mbuf, mca, mdns, mediant, mediapack, meetbsd, mercedesbenz, mercurial, mesh, meshcube, mfs, mhonarc, microkernel, microsoft, midi, mini2440, miniroot, minix, mips, mirbsd, missile, mit, mixer, mobile-ip, modula3, modules, money, mouse, mp3, mpls, mprotect, mtftp, mult, multics, multilib, multimedia, music, mysql, named, nas, nasa, nat, ncode, ncq, ndis, nec, nemo, neo1973, netbook, netboot, netbsd,, nethack, nethence, netksb, netstat, netwalker, networking, neutrino, nforce, nfs, nis, npf, npwr, nroff, nslu2, nspluginwrapper, ntfs-3f, ntp, nullfs, numa, nvi, nvidia, nycbsdcon, office, ofppc, ohloh, olimex, olinuxino, olpc, onetbsd, openat, openbgpd, openblocks, openbsd, opencrypto, opendarwin, opengrok, openmoko, openoffice, openpam, openrisk, opensolaris, openssl, or1k, oracle, oreilly, oscon, osf1, osjb, paas, packages, pad, pae, pam, pan, panasonic, parallels, pascal, patch, patents, pax, paypal, pc532, pc98, pcc, pci, pdf, pegasos, penguin, performance, pexpect, pf, pfsync, pgx32, php, pie, pike, pinderkent, pkg_install, pkg_select, pkgin, pkglint, pkgmanager, pkgsrc,, pkgsrccon, pkgsrcCon, Platforms, plathome, pleiades, pocketsan, podcast, pofacs, politics, polls, polybsd, portability, posix, postinstall, power3, powernow, powerpc, powerpf, pppoe, precedence, preemption, prep, presentations, prezi, products, Products, proplib, protectdrive, proxy, ps, ps3, psp, psrset, pthread, ptp, ptyfs, Publications, puffs, puredarwin, pxe, qemu, qnx, qos, qt, quality-management, quine, quote, quotes, r-project, ra5370, radio, radiotap, raid, raidframe, rants, raptor, raq, raspberrypi, rc.d, readahead, realtime, record, refuse, reiserfs, Release, Releases, releases, releng, reports, resize, restore, ricoh, rijndael, rip, riscos, rng, roadmap, robopkg, robot, robots, roff, rootserver, rotfl, rox, rs323, rs6k, rss, ruby, rump, rzip, sa, safenet, san, sata, savin, sbsd, scampi, scheduler, scheduling, schmonz, sco, screen, script, sdf, sdtemp, secmodel, security, Security, sed, segvguard, seil, sendmail, serial, serveraptor, sfu, sge, sgi, sgimips, sh, sha2, shark, sharp, shisa, shutdown, sidekick, size, slackware, slashdot, slides, slit, smbus, smp, sockstat, soekris, softdep, softlayer, software, solaris, sony, sound, source, source-changes, spanish, sparc, sparc64, spider, spreadshirt, spz, squid, ssh, sshfs, ssp, statistics, stereostream, stickers, storage, stty, studybsd, subfile, sudbury, sudo, summit, sun, sun2, sun3, sunfire, sunpci, support, sus, suse, sushi, susv3, svn, swcrypto, symlinks, sysbench, sysctl, sysinst, sysjail, syslog, syspkg, systat, systrace, sysupdate, t-shirt, tabs, talks, tanenbaum, tape, tcp, tcp/ip, tcpdrop, tcpmux, tcsh, teamasa, tegra, teredo, termcap, terminfo, testdrive, testing, tetris, tex, TeXlive, thecus, theopengroup, thin-client, thinkgeek, thorpej, threads, time, time_t, timecounters, tip, tk1, tme, tmp, tmpfs, tnf, toaster, todo, toolchain, top, torvalds, toshiba, touchpanel, training, translation, tso, tty, ttyrec, tulip, tun, tuning, uboot, ucom, udf, ufs, ukfs, ums, unetbootin, unicos, unix, updating, upnp, uptime, usb, usenix, useradd, userconf, userfriendly, usermode, usl, utc, utf8, uucp, uvc, uvm, valgrind, vax, vcfe, vcr, veriexec, vesa, video, videos, virtex, virtualization, vm, vmware, vnd, vobb, voip, voltalinux, vpn, vpnc, vulab, w-zero3, wallpaper, wapbl, wargames, wasabi, webcam, webfwlog, wedges, wgt624v3, wiki, willcom, wimax, window, windows, winmodem, wireless, wizd, wlan, wordle, wpa, wscons, wstablet, X,, x11, x2apic, xbox, xcast, xen, Xen, xfree, xfs, xgalaxy, xilinx, xkcd, xlockmore, xmms, xmp, xorg, xscale, youos, youtube, zaurus, zdump, zfs, zlib

'nuff. Grab the RSS-feed, index, or go back to my regular NetBSD page

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

Access count: 34824429
Copyright (c) Hubert Feyrer