[20080908]
|
source-changes catchup mid-July to early September 2008 (Updated)
Welcome to yet another catch-up of NetBSD source-changes mailing list,
this time from mid-July to early September 2008. Besides FFS having
journaling now (yai! first in BSD-land, ever! :-), here's what's new
and/or exciting:
- In order to re-initialize x86 machines' video/VGA state after
suspend and resume, some BIOS functions can be used. This needs
to be done in real mode(?), which is a bit hard to do from an
operating system kernel that runs in protected mode. To help
doing so, a x86 CPU emulator was added to NetBSD some time ago,
to help run VGA bios for ACPI resume. Now Joerg has added a
sysctl that does just this, assuming your kernel has the VGA_POST
options -- set machdep.acpi_vbios_reset=2
- Inside the kernel, data sent/received through the network stack
is stored in chains of
mbufs. So far, the mbufs were also used to store socket
options, i.e. data describing further how the sending/receiving
is done. This was split out into a separate struct sockopt by Ian
'plunky' Hibbert now. For more information, see sockopt(9).
- Hans 'woodstock' Rosenfeld has added a new accalerated driver for
SPX graphics boards found in some VAXstations, which replaces the
old and broken lcspx driver. The work is based on work by Blaz
Antonic.
- The simonb-wapbl branch was merged: ``Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
journaling code. Originally written by Darrin B. Jewell while
at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.''
This makes NetBSD the
first second (see update below)
BSD operating system that has a working
file system with journaling (not counting LFS, which again and
again has issues). Mmm, no more fsck! :-)
See my other
posts for more on journaling / wapbl.
Update:
James Mansion wrote me to that NetBSD's not the first BSD to
have journaling, and I think he's right:
DragonflyBSD's HAMMER file system apparently offers similar
functionality: ``HAMMER implement an instant-mount capability and will recover information
on a cluster-by-cluster basis as it is being accessed.''
- Accept filters were ported from FreeBSD by Coyote Point Systems,
and integrated into NetBSD by Thor Lancelot Simon. What are
accept filters? According to the accept_filter(9)
manpage, they ``allow an application to request that the
kernel pre-process incoming connections.'' Pre-defined
filters are available with
accf_data(9) and
accf_http(9). The latter makes sure that the
application's accept(2) call only sees the connection if there's
a valid HTTP header, moving parts of the parsing from userland
(httpd) to the kernel.
- Work is underway for crossbuilds of modular X.org. This is done
via src/external/mit/xorg, which needs xsrc/external/mit. The
results will be installed in /usr/X11R7(!). (XXX Where can I find
more about this?)
- Gregory McGarry is working to get the tree compiled with PCC
instead of GCC. This is still ongoing.
- nvi was updated from version 1.79 to 1.81. The most important
part of this update is that internationalization is now handled
by default.
- Following a bigger masterplan, new 3rd party software packages
are now imported into src/external/${license}, which will replace
src/dist, src/crypto/dist and src/gnu/dist in the long
run. Packages will be moved on upgrades only, existing packages
are not being moved just for the sake of moving them.
- Adam Hamsik is working on getting Logical Volume Management (LVM)
going in NetBSD. He has adapted Linux' "device mapper"
kernel-interface as part of his Google Summer-of-Code project,
and with the help of the (GPL'd) Linux tools, things are looking
pretty good. More on this in a separate post. This work is
currently happening on the haad-dm branch.
- In the context of his work on UDF, Reinoud has added routines for
speeding up directory handling by using hash gables. Lookup of
files was O(n*n) and is now O(1) even for file creation.
See my
other blog posting for details and impressive numbers.
- Perry Metzger is working to make binary builds identical. This is
useful for binary diffs between releases/builds, e.g. when
providing binary patches for updates and security fixes. Areas
where this had an impact on are C++ programs and various
bootloaders (which had a builder, build date, etc. in it so
far).
- EHCI (USB) can now do high speed isochronous support. This was
developed by Jeremy Morse as part of his Google
Summer-of-Code "dvb" project this year, it is useful for fast
transfer of data that comes in steady streams, e.g. from video
cards.
- fsck_ffs(8) now has options -x and -X (just like dump) that
create a file system snapshot via fss(4), and then operates on
the snapshot. This allows "fsck_ffs -n" to work on a snapshot of
a read/write mounted file system, and avoid errors related to
file system activity. Can be made permanent for the nightly
script by setting run_fsck_flags="-X" in /etc/daily.conf.
This was brought to you by our Xen-hacker Manuel Bouyer. :-)
So much for this time. Many of the above projects are
work-in-progress, and we can look forward for further news on them
next time. Stay tuned!
[Tags: acpi, ehci, fss, lvm, mbuf, nvi, pcc, usb, wapbl, xorg]
|
|