diff --git a/en/advocacy/index.sgml b/en/advocacy/index.sgml index f3f4bc3815..89daeca2da 100644 --- a/en/advocacy/index.sgml +++ b/en/advocacy/index.sgml @@ -1,104 +1,104 @@ - + %includes; ]> &header;

Much of the success which surrounds FreeBSD is due to people advocating its use to their friends, colleagues, and employers.

This page provides links to more information to help you do this.

Mailing lists

Web resources

Sites using FreeBSD

&footer diff --git a/en/advocacy/myths.sgml b/en/advocacy/myths.sgml index 6a50068c4f..8648a4d246 100644 --- a/en/advocacy/myths.sgml +++ b/en/advocacy/myths.sgml @@ -1,383 +1,383 @@ - + %includes; ]> &header;

As the BSD projects (FreeBSD, NetBSD, and OpenBSD) have grown in size, a number of persistent myths have grown up around them. Some of these are perpetuated by well meaning but misguided individuals, others by people pursuing their own agendas.

This page aims to dispel those myths while remaining as dispassionate as possible.

Note: Throughout this page, ``*BSD'' refers to all three of the BSD Projects. Where a myth or response is specific to a particular project it is indicated as such.
If you are aware of an omission or error on this page, please let the maintainer, Tom Rhodes <trhodes@FreeBSD.org> know.

Index

Myths

*BSD has a closed development model, it's more ``Cathedral'' than ``Bazaar''

Eric Raymond wrote an influential paper, ``The Cathedral and the Bazaar'' in which the Linux development model (and the model Eric used for fetchmail) is held up as an example of how to do ``open'' development. By contrast, the model employed by *BSD is often characterized as closed.

The implicit value judgment is that ``bazaar'' (open) is good, and ``cathedral'' (closed) is bad.

If anything, *BSD's development model is probably more akin to the ``bazaar'' that Eric describes than either Linux or fetchmail.

Consider the following;

Also, see this article written by Jordan Hubbard in Performance Computing, titled What is FreeBSD?


You cannot make your own distributions or derivative works of *BSD

You can. You just need to say in the documentation and source files where the code is derived from.

For example, PicoBSD is a tailored distribution of FreeBSD that fits on a floppy. It's great for turning a diskless 386 PC into a router or a network print server.

The Whistle Interjet is a ``network appliance'' that acts as a router, web server, mailhost (and other functionality), and can be configured using a web browser. The underlying operating system is FreeBSD, and Whistle have contributed many of their code enhancements back to the FreeBSD project (while keeping enough of them proprietary that they can stay in business).

The OpenBSD project started as a spinoff from the NetBSD project, and has since evolved its own distinctive approach.


*BSD makes a great server, but a poor (&unix;) desktop

*BSD makes a great server. It also makes a great desktop. Many of the requirements for a server (responsiveness under load, stability, effective use of system resources) are the same requirements as for a desktop machine.

*BSD has access to the same desktop tools (KDE, GNOME, windowmanagers) as Linux. And ``office'' applications such as WordPerfect or StarOffice work under BSD's Linux emulation layer.


The BSD codebase is old, outdated, and dying

While the BSD codebase may be more than 20 years old, it is neither outdated or dying. Many professional users like the stability that years of testing has provided FreeBSD.

Technological enhancements continue to be added to *BSD, including, but not limited to;


The *BSD projects are at war with one another, splinter groups form each week

No. While occasional advocacy may get a touch heated, the *BSD flavors continue to work with one another. FreeBSD's Alpha port was initially heavily based on the work done by the NetBSD team. Both NetBSD and OpenBSD used the FreeBSD ports collection to bootstrap their own port sets. FreeBSD and NetBSD both integrate security fixes first discovered by the OpenBSD team.

This cooperation extends to the commercial company BSDi, who graciously donated their DOS emulation layer to FreeBSD.

The FreeBSD and NetBSD projects separated more than five years ago. OpenBSD is the only new BSD project to split off in the last five years.

The *BSD projects cooperate in other areas as well. For example, the monthly publication DaemonNews is a collaborative effort by members of all three projects.


You can't cluster *BSD systems (parallel computing)

The following URLs should disprove this;

In addition to this, Tom Rhodes is currently writing an article designed to walk a user through setting up a Parallel Computing environment using FreeBSD and other utilities. Keep an eye out for this article in late 2002 early 2003.


There's no commercial support for *BSD

-

FreeBSD: The FreeBSD +

FreeBSD: The FreeBSD Commercial Consulting Page lists companies that offer commercial support for FreeBSD.

The FreeBSD Mall also offer commercial support, along with shirts, hats, books, software, and promotional items.

For training, one might try BSDMall.com, but they sell other items too, like shirts, hats, books and software! Definitely worth a look.

OpenBSD: The OpenBSD Commercial Consulting Page lists companies that offer commercial support for OpenBSD.


There are no applications for *BSD

The free software community started running on predominantly BSD systems(SunOS and similar). *BSD users can generally compile software written for these systems without needing to make any changes.

In addition, each *BSD project uses a ``ports'' system to make the building of ported software much easier.

FreeBSD: There are currently more than 8,000 applications ready to download and install in the FreeBSD ports collection. On both the i386 and Alpha, the Linux emulation layer will also run the vast majority of Linux applications.

NetBSD: The Linux emulation layer will run the vast majority of i386 Linux applications, and the majority of SunOS4 applications can be run on a SPARCStation.

OpenBSD: There are currently slightly more than 400 applications ready to download and install in the OpenBSD ports collection. The Linux emulation layer will also run the vast majority of i386 Linux applications, and the majority of SunOS4 applications can be run on a SPARCStation.

Both NetBSD and OpenBSD are able to use applications in FreeBSD's ports collection with minimal effort. Their lower number of ported applications reflects this.

It is true that most companies when porting to PC Unix will choose Linux first. Fortunately, *BSD's Linux emulation layer will run these programs (Acrobat, StarOffice, Mathematica, WordPerfect, Quake, Intel ICC compiler, Compaq's Alpha compiler ...) with few, if any, problems.

As a historical note, the first version of Netscape Navigator that ran on FreeBSD with Java support was the Linux version. Now you can also use a native FreeBSD version of Mozilla with a native Java plugin, all compiled conveniently from the ports!


*BSD uses the a.out executable format, which is outdated technology

FreeBSD: Quite a while ago (before 1998) FreeBSD used the a.out format by default. There were no pressing reasons to switch earlier. In particular, FreeBSD did not (and does not) have the problems building shared libraries that spurred the Linux conversion from a.out to ELF. As of FreeBSD version 3.0, FreeBSD uses the ELF executable format.


*BSD is better than (insert other system)

This is user opinion only.


(insert some other system) is better than *BSD

This is user opinion only


Contributors

Members of the FreeBSD, NetBSD, and OpenBSD projects have contributed to this page;

+ <nik@FreeBSD.ORG> + <jkh@FreeBSD.ORG>
Nik Clayton - <nik@FreeBSD.ORG> Jordan Hubbard - <jkh@FreeBSD.ORG>
Ian F. Darwin <ian@DarwinSys.com>
Adrian Filipi-Martin <adrian@ubergeeks.com>
Tom Rhodes <trhodes@FreeBSD.org>
&footer diff --git a/en/cgi/cvsweb.conf b/en/cgi/cvsweb.conf index ec2b78f74c..6b4413d052 100644 --- a/en/cgi/cvsweb.conf +++ b/en/cgi/cvsweb.conf @@ -1,531 +1,531 @@ # -*-perl-*- # Configuration of cvsweb.cgi, the # CGI interface to CVS Repositories. # # (c) 1998-1999 H. Zeller # 1999 H. Nordstrom # 2000-2002 A. MUSHA # 2002 V. Skyttä # based on work by Bill Fenner # -# $Id: cvsweb.conf,v 1.36 2003-09-18 19:19:06 brueffer Exp $ +# $Id: cvsweb.conf,v 1.37 2004-04-04 21:49:38 phantom Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $ -# $FreeBSD: www/en/cgi/cvsweb.conf,v 1.35 2003/05/10 18:57:12 wosch Exp $ +# $FreeBSD: www/en/cgi/cvsweb.conf,v 1.36 2003/09/18 19:19:06 brueffer Exp $ # ### # Set the path for the following commands: # uname, cvs, rlog, rcsdiff # gzip (if you enable $allow_compress) # tar, rm, zip (if you enable $allow_tar) $command_path = '/bin:/usr/bin:/usr/local/bin'; # Search the above directories for each command for (qw(uname cvs rlog rcsdiff gzip tar rm zip)) { $CMD{$_} = search_path($_); } # The name of the operating system implementation chomp($uname = `$CMD{uname}`); ############## # CVS Root ############## # CVSweb can handle several CVS-Repositories # at once. Enter a short symbolic names and the # full path of these repositories here. # NOTE that the symbolic names may not contain # whitespaces. # Note, that cvsweb.cgi currently needs to have physical access # to the CVS repository so :pserver:someone@xyz.com:/data/cvsroot # won't work! # 'symbolic_name' => ['name_to_display', 'path_to_the_actual_repository'] # Listed in the order specified: @CVSrepositories = ( 'freebsd' => ['FreeBSD', '/usr/local/www/cvsroot/FreeBSD'], 'openbsd' => ['OpenBSD', '/usr/local/www/cvsroot/OpenBSD'], 'netbsd' => ['NetBSD', '/usr/local/www/cvsroot/NetBSD'], '44bsdlite' => ['4.4BSD-Lite', '/e/4.4BSD-Lite/4.4BSD-Lite-CVS'], 'learn' => ['Learn', '/c/learncvs'], ); # This tree is enabled by default when # you enter the page $cvstreedefault = $CVSrepositories[2 * 0]; # The first one ############## # Mirror Sites ############## %MIRRORS = ( 'Germany' => 'http://cvsup-netbsd.leo.org/cgi-bin/cvsweb.cgi/?cvsroot=freebsd', 'Japan' => 'http://www.jp.FreeBSD.org/cgi/cvsweb.cgi', - 'Portugal' => 'http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi', + 'Portugal' => 'http://cvsup.pt.FreeBSD.org/cgi-bin/cvsweb/cvsweb.cgi', 'San Marino' => 'http://cvsweb.sm.FreeBSD.org/', 'Spain' => 'http://www.es.FreeBSD.org/cgi/cvsweb.cgi', - 'Turkey' => 'http://cvsweb.tr.freebsd.org/', + 'Turkey' => 'http://cvsweb.tr.FreeBSD.org/', 'Ukraine' => 'http://www.FreeBSD.org.ua/cgi/cvsweb.cgi?cvsroot=freebsd', 'USA/California' => 'http://cvsweb.FreeBSD.org/', ); ############## # Bug tracking system options # ("PR" means Problem Report, as in GNATS) ############## #@prcategories = qw( # advocacy # alpha # bin # conf # docs # gnu # i386 # kern # misc # pending # ports # sparc #); # #$prcgi = "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=%s"; # #$prkeyword = "PR"; ############## # Manual gateway ############## $mancgi = "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+5.0-current&format=html"; ############## # Defaults for UserSettings ############## %DEFAULTVALUE = ( # sortby: File sort order # file Sort by filename # rev Sort by revision number # date Sort by commit date # author Sort by author # log Sort by log message "sortby" => "file", # hideattic: Hide or show files in Attic # 1 Hide files in Attic # 0 Show files in Attic "hideattic" => "1", # logsort: Sort order for CVS logs # date Sort revisions by date # rev Sort revision by revision number # cvs Don't sort them. Same order as CVS/RCS shows them. "logsort" => "date", # f: Default diff format # h Human readable # u Unified diff # c Context diff # s Side by side "f" => "u", # hidecvsroot: Don't show the CVSROOT directory # 1 Hide CVSROOT directory # 0 Show CVSROOT directory "hidecvsroot" => "0", # hidenonreadable: Don't show entries which cannot be read # 1 Hide non-readable entries # 0 Show non-readable entries "hidenonreadable" => "1", ); ############## # some layout stuff ############## # The body-tag for directory views and logs $body_tag = ''; # The body-tag for diffs and annotations $body_tag_for_src = ''; # Wanna have a logo on the page ? $logo = ''; # The title of the Page on startup. This will be put inside a

tag. $defaulttitle = "CVS Repository"; # The address is shown on the footer. This will be put inside a
tag. $address = 'FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>'; # color of navigation Header for # diffs and annotations $navigationHeaderColor = '#9999ee'; $long_intro = < This is a WWW interface to the !!CVSROOTdescr!! CVS tree. You can browse the file hierarchy by picking directories (which have slashes after them, e.g., src/). If you pick a file, you will see the revision history for that file. Selecting a revision number will download that revision of the file. There is a link at each revision to display diffs between that revision and the previous one, and a form at the bottom of the page that allows you to display diffs between arbitrary revisions.

This script has been written by Bill Fenner and improved by Henner Zeller, Henrik Nordström, and Ken Coar, then Akinori MUSHA brought it back to FreeBSD community and made further improvements; it is covered by The BSD Licence.

If you would like to use this CGI script on your own web server and CVS tree, download the latest version from <URL:http://www.FreeBSD.org/projects/cvsweb.html>.

Feel free to send any patches, suggestions and comments to the FreeBSD-CVSweb mailing list at <freebsd-cvsweb\@FreeBSD.org>.

EOT $short_instruction = < Click on a directory to enter that directory. Click on a file to display its revision history and to get a chance to display diffs between revisions.

EOT # used icons; if icon-url is empty, the text representation is used; if # you do not want to have an ugly tooltip for the icon, remove the # text-representation. # The width and height of the icon allow the browser to correcly display # the table while still loading the icons. # These default icons are coming with apache. # If these icons are too large, check out the miniicons in the # icons/ directory; they have a width/height of 16/16 my $iconsdir = "/icons"; # format: TEXT ICON-URL width height %ICONS = ( back => [("[BACK]", "$iconsdir/back.gif", 20, 22)], dir => [("[DIR]", "$iconsdir/dir.gif", 20, 22)], file => [("[TXT]", "$iconsdir/text.gif", 20, 22)], ); undef $iconsdir; # the length to which the last logentry should # be truncated when shown in the directory view $shortLogLen = 80; # Show author of last change $show_author = 1; ############## # table view for directories ############## # Show directory as table # this is much more readable but has one # drawback: the whole table has to be loaded # before common browsers display it which may # be annoying if you have a slow link - and a # large directory .. $dirtable = 1; # show different colors for even/odd rows @tabcolors = ('#ffffff', '#ffffff'); $tablepadding = 2; # Color of Header $columnHeaderColorDefault = '#ffffcc'; $columnHeaderColorSorted = '#ffcc66'; # # If you want to have colored borders # around each row, uncomment this $tableBorderColor = '#cccccc'; # # Modules in the repository that should not be displayed, either by default # nor by explicit path specification. # @HideModules = ( # "^my/secret/module", ); # # Files matching these pathnames shouldn't be checked out with cvsweb, # since they may contain sensitive information. Simple file name based # filter. Often, the CVSROOT/passwd is exposed and some people tend # to check in their .cvspass, though this is a bad idea. These files # shouldn't be readable by default. Thanks to Damian Gryski to point # this out. # Note that this affects only files, not directories. @ForbiddenFiles = ( "^CVSROOT/passwd\$", # CVSROOT/passwd should not be cvs add'ed, though "/\\.cvspass\$", # Ditto. Just in case. "^CVSROOT/badcommitters\$", # Private project history. ); # # Use CVSROOT/CVSROOT/descriptions for describing the directories/modules # See INSTALL section 8 # $use_descriptions = 0; ############## # Human Readable Diff ############## # (c) 1998 H. Zeller # # Generates two columns of color encoded # diff; much like xdiff or emacs-ediff mode. # # The diff-stuff is a piece of code I once made for # cvs2html which is under GPL, # see http://www.sslug.dk/cvs2html # (c) 1997/98 Peter Toft # # some parameters to screw: ## # make lines breakable so that the columns do not # exceed the width of the browser $hr_breakable = 1; # give out function names in diffs # this just makes sense if we have C-files, otherwise # diff's heuristic doesn't work well .. # ( '-p' option to diff) $showfunc = 1; # For each pair of regexps, files that match the first regexp will be diff'ed # with an '-F' option with the second regexp. %funcline_regexp = ( "\\.(4th|fr)\$" => "\\(^\\|[ \t]\\): ", "\\.rb\$" => "^[\t ]*\\(class\\|module\\|def\\) ", ); # ignore whitespaces for human readable diffs # (indendation and stuff ..) # ( '-w' option to diff) $hr_ignwhite = 0; # ignore diffs which are caused by # keyword-substitution like $Id - Stuff # ( '-kk' option to rcsdiff) $hr_ignkeysubst = 1; # Colors and font to show the diff type of code changes $diffcolorHeading = '#99cccc'; # color of 'Line'-head of each diffed file $diffcolorEmpty = '#cccccc'; # color of 'empty' lines $diffcolorRemove = '#ff9999'; # Removed line(s) (left) ( - ) $diffcolorChange = '#99ff99'; # Changed line(s) ( both ) $diffcolorAdd = '#ccccff'; # Added line(s) ( - ) (right) $diffcolorDarkChange = '#99cc99'; # lines, which are empty in change $difffontface = "Helvetica,Arial"; $difffontsize = "-1"; # the width of the textinput of the # request-diff-form $inputTextSize = 12; ############## # Mime Types ############## # mapping to mimetypes to help # cvsweb to guess the correct mime-type on # checkout; you can use the mime.types from # apache here: $mime_types = '/usr/local/etc/apache/mime.types'; # quick mime-type lookup; maps file-suffices to # mime-types for displaying checkouts in the browser. # Further MimeTypes will be found in the # file $mime_types (apache style mime.types - file) # - add common mappings here for faster lookup %MTYPES = ( "html" => "text/html", "shtml" => "text/html", "gif" => "image/gif", "jpeg" => "image/jpeg", "jpg" => "image/jpeg", "png" => "image/png", "xpm" => "image/xpm", "*" => "text/plain", ); # Charset for HTML output $charset = ''; # e.g. #$charset = $where =~ m,/ru[/_-], ? 'koi8-r' # : $where =~ m,/zh[/_-], ? 'big5' # : $where =~ m,/ja[/_-], ? 'x-euc-jp' # : $where =~ m,/ko[/_-], ? 'x-euc-kr' # : 'iso-8859-1'; # Output filter $output_filter = ''; # e.g. ## unify/convert Japanese code into EUC-JP #$output_filter= '/usr/local/bin/nkf -e'; ############## # Misc ############## # allow annotation of files # this requires rw-access to the # CVSROOT/history file (if you have one) # and rw-access to the subdirectory to # place the lock so you maybe don't want it $allow_annotate = 1; # allow pretty-printed version of files $allow_markup = 1; # allow extra hlink formatting (such as PR xrefs) in logs $allow_log_extra = 1; # default: enabled # allow extra hlink formatting (such as PR xrefs) in directories $allow_dir_extra = 1; # allow extra hlink formatting in source code/formatted diff views $allow_source_extra = 1; # allow compression with gzip # of output if the Browser accepts # it (HTTP_ACCEPT_ENCODING=gzip) # [make sure to have gzip in the path] $allow_compress = 1; # Make use of javascript functions. # This way you can select one of your CVSroot # without pressing 'Go' (.. if you do have more # than one CVSROOT defined) $use_java_script = 1; # open Download-Links in another window $open_extern_window = 1; # The size of this extern window; this size option # needs use_java_script to be defined # just comment them if you don't want to have a fixed # size #$extern_window_width = 600; #$extern_window_height = 440; # Edit Options # Enable form to edit your options (hideattic,sortbydate) # this isn't necessary if you've $dirtable defined 'cause # this allows editing of all your options more intuitive $edit_option_form = (not $dirtable); # If you have files which automatically refers to other files # (such as HTML) then this allows you to browse the checked # out files as if outside CVS. $checkout_magic = 1; # Show last changelog message for sub directories # The current implementation makes many assumptions and may show the # incorrect file at some times. The main assumption is that the last # modified file has the newest filedate. But some CVS operations # touches the file without even when a new version is't checked in, # and TAG based browsing essientially puts this out of order, unless # the last checkin was on the same tag as you are viewing. # Enable this if you like the feature, but don't rely on correct results. $show_subdir_lastmod = 0; # Background color of logentry in markup $markupLogColor = "#ffffff"; # Show CVS log when viewing file contents $show_log_in_markup = 1; # Preformat when viewing file contents. This should be turned off # when you have files in the repository that are in a multibyte # encoding which uses HTML special characters ([<>&"]) as part of a # multi-byte character. (such as iso-2022-jp, ShiftJIS, etc.) # Otherwise those files will get screwed up in markup. $preformat_in_markup = ''; # Tabstop used to expand tabs in colored diffs. If undefined then # tabs are always expanded to 8 spaces. $tabstop = 8; # if you wish to display absolute times in your local timezone, # then define mytz and fill in the strings for your standard and # daylight time. Note that you must also make sure the system # timezone is correctly set. # @mytz=("EST", "EDT"); # cvsweb is friendly to caches by indicating a suitable # last-modified timestamp. Doing this uses slightly more # CPU so you might want to disable it if you have a slow # server $use_moddate = 1; # Allows downloading a tarball of the current directory if set. # Bear in mind that this allows downloading a tarball of your entire # repository, which can take a lot of time and disk space to create! # If you enable this, you may need to make sure that cvsweb can write to # CVSROOT/val-tags, due to a bug in cvs. $allow_tar = ''; # Options to pass to tar(1). @tar_options = qw(--ignore-failed-read); # e.g. @tar_options = qw(--ignore-failed-read); # GNU tar has some useful options against unexpected errors. # Options to pass to gzip(1) when compressing a tarball to download. @gzip_options = qw(); # e.g. @gzip_options = qw(-3); # Try lower compression level than 6 (default) if you want faster # compression, or higher, for better compression. # Options to pass to zip(1) when compressing a zip archive to download. @zip_options = qw(); # e.g. @zip_options = qw(-3); # Try lower compression level than 6 (default) if you want faster # compression, or higher, for better compression. # Options to pass to cvs(1). # For cvs versions prior to 1.11, the '-l' option doesn't work; If you want # working checkouts with an older cvs version, you'll have to make sure that # the cvsweb user can read and write to CVSROOT/history. @cvs_options = qw(-lf); push @cvs_options, '-R' if ($uname eq 'FreeBSD' || $uname eq 'OpenBSD'); push @cvs_options, '-u' if ($uname eq 'NetBSD'); # Only FreeBSD's and OpenBSD's cvs(1) supports -R (read only access # mode) option, which considerably speeds up checkouts over NFS. # A similar effect is provided by -u on NetBSD. # Options to pass to the 'cvs annotate' command, usually the normal # @cvs_options are good enough here. @annotate_options = @cvs_options; # To make annotate work against a read only repository, add -n, e.g.: # @annotate_options = (@cvs_options, '-n'); 1; #EOF diff --git a/en/cgi/getmsg.cgi b/en/cgi/getmsg.cgi index c364973355..0a6814e766 100755 --- a/en/cgi/getmsg.cgi +++ b/en/cgi/getmsg.cgi @@ -1,249 +1,249 @@ #!/usr/bin/perl -T # # Given a filename, start offset and end offset of a mail message, # read the message and format it nicely using HTML. # # by John Fieber # February 26, 1998 # -# $FreeBSD: www/en/cgi/getmsg.cgi,v 1.35 2003/03/11 15:22:52 wosch Exp $ +# $FreeBSD: www/en/cgi/getmsg.cgi,v 1.36 2003/11/18 21:41:10 wosch Exp $ # require "./cgi-lib.pl"; require "./cgi-style.pl"; use POSIX qw(strftime); # # Files MUST be fully qualified and MUST start with this path. # $messagepath = "/usr/local/www/db/text/"; $messagepathcurrent = "/usr/local/www/mid/archive/"; $ftparchive = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/mailing-lists/archive'; &ReadParse(*formdata); &Fetch($formdata{'fetch'}); exit 0; sub Fetch { my ($docid) = @_; my ($start, $end, $file, $type) = split(/ /, $docid); my ($message, @finfo); # # Check to ensure that (a) the specified file starts # with an approved pathname and (b) that it contains no # relative components (eg ..). This is so that arbitrary # files cannot be accessed. # $file =~ s/\.\.//g; $file =~ s|/+|/|; $file =~ s|^archive/|$messagepath/|; # read the full archive if ($type eq 'archive') { # from the FreeBSD ftp server if ($file =~ s%^$messagepath%%o) { print "Location: $ftparchive/$file.gz\n"; print "Content-type: text/plain\n\n"; exit(0); } # from the local mail archive for current mails elsif ($file =~ m%^current/(cvs|freebsd|p4)-[a-z0-9-]+$% && open(DATA, "$messagepathcurrent$file")) { print "Content-type: text/plain\n\n"; while() { print; } close(DATA); exit(0); } } if (($file =~ /^$messagepath/ && -f $file && open(DATA, $file)) || ($file =~ m%^current/(cvs|freebsd|p4)-[a-z0-9-]+$% && open(DATA, "$messagepathcurrent$file"))) { @finfo = stat DATA; seek DATA, $start, 0; if ($end > $start && $start >= 0) { read DATA, $message, $end - $start; } else { # Unknown length, guess the end of the E-Mail my($newline) = 0; while() { last if ($newline && /^From .* \d{4}/); if (/^$/) { $newline = 1 } else { $newline = 0; } $message .= $_; } } close(DATA); print "last-modified: " . POSIX::strftime("%a, %d %b %Y %T GMT", gmtime($finfo[9])) . "\n"; # print E-Mail as plain ascii text if ($type eq 'raw') { print "Content-type: text/plain\n\n"; print $message; return; } $message = &MessageToHTML($message, $file); } else { $message = "

The specified message cannot be accessed.

\n"; } print &short_html_header("FreeBSD Mail Archives"); print $message; print &html_footer; print "\n"; } sub EscapeHTML { my ($text) = @_; $text =~ s/&/&/g; $text =~ s//>/g; return $text; } sub MessageToHTML { my ($doc, $file) = @_; my ($header, $body) = split(/\n\n/, $doc, 2); my ($i, %hdr, $field, $data, $message); my ($mid) = 'mid.cgi'; - my ($mid_full_url) = 'http://docs.freebsd.org/cgi/mid.cgi'; + my ($mid_full_url) = 'http://docs.FreeBSD.org/cgi/mid.cgi'; my ($tmid,$tirt,$tref); $body = &AddAnchors(&EscapeHTML($body)); $header = &EscapeHTML($header); $header =~ s/\n[ \t]+/ /g; foreach $i (split(/\n/, $header)) { ($field, $data) = split(/ /, $i, 2); $field =~ y/A-Z/a-z/; $hdr{$field} = $data; } $message = "
\n";
     if (length($hdr{'date:'}) > 0) {
     	$message .= "Date:      $hdr{'date:'}\n";
     }
     if (length($hdr{'from:'}) > 0) {
     	$message .= "From:      $hdr{'from:'}\n";
     }
     if (length($hdr{'to:'}) > 0) {
     	$message .= "To:        $hdr{'to:'}\n";
     }
     if (length($hdr{'cc:'}) > 0) {
     	$message .= "Cc:        $hdr{'cc:'}\n";
     }
 #    if (length($hdr{'sender:'}) > 0) {
 #    	$message .= "Sender:    $hdr{'sender:'}\n";
 #    }
     if (length($hdr{'subject:'}) > 0) {
     	$message .= "Subject:   $hdr{'subject:'}\n";
     }
 
     if ($hdr{'message-id:'}) {
 	$tmid = $hdr{'message-id:'}; 
 	$hdr{'message-id:'} =~ 
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "Message-ID:  $hdr{'message-id:'}\n";
     }
 
     if ($hdr{'resent-message-id:'}) {
 	$hdr{'resent-message-id:'} =~ 
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "Resent-Message-ID: $hdr{'resent-message-id:'}\n";
     }
 
     if ($hdr{'in-reply-to:'}) {
 	$tirt = $hdr{'in-reply-to:'};
 	$hdr{'in-reply-to:'} =~
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "In-Reply-To: $hdr{'in-reply-to:'}\n";
     }
 
     if ($hdr{'references:'}) {
 	$tref = $hdr{'references:'};
 	$hdr{'references:'} =~
 	    s%;([^&\s]+)&%;$1&%goi;
 	$message .= "References:  $hdr{'references:'}\n";
     }
 
 
     $message .= "
\n"; $message .= "
\n"; if ($tmid =~ m%;([^&]+)&%) { $message .= qq{Next in thread\n}; } if ($tirt =~ m%;([^&]+)&% || $tref =~ m%;([^&]+)&%) { $message .= qq{| Previous in thread\n}; } $message .= qq{| Raw E-Mail\n}; my $file2 = $file; if ($file2 =~ s%^$messagepath%archive/%oi || $file2 =~ /^current/) { $message .= qq{| Index\n}; } $message .= qq{| Archive\n}; $message .= qq{| Help\n}; my $tid = $tmid; $tid =~ s/^<//; $tid =~ s/\@.*//; $message .= "
\n"; #$message .= qq{
\n}; $message .= "

\n$body\n
\n"; #$message .= qq{
\n}; $message .= qq{
\nWant to link to this message? Use this URL: <}; $message .= qq{$mid_full_url} . '?' . $tid . qq{>}; return $message; } sub strip_url { my $url = shift; # strip trailing characters $url =~ s/>?$//; $url =~ s/[.,;>\s]*$//; return $url; } sub AddAnchors { my ($text) = @_; my $cvsweb = 'http://cvsweb.FreeBSD.org/'; $text =~ s/(http|https|ftp|gopher|mailto|news|file)(:[\S]*?\/?)(\W?\s)/sprintf("%s<\/a>$3", &strip_url("$1$2"), &strip_url("$1$2"), $3)/egoi; if ($text =~ /Revision\s+Changes\s+Path/) { # match revsion and file name # 1.10 +2 -2 ports/audio/xmradio/Makefile # -> # cvsweb.cgi/ports/audio/xmradio/Makefile.diff?r1=1.9&r2=r.10 # $text =~ s#([\d.]+\.)(\d+)(\s+[+-]\d+\s+[+-]\d+\s+)([a-zA-Z\d_:.+/-]+)#sprintf("%s%s%s%s", $1, $2, $3, $4, $1, $2 - 1, $1, $2, $4)#ge; } return $text; } diff --git a/en/cgi/missing_handler.cgi b/en/cgi/missing_handler.cgi index 35b8151bf2..72e23178ea 100755 --- a/en/cgi/missing_handler.cgi +++ b/en/cgi/missing_handler.cgi @@ -1,131 +1,131 @@ #!/usr/bin/perl -T # Copyright (c) Juli 1997-2000. Wolfram Schneider , Berlin. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # missing_handler.cgi - User friendly error response (Apache style) # # # default apache message: # ---------------------------------------------------------------------- # File Not found # The requested URL /~wosch/test/bla was not found on this server. # ---------------------------------------------------------------------- # # # missing_handler.cgi message: # ---------------------------------------------------------------------- # FreeBSD.org - Document not found # # The file # # http://www.FreeBSD.org/~wosch/test/bla # # does not exist at this server. You are coming from # # http://www.FreeBSD.org/~wosch/test/error.html. # # The closest match to your request is http://www.FreeBSD.org. # Please contact the server administrator wosch@FreeBSD.org. # # Thank you very much! # # _________________________________________________________________ # -# $FreeBSD: www/en/cgi/missing_handler.cgi,v 1.13 2002/05/04 18:48:05 wosch Exp $ +# $FreeBSD: www/en/cgi/missing_handler.cgi,v 1.14 2003/05/18 17:45:20 ceri Exp $ # ---------------------------------------------------------------------- sub escape($) { $_ = $_[0]; s/&/&/g; s//>/g; $_; } sub escape2($) { $_ = $_[0]; s//>/g; $_; } # output title $title = $ENV{'MISSING_HANDLER_TITLE'} || 'FreeBSD.org - Document not found'; # footer message $footer = $ENV{'MISSING_HANDLER_FOOT'} || ''; # Server environment variables $http_referer=escape($ENV{'HTTP_REFERER'}); $redirect_url=escape($ENV{'REDIRECT_URL'}); $server_admin=escape($ENV{'SERVER_ADMIN'}); $http_host=escape($ENV{'HTTP_HOST'}); $server_name=escape($ENV{'SERVER_NAME'}); # rfc1738 says that ";"|"/"|"?"|":"|"@"|"&"|"=" may be reserved. $http_referer_url = escape2($ENV{'HTTP_REFERER'}); $http_referer_url =~ s/([^a-zA-Z0-9;\/?:&=])/sprintf("%%%02x",ord($1))/eg; $redirect_url_save = escape2($ENV{'REDIRECT_URL'}); $redirect_url_save =~ s/([^a-zA-Z0-9;\/?:&=])/sprintf("%%%02x",ord($1))/eg; -$hsty_base = 'http://www.freebsd.org'; +$hsty_base = 'http://www.FreeBSD.org'; require './cgi-style.pl'; print &html_header($title); # HTML body print qq[The file
http://$http_host$redirect_url
does not exist at this server.\n]; if ($http_referer) { print qq{You are coming from
$http_referer.

\n}; } print qq[ The closest match to your request is http://$server_name. Please contact the members of the FreeBSD Documentation Project <freebsd-doc\@FreeBSD.ORG> or the server administrator $server_admin.

Please try our -Site Map or -Search Page +Site Map or +Search Page

Thank you very much!

]; print&html_footer; exit; diff --git a/en/cgi/url.cgi b/en/cgi/url.cgi index 5526a6553d..e6946a6b6b 100755 --- a/en/cgi/url.cgi +++ b/en/cgi/url.cgi @@ -1,142 +1,142 @@ #!/usr/bin/perl -T # # Copyright (c) Oct 1997-1999 Wolfram Schneider . Berlin. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # url.cgi - make plain text URLs clickable # -# $FreeBSD: www/en/cgi/url.cgi,v 1.31 2002/05/02 14:21:40 wosch Exp $ +# $FreeBSD: www/en/cgi/url.cgi,v 1.32 2003/07/24 14:40:48 simon Exp $ use strict; $main::hsty_base = '..'; $main::hsty_email = 'ports@FreeBSD.org'; # shutup perl -w my $dummy = $main::hsty_base . $main::hsty_email; undef $dummy; require "./cgi-lib.pl"; require "./cgi-style.pl"; my $file = $ENV{'QUERY_STRING'}; my $uri = "$file"; my $portcategory; # security checks if ($file !~ m%^(http|ftp)://[a-z_\-0-9]+\.freebsd\.(com|org)%i && $file !~ m%^ports/%) { &CgiError(("Invalid url: $file", "Only http://*.freebsd.* is allowed.\n")); exit(0); } # backward compatible with old ports layout $file =~ s%/pkg/DESCR$%/pkg-descr%; # catch '..', multiple times # ports/japanese/ppxp/../../net/ppxp/pkg-descr # -> ports/net/ppxp/pkg-descr 1 while $file =~ s%/[^/]+/\.\./%/%; # print HTML header -$file =~ s%(http|ftp)://ftp.freebsd.org/pub/FreeBSD/(branches/|FreeBSD)-current/%%i; +$file =~ s%(http|ftp)://ftp.FreeBSD.org/pub/FreeBSD/(branches/|FreeBSD)-current/%%i; if ($file =~ m%^ports/([\w-]+)/(\w[\w-+.]+)/pkg-descr%) { print &html_header( "Port description for $1/$2"); $portcategory = $1; } else { print &short_html_header($file); } my $isvalidfilename = ($file =~ m%^ports/[\w-]+/\w[\w-+.]*/pkg-descr%); my $atticfile = $file; $atticfile =~ s%^(.*)/([^/]+)$%$1/Attic/$2%; my($cvsroot) = '/usr/local/www/cvsroot/FreeBSD'; my $realfile; # since CVS moves deleted files into the Attic subdirectory we also # want to look there, so we can find CVS deleted files (which might # still be referenced from other places). if ($isvalidfilename && -f "$cvsroot/$file,v") { $realfile = $file; } elsif ($isvalidfilename && -f "$cvsroot/$atticfile,v") { $realfile = $atticfile; } else { $isvalidfilename = 0; } # do cvs checkout if($isvalidfilename) { open(CO, "-|") || exec ('/usr/bin/co', '-p', '-q', "$cvsroot/$realfile,v") || die "exec co -pq $cvsroot/$realfile,v: $!\n"; } else { print "

The port specified does not exist, or has an invalid name:

", "

$file
\n"; # Server environment variables my $http_referer = $ENV{'HTTP_REFERER'}; # rfc1738 says that ";"|"/"|"?"|":"|"@"|"&"|"=" may be reserved. $http_referer =~ s/([^a-zA-Z0-9;\/?:&=])/sprintf("%%%02x",ord($1))/eg; if ($http_referer) { print qq{

You are coming from

$http_referer.

\n}; } - print "

Please contact www\@freebsd.org\n"; + print "

Please contact www\@FreeBSD.org\n"; warn "$0: invalid port name: `$file', $http_referer\n"; } print "\n


\n
\n";
 
 # read the pkg-descr file and make URLs clickable
 my($content);
 $content .= $_ while();
 $content =~ s/])%$1%gi;
 
 print $content;
 print "
\n"; # Add 'source' link for freebsd ports if ($file =~ m%^(ports/[\w-]+/\w[\w-+.]+)/pkg-descr%) { print qq{
Sources |\n}; print qq{}; print qq{Category $portcategory\n}; print qq{| Help\n}; print qq{
\n}; } # print standard footer line print &html_footer; # Sleep 0.35 seconds to avoid DoS attacks from broken robots select undef, undef, undef, 0.35; exit; diff --git a/en/docproj/current.sgml b/en/docproj/current.sgml index d01a45ecc0..160466ab5c 100644 --- a/en/docproj/current.sgml +++ b/en/docproj/current.sgml @@ -1,443 +1,443 @@ - + %includes; %developers; "> "> "> "> "> ]> &header;

Here are the projects currently under way (or being actively contemplated on the freebsd-doc mailing list). I have also included some that have not really been talked about, but would probably be a good idea. Each project lists the contact person for that project (if I know who it is).

If you think you can contribute to any of these, please do not hesitate to stand up and be counted. You should talk to the person responsible for that particular project, who can then bring you up to speed on what is happening. If you have any ideas for a new project then please email FreeBSD-doc@FreeBSD.org.

Open documentation problem reports

Current FreeBSD problems reports are tracked using the GNATS database. You can view the open documentation problem reports.

FreeBSD Handbook 3rd Edition

Responsible: Murray Stokely <murray@FreeBSD.org>

Synopsis: Work has begun to prepare the FreeBSD Handbook for publication. See the complete task list for information about how you can help.

FreeBSD Handbook 2nd Edition

Responsible: Murray Stokely <murray@FreeBSD.org>

Synopsis: This project is complete. The 2nd Edition FreeBSD Handbook is available now from The FreeBSD Mall. The final manuscript is 653 pages, and the ISBN number is 1571763031. Thanks to everyone who contributed. Read the full announcement here.

+ href="http://docs.FreeBSD.org/cgi/getmsg.cgi?fetch=0+0+archive/2001/freebsd-announce/20011028.freebsd-announce">here.

The task list that we used during the development of this book is still archived here for posterity.

FreeBSD for Linux users

Responsible: FreeBSD-doc <FreeBSD-doc@FreeBSD.org>

Synopsis: Linux users coming to FreeBSD can be confused by some of the differences between the systems (the different default shells, how boot time configuration is performed, and so on).

Write a section in the Handbook and/or FAQ

Responsible: No one

Synopsis: Chunks of the FAQ and Handbook have empty sections in them. They need filling. If you have just had to use one of these documents to complete a task, and found them lacking, please find the time to write up your experiences as a possible replacement.

Alternatively, if you have just had to do something that had no entry in the FAQ and/or Handbook, please consider writing a new section. Then submit it as outlined above.

Write some new Papers

The New SCSI layer for FreeBSD (CAM)

Responsible: <doc@FreeBSD.org>, <scsi@FreeBSD.org>

Synopsis: See The Design and Implementation of the FreeBSD SCSI Subsystem for a first snapshot.

Write some chapters for the Developers Handbook

Responsible: <doc@FreeBSD.org>

Synopsis:

  • The FreeBSD Developers Handbook is lacking in content, please help us finish this book.

CGI Scripts

Responsible: <doc@FreeBSD.org>, Wolfram Schneider <wosch@FreeBSD.org>

Synopsis: Modify the CGI scripts url.cgi, ports.cgi, pds.cgi and the script portindex to use the Perl FreeBSD::Ports modules. These modules also need thorough testing.

Multilingual Web scripts

Responsible: <doc@FreeBSD.org>

Synopsis:

Our main Web pages are written in (American) English. The FreeBSD Translations Projects translate the web pages, Handbook and FAQ to other languages.

We must translate the cgi scripts and web build scripts too. The scripts should support multiple languages, not only one. Most scripts are written in perl.

Translations of the FreeBSD Documentation

Responsible: <doc@FreeBSD.org>

Translate the FreeBSD documentation (Web pages, FAQ, Handbook, Manual pages) into other languages. See the FreeBSD translations projects

Search engine enhancements

Responsible:Eric Anderson <anderson@centtech.com>

When searching the website, the output from the search engine includes the filename that was found, which might be something like FAQ34.html.

It would be more useful if the results included the question text, allowing the user to see whether or not the result was relevant.

Documenting FreeBSD Tunables.

Responsible:Tom Rhodes <trhodes@FreeBSD.org>

Many FreeBSD tunables are undocumented. Everyone knows how difficult it can be to use an undocumented system, and thus this project was formed. The initial goal here is to create a tool which can generate a manual page with the tunables. Hence we need to generate this list from the source code.

Write section 9 manual pages

Responsible: Tom Rhodes <trhodes@FreeBSD.org> and Hiten Pandya <hmp@FreeBSD.org>

Synopsis: Document kernel interfaces and functions.

Write section 4 manual pages

Synopsis: Write section 4 manual pages.

All drivers in FreeBSD should have a section 4 manual page, but some do not yet.

Task Description Responsible Last Updated Status
New section 4 manual pages
bs(4) WD33C93 SCSI driver   7 November 2003 &status.new;
cm(4) SMC Arcnet network adapters &a.trhodes; 7 November 2003 &status.new;
ct(4) WD33C93-based SCSI driver &a.non; 21 November 2003 &status.wip;
ctx(4) CORTEX-I Frame Grabber driver   7 November 2003 &status.new;
digi(4) DigiBoard intelligent serial card driver   7 December 2003 &status.new;
emu10k1(4) Soundblaster Pro driver &a.trhodes;, &a.hmp; 7 November 2003 &status.done;
hfa(4) HARP ATM driver   7 November 2003 &status.new;
idt(4) NICStar ATM Adapter &a.trhodes;, &a.bms; 9 November 2003 &status.done;
ips(4) IBM/Adaptec ServerRAID controller &a.trhodes; 11 November 2003 &status.done;
mss(4) AD1848-compatible MSS/WSS driver   7 November 2003 &status.new;
ncv(4) NCR 53C500 SCSI driver (PC-98) &a.trhodes; 20 November 2003 &status.done;
nsp(4) Workbit Ninja SCSI driver (PC-98) &a.non; 24 November 2003 &status.done;
nss(4) NEC PC-98 sound support   7 November 2003 &status.new;
ofwcons(4) IEEE-1275 / Open Firmware   7 November 2003 &status.new;
rc(4) Riscom/8 audio driver   7 November 2003 &status.new;
sab(4) SAB82523 Dual UART driver &a.bms; 6 December 2003 &status.done;
snc(4) Nat. Semi. DP8393X NIC driver   7 November 2003 &status.new;
spigot(4) SPIGOT Video Capture driver   7 November 2003 &status.new;
uaudio(4) USB Audio driver &a.hmp; 10 November 2003 &status.done;
wdc(4)   &a.rushani; 8 November 2003 &status.done;
xrpu(4) Xilinx FPGA/RPU driver   7 November 2003 &status.new;
zs(4) Zilog UART driver   7 November 2003 &status.new;


Legend
&status.new; Not yet started
&status.blocked; Blocked awaiting completion of another task
&status.wip; Work in progress
&status.done; Task completed
&status.n-a; Not planned

FreeBSD Documentation Project Home &footer; diff --git a/en/docproj/handbook.sgml b/en/docproj/handbook.sgml index ad7114b3b7..6f634bd1b3 100644 --- a/en/docproj/handbook.sgml +++ b/en/docproj/handbook.sgml @@ -1,386 +1,386 @@ - + %includes; Done"> In Progress"> Not Started"> ]> &header;

FreeBSD Handbook 2nd Edition

This project is complete. The 2nd Edition FreeBSD Handbook is available now from The FreeBSD Mall. The final manuscript is 653 pages, and the ISBN number is 1571763031. Thanks to everyone who contributed. Read the full announcement here.

+ href="http://docs.FreeBSD.org/cgi/getmsg.cgi?fetch=0+0+archive/2001/freebsd-announce/20011028.freebsd-announce">here.

If you've found a typo in the printed version, please send your fix via send-pr(1) or send it straight to the -doc mailing list. Thanks!

TaskResponsibleLast updatedStatus
Create proposal for Wind River management Murray May 17, 2001 &done;
Add a section on headless installs Val May 11, 2001 &done;
Add a section on installing and using XDM Seth May 23, 2001 &done;
Add section 4.3 on "Using the Packages System". Chern June 15, 2001 &done;
Fix index generation infrastructure in doc.docbook.mk Nik June 19, 2001 &done;
Add a section on installing and using XFree86 4.x Chris Shumway July 11, 2001 &done;
Add a section on installing and using KDE, Gnome, etc. Val June, 2001 &done;
Add a section about amd Wylie, Val May 11, 2001 &done;
Add a chapter about configuration and tuning of FreeBSD Chern, Murray July 10, 2001 &done;
Replace ASCII art with proper figures (17.2.2, 17.6.3, etc..) Chern July 11, 2001 &done;
Add index entries to Chapters 1-2 Murray June 24, 2001 &done;
Add index entries to Chapters 3-4 Val July 11, 2001 &done;
Add index entries to Chapters 5-6 Val July 11, 2001 &done;
Add index entries to Chapters 7-8 Val June 19, 2001 &done;
Add index entries to Chapters 9-10 Murray June 24, 2001 &done;
Add index entries to Chapters 11-12 Murray June 30, 2001 &done;
Add index entries to Chapter 13 Val July 11, 2001 &done;
Add index entries to Chapter 14-15 Murray June 30, 2001 &done;
Add index entries to Chapters 21-22 Val July 20, 2001 &done;
Fix cross-referencing tags to look better in the print output. Murray July 20, 2001 &done;
Add a tuneable knob to remove PGP keys in print output Murray July 11, 2001 &done;
Clear up copyright issues Nik, Murray, Foundation August 18, 2001 &done;
Enclose author attributions in proper tag Murray, Chern August 18, 2001 &done;
Standardize spelling of technical terms Murray, Chern July 20, 2001 &done;
Make sure all filenames, commands, applications, hostnames, etc are marked up properly Murray, Chern July 20, 2001 &inprogress;
Write collateattributions.pl script to generate a appendix full of contributing authors. Chern August 8, 2001 &done;
Fix index entries that show up as ??? Chern August 6, 2001 &done;
Rewrite most of the X11 chapter and get rid of all of Greg Lehey's original content. Murray, Nik, Chris Shumway, Others July 20, 2001 &done;
Update PPP/SLIP chapter Brian Somers August 18, 2001 &done;
Update Serial chapter Murray August 18, 2001 &done;
Get rid of Appendix F Murray July 13 &done;
Move out-of-scope chapters into Developer's Handbook Murray July 19 &done;
Enhance chapter header print output in stylesheets. Murray July 19 &done;
Setup a WRS Perforce server for the last phase of editing Murray August 11, 2001 &done;
Add simple illustrations at the beginning of each Part. Michelle / WRS Art August 18, 2001 &done;
Add admonition graphics for Note, Caution, Warning, Tip. Michelle / WRS Art August 23, 2001 &inprogress;
Design the cover. Michelle / WRS Art August 23, 2001 &done;
Rewrite Install chapter with sysinstall screenshots, etc from Randy Pratt's install guide. Randy Pratt, Murray, Nik August 18, 2001 &done;
Update and add more content to Introduction chapter. rope jkh into it July 20, 2001 ¬started;
Rewrite "synopsis" sections to 'standard' (see the sound chapter for a sample). Murray, Nik, Chern, Val August 18, 2001 &done;
Add more content to backups chapter July 20, 2001 &done;
Mark up bibliography properly Val August 7, 2001 &done;
Integrate new bibliography framework August 7, 2001 ¬started;
Write colophon Murray August 23, 2001 &done;
Make front matter look better Murray August 2, 2001 &done;
Review the book for grammatical errors. Jim, Chern, John Murphy, Everyone! August 5, 2001 &inprogress;
Finish DocBook Speller's dictionary and setup nightly cronjob to spell check the Handbook's new additions. Chern August 6, 2001 &inprogress;
Add a section on inetd in Advanced Networking. Chern August 8, 2001 &done;
Make sure all section titles are capitalized properly Chern August 13, 2001 &done;
Remove gratuitous Q/A sections in favor of more formal text. August 7, 2001 ¬started;
Write Preface. Murray August 23, 2001 &done;
Write Foreword. Jordan August 23, 2001 &inprogress;
Decide what to do with "Contributing to FreeBSD" chapter. Murray, Nik August 23, 2001 &done;
Update bibliography with newer editions, etc. August 23, 2001 ¬started;
Add more indexterms throughout the book. Reorganize some existing indexterms. August 23, 2001 ¬started;
Add information about network configuration to the install chapter. Probably Nik ¬started;
Send everything to the printer. Murray October 10, 2001 &done;
diff --git a/en/docproj/translations.sgml b/en/docproj/translations.sgml index 199efe55fe..d4a620dda8 100644 --- a/en/docproj/translations.sgml +++ b/en/docproj/translations.sgml @@ -1,292 +1,292 @@ - + %includes; ]> &header;

The FreeBSD Brazilian Portuguese Documentation Project

Web: http://doc.fugspbr.org/
E-Mail: lioux@FreeBSD.org
Mailing lists available
Access the following URL http://lists.fugspbr.org/listinfo.cgi/doc-fugspbr.org/ for instructions on how to subscribe to the Brazilian Portuguese translation group's mailing list.
Or, send an email to doc-request@fugspbr.org with the word "subscribe" in the subject of the message.
Posting is allowed for the members at doc@fugspbr.org
Documents available
FAQ
Contributing to FreeBSD
Documents currently being worked on
FreeBSD Documentation Project Primer for New Contributors
FreeBSD Handbook

The FreeBSD Bulgarian Documentation Project

Web: http://fdp-bg.sourceforge.net/
E-Mail: doc-proj@FreeBSD-bg.org
Mailing list available
Access the following URL http://www.FreeBSD-bg.org/showtopic?art=maillist for instructions on how to subscribe to the Bulgarian translation group's mailing list.
Or, send an email to majordomo@FreeBSD-bg.org with the text "subscribe doc-proj" in the body of the message.
Posting is allowed for the members at doc-proj@FreeBSD-bg.org
Documents available
FreeBSD Documentation Project Primer for New Contributors
Documents currently being worked on
FreeBSD Handbook
FreeBSD website

The FreeBSD Traditional Chinese Documentation Project

Web: -
E-Mail: foxfair@FreeBSD.org
Mailing list available
Send a mail to majordomo@freebsd.sinica.edu.tw with the words "subscribe freebsd-chinese-doc" in the body of the message.
Posting is allowed for the members at freebsd-chinese-doc@freebsd.sinica.edu.tw
Documents available
FAQ
Documents currently being worked on
Handbook

The FreeBSD Simplified Chinese Documentation Project

Web: www.FreeBSD.org.cn
-Mailing list: http://lists.freebsd.org.cn/mailman/listinfo
+Mailing list: http://lists.FreeBSD.org.cn/mailman/listinfo
E-Mail: ld@FreeBSD.org.cn

The FreeBSD Dutch Documentation Project

E-Mail: asmodai@FreeBSD.org
Documents currently being worked on
Handbook

The FreeBSD Estonian Documentation Project

Web: http://www.bsd.ee/tolge.php
Documents available
FreeBSD handbook

The FreeBSD French Documentation Project

Web: http://www.freebsd-fr.org
Mailing lists available
Send a mail to listserver@freebsd-fr.org with the words "SUB freebsd-questions" in the body of the message for subscribing to the questions mailing list in French.
Send a mail to listserver@freebsd-fr.org with the words "SUB annonces" in the body of the message for subscribing to the announce mailing list in French.
Documents available
FAQ
Some articles and tutorials
Really Quick Newsletters
PicoBSD
Documents currently being worked on
Handbook, Web
CVS repository
CVS web
Send a mail to listserver@freebsd-fr.org with the words "SUB cvs" in the body of the message for subscribing to the French CVS update mailing list in French.

The FreeBSD German Documentation Project

Web: http://www.de.FreeBSD.org/de/uebersetzung.html
E-Mail: de-bsd-translators@de.FreeBSD.org
Documents currently being worked on
Handbook, FAQ, Web

The FreeBSD Italian Documentation Project

Web: http://www.gufi.org/
E-Mail: info@gufi.org
Documents currently being worked on
Handbook

The FreeBSD Japanese Documentation Project

Web: http://www.jp.FreeBSD.org/doc-jp/
E-Mail: doc-jp@jp.FreeBSD.org
Documents available
Handbook, FAQ, Web, FreeBSD NewsLetter Issue #2
Documents currently being worked on
FreeBSD Tutorials

The FreeBSD Korean Documentation Project

Web: http://www.kr.FreeBSD.org/projects/doc-kr/
E-Mail: doc@kr.FreeBSD.org
Documents currently being worked on
Handbook

The FreeBSD Polish Documentation Project

Web: http://tlumaczenie.freebsd.pl
E-Mail: ni@merkury.pol.lublin.pl
Documents available
Some tutorials
Documents currently being worked on
FreeBSD tutorials
Handbook
FDP-Primer

The FreeBSD Romanian Documentation Project

Web: http://www.rofug.ro/projects/ro-l10n/
E-Mail: ady@rofug.ro
Mailing lists available
To subscribe to the ro-l10n mailing list see the project's webpage or send an e-mail to listar@rofug.ro with "subscribe ro-l10n" in the body of the message.
Postings are allowed only for the ro-l10n list members.
Documents currently being worked on
Handbook

The FreeBSD Russian Documentation Project

Web: http://www.FreeBSD.org.ua
E-Mail: frdp@FreeBSD.org.ua
Documents available
FAQ
WWW
Other documents list
Documents currently being worked on
Handbook

The FreeBSD Spanish Documentation Project

Web: http://www.es.FreeBSD.org/es/
E-Mail: jesusr@es.FreeBSD.org
Documents available
FAQ
Documents currently being worked on
Handbook

FreeBSD Documentation Project Home &footer; diff --git a/en/events/2002/usenix-devsummit.sgml b/en/events/2002/usenix-devsummit.sgml index caa61f6e3c..69be2b2246 100644 --- a/en/events/2002/usenix-devsummit.sgml +++ b/en/events/2002/usenix-devsummit.sgml @@ -1,1141 +1,1141 @@ - +
BREAK

'> %includes; %developers; ]> &header;

The third FreeBSD Developer Summit was held on June 11-12, 2002, at the Monterey Marriott in Monterey, CA, immediately prior to the USENIX Annual Technical Conference at the same location. The FreeBSD Developer Summit was sponsored by DARPA, the FreeBSD Foundation, FreeBSD Mall, Network Associates Laboratories, and AT&T. Notes were taken by George Neville-Neil, Bruce Mah, and Robert Watson. Markup by Murray Stokely.

These notes cover day 2, which began at 9:30am, and ended at 5:00pm.

Agenda

NOTE: As usual I missed some names, please add those I missed.

Attending:

Committers in person:

  • Robert Watson (rwatson)
  • Julian Elischer (julian)
  • John Baldwin (jhb)
  • Matt Dillon (dillon)
  • David O'Brien (obrien)
  • Jeffrey Hsu (hsu)
  • Jennifer Yang (jennifer)
  • Bosko Milekic (bmilekic)
  • Alfred Perlstein (alfred)
  • Doug Rabson (dfr)
  • Paul Saab (ps)
  • Brooks Davis (brooks)
  • Murray Stokely (murray)
  • Jonathan Mini (mini)
  • Takanori Watanabe (takawata)
  • Gordon Tetlow (gordon)
  • Gregory Shapiro (gshapiro)
  • Sam Leffler (sam)
  • Bruce Mah (bmah)
  • David Malone (dwmalone)
  • Ian Dowse (iedowse)

Also in person:

  • George Neville-Neil (gnn)

On The Phone:

  • Alan Cox (alc)
  • Warner Losh (warner)

Via webcast:

Many people listened into the webcast and discussed the topics on IRC.

The meeting followed a format where each section was led by an individual and then a discussion ensued. Not all of the discussion was caught but we have tried to make those sections understandable.


09:30 Opening Remarks


KSE - Julian Elischer

KSE has not changed much since the last summit (Feb). The major change is that upcalls works more like signals instead of like fork(). That is to say that you give the system a function pointer to call instead of having the "return twice" semantics so that it supports all architectures.

The names in the system are deliberately different from other threading packages. This was to reduce confusion during development.

The process structure has been broken into 4 parts. This is in -CURRENT at the moment. It's still "really" one structure but is being accessed as 4 different ones.

Looking for more people to run the code.

Right now we're rewriting to clean up how the functions work.

Other architectures can be stubbed out as well.

Right now there is no support for Sparc or IA64 but he would like to commit now. Not committing now means that it has to come out of perforce and people have to patch it.

Discussion

rwatson : What about userland?

julian : It can run different threads in userland. The primitives are all there it just needs a bit more help. I would like to put an idea out. Is it a good idea to be able to have non-threaded programs linking with threaded libraries?

rwatson : Putting async I/O into such a thing would make sense.

julian : The library would not care who was accessing it.

rwatson : For instance libc could be threaded or not.

julian : That would be interesting. I don't know if the two interfaces are incompatible.

jhb : X does this.

dillon : It is very doable but you have to make it non-preemptive. If you're switching non-preemptively you can use library routines which are non threaded.

julian : If I do what I'm thinking of doing then each lib will have its own KSE group.

dillon : stdio does not have to be thread aware if you don't schedule preemptively. It all matters where it blocks.

julian : Since you're a non-threaded program you don't know that.

rwatson : If you're going to support that, libc has to support threads.

rwatson : It sounds like some complexity goes away. Can we use 1 libc with has threading?

julian : Do we want to go down this path?

rwatson : Now or later?

julian : What do I design now to do this?

jhb : For example libc_r does not work with rfork.

julian : The answer is that yes we should move forward. Tricky issues, signals...

warner : Have people talked about pthread programs and cancellation points?

julian : The pthreads library does not assume that you're only going to change threads at yield() points. We are going to have cancellation points. There is an unimplemented call which will be able to send a thread targeted signal even into the kernel.

julian : When a thread is scheduled onto a KSE there is a mailbox that the userland thread scheduler updates.

julian : Is there anyone else who has some time or test it? How many people should test this before I check it in? There is a patch that's continuously updated on my web site to be able to patch it to -CURRENT. There is a CVSUP target from cvsup 10 which will bring down the sources. If you go to my web page on freefal there is a pointer there to a web page that explains how to CVSUP from source.

rwatson : What about SMP locking for this?

julian : Handled by the proc locking. Has not been tried on SMP machines yet.

obrien : What about on Sparc?

julian : You may need to stub things out.

jhb : Is the paper on the web site?

julian : The updated copy has disappeared.

unknown : What's the different between NetBSD and FreeBSD on this?

julian : Logically not a tremendous difference but Net follows the paper closely and Free takes the idea and makes it into a production system. There were some tough battles on -arch about this. The tricky point is that the proc structure has to be broken into 4 instead of 2. If you want to be able to do POSIX you need to be able to treated as different processes but in other systems you need to group the threads. You wind up with two classes of threads. You need another structure to do the aggregation. In the end we ended up breaking up the proc structure into 4 pieces to not overwhelm the CPU when scheduling threads. This is the major difference.

julian : I greatly admire the NetBSD way which is to take an idea and not dilute it.

julian : Net is also putting a Solaris compatible threads package on top of their scheduler activations in the Solaris ABI.


SMPng - John Baldwin

jhb : Yesterday we talked about SMP related things so I'll give a summary and then give a list of things for 5.0.

jhb : The big thing for 5.0 is to get the network stack out from under Giant.

jhb : Jeffrey Hsu and Jennifer Yang were here to talk about this. They have the PCBs checked in now.

jennifer : Interface Queues and SynCache might be done.

The remaining chunks of the network code are:

  • Routing Table Locking
  • Socket Buffers
  • ifa structures
  • struct ifnet
  • locking ipfw and dummynet
  • other (non IPv4) protocols
  • Netgraph

jhb : Aside from network the newbus locking needs to be done (Warner Losh) and also CAM stuff. No known status on CAM. Perhaps CAM is not needed for 5.0

jhb : Disk drive interrupts? Would help performance. Going to talk to Poul Henning-Kamp

jhb : Alan Cox is working on the VM system. Working based on the old Mach stuff. Objective for 5.0 is to get zero fill and execute on write to work without Giant. In future he wants to look at locking down pmap() functions.

jhb : Still some stability issues. UMA breaks some assumptions. For instance sockets assume that once memory is a socket its a socket forever, this is no longer true.

jhb : Talked to Mike Smith about 5.0 and have decided to stop adding features so that we can start clean up 5.0 and make it a real release. This might require hacks.

rwatson : For example in the UMA case there could be a flag to just say "don't reclaim this zone" -- this would help with issues such as the socket code assuming memory is type stable.

Over to Alan Cox on the VM system.

alc : Nothing to say.

bmilekic : As much as I might get hated for this. Will preemption stuff go in by 5.0?

jhb :No, that's a 6.0 thing. There are things to do first.

unknown : Could this come in in the life time of 5.? 5.1?

rwatson : This is a release issue really.

jhb : Yes, the kernel is pre-emptive.

rwatson : Perhaps we should talk about is performance goals? What are the comparisons to make? Perhaps head of 4 with head of 5. We'll see a mix.

jhb : I need to run benchmarks.

rwatson : In terms of SMP features when will VM be ready to be measured? I can't put a date on it.

alc : I think I told John was in time for release. I'm already doing performance testing so we've already started.

rwatson : We'll pick a date to start doing measurements. Perhaps 2 or 3 weeks from now.

alc : My guess is the the locking pmap is going to take some time to shake out. On the other hand the next major module we should be working on is machine dependent level. Last we should try approaching the vmobject level. I'll start worrying about performance in the near term.

rwatson : Will threading improve latency or throughput for networking?

bmilekic : I would like if we could actually start before.

rwatson : Do you have a timeline for the interrupt threading stuff?

bmilekic : I finished some things last night but there are still issues. In a couple of weeks it should be ready for first commit.

rwatson : Informally beginning to measure performance now. What are the right sets of tests? Need to discuss on -arch.

alc : It would be nice to have that committed to the tools directory.

jhb : The statistics analysis package are we using.

bmilekic : I have some good success with netpipe for overall measurement.

rwatson : Need to be using consistent compilers because of the compiler change. Also all our debugging stuff will slow down the benchmarking.

Benchmark Ideas

  • chroot of 4.6 area for testing
  • buildworld
  • build X11R4 w/gcc 2.95
  • netpipe on loopback
  • end to end testing on on gigE cards (throughput,connections/sec)
  • thread stuff like mySQL
  • Kirk's FS benchmarks
  • NFS Tests (nfsstone)
  • Sleepycat DB tests?

Tests to be run on:

  • 4.6-RELEASE
  • 5.0-DP1
  • 5.0-DP2
  • 5-CURRENT
  • 4-STABLE

Targets:

  • alpha, i386
  • UP, 2/4-way SMP, SMP with one processor
  • low/high memory
  • slow/fast CPU

dillon : Debug stuff on 5.0. I think it might be reasonable then to take the space hit and always have the debugging in but turn it on and off with sysctl.

rwatson : We should commit an optimized kernel configuration and benchmarking guidelines to the tree as well.

&break;

rwatson : I think we should continue the performance discussion. We want to accomplish a couple of things. One is stability measurement. What are the things we need to be measuring? What is our definition of useful?

hsu : End to end measurement with gigabit cards. For latency test connections per second. Can use ttcp or netbench in ports.

gnn : need to make sure we run against all of 4.6

julian : Need to really have 3 tests. 4.6 (forever) 4.x (following updates) and -CURRENT.

rwatson : There are other dimensions. Degree of parallelism for instance. We might see degradation in uni but get good stuff in multi case.

julian : Test for impact of KSE complications as well.

alfred : I think as the results come through people should not be too worried about it. Perhaps we should benchmark database type stuff as well. Need to do something comprehensive.

obrien : What does the test matrix look like? Different architectures and different numbers of processors.

rwatson : Can we make a multi-processor run uni-processor.

alfred : Run queue and scheduler stuff?

julian : Will talk to Alfred.

rwatson : Is scalability testing important?

obrienM : NFS testing.

rwatson : What about UI testing?

hsu : x11perf is the way to do that.

dillon : Currently we have a directory for regression tests, should we do one for performance tests?

gnn : talk to sleepycat for DB tests, see if they have some

alfred : Really nice to tests DB applications that are heavily thread dependent.

hsu :Apache 2 has threads.

rwatson : What about commercial folks? What do you do.

ps : Normally what we end up doing is using the snapshot on some machines and see if the bugs are out. There is no performance testing really.

rwatson : Again, what about performance?

ps : We've really never had one. It's more just bugs. We've just never found the performance to be a problem.

rwatson : We need to create a forum for talking about performance. We need reproducible test cases.

ps : There's also other things. We've been doing lots of looking at this. FreeBSD gets kicked down by attacks for instance. We have a lot of tools to get to the project though.

rwatson : I will set up the mailing list.


New Hardware Architectures

Alpha

jhb : Questions about alpha?

rwatson : KSE on alpha?

julian : We have patches so it compiles and runs non-KSE programs. You can have the patched version of the alpha kernel up and running though.

rwatson : Is the task owned of making this work on Alpha?

IA64

dfr : It works as far as I get to use it. It's not used in production right now.

ps : Intel shipped me a quad processor IA64 board. (McKinley is the name of the board).

rwatson : What does it need for 5.0?

dfr : It works, it works for SMP. Self hosts, build worlds. sysinstall compiles but needs more kicking to work.

ps : Intel wants us to ship a CD.

dfr : There is no thread support right now (threading library needs to move to get/setcontext rather than longjmp).

dfr : Need to move every driver to use BUS DMA for large memory machines to get bounce buffers.

jhb : PHK is working on using a new libwhisk so that sysinstall et al work on all systems.

Sparc64

jake : Take control of KSE stuff on Sparc 64.

rwatson : Do we have a Sparc 64 in the cluster?

jake : It's not in the cluster yet. It's a serial cluster issue.

rwatson : Package building on S64?

jake : Perhaps a bunch of Ultra 60s for a package build.

obrien : 1500 build right now?

jake : Yes, but a lot of the same bug in packages are broken.

jhb : Timeline for X?

jake : Not really.

rwatson : In terms of 5.0 how comfortable are you?

jake : sysinstall is the only problem.

PowerPC

benno : I got it up to execing a fake init in the simulator and printing "hello world". Trying to work with real hardware. I now have some semblance of busdma and am working on other stuff. GEM on iMac is in an embryonic state. Should get to NFS mount in a few weeks.

rwatson : How do you feel about your timeline?

benno : I'm not sure we'll have something fully workable for 5.0.

rwatson : You're not at the point yet on working on KSE are you?

benno : No, need a useful system first.

AMD64

rwatson : I know that we're having simulator problems.

obrien : The issues are about legal and NDA. AMD decided on FreeBSD Mall as the NDA person. I have not had a working simulator since September.

ps : I can make that happen, as well as real hardware.

obrien :I've got a cross tool chain in the tree. I have some untested pmap stuff. Hardware has been available for a month or so. We could boot FreeBSD 4.6 today if only we had hardware.

rwatson : What do you think about 5.0? Should we discuss that at another date?

MIPs

unknown :Juniper offered.

obrien : But we have no hardware.

unknown :Juniper thinks it's OK but doesn't want to have it rot in the tree.

brooks : I have a line on a company that does compact PCI with R6Ks.

rwatson : We're waiting for someone to turn up.


LUNCH

Trusted BSD

rwatson : Malc framework is what is of interest today.

See Slides from Robert

julian : Are the labels the same on all structures?

rwatson : You can modify this but there are issues with memory: is the space needed for a label too large to add to an mbuf header, for example? The label is small, but there area lot of them?

bmilekic : When you're freeing the mbuf do you write the label data?

rwatson : We blank it when we free it.

bmilekic : I do not think the 36 bytes in the mbuf header is a problem.

julian : I'm more interested in the "why" than the how.

rwatson : A lot of people are interested in this. Some of the things that do interest a lot of people are things like doing on the fly security for a web server.

julian : Is there a black hatted TLA interested?

rwatson : Yes and several gov'ts. As well as plenty of financial folks.

rwatson : There's a lot of userland stuff that's not done yet.


Release Engineering

murray : Shows a slide of releases. 4.6 is ready to go but having issues with ISO images. DP1, a lot of goals were met. 1000 packages were building on -CURRENT to get DP1 out. Polished 4.2. We need to start making decisions on 5.0. November is still the date we're shooting for. We're going to do a 4.7 and a 4.8. DP3?

***GET SLIDE FROM MURRAY***

murray : Release engineering area of -the web site www.freebsd.org/releng. For DP2 question about p4 or +the web site www.FreeBSD.org/releng. For DP2 question about p4 or CVS? Will probably use p4 for DP2 as well. USB subsystem? Perl removal? KSE?

julian : KSE should be able to run simple tests.

obrien : Is whatever you have committed by DP2 be the same as the release.

julian : It will be a subset.

murray : What will the status be of KSE in userland for 5.0?

julian : Can't answer that right now. We're not removing the old libraries. The userland work will happen between DP2 and release. The next step is MP as well as UP.

obrien : Are we heading for a release?

murray : yes.

obrien : Then we have to stop having major commits.

murray : Yes, the discussion today is what are the major must have features.

rwatson : We need to decide if there are major upcoming problems and reduce risk on things like KSE.

julian : That's why I want to get milestone 3 in now.

rwatson : Do you think that KSE related changes from later milestones are going to be isolated to KSE or pervasive?

julian : Hard to say. My guess is that milestone 4 stuff should be less pervasive.

rwatson : What happens if KSE just doesn't work?

julian : Well it does work, the patches work, it's a question of risk. We need to check on new things, like locking two threads in the same process.

dillon : KSEs only become fragile when pthread uses them. That's the turning point.

obrien : I'd like the rules for the rest of the summer, I hope we'll talk about that.

murray : Earlier is better.

mini : I think the cutoff point for KSE might be milestone 3.

rwatson : It's the kind of thing where if we need to back out we can.

julian : If you're not going to run KSEs then you're OK.

rwatson : I think it's low risk. Let's avoid the risk is the message.

julian : The next DP2 (where we'd like milestone 4).

alfred : We really need KSE so all this concern about stuff that no one really uses is not a big deal. People just need to play catch up. We have performance problems and we need to solve those.

obrien : We quickly need to figure out our policy on multiple archs.

rwatson : I briefly want to respond to Alfred. We have asserted that KSE will be experimental. It will be in and 5.0 will go out but there might be issues.

jhb : Realistically for the network stack is that IPv4 sockets will not be giant. But this is only in the network stack world. Several people are working on it.

rwatson : The GEOM stuff will be enabled by default in 5.0. Sparc depends on it. I do not know what the impediments are to that though.

julian : The kernel stuff is there but the user space is not. It can't become the default until everything is there.

warner : What level of control are you going to exercise over the tree in the coming months?

murray : You're going to see more level of control but we expect the requests to be reasonable. It's a very open process.

jhb : How are we going to address the 5/6 split?

murray : Carefully is all I can say.

rwatson : For 5. 0 we need to have a more informed decision. The release engineers will be trying to reduce the number of large code changes more as time goes by. We don't have to wait for 5.x to be perfectly stable before we branch.

murray : Let's move it to more general discussion of DP2? Specific technologies.

bmilekic : Is there a strategy to lock other protocols that are not locked down onw?

obrien : How much more do we need to do before 5.0?

jhb : Bug fixing is what we're doing.

rwatson : The answer on the network stack. We need to choose a strategy on how to handle the other protocols.

obrien : The crux is that socket locking must be in 5.0.

rwatson : There are 2 or 3 problems. Routing code is a problem. See earlier discussions.

dfr : RCng is essentially done. What it needs is testers.

alfred : What about libh (I think libh is wrong but this is what I heard)?

jhb : It's very far along but not a 5.0 thing.

warner : Problems with interrupt routing in ACPI?

takawata : Cannot handle PCI<->PCI interrupt routing. Many 802.11x have this problem.

julian : Is it a problem from Intel?

takawata : This is not an Intel problem but a problem on our side. PCI<->PCI routing code should be added. New code is necessary.

 Whiteboard
 
 UFS2		rcNG		KSE M3			CAM SMPng
 
 GEOM		TrustedBSD Malc	BusDMA			Newbus SMPng
 
 C++		Cardbus		libwhisk/sysinstall	KOBJ? (no!)
 				sparc64
 
 Perl Removal	ACPI		Alpha SMP Stability	Pkgs for
 							sparc64, IA64
 
 devd		PCI intr route	document hints		release docs
 							for new
 							platform
 

unknown : Firewire?

rwatson : What hardware shipping on IA64?

dfr : Intel stuff

rwatson : What about on Sparc64?

obrien : Very limited (hme...)

rwatson : KOBJ extensions discussed at BSDCon?

warner : Not sure, probably not for 5.0. Pervasive, so no.

rwatson : How broken is C++?

obrien : Only on sparc64. Don't really know yet, but it's probably a library issue. The compiler is a pre-release snapshot. The diffs are now getting large from May 5 to now. We should attempt to be as far along this gcc branch as possible come release.

&break;

rc.d

gordon : Talking about rc.d stuff. Import from NetBSD. Right now we have patches out there that are translated from the current boot order. It's in perforce. After the conference it will go into the mainline. Single toggle for booting.

rwatson : How in sync are the bits in the new stuff with the old stuff.

gordon : Last patch is from June 3rd, but it's tracking closely.

rwatson : What is the schedule for committing to the main tree.

gordon : We have large patches so we're going to re-import from NetBSD.

rwatson : How about you have it done by July 1?

gordon : We could probably do that. Definitely want to be in DP2.

gshapiro : How long will we keep the old stuff for?

gordon : We'll keep them both in for a while. Not more than 1.5 months though.

julian : Have you had a look at all at the Mac OS/X startup code?

gordon : No.

julian : Do you deal with dependencies?

gordon : There is meta data in each script that says what needs what. There is a program that orders everything correctly.

unknown : How does this effect the rc script for ports install?

gordon : We could make this available to ports but won't on the first version.

alfred : Can I recommend that you recommend this to ports?

gordon : Yes, the problem is that we have so many ports.

rwatson : The reason for this is for rebundlers of FreeBSD in their environments. We don't have to have it for DP2 but it should be an ultimate goal. We might need to have a policy statement on this. That at date X all ports must use the new system.


Other Issues

sam : I've been working on hardware crypto. I'm looking for consensus on getting hardware crypto in the kernel. This will not happen in 5.0.

Syscall vector change for 64bits

dillon : Two ways to go. Need to create a new syscall vector. The other is to do a 1 off replacement. Prefer the former.

rwatson : Perhaps we need to create a FreeBSD 5 syscall vector. Could be a new ABI.

julian : Aren't there enough other numbers?

rwatson : That's one way to look at it and other platforms have done that? Is that too heavy weight?

julian : It sounds that way to me. You end up having to replicate the old ones into the new one.

dillon : The issue is about pollution.

dfr : Seems like too much work for 5.x

julian : It's more work. There are now two places. Why not talk to OpenBSD?

rwatson : Should there be a BSD alfredI? Tough to do across projects.

obrien : Who here is going to see that through? We have not talked to NetBSD about even SMP.

alfred : Does changing the syscall table allow us to do clean up?

rwatson : We could do that without doing 64bit syscall table.

5.x ABI stability

rwatson : There are new functions in 5.x. At what point do we stop changing?

dfr : When people start really using it.

rwatson : How do we tell? How did Solaris do it?

Everyone : No one knows.

dfr : It's too hard to add a syscall vector. Library issues are a problem.

obrien : We can use ELF to handle that.

dfr : Let's just add 20 new syscalls instead of adding new work that we don't really really need.

rwatson : Punt on lack of time to do this.

dillon : I see obrien's point with the libraries but I have done this with time_t at 64 bits.

devd

rwatson : The devd stuff was to integrate cardbus, newbus, etc.

julian : To monitor requests to mount or create new devices.

rwatson : Is this a 5.0 requirement? Is there anyone to do this?

gordon (from IRC) : PHK has patches that make having devd unnecessary.

brooks : Need something that does what pccardd did.

julian : Need to be able to do this through a file.

warner : (from IRC): That's a 6.0 feature.

julian : It would not be a large step to put something in the middle to handle this.

julian : Sometime in the 5 lifetime we need this.

warner : There is no way to monitor events in newbus but it would be easy to add.

julian : I'm not sure I understood you correctly.

warner : What happens now in a PCI is that it makes a call to pci_get_devid() and the driver would say "yes I am " or "no I'm not" so you'd have to change each of the busses to do this but that's not too tough because we have a small # of busses.

jhb : Mike Smith gave us an informal tour of OS/X. OS/X uses XML to do this. They have the DEVID in XML.

brooks : I looked at some PCI drivers and some work that way but some don't.

julian : It seems to me we need to not have to modify every single driver. If you've got a device that's not supported you ask all drivers. At the point when you run out you make an outcall. The outcall returns does a substitution.

rwatson : Time up, time to wrap up.

&footer; diff --git a/en/events/events.xml b/en/events/events.xml index 7ee426a750..63730e0f4d 100644 --- a/en/events/events.xml +++ b/en/events/events.xml @@ -1,491 +1,491 @@ - $FreeBSD: www/en/events/events.xml,v 1.22 2004/03/28 22:05:16 josef Exp $ + $FreeBSD: www/en/events/events.xml,v 1.23 2004/04/01 12:36:14 josef Exp $ 2nd Swiss Unix Conference http://www.sucon.ch/ 2004 9 2 2004 9 4 Switzerland Zürich SUCON is a emerging conference focused on topics related to the Unix operating system. Our goal is to bring together developers, system administrators and users in the field of Unix to foster projects, ideas and the knowledge of every individual. There will also be some speeches related to FreeBSD. 2004 USENIX Annual Technical Conference http://www.usenix.org/events/usenix04/ 2004 6 27 2004 7 2 USA Massachusetts Boston The 2004 USENIX ATC will have FREENIX and general refereed paper session, along with new UseBSD Special Interest Group Sessions. There will not be a separate Usenix-sponsored BSDCon in the U.S. in 2004, so this is THE big conference of the year for BSD enthusiasts in the U.S. Linuxtag 2004 http://www.linuxtag.org/2004/ 2004 6 23 2004 6 26 Germany Karlsruhe Kongresszentrum The Linuxtag is one of Europe's biggest Linux and Open Source related tradeshows and conferences. As in previous years, FreeBSD will be present with a booth. Linuxwochen Wien http://www.linuxwochen.at 2004 5 26 2004 5 29 Austria Vienna Museumsquartier, A-1070 Wien Museumsplatz 1 Linuxwochen is an annual roadshow of open source conferences, which take place in all major cities in Austria. Vienna is the biggest event. There will be a FreeBSD speech and - a booth by Josef El-Rayes. + a booth by Josef El-Rayes. If you like to help out take a look at the FreeBSD Booth's Wiki. BSDCan http://www.bsdcan.org/ 2004 5 13 2004 5 15 Canada Ottawa University of Ottawa BSDCan is a developers conference with a strong focus on emerging technologies, research projects, and works in progress. It also features Userland infrastructure projects and invite contribution from both free software developers and those from commercial vendors. Asia BSDCon 2004 http://www.asiabsdcon.org/ 2004 3 12 2004 3 15 Taiwan Taipei Academica Sinica The first BSDCon held in Asia, and sponsored by USENIX Association. Two days of tutorials will precede two days of technical sessions and a vendor exhibit. LinuxForum 2004 http://www.linuxforum.dk/ 2004 3 5 2004 3 6 Denmark Copenhagen Symbion
Fruebjergvej 3
Annual Danish Open Source conference. The Danish BSD user group BSD-DK will present the BSD's.
Fosdem 2004 http://www.fosdem.org/ 2004 2 21 2004 2 22 Belgium Brussels Universite Libre de Bruxelles
Avenue Franklin D. Roosevelt 50
A 2 day event to promote the widespread use of Free and Open Source software. Among the projects present at the event will be Mozilla, KDE and, of course, FreeBSD.
Solutions Linux 2004 http://www.linuxsolutions.fr/ 2004 2 3 2004 2 5 France Paris CNIT
La Defense
A 3 day event to promote GNU/Linux and Open Source software. French FreeBSD User Group will be present in the Association Village to promote FreeBSD of course !
20. Chaos Communication Congress http://www.ccc.de/congress/2003/ 2003 12 27 2003 12 29 Germany Berlin Berliner Congress Center
Alexanderplatz 2
The Chaos Communication Congress is a three-day conference on technology, society and utopia. FreeBSD will be present with a booth. If you are interested in helping out, please contact Christian Brueffer. Photos by Josef El-Rayes http://gallery.daemon.li/20c3/
BSDCon Brasil http://bsdcon.myfreebsd.com.br/ 2003 12 6 2003 12 7 Brazil Rio de Janeiro This is the first edition of BSDCon Brasil. BSDCon Brasil is being promoted and organized by a pool of corporations connected with the BSD community. There will be two intensive days of workshops, presentations and mini-tutorials related to BSD at large. BSD/Linux Day http://www.jus.or.jp/events/bsd-linux-day/ 2003 12 2 2003 12 2 Japan Yokohama During the InternetWeek 2003 Conference, which takes place in Yokohama, between December 2nd and 5th, there will be a BSD/Linux Day, organized by the Japan Unix Society. FreeBSD 10 Year Anniversary Party http://www.offmyserver.com/cgi-bin/store/rsvp.html 2003 11 24 2003 11 24 U.S.A. San Francisco DNA Lounge
www.dnalounge.com
Join us Monday November 24th to celebrate 10 years of FreeBSD! Please RSVP here so we can order enough food and drink for everyone. Photos by Matt Dillon http://apollo.backplane.com/pics.bsdparty/
SCALE: Southern California Linux Expo 2003 http://www.socallinuxexpo.com/ 2003 11 22 2003 11 22 USA California Los Angeles Los Angeles Convention Center The Second Annual Southern California Linux Expo. FreeBSD will be present and handing out promotional material. 5. Linuxday Vorarlberg http://www.linuxday.at/ 2003 11 15 2003 11 15 Austria Dornbirn HTL Dornbirn
Höchsterstrasse 73
The Linuxday in Vorarlberg is an event where people from opensource projects present their efforts to the community. Entrance is free of charge. There will also be a talk about FreeBSD.
BSDCon Japan 2003 http://bsdcon.jp/ 2003 10 18 2003 10 18 Japan Tokyo BIZ Shinjuku BSD Conference Japan 2003, the second conference concerning *BSD in Japan, was held in Tokyo on October 18th, 2003. There were about 170 attendees. It had two parallel sessions (general and technical), and four technical papers and twelve work-in-progress style talks were presented during the conference. Linux-Kongress 2003 http://www.linux-kongress.org/2003/ 2003 10 14 2003 10 16 Germany Saarbrücken University of the Saarland FreeBSD will be present with a booth at the Linux-Kongress, probably Europe's best known Linux developer conference. We will answer questions, show you the system and sell some FreeBSD merchandising. BSDCon '03 http://www.usenix.org/events/bsdcon03/ 2003 9 8 2003 9 12 USA California San Mateo For the fourth time, the main BSD Event, BSDCon is happening. Two days of tutorials will precede two and a half days of technical sessions. An opportunity for people of all experience levels to learn from BSD experts, professionals with real world experience, and industry leaders. FreeBSD Developer Summit notes /events/2003/bsdcon-devsummit.html Unofficial BSDCon US 2003 Wiki http://bsdcon.kwiki.org/ BSDCon 2003 Photos by Matt Dillon http://apollo.backplane.com/BSDCON2003/
diff --git a/en/events/events.xsl b/en/events/events.xsl index c35e715832..936caa4bf5 100644 --- a/en/events/events.xsl +++ b/en/events/events.xsl @@ -1,234 +1,234 @@ Generated on:

If you know of any FreeBSD related events, or events that are of interest for FreeBSD users, which are not listed here, please send details to www@FreeBSD.org, so they + href="mailto:www@FreeBSD.org">www@FreeBSD.org, so they can be included.

Current/Upcoming Events:

month:

Past Events:

month:

  • , , , ,

  •  
    diff --git a/en/gnome/contact.sgml b/en/gnome/contact.sgml index d7cddcac6b..928d24eb0b 100644 --- a/en/gnome/contact.sgml +++ b/en/gnome/contact.sgml @@ -1,41 +1,41 @@ - + %gnomeincludes; %includes; ]> &header;

    Contacts

    Any questions regarding GNOME on FreeBSD should be addressed to the freebsd-gnome mailing list. All FreeBSD GNOME users, as well as those who wish to help improve and maintain GNOME on FreeBSD should feel free to - join. + join. However, you do not have to subscribe if you just want to report a problem or ask for help - just send your message to &email;@FreeBSD.org.

    All relevant discussions should be carried out in the mailing list, unless there is a good reason for contacting one of the developers directly. The following is the list of people involved in the FreeBSD GNOME Project (in alphabetical order):

    FreeBSD GNOME developers can also be found lurking on IRC. So please join #freebsd-gnome on FreeNode if you would like to discuss GNOME on FreeBSD.

    &footer; diff --git a/en/gnome/docs/bugging.sgml b/en/gnome/docs/bugging.sgml index 51f2191606..ee9c361211 100644 --- a/en/gnome/docs/bugging.sgml +++ b/en/gnome/docs/bugging.sgml @@ -1,125 +1,125 @@ - + %gnomeincludes; %includes; ]> &header;

    1. What to report?

    The rule of the thumb is: report as much information as you can. Even if there is some irrelevant information developers can easily filter it out. On the contrary, the situation is much worse when there is too little information to reliably track down or reproduce the problem - in this case developers have to spend their time guessing and/or asking originator of report to send more information.

    There are plenty of examples of totally useless bug reports, something like "Hey, gnomefoo port is broken. I'm running FreeBSD-X.Y. Please fix." Needless to say, that such a report is just a waste of your time, time of the appropriate developer, and network bandwidth. At a bare minimum the report should include the following information:

    • Exact version of the operating system (usually output of uname -a).

    • List of all packages installed on your system.

    • Your environment (output of /usr/bin/env).

    • If you are building from ports then the approximate time when you last updated your ports tree.

    • Information specific for each type of breakage: full log of unsuccessful build in the case when the build of the port is broken, stack trace in the case of a core dump, clear and detailed description of the problem when the application does something unexpected, etc. Try to put yourself into the developer's shoes and in each particular case evaluate what information would be necessary for them to locate the source of the problem. Do not just assume that they already know all about the problem, but are just too lazy to fix it.

    In addition, try to answer the following questions:

    • What exactly is the problem? : Explain the problem as clearly and precisely as possible. Try to limit the actual problem description to one or two key sentences.
    • Where is the problem occurring? : Include whether or not you are seeing the problem during compile-time, install-time, or run-time. Also mention what machine (maybe you have multiple) and in what locale (i.e. the value of the LANG environment variable) the problem is occurring.
    • When did the problem first occur? : Try to isolate exactly when the problem started to occur. If this never worked, or you always had a problem, say that, too. Also mention when last the problem was observed, as well as when last things were working as expected (if applicable).
    • What is the magnitude of this problem? : Explain if the problem is getting worse, getting better, or staying the same. We realize many problems "just are," but this type of information can be helpful in certain cicumstances.

    Also, be prepared to answer additional questions. Often times, developers cannot solve or even diagnose a problem right off the bat. So please be understanding when asked to provide more information.

    If you have a solution or a workaround for the problem then include it into your report as well, even if you are not quite sure that this is a correct fix. If it is not it could still give the developer an idea about what to look at; and save them some time.

    2. Where to report?

    Before reporting a bug, or even sending an email to the list, - search + search through the FreeBSD GNOME mailing list archives to see if this has already been reported. Most of the problems reported on the mailing list are repeats, and by searching you can find your solution much faster.

    Once you are sure this is a new problem, there are several ways to report a bug in GNOME running on FreeBSD: you could send a report to the freebsd-gnome mailing list, file a problem report in the - FreeBSD bug + FreeBSD bug reporting system, send your report to the particular GNOME developers via their bug tracking system, or any combination of those.

    It is impossible to define guidelines that will clearly tell you where to report in each particular case - you have to use your own common sense, however some rules follow:

    • If the problem is FreeBSD-specific and transient (e.g. checksum mismatch, patch failure, syntax error in port's Makefile etc.) then report to the freebsd-gnome mailing list.

    • If the problem is clearly not FreeBSD-specific and you have no readily available solution then report to the developers of the software directly (for most core GNOME components this means that you need to use their Bugzilla bug tracking system).

    • If the problem is not FreeBSD-specific, but quite serious and you have a fix available then report both to FreeBSD and author's bug tracking systems, so that the appropriate port will be patched and other users of FreeBSD will be able to benefit from your fix, without the need to wait for the vendor's next release.

    &footer; diff --git a/en/gnome/docs/develfaq.sgml b/en/gnome/docs/develfaq.sgml index a834badcb2..5fe83e7ffe 100644 --- a/en/gnome/docs/develfaq.sgml +++ b/en/gnome/docs/develfaq.sgml @@ -1,202 +1,202 @@ - + %gnomeincludes; %includes; ]> &header;

    Contents

    1. What are development versions of GNOME all about?
    2. Should I track development versions?
    3. How do I obtain development versions of GNOME stuff?
    4. How do I keep everything up-to-date and in sync?
    5. What should I do when something does not work?
    6. How can I help with the development versions?
    7. What is the current state of development GNOME on FreeBSD

    Full Text

    1. What are development versions of GNOME all about?

      The development versions are the packages released by the GNOME project that will eventually become the stable (release) versions. There are three working branches of GNOME development:

      1. STABLE - The applications and libraries in the stable branch are considered "release quality," and are the versions that appear in the FreeBSD ports tree. The current stable version is GNOME &gnomever;.
      2. DEVELOPMENT - In between stable releases are development releases. Traditionally, GNOME development releases have odd minor numbers (e.g. 2.3, &gnomedevelver;, 2.(n*2)-1). Development releases will become stable releases, and move from alpha to beta quality during their lifecycle. The development releases need testing by FreeBSD users to minimize the number of surprises when the new stable versions are committed to the FreeBSD CVS tree. This document is about the development branch. The current development branch is GNOME &gnomedevelver;.
      3. CVS - Often newer-than-new, the CVS HEAD versions of GNOME applications and libraries are alpha quality, or often completely unbuildable. The FreeBSD GNOME project pays attention to, but does not track the alpha quality code.
    2. Should I track GNOME development versions?

      If you are looking for a stable environment, absolutely not. Please only track the GNOME &gnomedevelver; branch if you wish to help identify bugs and improve the FreeBSD GNOME project. You will find little sympathy if a development-quality GNOME application eats your homework.

    3. How do I obtain the development versions of GNOME stuff?

      Marcus maintains a CVS repository where all the development versions of the GNOME components for FreeBSD are housed. Instructions for how to check out the development ports module and how to merge it into the FreeBSD ports tree reside on the entrance page to his repository. Please read carefully the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

      In order to help with bug reports, be sure to add the following to /etc/make.conf so that gdb back traces contain useful information:

       CFLAGS=	-O -g -pipe
       STRIP=
       
    4. How do I keep everything up-to-date and in sync?

      The short answer is that you need to use the marcusmerge script to merge the development tree with the FreeBSD ports tree. The marcusmerge script is available here, and a man page on using the script is available here. This script will merge the development ports tree into your main ports tree. From there, you can download the gnome_upgrade.sh script to aid in upgrading from GNOME 2.4 to &gnomedevelver;. Once you are running GNOME &gnomedevelver;, you can use portupgrade to stay up-to-date.

      The long answer is that keeping up-to-date with the GNOME development branch is complicated. Sometimes components change in a way that makes portupgrade fail, or causes strange end results. If you plan to track the development branch, it is a good idea to join the - + freebsd-gnome mailing list, as well as to join the #freebsd-gnome IRC channel on FreeNode (irc.freenode.net).

      If all of this sounds scary, or you need a desktop that "Just Works," you should stick with the stable GNOME branch.

    5. What should I do when something does not work?

      It depends. If you think the problem is truly a bug with the GNOME component, you can report a bug using bug-buddy or the GNOME Bugzilla interface (NOTE: Evolution's Bugzilla interface can be found here). If you think the problem lies in a FreeBSD port, or is FreeBSD-specific, send email to &email;@FreeBSD.org, or report the problem on the #freebsd-gnome IRC channel on FreeNode.

      Please forward all GNOME/Ximian bug IDs to &email;@FreeBSD.org so we can keep track of known issues. Thanks!

    6. How can I help with the development versions?

      Currently, we need people to test as much as possible, and to file as many good bugs as possible. We also need people with artistic skills to create some hot screenshots.

      If you like coding, and you know Perl, we really need someone to help in porting gnome-system-tools. Please contact marcus@FreeBSD.org if you are interested in helping with this.

      Even if you don't like working directly with code, we need reports on experiences upgrading from GNOME &gnomever; to GNOME &gnomedevelver;; we need information on which apps are exhibiting strange behaviour; we need to know in advance everything that an end-user is likely to wind up scratching his or her head about in the future.

    7. What is the current state of development GNOME on FreeBSD?

      Development versions of the entire GNOME &gnomedevelver; desktop environment are available, and they all compile cleanly.

      Most of the components of x11/gnome2-fifth-toe have working development versions. None of the apps that use the C++ bindings work yet; the C++ bindings themselves are there, but none of the Fifth Toe apps will currently compile against them.

      Existing GNOME &gnomedevelver; users should do the following to work around a file conflict with libgnome and gnomecontrolcenter2 that caused key repeat to fail:

       # portupgrade -f gnomecontrolcenter2
       # portupgrade -f libgnome
       	

      Known Bugs:

      • #132154: [gnome-keyboard-properties] Keyboard repeat rate and delay are saved as floats
      • #137388: [gnome-terminal] gnome-terminal has a problem with the dynamic title and vim
      • #133690: [gnome-terminal] gnome-terminal does not exit the shell correctly
      • #136966: [nautilus] Create Document -> Empty File gets wrong group
    &footer; diff --git a/en/gnome/docs/faq2.sgml b/en/gnome/docs/faq2.sgml index 36a55781b8..51a5aba264 100644 --- a/en/gnome/docs/faq2.sgml +++ b/en/gnome/docs/faq2.sgml @@ -1,653 +1,653 @@ - + %gnomeincludes; %includes; ]> &header;

    Contents

    1. How do I get GNOME &gnomever; for FreeBSD?
    2. GNOME &gnomever; is failing to build from ports. What do I do?
    3. I installed GNOME &gnomever;, but I am missing application foo. What gives?
    4. What is the best way to upgrade from GNOME 1.4 to GNOME 2?
    5. What is the best way to upgrade from GNOME 2.2 to GNOME &gnomever;?
    6. How do I keep my GNOME &gnomever; components and applications up-to-date?
    7. Can I install GNOME 1.4 applications under GNOME &gnomever;?
    8. Where can I get more themes for GNOME &gnomever;?
    9. What window managers work well with GNOME &gnomever;?
    10. Does GNOME &gnomever; support anti-aliased fonts?
    11. How can I control what fonts are anti-aliased?
    12. How do I edit my GNOME 2 menus?
    13. How do I use GTK+ 2 resource settings for GTK+ 2 applications when not in a GNOME environment?
    14. How do I configure settings for GNOME 1.4 applications under GNOME &gnomever;?
    15. Nautilus-cd-burner does not let me burn CDs. How can I fix this?
    16. How do I add new GDM sessions?

    Full Text

    1. How do I get GNOME &gnomever; for FreeBSD?

      There are two ways to install GNOME &gnomever; on FreeBSD. One way is to use - + packages, and the other way is to use - + ports. Before doing either installation, you should first familiarize yourself with the GNOME &gnomever; release notes.

      To install GNOME &gnomever; from packages, use the command:

      # pkg_add -r gnome2

      This will download the latest GNOME &gnomever; packages from the FreeBSD FTP site, and proceed to install them on your system.

      To build and install GNOME &gnomever; from ports, you should first - + cvsup the latest ports tree. Then:

       # cd /usr/ports/x11/gnome2
       # make clean
       # make install clean
       	    

      For the best GNOME &gnomever; experience, you should install from ports, after adding the following macros to your /etc/make.conf file:

       WITH_FAM=	yes
       WITH_LAME=	yes
       	    

      WITH_FAM enables file alteration manager support which allows Nautilus to update its file lists in real-time as well as allows all GNOME components to detect config file changes without needing to restart GNOME. Note that for FAM to work properly, you also need to add the following to /etc/rc.conf then reboot:

      For FreeBSD 4.x:
      portmap_enable="YES"

      For FreeBSD 5.x:
      rpcbind_enable="YES"

      If you install GNOME from packages, or you build it from ports without FAM enabled, all you need to do to enable FAM support is rebuild devel/gnomevfs2 after adding WITH_FAM to /etc/make.conf.

      WITH_LAME adds MP3 support, enabling you to play MP3s directly in Nautilus. If you install GNOME from packages or build it from ports without LAME support enabled, all you need to do to enable LAME support is rebuild multimedia/nautilus-media after adding WITH_LAME to /etc/make.conf.

      These options may cause build errors on certain platforms, and thus they are not enabled by default.

      Once you have the GNOME &gnomever; desktop installed, GNOME &gnomever; can be started by adding the following line to ~/.xsession or ~/.xinitrc, as appropriate:

       exec gnome-session
       	    
    2. GNOME &gnomever; is failing to build from ports. What do I do?

      The majority of GNOME &gnomever; compilation problems can be solved by making sure all the necessary GNOME &gnomever; components are up-to-date.

      In general, when a GNOME &gnomever; component is not up-to-date, you will see an error similar to the following:

       checking for libgnomeui-2.0 libbonoboui-2.0 libbonobo-2.0 >= 2.2.1
       gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2 libglade-2.0...
       configure: error: Library requirements (libgnomeui-2.0 libbonoboui-2.0
       libbonobo-2.0 >= 2.2.1 gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2
       libglade-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable
       if your libraries are in a nonstandard prefix so pkg-config can find them.
       	      

      Simply keeping your ports tree up-to-date will prevent these errors.

      If the pkg-config program is out-of-date, you may see a configure error similar to the following:

       configure: error: *** pkg-config too old; version 0.14 or better required.
       	      

      While this may be buried in some other text, the error is very straight-forward: you need to upgrade pkg-config. The pkg-config application is found in the devel/pkgconfig port. By updating this port to the latest version, this error will go away.

      You may see compiler errors relating to pthreads (&posix; threads), such as:

       undefined reference to 'strerror_r'
                   

      To fix thread related errors, make sure you have the following compiled into your kernel:

       options     _KPOSIX_PRIORITY_SCHEDULING
                   

      If you are tracking -stable or -current, make sure that you do not have NOLIBC_R set in /etc/make.conf. If you do, remove it, then rebuild world. If you still have trouble, please send email to &email;@FreeBSD.org with the output of the failed compilation. It is also helpful to include the config.log from the port's work directory.

      Ports such as devel/pth and devel/ngpt can also cause pthread-related problems when compiling GNOME &gnomever;. If you do not need these ports installed, it is recommended that you remove them.

      A common source of build failures is the existence of multiple versions of the same library. This can happen if you have two different versions of a port installed, or can even happen through normal portupgrade use. You can back up the libraries in /usr/local/lib/compat/pkg and remove them, and then run portupgrade -u -rf pkgconfig. This will force a rebuild of all GNOME-related apps (and a fair number of other apps) without retaining old versions of libraries in /usr/local/lib/compat/pkg.

    3. I installed GNOME &gnomever;, but I am missing application foo. What gives?

      Only the core desktop is included in the gnome2 package. Here are some other GNOME meta-ports that offer convenient groupings of popular GNOME 2 software.

      • The GNOME 2 Fifth Toe (x11/gnome2-fifth-toe) consists of stable GNOME 2 applications that many users expect to find in a functional desktop environment. This includes image manipulation applications, chat and instant messenger applications, and music and multimedia players
      • The GNOME 2 Hacker Tools (devel/gnome2-hacker-tools) consists of applications developers would need to create and maintain GNOME software projects. This includes IDEs, interface builders, ``hacker'' editors, and code generation tools.
      • The GNOME 2 Office (editors/gnome2-office) consists of applications that are commonly found in office or productivity suites. This includes a spreadsheet application, word processor, project management application, database access application, groupware suite, and diagramming application.
      • The GNOME 2 Power Tools (x11/gnome2-power-tools) consists of utilities and applets for the technically-minded GNOME user. It also contains many useful add-on utilities for some of the applications found in the Desktop and Fifth Toe.

      To install any of these from packages:

       # pkg_add -r meta-port
                   

      For example, to install the GNOME 2 Fifth Toe from packages:

       # pkg_add -r gnome2-fifth-toe
       	    

      To install any of these from ports:

       # cd /usr/ports/category/meta-port
       # make clean
       # make install clean
       	    

      For example, to install the GNOME 2 Fifth Toe from ports:

       # cd /usr/ports/x11/gnome2-fifth-toe
       # make clean
       # make install clean
       	    
    4. What is the best way to upgrade from GNOME 1.4 to GNOME 2?

      If you have GNOME 1.4, and you want to upgrade to GNOME &gnomever;, first familiarize yourself with the official upgrade instructions from the GNOME site. Make sure your GNOME 1.4 ports are up-to-date, and then remove the following GNOME 1.4 packages from the system:

       gnomecore
       sawfish
       gnomeapplets
       gnomemedia
       gtop
       libgtop
       nautilus
       gedit
       xalf
       bugbuddy
       gnomeaudio
       gnomegames
       gnomeutils
       gdm
       eog
       ggv
       	   

      After those packages are removed, you can build GNOME &gnomever; as per the instructions listed above.

    5. What is the best way to upgrade from GNOME 2.2 to GNOME &gnomever;?

      We recommend that you use /usr/ports/sysutils/portupgrade for this purpose. The following will do the job well:

       # pkgdb -F
       (answer yes to all prompts; note that you might wish
       to run the above command after each step below)
       # portupgrade ORBit2 libbonobo
       # portupgrade -rf -m BATCH=yes atk
       # portupgrade -R -m BATCH=yes gnome2
       	    
    6. How do I keep my GNOME &gnomever; components and applications up-to-date?

      You are emphatically encouraged to use portupgrade -- and only portupgrade -- to keep your GNOME &gnomever; components and applications up-to-date.

      Once you have updated your ports tree (presumably with cvsup), the following two simple commands will update what needs to be updated, and will prevent inconsistencies:

       # pkgdb -F
       # portupgrade -a
       		

      Despite consistent utilization of portupgrade, if it seems like everything is refusing to build with everything else, you might save yourself a headache or three by removing all your GNOME apps and reinstalling them (your data files will remain untouched). To do this, follow these commands:

       # pkgdb -F
       # pkg_delete -rf pkgconfig\*
       # cd /usr/ports/x11/gnome2
       # make clean
       # make install clean
       	    

      After running the above commands, you will have to reinstall all the GNOME applications you desire. This process sounds painful, but it is actually a great way to clear cruft off of your system. Just install applications as you need them, and you'll be surprised how much disk space you have reclaimed. A full rebuild does take a significant amount of time; fortunately, this measure is only rarely needed.

    7. Can I install GNOME 1.4 applications under GNOME &gnomever;?

      GNOME 1.4 ports will run well under the GNOME 2 desktop. Older applications that were incompatible with the GNOME 2 desktop have been removed from the ports tree, so it should be safe to run any GNOME application in the ports tree under the GNOME 2 desktop.

    8. Where can I get more themes for GNOME &gnomever;?

      The website art.gnome.org has been setup as a general GNOME theme repository. They offer some gtk+-2, metacity, sawfish, nautilus, icon, and gdm themes, as well as some backgrounds.

      A new theme site called The Theme Depot has just been launched. This site contains themes for GNOME 2 as well as KDE and quite a few window managers.

      Freshmeat.net has a themes archive at themes.freshmeat.net, which contains themes and backgrounds for many window managers, theme engines, and desktop environments. This site grew out of the old themes.org.

      A good site for some cool GNOME icons (some stock, some new) is jimmac's Icons site.

      See the instructions on the website for installing the themes. If you feel inclined to port a few of them, you will not be turned away ;-).

    9. What window managers work well with GNOME &gnomever;?

      The gnome2 meta-port installs the metacity window manager by default. Another popular window manager that works well with GNOME &gnomever; is sawfish. Sawfish can be found in x11-wm/sawfish2.

      To switch between metacity and sawfish in GNOME 2, you will need to do the following:

       killall metacity; sawfish &
       gnome-session-save --gui
       

      The gnome-session-save is important. Without it, the window manager will revert back to the one previously configured upon next login. To switch back, simply reverse sawfish and metacity.

      If you have gotten the GNOME &gnomever; desktop working under an alternative window manager, please take a screenshot and send it to us!

    10. Does GNOME &gnomever; support anti-aliased fonts?

      Yes! Anti-aliasing requires XFree86 4.x with freetype2 support. To add freetype2 support to X, make sure you have the following modules loaded in your XF86Config file under the Modules section:

       Load	"freetype"
       Load	"type1"
       		

      Then, simply check out the Fonts capplet under Applications->Desktop Preferences. If you want a good set of TrueType starter fonts, install the x11-fonts/webfonts port.

      Sometimes, after adding new fonts to the system, it is necessary to teach fontconfig about them. If you find that newly added fonts are not made available even after restarting GNOME 2, run the following command as root:

       # fc-cache -f -v
       		

      If you have any questions, please send them to &email;@FreeBSD.org.

    11. How can I control what fonts are anti-aliased?

      GNOME &gnomever; makes use of Xft and fontconfig to handle anti-aliasing. Fontconfig is a very powerful XML-based font configuration package. You can create a ~/.fonts.conf file that controls virtually every aspect of fontconfig. For example, if you do not want to anti-alias fonts smaller than 16 point, create a ~/.fonts.conf with the following contents:

       <?xml version="1.0"?>
       <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
       <fontconfig>
       
       <match target="font">
               <test name="size" compare="less_eq">
                       <double>16</double>
               </test>
               <edit name="antialias" mode="assign">
                       <bool>false</bool>
               </edit>
       </match>
       </fontconfig>
                       

      Refer to fonts-conf(5) for more information.

    12. How do I edit my GNOME 2 menus?

      You need to use Nautilus to edit your GNOME 2 menus. If you want to edit any menu other than Favorites, you must be root.

      To edit the menus, launch Nautilus, and enter the URL applications:///. From there you should be able to edit your entire application menu.

    13. How do I use GTK+ 2 resource settings for GTK+ 2 applications when not in a GNOME environment?

      GNOME 2 applications get their GTK+ 2 resources from themes and the corresponding theme engine. If you would rather run your GTK+ 2 applications in a non-GNOME environment then you will need to create a file named ~/.gtkrc-2.0.

      To use the widgets from a GTK+ 2 theme when in a non-GNOME environment, simply include the theme's gtk-2.0/gtkrc in your ~/.gtkrc-2.0. For example:

      include "/usr/X11R6/share/themes/Crux/gtk-2.0/gtkrc"

      If you prefer, you can use the same GTK+ 1.2 theme for both GTK+ 1.2 and GTK+ 2 applications, which will give your GTK+ programs a consistent look. For the most part, you can transfer your settings from your ~/.gtkrc file (used for GTK+ 1.2) with a couple of caveats.

      1. If you have any theme engine references, you will have to make sure there is a corresponding GTK+ 2 theme engine. Otherwise, remove the engine entries.
      2. The default font specification should be outside of any style blocks and should be specified with the gtk-font-name keyword. For example:
        gtk-font-name = "Verdana 11"

      Note that while a GTK+ 1.2 gtkrc file will work in a GTK+ 2 gtkrc-2.0 file, the opposite is not true: the contents of a GTK+ 2 gtkrc-2.0 file will not work inside a GTK+ 1.2 gtkrc file.

    14. How do I configure settings for GNOME 1.4 applications under GNOME &gnomever;?

      Install sysutils/gnomecontrolcenter, then invoke gnomecc from the command line to bring up the GNOME 1.4 control center.

    15. Nautilus-cd-burner does not let me burn CDs. How can I fix this?

      Nautilus-cd-burner cannot write to CD/DVD burners unless support for those devices is enabled in the kernel, and the permissions on the device nodes allow write access. Nautilus-cd-burner talks to CD/DVD burners through the SCSI CAM subsystem. Therefore, you must make sure you have the following configured in your kernel:

       device          scbus
       device          cd
       device          pass
       	    

      You must also make sure you have the following configured in your kernel if you are using an ATAPI CD/DVD burner:

       device		atapicam
       	    

      To figure out which CD/DVD drive you will be using, run the following command as root:

       # camcontrol devlist
       	    

      Your output will look similar to the following:

       <QSI CDRW/DVD SBW-242 UD22>		at scbus1 target 0 lun 0 (cd0,pass0)
       	    

      The devices in parentheses at the end are important. You must make sure the /dev entries for those devices are writable by the users that will be using nautilus-cd-burner. In addition to those devices, /dev/xpt* must also be writable to your nautilus-cd-burner users. The following /etc/devfs.conf configuration will achieve the desired results given the above devlist (NB: devfs.conf is only supported on FreeBSD 5.x):

       perm    cd0     0666
       perm    xpt0    0666
       perm    pass0   0666
       	      

      On FreeBSD 4.x, you can simply set the device node permissions, and they will be preserved across reboots. Note that you must use the 'c' device nodes on FreeBSD 4.x (e.g. cd0c).

    16. How do I add new GDM sessions?

      The process for adding new GDM sessions has changed substantially between GNOME 2.2 and &gnomever;. In order to add new sessions now, you must create a .desktop file containing the session configuration information. Session files live in /usr/X11R6/etc/dm/Sessions. For example, to add a KDE session, create a file in /usr/X11R6/etc/dm/Sessions called kde.desktop. That file should contain the following:

       [Desktop Entry]
       Encoding=UTF-8
       Name=KDE
       Comment=This session logs you into KDE
       Exec=/usr/local/bin/startkde
       TryExec=/usr/local/bin/startkde
       Icon=
       Type=Application
       	    

      This file must have execute permissions. For example:

       # chmod 0555 kde.desktop
       	    

      After creating this file, restart GDM, and there will be a KDE link under the Sessions menu.

    &footer; diff --git a/en/gnome/docs/knownissues.sgml b/en/gnome/docs/knownissues.sgml index 2bf466f609..34a712a2b1 100644 --- a/en/gnome/docs/knownissues.sgml +++ b/en/gnome/docs/knownissues.sgml @@ -1,74 +1,74 @@ - + %gnomeincludes; %includes; ]> &header;

    Below is a list of known issues with GNOME &gnomever; that are specific to FreeBSD. These are not the only known issues, however. Please familiarize yourself with the GNOME &gnomever; release notes which contains a list of known issues that affect all platforms.

    1. Upgrading from GNOME 2.2 to &gnomever; is tricky

    You should follow the - + instructions for updating to GNOME &gnomever;. This may still produce errors, however. You may have to re-run pkgdb -F after each step. If you continue to encounter errors after following the upgrade instructions, log the entire upgrade procedure (you can use the -l option to portupgrade to accomplish this). Compress and send the log to &email;@FreeBSD.org.

    2. evolution has a problem with attachments under GNOME &gnomever;

    evolution-1.4.4 has a problem with attachments under GNOME &gnomever;. To work around the problem, do the following, as root:

     # ln -s /usr/X11R6/share/icons/gnome/48x48/apps/gnome-unknown.png /usr/X11R6/share/gnome/pixmaps/gnome-unknown.png
     

    This problem was fixed in evolution-1.4.5, and upgrading to evolution-1.4.5 is probably the best solution.

    3. gstreamer doesn't play nice with rhythmbox

    gstreamer-0.6.3 doesn't play nice with rhythmbox. It is recommended you build rhythmbox with -DWITH_XINE for now. (UPDATE: As of gstreamer-plugins-0.6.3_1, this problem has been resolved.)

    4. GDM crashes on startup

    GDM may crash on startup, especially on 5.1-RELEASE and earlier. All GDM users need to copy /usr/X11R6/etc/gdm/factory-gdm.conf over /usr/X11R6/etc/gdm/gdm.conf. The old config version from GNOME 2.2 will not work. Users of 5.1-RELEASE and earlier need to read the pkg-message that comes with the GDM2 port/package on how to patch OpenPAM to work with GDM2.

    5. gnomemeeting fails to build

    Gnomemeeting may fail to build if you have ffmepg installed. If you do, remove ffmpeg, then build gnomemeeting, then reinstall ffmpeg if so desired.

    &footer; diff --git a/en/gnome/docs/porting.sgml b/en/gnome/docs/porting.sgml index c5c3d1d63b..3366995124 100644 --- a/en/gnome/docs/porting.sgml +++ b/en/gnome/docs/porting.sgml @@ -1,307 +1,307 @@ - + %gnomeincludes; %includes; ]> &header;

    This document assumes that you already know how the port system works, and therefore only provides GNOME-specific hints and tips. General instructions can be found in the - FreeBSD Porter's Handbook. + FreeBSD Porter's Handbook.

    Example Makefile

    There is an example Makefile for a GNOME port, which uses many of the tricks outlined in this document. Please feel free to use it as a guide for creating your own ports.

    GNOME Makefile Macros

    GNOME applications under FreeBSD use the USE_GNOME infrastructure. To specify which components of the GNOME system your port needs in order to build, simply list them all as a space-separated list. For example:

     USE_X_PREFIX=	yes
     USE_GNOME=	gnomeprefix gnomehack libgnomeui
     	  

    The USE_GNOME components are divided into the following two lists:

    If your port needs only GTK2 libraries, the following is the shortest way to define this:

     USE_X_PREFIX=	yes
     USE_GNOME=	gtk20
     	  

    If your port needs only GTK1 libraries, the following is the shortest way to define this:

     USE_X_PREFIX=	yes
     USE_GNOME=	gtk12
     	  

    Even if your application needs only the GTK libraries, other USE_GNOME components may be useful. Please scan the entire list to make sure your port uses all relevant components.

    Once you have finished with your port, it is a good idea to verify that your port depends on the correct list of components. To see a list of what packages your port will actually require, use the command make package-depends from within your port's directory.

    To aid in creating the list of necessary components, it can be helpful to examine the output of make configure. At the end of the checking for... list, there will be a line similar to this:

     checking for	libgnomeui-2.0 >= 2.0.0		cspi-1.0 >= 1.1.7
     libspi-1.0 >= 1.1.7		libbonobo-2.0 >= 2.0.0	atk >= 1.0.0
     gtk+-2.0 >= 2.0.0	gail	libwnck-1.0		esound... yes
     

    This is a list of the components upon which this application relies to build. Pay close attention to the hierarchical layout of the USE_GNOME system; many components are implied from other USE_GNOME directives. In the above example, USE_GNOME= libgnomeui implies use of libbonoboui, which implies libgnomecanvas, which implies libglade2, which implies gtk20. Thus, even though gtk+-2.0 appears in the list of requisite components, gtk20 can be eliminated from the USE_GNOME list. There are a number of other such redundancies that can be eliminated from this list.

    For the above list (taken from sysutils/gok), the following is defined in the Makefile:

     USE_GNOME=	gnomehack gnomeprefix libgnomeui atspi libwnck
     

    GNOME 1 Desktop vs. GNOME 2 Desktop

    In the beginning, there was only GNOME 1. When the GNOME 2 desktop came around, maximum backwards compatability was ensured, within reason. GNOME 1 applications can run fine under the GNOME 2 desktop, provided that the applications do not utilize functionality specific to the GNOME 1 desktop environment.

    The GNOME 1 desktop, and all applications that will not run under the GNOME 2 desktop, have been removed from the ports tree.

    What this means for you, as an application porter, is simply that you should not add GNOME 1-specific applications to the ports tree.

    If you wish to determine which version of the GNOME desktop environment is present on a user's machine, you can check the value of GNOME_DESKTOP_VERSION. This variable is set to either "1" or "2" depending upon whether the GNOME 1 or GNOME 2 desktop is installed.

    Optional GNOME Dependencies

    If your port can optionally use GNOME, you must set WANT_GNOME= yes in your Makefile, then check to see if HAVE_GNOME is set for each component from the list above that your port can use. Since this is a conditional evaluation, you need to stick it between bsd.port.pre.mk and bsd.port.post.mk. For example:

     WANT_GNOME=	yes
     
     .include <bsd.port.pre.mk>
     
     .if ${HAVE_GNOME:Mgnomepanel}!=""
     	USE_GNOME+=	gnomeprefix gnomepanel
     	CONFIGURE_ARGS+=	--with-gnome
     	PKGNAMESUFFIX=	-gnome
     	PLIST_SUB=	DATADIR="share/gnome"
     .else
     	CONFIGURE_ARGS+=	--without-gnome
     	PLIST_SUB=	DATADIR="share"
     .endif
     
     .include <bsd.port.post.mk>
               

    Here, WANT_GNOME tells the ports system to check for the existence of the various GNOME components listed above. For each component found, its name is appended to HAVE_GNOME. Since this port can use gnomepanel, we check HAVE_GNOME to see if it contains gnomepanel (for more on the :Mpattern make syntax, please refer to the - make(1) manpage). + make(1) manpage). If gnomepanel is found, then it is added the list of USE_GNOME dependencies, and the port-specific --with-gnome CONFIGURE_ARG is passed. In an old GNOME infrastructure, PKGNAMESUFFIX was automatically adjusted by the proper USE_* macro. Now it is up to the individual porter to do this. Our example port appends -gnome to the port name to indicate it has been built with GNOME support. The same is true for the DATADIR PLIST_SUB. The individual porter must decide when do the DATADIR substitution. A good rule of thumb is to add the DATADIR PLIST_SUB when using the gnomeprefix component.

    Note: You cannot add extra default USE_GNOME components after the .include <bsd.port.pre.mk>. That is, the following is wrong :

     .include <bsd.port.pre.mk>
     
     .if ${HAVE_GNOME:Mgnomelibs}!=""
     	USE_GNOME+=	libgnome
     .else
     	USE_GNOME+=	gtk12  # WRONG!
     .endif
     	  

    This will make the build system think that GNOME is desired, and mark the pkg-plist accordingly, thus breaking package builds. If you need to add default USE_GNOME components, do so above the .include <bsd.port.pre.mk> line.

    To enforce use of optional GNOME dependencies unconditionally, you can add WITH_GNOME= yes to /etc/make.conf or on the make command line. This will always return true when checking for optional GNOME dependencies. If you want the system to always return false when checking for optional GNOME dependencies, you can add WITHOUT_GNOME= yes to /etc/make.conf or to the make command line.

    More information on the USE_GNOME infrastructure can be found by looking at the source and comments of ${PORTSDIR}/Mk/bsd.gnome.mk.

    OMF Installation

    A large number of GNOME applications (especially GNOME 2 applications) install Open Source Metadata Framework (OMF) files which contain the help file information for those applications. These OMF files require special processing by ScrollKeeper in order for applications like Yelp to find help documentation. In order to accomplish proper registry of these OMF files when installing GNOME applications from packages, you should make sure your port's pkg-plist has the following for each OMF file listed.

     @exec scrollkeeper-install -q \
     	%D/path/to/help_file.omf \
     	2>/dev/null || /usr/bin/true
     @unexec scrollkeeper-uninstall -q \
     	%D/path/to/help_file.omf \
     	2>/dev/null || /usr/bin/true
                 

    For example:

     @exec scrollkeeper-install -q \
     	%D/share/gnome/bug-buddy/bug-buddy-C.omf \
     	2>/dev/null || /usr/bin/true
     @unexec scrollkeeper-uninstall -q \
     	%D/share/gnome/bug-buddy/bug-buddy-C.omf \
     	2>/dev/null || /usr/bin/true
                 

    Libtool Issues

    Most, if not all, GNOME applications depend on GNU's libtool. They also use the GNU configure system. If your port installs shared libraries, you should add USE_LIBTOOL= yes to your port's Makefile. This takes care of most of the libtool requirements, but will not prevent things such as .la files from being installed. To ensure a proper shared library installation, also consider adding the following line to your port's configure script directly below the line LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh":

     $ac_aux_dir/ltconfig $LIBTOOL_DEPS
     	    

    This prevents the installation of .la files and ensures that ${PTHREAD_LIBS} will be passed to the linker.

    Distfiles

    To separate GNOME 2 distfiles from the GNOME 1 distfiles, and to keep the distfiles directory clean, GNOME 1 ports that download their distfiles from ${MASTER_SITE_GNOME} must add the following to their Makefile:

     DIST_SUBDIR=    gnome
               

    GNOME 2 ports that download their distfiles from ${MASTER_SITE_GNOME} must include the following in their Makefile:

     DIST_SUBDIR=    gnome2
     	  

    Some GNOME distfiles come in both tar gzip as well as tar bzip2 format. To save time when downloading distfiles over slow links, you should use the bzip2 distfiles whenever possible. To do this, add the following to your port's Makefile:

     USE_BZIP2=  yes
     	  

    If you still need help with your port, have a look at some of the existing ports for examples. The freebsd-gnome mailing list is also there for you.

    &footer; diff --git a/en/gnome/docs/volunteer.sgml b/en/gnome/docs/volunteer.sgml index 80e1a64caa..a660f56cb3 100644 --- a/en/gnome/docs/volunteer.sgml +++ b/en/gnome/docs/volunteer.sgml @@ -1,44 +1,44 @@ - + %gnomeincludes; %includes; ]> &header;

    There is always something to do around the GNOME FreeBSD camp. Grab something that sounds interesting to you, and run with it.

    • Test existing ports, and report bugs.

    • Regularly install GNOME from packages, and report any problems with the install or the functionality.

    • Find GNOME applications not yet ported to FreeBSD, and work on porting them over.

    • -

      +

      Subscribe to the freebsd-gnome mailing list, and help answer users' questions.

    • Take patches and feedback from GNOME-related FreeBSD PRs back to GNOME authors so that the patches can be integrated into the next release of the application.

    • Proofread the FreeBSD GNOME project pages, and offer feedback and updates.

    Send any feedback to &email;@FreeBSD.org.

    &footer; diff --git a/en/gnome/news.xml b/en/gnome/news.xml index e167b9b94b..3f03cf2e87 100644 --- a/en/gnome/news.xml +++ b/en/gnome/news.xml @@ -1,1111 +1,1111 @@ - $FreeBSD: www/en/gnome/news.xml,v 1.63 2004/03/19 08:07:08 marcus Exp $ + $FreeBSD: www/en/gnome/news.xml,v 1.64 2004/03/20 06:26:23 marcus Exp $ 2004 March 17 GNOME 2.6 Release Candidate 1 available for FreeBSD

    The GNOME 2.6 Release Candidate 1 desktop has been released and just - cries out + cries out for use. GNOME 2.6 is on schedule for final release on March 24, so be sure to test this release thoroughly. Packages for all supported versions of FreeBSD are also available.

    13 GNOME 2.6 Beta 2 available for FreeBSD

    The GNOME 2.6 Beta 2 desktop has been released and - ports + ports are available. We are currently looking for volunteers to help with testing ports and packages installation as well as provide feedback on bugs, missing features, screenshots, and FAQ ideas. Please send any and all questions and comments to the FreeBSD GNOME Team.

    8 GNOME package server now online

    A new package building server for FreeBSD GNOME packages is online, and serving out GNOME 2 desktop packages for both 2.4 and 2.5. Packages are available for all supported versions of FreeBSD. The server is still in its infancy, and a bit slow, but it's working constantly to provide the most up-to-date GNOME packages possible. As time goes on, other GNOME meta-ports will be added to the build.

    GNOME 2.6 Beta 1 available for FreeBSD

    The GNOME 2.6 Beta 1 desktop is now available for FreeBSD. If you have been looking for a good time to switch away from GNOME 2.4, now is that time. Please test extra hard so we can work out all the bugs before the end of the month release date. All the details on upgrading to GNOME 2.6 Beta 1 can be found here. Note: the release identifies itself as 2.5.90, but it is, in fact, GNOME 2.6 Beta 1.

    February 18 GNOME 2.5.5 available for FreeBSD

    The GNOME 2.5.5 desktop is now available for FreeBSD. It slipped in a scant four days after 2.5.4 to test weed out some more bugs before the first 2.6 beta release. The low down on obtaining this version and upgrading from GNOME 2.4 can be found in the development FAQ.

    14 GNOME 2.5.4 available for FreeBSD

    The nameless GNOME 2.5.4 desktop is now available for FreeBSD. This latest development release is slated to be the last before the GNOME 2.6 beta cycle begins. Those interested in joining the testing effort should read the development FAQ for details on obtaining GNOME 2.5 and upgrading from 2.4

    5 GNOME 2.4.2 available for FreeBSD

    The FreeBSD GNOME team is proud to announce the availability of GNOME 2.4.2 for FreeBSD. This is the next release in from the stable GNOME 2.4 branch. GNOME 2.4.2 is mainly a bugfix and translation release. The next major feature release will be GNOME 2.6 due out in late March. GNOME 2.4.2 is available in the FreeBSD ports tree.

    3 GNOME 2.5.3 available for FreeBSD

    The GNOME 2.5.3 desktop, "That and a pair of testicles" release, is now available for FreeBSD. This releases fixes a lot of bugs in the previous release especially having to do with broken icons. Evolution users will be happy to find the Calendar and Contacts functionality also works now. For those wanting to ride the walrus, read the FAQ on how to get GNOME 2.5, merge it into your ports tree, and even upgrade from GNOME 2.4.

    January 6 GNOME 2.5.2 available for FreeBSD

    The GNOME 2.5.2 desktop, "You want me to blow on your toes?" release, is now available for FreeBSD. To accompany this release, the FreeBSD GNOME team has setup an FAQ on how to track the GNOME development branches. Please read that to familiarize yourself with what is involved. This release can be checked out from the MarcusCom CVS repository. Also be sure to download the ``marcusmerge'' script from the same URL to merge this tree into your main ports tree.

    2003 November 14 GNOME 2.5.1 available for FreeBSD

    The GNOME 2.5.1 desktop, "Hey, at least I'm housebroken" release, is now available for FreeBSD. This release is jammed packed with goodies including Evolution 1.5, gnome-network, gDesklets, and monkey-bubble. Those with iron constitutions, and a thirst for bug hunting should check out the ``ports'' module from the MarcusCom CVS repository. If you have not done so already, be sure to get the ``marcusmerge'' script from the above URL to aid in the upgrade. A man page for the script can also be found at the above URL.

    November 29 GNOME 2.4.1 available for FreeBSD

    The GNOME 2.4.1 desktop, the "Better late than never" release, is now available for FreeBSD. Due to the 5.2 ports freeze, GNOME 2.4.1 will not officially enter the FreeBSD ports tree until after 5.2 is released. However, it can be obtained from the MarcusCom CVS repository with the help of the ``marcusmerge'' script. For a complete list of what's changed, checkout the release announcement.

    GNOME 2.5.0 available for FreeBSD

    The GNOME 2.5.0 desktop, the "Obviously you're not a golfer" release, is now available for FreeBSD. FreeBSD GNOME junkies can check out this release from the MarcusCom CVS repository. Be sure to get the latest copy of the ``marcusmerge'' script while you're there to help with the upgrade. Thanks to a few of our users, there is also a man page to go with this script. NOTE: this is a developers release, and bugs will exist. If you're not into bug-hunting, you should probably steer clear until 2.6.0 is released.

    12 Pav Lucistnik joins the FreeBSD GNOME Team

    Pav Lucistnik has been granted a commit bit, and has been added as the newest member of the FreeBSD GNOME team. Pav will be involved in all aspects of the FreeBSD GNOME project, and we're excited to have him aboard. Please join us all in welcoming Pav to the FreeBSD GNOME team!

    October 24 GNOME now builds on ia64

    Thanks to work by Marcel Moolenaar, the GNOME desktop now builds on ia64. There are runtime issues to be resolved, but this was expected. Most importantly, we have new ways to exercise FreeBSD/ia64 in general and KSE/ia64 in particular. Not to mention that we can proceed porting and building other GNOME ports. GNOME for FreeBSD now runs on i386, Alpha, Sparc64, and ia64.

    16 Adam Weinberger celebrates one year with the FreeBSD GNOME Project

    It's been one year since Adam Weinberger (aka adamw, aka lemniscate) signed his soul over to our project. Since then, project documentation readability is at an all-time high, we have more wacky GNOME games in the tree than ever before, and we're keeping up quicker with GNOME releases. Thanks, Adam!

    September 10 GNOME 2.4.0 available for FreeBSD

    The GNOME 2.4.0: "Temujin" has been released, and is now available for FreeBSD. Due to a timing conflict with the upcoming FreeBSD 4.9-RELEASE, GNOME 2.4 will not make it into the official ports tree until sometime in early October. In the meantime, you can get the ports from the MarcusCom CVS repository. Get the ``marcusmerge'' script to help you with the upgrade. If you already have this script, download it again as it has been updated. Thanks to all those who made this release possible.

    4 GNOME 2.4 Release Candidate 1 available for FreeBSD

    The GNOME 2.4 Release Candidate 1 (aka "Kublai") desktop has been released and ported to FreeBSD. Those wanting to make GNOME 2.4 the best release ever should checkout the ``ports'' module per the instructions at the MarcusCom CVS repository. Be sure to get the ``marcusmerge'' script as well to with the upgrade (even if you already have this script, download it again as it has been updated). Note, this release will identify itself as GNOME 2.3.90, but it is, in fact, GNOME 2.4 Release Candidate 1.

    August 30 GNOME 2.4 Beta 2 desktop available for FreeBSD

    The GNOME 2.4 Beta 2 (aka "Subotai") desktop has been released and ported to FreeBSD. This final beta is deep-frozen, meaning the final 2.4 will have very few, if any, source code changes from this release. The few, the brave, the testers should checkout the ``ports'' module per the instructions at the MarcusCom CVS repository. Be sure to get the ``marcusmerge'' script as well to help with the upgrade. Note, this release will identify itself as 2.3.7, but it is, in fact, GNOME 2.4 Beta 2.

    17 GNOME 2.4 Beta 1 desktop available for FreeBSD

    The GNOME 2.4 Beta 1 (aka "Jelme") desktop has been released, and ported to FreeBSD. For those of you chomping at the bit to test drive this baby, checkout the ``ports'' module per the instructions at the MarcusCom CVS repository. Be sure to get the ``marcusmerge'' script as well to help with the upgrade. Note, this release will identify itself as 2.3.6, but it is, in fact, GNOME 2.4 Beta 1. For a list of what has changed between GNOME 2.2 and 2.4 checkout http://www.ilug-cal.org/GNOME_2_4.html.

    14 Alexander Nedotsukov joins the FreeBSD GNOME Team

    Alexander Nedotsukov has been granted a commit bit, and has joined the FreeBSD GNOME team. Alexander will be working on general GNOME desktop porting and bug-busting as well as focusing on his ports of the GNOME 2 C++ bindings. Please join us in welcoming Alexander to the team!

    3 GNOME 2.3.5 desktop available for FreeBSD

    The GNOME 2.3.5 desktop, the "Jebe" release, is now available for FreeBSD. Bleeding-edge GNOME fans can check out this release from the MarcusCom CVS repository. Be sure to get the ``marcusmerge'' script as well to help with the upgrade.

    July 15 GNOME 1.4 Removed from FreeBSD

    The GNOME 1.4 Desktop has been removed from FreeBSD. Users are encouraged to upgrade to GNOME 2.2 which offers many improvements over the older desktop. This follows the GNOME announcement that development on the 1.4 desktop had stopped.

    12 GNOME 2.2.2 desktop available for FreeBSD

    The GNOME 2.2.2 desktop has been released and ported to FreeBSD. GNOME 2.2.x is available in the main FreeBSD ports tree. Simply cvsup your ports, and upgrade. Packages may take a while, however. For details on what is new and what has been fixed, please see the GNOME 2.2.2 change log.

    7 GNOME 2.3.3 desktop available for FreeBSD

    The GNOME 2.3.3, "The Four Hounds", has been released and ported to FreeBSD. Hearty adventurers should checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi, and download the ``marcusmerge'' script to aid in the upgrade.

    May 22 GNOME 2.3.2 desktop available for FreeBSD

    On time, and featuring gnopernicus, the FreeBSD GNOME team presents the next GNOME 2.3 development snapshot, the "Little Hero" release. Testers should checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi, and download the ``marcusmerge'' script to aid in the upgrade.

    15 GNOME 2.3.1 desktop available for FreeBSD

    It's a bit late, but here none the less. For those willing to live on the edge, the next installment of the GNOME 2.3 development snapshot, code named "Daddy Walrus," has been ported. This snapshot lacks three ports found in the official GNOME distribution. They are gnopernicus, gnome-speech, and gnome-system-tools. The latter is missing because it does not fully work with FreeBSD, while the two former components rely on festival, which is broken on -CURRENT. To help out with the testing, checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi. Be sure to download the ``marcusmerge'' script as well to aid in upgrading existing ports.

    April 13 GNOME 2.3.0 desktop available for FreeBSD

    Calling all testers! The first of the GNOME 2.3 development releases is now available. Code named "Mighty Atom," this release includes quite a few new proposed modules. The GNOME 2.3 snapshots will become the GNOME 2.4 desktop on or around September 8. The full scoop can be found here. Those wanting to test this release should checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi. Be sure to download the ``marcusmerge'' script from the same page. This script will help you merge the GNOME development ports tree into your main ports tree. Send all questions to freebsd-gnome@FreeBSD.org.

    4 GNOME 2.2.1 Desktop available for FreeBSD

    Now that 4.8-RELEASE is out the door, the ports freeze has lifted, and GNOME 2.2.1 has been committed. GNOME 2.2.1 is a bugfix and performance release. However, it does boast "the best Nautilus ever." More details can be found at http://www.gnomedesktop.org/article.php?sid=986.

    February 7 GNOME 2.2 Desktop available for FreeBSD

    The GNOME 2.2 Desktop has been released, and ports are available for FreeBSD. Checkout the GNOME 2.2 release notes for the full scoop on what has changed. A list of known issues with the FreeBSD port can be found here.

    January 28 GNOME 2.2 Release Candidate 2 available for FreeBSD

    The GNOME 2.1.91, "OUTATIME" release, is now available, and ports have been made for FreeBSD. This is the last release candidate before GNOME 2.2 is released on February 5. For those wanting to test this release, checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi. A script is also provided at that site to help in merging this tree with the official FreeBSD ports tree.

    19 GNOME desktop 2.0.3 available for FreeBSD

    The GNOME 2.0.3 desktop has been completed for FreeBSD after the long ports freeze to prepare for 5.0-RELEASE. This new release includes a variety of bugfixes over 2.0.2, as well as some polishing off of promised GNOME 2.0 features.

    12 GNOME desktop 2.2 Release Candidate 1 available for FreeBSD

    The GNOME 2.1.90 desktop, "1.21 Jigawatts" release, is available, and ports have been made. This is the first release candidate for GNOME 2.2, and is considered to be quite stable. People wanting to test this release should checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    2002 December 22 GNOME 2.1.5 desktop available for FreeBSD

    The GNOME 2.1.5 desktop, "Enchantment Under the Sea" release, is available and ports have been made. Testers should checkout the ``ports'' module via anonymous CVS per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    12 GNOME 2.1.4 desktop available for FreeBSD

    The GNOME 2.1.4 desktop, "We don't need... roads" release, is available and port have been made. For those wanting to participate in the testing, the ports are available via anonymous CVS from MarcusCom. Checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    1 GNOME 2.1.3 desktop available for FreeBSD

    The GNOME 2.1.3 desktop, "Twin Pines" release, is available and ports have been made for it (including the GStreamer components!). For those wanting to test this next installment in the 2.1 developer series, ports are available via anonymous CVS from MarcusCom. Checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    GNOME 2 to be the default GNOME in 5.0-RELEASE

    GNOME 2.0.2 will be the default GNOME desktop in the upcoming FreeBSD 5.0-RELEASE. The default desktop installation will come with both the Sawfish and Metacity window managers.

    November 24 FreeBSD GNOME news updates now available in RDF format

    The news updates from the FreeBSD GNOME Project can now be downloaded in RDF format. Simply point your RDF consumer at - - http://www.freebsd.org/gnome/news.rdf. + + http://www.FreeBSD.org/gnome/news.rdf.

    12 GNOME 2.1.2 desktop available for FreeBSD

    The GNOME 2.1.2 desktop, "Life Preserver" release, is available, and ports have been made for most of it. There are still some FreeBSD issues with the new GStreamer stuff, and some of the newer modules (such as system-tray) haven't yet been ported. For those wanting to test this latest development snapshot, ports are available via anonymous CVS from MarcusCom. Checkout the ``ports'' module per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    October 26 GNOME 2.1.1 desktop available for FreeBSD

    The GNOME 2.1.1 desktop, "Flux Capacitor" release, is available, and ports have been made for those wanting to test this next installment of the GNOME 2.2 development version. The ports are available via anonymous CVS from MarcusCom. Checkout the ``ports'' per the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    13 GNOME 2.1.0 desktop available for FreeBSD

    The GNOME 2.1.0 desktop, "88MPH" release is available, and ports have been made for those wanting to test. The ports are available via CVS from MarcsuCom. A cvsweb interface is available from http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi. The module name is ``ports''. Instructions for checking out the ports is available at the cvsweb site.

    September 15 GNOME 2.0.2 Final Released

    GNOME 2.0.2 development API and desktop has been released today (just in time for 4.7-RELEASE)! The ports tree is in sync with 2.0.2, and i386 -stable packages are available from MarcusCom.

    11 GNOME 2.0.2 RC1 Released

    GNOME 2.0.2 Release Candidate 1, "The Considerable Duck", is now available. The ports tree is already in sync with this release, as is the package distribution at MarcusCom.

    August 15 GNOME 2.0.1 Officially Released!

    GNOME 2.0.1 was officially released today. More info can be found at http://www.gnome.org/start/2.0/. The ports collection is already in sync with 2.0.1, and 2.0.1 packages are available for i386 -stable from http://www.marcuscom.com/downloads/packages/gnome/.

    14 GNOME 2 Packages Now Available!

    GNOME 2 packages for i386 FreeBSD-stable have been posted to http://www.marcuscom.com/downloads/packages/gnome/. Both .tgz and .tbz packages have been posted. This includes everything needed to install GNOME 2 except for XFree86. These packages were built using XFree86 4.2.0 which is available in package format from a variety of locations. Please send email to freebsd-gnome@FreeBSD.org if you have any problems.

    10 GNOME 2 Desktop Updated to 2.0.1 Release Candidate 1

    The GNOME 2 components have now been updated to the just-announced GNOME 2.0.1 Release Candidate 1: "Not Considered Harmful" release.

    June 30 GNOME 2.0 Officially Released

    The FreeBSD GNOME team is proud to announce that GNOME 2.0 Release has been ported to FreeBSD. This comes four days after the GNOME Project made their press release. Look for documentation updates to cover the new GNOME 2.0 desktop.

    15 GNOME 2 components update to Release Candidate 1

    GNOME 2 on FreeBSD is now up to the "Fever Pitch" RC1. This is supposedly going to be the final release candidate for GNOME 2, with a final release coming around June 21.

    11 GNOME 2 components updated to the latest snapshot

    GNOME 2 components have been updated to the "Release formerly known as..." release snapshot. This brings a number of GNOME 2.0 components to 2.0.0. GNOME 2.0 release is imminent!

    May 28 GNOME 2 components updated to the latest snapshot

    GNOME 2 components have been upgraded to "Stay on target!" release snapshot. This brings a whole new round of bug fixes and GUI improvements to GNOME 2.

    21 Full port of GNOME2 beta 5 release is available

    The FreeBSD GNOME Team has finished porting of GNOME2 beta 5 release to FreeBSD. All existing ports were updated and many missed were added. The FreeBSD Ports Collection now contains all bits and pieces of the GNOME2 platform, both desktop and development ones.

    The team now works on improving quality of the port, by tracking down FreeBSD-specific problems and fixing them. Another goal is to provide set of pre-built GNOME2 binary packages on the official FreeBSD 4.6 release media along with GNOME 1.4 bits and pieces.

    We would encourage any help from our users in the form of problem reports, patches, suggestions etc.

    April 26 GNOME2 ports updated to GNOME2 beta4 release

    All components of GNOME2 Platform already ported to FreeBSD have been updated to the latest versions found in the official GNOME2 beta4 distribution.

    6 GNOME2 ports updated to GNOME2 beta3 release

    All components of GNOME2 Development Platform already ported to FreeBSD have been updated to the latest versions found in the official GNOME2 beta3 distribution.

    5 Joe Clarke now committer

    Joe Marcus Clarke has been granted a FreeBSD commit bit (direct access to the cvs repository). His main focus as a committer will be FreeBSD GNOME, so that expect much faster problem resolution than ever. It is also expected that he would revive somewhat stalled GNOME2 porting effort. Welcome aboard, Joe!!!

    March 12 Mozilla 0.9.9 is out

    Mozilla 0.9.9 is out bringing many bugfixes and new features and FreeBSD port was updated accordingly. Update is strongly recommended to all current users.

    11 GNOME2 ports updated to GNOME2 beta2 release

    All components of GNOME2 Development Platform already ported to FreeBSD have been updated to the latest versions found in the official GNOME2 beta2 distribution. Thanks to Joe Marcus Clarke for his help.

    February 10 Work on porting GNOME2 platform to FreeBSD has begun

    The FreeBSD GNOME team started some initial work on getting GNOME2 bits and pieces running on FreeBSD. The work is expected to take quite some time, though some initial set of ports making up core of the GNOME2 platform would be committed to the FreeBSD ports repository as soon as possible.

    January 31 New FreeBSD GNOME site up and running

    Brand new FreeBSD GNOME site is up and running. Many thanks to all who make it possible, particularly Joe Marcus Clarke and John Merryweather Cooper.

    29 Ade is back!

    Famous Ade Lovett, who was one of the main founders of the FreeBSD GNOME porting effort, but due to various reasons had left the FreeBSD GNOME team in June 2001 decided to re-join us. This is truly amazing news, because we still have many things to do, so that his help and huge experience in the field would be really useful.

    28 Several core GNOME components updated

    Several core GNOME ports were updated to the latest versions (gnomelibs, gnomecore, glade etc.) Please follow usual instructions to update your system.

    diff --git a/en/internal/photos.sgml b/en/internal/photos.sgml index 185b594352..f0b7180c4f 100644 --- a/en/internal/photos.sgml +++ b/en/internal/photos.sgml @@ -1,86 +1,86 @@ - + %includes; ]> &header;

    20th Chaos Communication Congress, Berlin, Dec 2003

    Pictures from the event by Josef.

    LinuxTag 2003, Karlsruhe, Jul 2003

    Pictures from Linuxtag by Josef.

    BSDCon Europe 2002, Amsterdam, Nov 2002

    -Pictures +Pictures Photos & comments by Wilko.

    BSDCon Europe 2001, Brighton, Nov 2001

    Pictures

    BSDCon 2000, Monterey, October 2000

    Photos by Will

    LinuxWorld 2000, February 2000

    Photos by jkh.

    -

    +

    BSD Social Event Berlin, October 1999

    Oxford (UK) FreeBSD meeting, November 1998

    Photos and text by Nik. Organised by Paul Richards.

    Dutch FreeBSD meeting, October 1998

    Photos by Jordan and Wilko

    BSD Social Event Hamburg, June 1998

    Aled Morris, Andre Oppermann, Andreas Klemm, Andrew Gordon, Christoph Badura, Dirk Meyer, Frank Nobis, Harald Klatte, Joerg Wunsch, Jonathan Laventhol, Lars Gerhard Kuehl, Martin Cracauer, Stefan Bethke, Stefan Esser, Stefan Huerter, Stefan Zehl, Stephan Forth, Thomas Gellekum

    AUUG Spring conference, Sydney, September 1998

    Richard Stallman, Peter Wemm, Mark White, Andrew McRae, Greg Rose, many unidentified.

    Summer 1998 USENIX, New Orleans

    Branson, David Greenman, David O'Brien, Greg Lehey, Guido van Rooij, John Polstra, Jonathan Bresler, Jordan Hubbard, Justin Gibbs, Luigi Rizzo, Mark Murray, Mike Smith, Monique van Rooij, Ollivier Robert, Philippe Regnauld, Poul-Henning Kamp, Sharon, Steve Mann

    FreeBSD Social Event Aachen, 1995

    Aled Morris, Christoph Kukulies, Guido van Rooij, Jonathan Leventhol, Jörg Wunsch, Martin Welk, Michael Reifenberger, Patrick Hausen, Paul Richard, Paul Richards, Poul-Henning Kamp, René de Vries, Stefan Esser, Ulf Kieber, Wilko Bulte

    FreeBSD Internal Home &footer; diff --git a/en/internal/rtp.sgml b/en/internal/rtp.sgml index 9733045a23..32d49e89c9 100644 --- a/en/internal/rtp.sgml +++ b/en/internal/rtp.sgml @@ -1,176 +1,176 @@ - + %includes; ]> &header;

    This page documents the machine resources currently available in the Rtp.FreeBSD.org network for use by the FreeBSD committers.

    For a list of SSH host keys and their fingerprints for the Rtp.FreeBSD.org machines, please see +href="http://people.FreeBSD.org/~jwd/rtp/ssh-keys.asc"> this file.

    All host names in the Rtp.FreeBSD.org domain

    The following systems are visible on the external network:

    Host OS Purpose Owner(s)
    Triangle 4-STABLE Admin/Email/Web/releng4 snapshot builder committers
    8ball 5-CURRENT Ports/INDEX verification builds committers
    9ball CURRENT periodic -CURRENT ISOs showing up on releng4.FreeBSD.org committers
    Cueball CURRENT tinderbox committers
    Stanley CURRENT generic/amd64 porting committers

    The following systems are only visible after first logging in to one of the above systems:

    Host OS Purpose Owner(s)
    bankshot CURRENT available committers

    Hardware configurations

    +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.triangle">dmesg.boot +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.8ball">dmesg.boot +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.9ball">dmesg.boot +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.cueball">dmesg.boot +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.stanley">dmesg.boot +href="http://rtp.FreeBSD.org/~jwd/dmesg/dmesg.bankshot">dmesg.boot
    Host Type Hardware
    Triangle AMD Athlon MP 2200+, 2GB mem, dmesg.boot
    8ball AMD Athlon MP 1900+, 2GB mem, dmesg.boot
    9ball Intel x86 P4 HT-enabled 2.8GHz, 1GB mem, dmesg.boot
    cueball Intel x86 Dual Xeon HT enabled 2.8GHz, 3GB mem, dmesg.boot
    Stanley AMD64 Dual Opteron 240, 6GB mem, dmesg.boot
    bankshot Intel x86 Dual Xeon HT enabled 2.8GHz, 4GB mem, dmesg.boot

    Home directory services are provided by a dedicated NFS/RAID5 protected server mounted on /home. Each machine contains a ccd scratch area mounted on /vol/vol0 also available via the /users symlink. These machines are inter-connected at 100Mbit/sec full-duplex. All systems have serial consoles and remote power capability. Currently, full console and power control is available on bankshot.rtp to the developer community on a first come, first serve basis.

    Administrative Policies

    All requests should be sent to admins AT Rtp.FreeBSD.org.

    User account creation is based on access to the FreeBSD.org cluster and commit bit validity.

    FreeBSD Internal Home &footer; diff --git a/en/java/advocacy.sgml b/en/java/advocacy.sgml index 476d60accc..23beff8b93 100644 --- a/en/java/advocacy.sgml +++ b/en/java/advocacy.sgml @@ -1,25 +1,25 @@ - + %includes; ]> &header;

    We would like to have FreeBSD known as the stable &java; platform.

    Request for Enhancement to Sun:
    We have petitioned Sun to provide an official FreeBSD port. We are currently in 2nd place in the vote count. If you are a member of the Java Develop er's Connection (it's free), you can vote for it as well http://developer.java.sun .com/developer/bugParade/bugs/4288745.html

    Petition IBM for a port to FreeBSD: -
    In October, 1999, IBM released a new version of their IBM Developer Kit for Linux. We would like to see them release one for FreeBSD. If anyone has a point of contact in IBM that could spearhead this petition, please let Patrick Gardella know. +
    In October, 1999, IBM released a new version of their IBM Developer Kit for Linux. We would like to see them release one for FreeBSD. If anyone has a point of contact in IBM that could spearhead this petition, please let Patrick Gardella know.

    &footer diff --git a/en/java/dists/11.sgml b/en/java/dists/11.sgml index dd9e7397fe..ae7209b60f 100644 --- a/en/java/dists/11.sgml +++ b/en/java/dists/11.sgml @@ -1,115 +1,115 @@ - + %includes; ]> &header;

    The latest version is -jdk1.1.8_ELF.V1999-11-9.tar.gz. +jdk1.1.8_ELF.V1999-11-9.tar.gz. for ELF (FreeBSD versions 3 or 4) or for older 2.2 releases you can grab jdk1.1.8_AOUT.V1099-11-9.tar.gz. Patches which were used to build both releases are available -here. These are only useful if you have the actual Java source code. +here. These are only useful if you have the actual Java source code.

    In addition, the appropriate internationalized JRE™ releases are also available.

    You might trying getting it from a site that is a bit closer to you, or you might be http impaired. Try to get it from one of these mirrors.:

    These releases do not require a Motif license as they are compiled against a Motif library which allows public distribution of the JDK libraries and binaries.

    README.FreeBSD:

     JDK1.1.8 for FreeBSD
     --------------------
     Fixed in this release:
     - Printing from the JDK should now work reliably.
     - Updated to now use the assembly version of the interpreter.  Performance
       should be increased.
     - Better handling of signals like DIVIDE and SIGFPE which are trapped and
       handled correctly now.
     - The ELF version should work better with AWT/Swing applications.  The
       FreeBSD project donated a more modern copy of Motif that should avoid
       some weird X errors that occurred previously.
     
     For best results, we suggest you run the most recent releases of FreeBSD,
     which are 2.2.8 for the a.out releases, and FreeBSD 3.2R, to take advantage
     of the fixes in those releases.
     
     If you find bug or have bug-fixes you'd like to see integrated, please send
     email to 'java-port@FreeBSD.org' so we can make future releases even better.
     
     Known Bugs/Limitations:
     ------------------------------------
     The number of sockets that can be used at any one time is hard-coded ahead
     of time (at this time, it's 2000).  This is not necessarily a limitation of
     the FreeBSD kernel, but coming up with a 'dynamic' scheme is non-trivial so
     none of the developers has written the code, and no-one else has
     provided any patches to the development team.  If this is important to you,
     we welcome any patches to provide a more 'dynamic' scheme that doesn't limit
     the number of file descriptors (sockets).
     ------------------------------------
     To make a distribution that works without X *and* with X, two binaries
     are provided. The first is linked without X, and is the standard binary.
      The second binary is linked against a static version of X, and against
     the shared X libraries.  The version used is controlled by the setting
     of the DISPLAY environment variable, which is used by X to determine
     where to send the output.
     
    &footer; diff --git a/en/java/dists/13.sgml b/en/java/dists/13.sgml index 8381c11183..e11295a6cc 100644 --- a/en/java/dists/13.sgml +++ b/en/java/dists/13.sgml @@ -1,230 +1,230 @@ - + %includes; ]> &header;

    December 19, 2003: Greg Lewis has released an updated patchset (patchlevel 9) for the JDK 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release contains many fixes and improvements, so please upgrade before reporting a problem.

    February 12, 2003: Greg Lewis has released an updated patchset (patchlevel 8) for the &jdk; 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release is the first release for the JDK 1.3.1 software which has passed Sun's compatibility tests. It contains many fixes and improvements, so please upgrade before reporting a problem.

    July 26, 2002: Greg Lewis has released an updated patchset (patchlevel 7) for the JDK 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release contains many fixes and improvements, so please upgrade before reporting a problem.

    February 13, 2002: Greg Lewis has released an updated patchset (patchlevel 6) for the JDK 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release contains many fixes and improvements, so please upgrade before reporting a problem.

    October 16, 2001: Greg Lewis has released an updated patchset (patchlevel 5) for the JDK 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release contains many fixes and improvements, so please upgrade before reporting a problem.

    September 10, 2001: Greg Lewis has released an updated patchset (patchlevel 4) for the JDK 1.3.1 software and updated the ports/java/jdk13 port accordingly. The updated patches may be found, as usual, at http://www.eyesbeyond.com/freebsddom/java/jdk13.html
    This release contains many fixes and improvements, so please upgrade before reporting a problem.

    August 27, 2001: Greg Lewis has released a long-awaited port of the JDK 1.3.1 software. It can now be built from the ports directory ports/java/jdk13. It should be noted that all notes below apply and it is still very much a developer-only release and it is not recommended for use in production environment.

    July 16, 2001: Greg Lewis releases patches for developers interested in building a native FreeBSD JDK 1.3.1. It should be noted that this is very much a developer only release and will not build a working JDK. The patches are primarily being released as an opportunity for interested people to be able to contribute to the porting effort without having to start from scratch. The patches and some cursory build instructions may be downloaded at http://www.eyesbeyond.com/freebsddom/java/jdk13.html

    September 15, 2000: Andrew Gallatin and Sean O'Connell have been working on getting IBM's JDK 1.3 working. To make them work on your system, you will have to patch some of your FreeBSD sources. They have provided patches based on your version:
    4.0-RELEASE -
    +
    4.0-STABLE
    -CURRENT (pre-SMPng)

    To quote Drew's message:

     I've finally gotten the IBM jdk 1.3 working. I haven't tested it very
     heavily    AWT stuff seems to finally work though.
     
     Here's an updated patchset to a pre-SMPng -current. The patchset
     does the following:
     
     - changes MINSIGSTKSZ from 8192  to 2048
     - implements linux_rt_sendsig() & linux_rt_sigreturn()
     - implements userland sigtramp code for linux_rt_sigreturn()
     - implements linux_to_bsd_sigaltstack & bsd_to_linux_sigaltstack() to
             fix a bug in linux_sigaltstack & to avoid lots of cut-n-paste in
             linux_rt_sigreturn().  This also fixes the "Java HotSpot(TM)
             Client VM warning: cannot uninstall alt signal stack" one sees with
             Sun's 1.3 JDK.
     - changes the MAP_STACK flag to MAP_ANON for  LINUX_MAP_GROWSDOWN
             mmaps.  This was the final step in getting it working.  Any VM gurus
             out there want to talk about this one?  There's apparently
             something wrong with autogrowing linux thread stacks[*]
     
     Patches at: http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/diff
     
     [*]The "problem" is the heuristic used by vm_map_growstack() to
     determine whether the stack part of the main process stack.  We
     currently use:
     
             is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr;
     
     where vm->vm_maxsaddr comes from exec_new_vmspace():
             vmspace->vm_maxsaddr = (char *)USRSTACK - MAXSSIZ; 
     
     The IBM JDK's main thread reduces it's stack size to rlim_cur=2040*1024.
     It then creates stacks for its threads at addresses which are greater
     than vm_maxsaddr but less than the current bottom of the main process
     stack as defined by p->p_rlimit[RLIMIT_STACK].rlim_cur. The first time
     a thread accesses something requiring this region to grow, it goes
     down in flames.
     

    And Sean's email:

     I did a Quick&Dirty MFC of Andrew Gallatin's work on getting the 
     IBM Java SDK to work.  I was able to run the appletviewer on one
     of the demos and it worked.  I cannot say much more than that.
     
     The patches are all relative to /usr/src (or / since they are
     all in sys )
     
     The majority of the patches are for files in /sys/i386/linux.
     You should be able to apply the patch; cd to /sys/modules/linux;
     type make; kldunload linux; type make install; and kldload linux
     
     There is an additional change which sets the MINSIGSTKSZ to 2048
     in sys/sys/signal.h .. this will require a kernel rebuild to
     take effect.
     

    July 18, 2000: Ernst de Haan has done some work getting Sun's Linux JDK 1.3.0b9 to run on 4.0-STABLE. The .java_wrapper file can be found - + here. (Don't forget to rename it to .java_wrapper)

    Ernst's email:

     Just one more hint: Change the jre/lib/jvm.cfg and put the last line on
     top. So you will get:
     
        -classic
        -hotspot
        -server
     
     I _do_ get one warning, BTW, when running the Swing app:
     
        Warning: Cannot convert string "MetaCtrl<Key>Insert" to type VirtualBinding 
     
     Ernst
     
     
     Ernst de Haan wrote:
     > Hi folkz,
     > 
     > I have the Sun JDK 1.3.0 for Linux, beta 9 running on my FreeBSD
     > 4.0-STABLE system. Runs pretty nicely too.
     > 
     > java -version reports:
     > 
     >    bash-2.04$ java -version
     >    expr: syntax error
     >    java version "1.3.0beta_refresh"
     >    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0beta_refresh-b09)
     >    Classic VM (build 1.3.0beta_refresh-b09, green threads, nojit)
     > 
     > The first line with the syntax error is a small problem with
     > .java_wrapper, but it seems harmless. I had to make some modifications
     > to the .java_wrapper script to make it work on my system. I've attached
     > the version I use.
     > 
     > I haven't done much testing yet, but I have tried a single Swing
     > application. I did notice some differences in fonts, but it all seems to
     > work pretty nice and fast :)
     > 
     > Wow, soon FreeBSD will be the platform with the greatest number of
     > working JDKs on it, once we get WINE to work so we can run the Windows
     > JDKs too, and write an AS/400 emulator, and... and... ;-)
     > 
     > Ernst
     > 
     > P.S.  Thanks go to Victor Salaman how pointed me in the right direction.
     >       He has been running the Sun JDK 1.3 for Linux for quite a while.
     

    January 29, 2000: Work has not begun on the JDK 1.3 port. It will not be until after our JDK 1.2 release is done that we will begin on JDK 1.3.

    &footer; diff --git a/en/java/docs/performance.sgml b/en/java/docs/performance.sgml index e9d504ff2a..c71251cd6f 100644 --- a/en/java/docs/performance.sgml +++ b/en/java/docs/performance.sgml @@ -1,184 +1,184 @@ - + %includes; ]> &header;

    Introduction:

    Much has been talked about recently with Sun's decision to release an official port of Java for Linux. This study was done to compare the actual performance of the Blackdown -Linux Port with the FreeBSD Port +Linux Port with the FreeBSD Port of the &jdk;.

    Summary:

    The Linux port is faster than the FreeBSD port, even when the JITs are taken into account. For graphic intensive applications, all the FreeBSD tests are faster than the Linux, with FreeBSD/TYA being the fastest overall. Comparing the Linux port with the FreeBSD port, each with no JIT running, FreeBSD is faster. We may conclude that, when running on FreeBSD, the JIT design makes the difference in speed.

    Testing Methods:

    All tests were run on FreeBSD 3.4-RC (Tue Dec 7 09:14:51 EST 1999) on a Dual Pentium 200 SMP machine with 128 Megs RAM. Tests were conducted with Pendragon Software's Caffeine Mark 3.0 software using the "Run all tests locally" option.

    Software Versions:

    The following is a list of the software used in this test:
    FreeBSD JDK 1.1.8
    Blackdown's JDK 1.2.2-RC3 (under Linux emulation)
    ShuJIT 0.3.13
    TYA 1.5

    Summary Results

    Test 1 Test 2 Test 3 Test 4 Test 5 Average
    Linux JDK 1.2.2/no JIT 222 223 224 225 222 223
    FreeBSD JDK 1.1.8/no JIT 247 247 247 250 247 246
    Linux JDK 1.2.2/standard JIT 539 550 543 544 535 542
    FreeBSD JDK 1.1.8/shujit 373 376 369 374 373 373
    FreeBSD JDK 1.1.8/TYA 478 477 478 479 483 479

    Sample Detailed Results:

    Sieve Loop Logic String Float Method Graphics Images Dialog
    Linux JDK 1.2.2/no JIT 380 434 433 489 363 337 306 25 40
    FreeBSD JDK 1.1.8/no JIT 318 456 434 393 381 381 344 77 37
    Linux JDK 1.2.2/standard JIT 1361 2005 3354 872 1161 1802 247 28 40
    FreeBSD JDK 1.1.8/shujit 800 1566 2191 588 1010 101 317 79 37
    FreeBSD JDK 1.1.8/TYA 712 1467 2352 949 1078 512 357 74 38

    Conclusion:

    Newer versions of the software used in the tests above been released since this test was conducted. For this reason, these tests will be run again in the near future to see if the newer JITs for FreeBSD alter the results. The same JITs will be used with the Linux JDK to test their effects as well.

    Tester:

    -

    These tests were conducted by Patrick Gardella patrick@freebsd.org in December 1999.

    +

    These tests were conducted by Patrick Gardella patrick@FreeBSD.org in December 1999.

    &footer; diff --git a/en/java/docs/tutorials.sgml b/en/java/docs/tutorials.sgml index 2a923e98fe..440d755c17 100644 --- a/en/java/docs/tutorials.sgml +++ b/en/java/docs/tutorials.sgml @@ -1,21 +1,21 @@ - + %includes; ]> &header;
    -

    We currently do not have any FreeBSD specific tutorials. If you would like to see one, send a message to freebsd-java@freebsd.org. +

    We currently do not have any FreeBSD specific tutorials. If you would like to see one, send a message to freebsd-java@FreeBSD.org.

    Other tutorials may be found here.

    &footer; diff --git a/en/java/howhelp.sgml b/en/java/howhelp.sgml index d6e8803798..98344225d8 100644 --- a/en/java/howhelp.sgml +++ b/en/java/howhelp.sgml @@ -1,70 +1,70 @@ - + %includes; ]> &header;

    I want to:
    ...work on the port itself
    ...help testing
    ...report a bug
    ...write documentation

    So you want to help, do you?

    Working on the &jdk; port requires a firm grasp of C, the FreeBSD architecture, and a lot of time to spare. The changes that need to be made in the code have to do with how FreeBSD differs from Solaris™, so if you don't know these, you will not go very far in the port. We have had many people say they are willing to help, but when they see what is involved, they drop away.

    Having been dutifully warned, here is what you need to do to get involved:

    1. Obtain a license from Sun for the source code
    2. Download the source code
    3. Use Patches Patches and build instructions may be downloaded from http://www.eyesbeyond.com/freebsd-jdk122-patches-latest.tar.gz. Currently open issues and test results may be found at http://kjkoster.org/java/index.html

      AND/OR

    4. Obtain source code "diffs" Notify Nate Williams nate@yogotech.com that you have the license and arrange to gain access to the CVS tree.

      AND/OR

    5. Begin hacking on the sources Begin your porting. Jump right in and start digging.
    6. Let the world know you have finished it!

    You want to help, but do not know C or FreeBSD that well?

    The absolute best thing you can do is download the latest release, install it, and try all your favorite Java applications. If they don't work, see below.

    I have a bug!

    If you find an application that does not work, or crashes, here are the steps you should follow before reporting it:

    1. Try it again.
    2. Check your settings for this application. Check to see if you made a mistake in starting it up.
    3. Try it on a different platform. If you have access to a reference platform, try it there. (We need to determine if it is an application error, a Java bug, or a FreeBSD specific bug.)
    4. Narrow down the problem. If it is your own code, narrow down the bug to the offending code. Otherwise, determine the steps required to reproduce the problem. -
    5. Notify the JDK porting team. Send email to freebsd-java@freebsd.org. Be sure to include the steps you have followed. +
    6. Notify the JDK porting team. Send email to freebsd-java@FreeBSD.org. Be sure to include the steps you have followed.
    7. Finally, and most importantly, be willing to work with the team to fix the problem.

    I can help with the web site or documentation!

    -

    Everyone can help here. If you have a suggestion to add to the documentation, write it up and send it to freebsd-java@freebsd.org +

    Everyone can help here. If you have a suggestion to add to the documentation, write it up and send it to freebsd-java@FreeBSD.org

    &footer; diff --git a/en/java/index.sgml b/en/java/index.sgml index 0e9bf112be..70be50e708 100644 --- a/en/java/index.sgml +++ b/en/java/index.sgml @@ -1,130 +1,130 @@ - + %includes; ]> &header;

    News
    Announcements

    Software
    Getting Java for FreeBSD
    Release Information
    JDK 1.1.x
    JDK 1.2.x
    JDK 1.3.x
    JDK 1.4.x
    Available Ports...
    How can I help?
    I found a bug!?!

    Documentation
    For Newbies
    Tutorials
    FAQ
    Performance Comparison
    Creating Ports...

    Java Resources
    Links
    FreeBSD
    Vendor
    Development Tools
    APIs
    Tutorials
    Documentation
    Resources...
    Servlets

    -
    + Search for:

    This is the official port of Sun's &java; Development Kit for FreeBSD. No known significant bugs exist at this time, but there are no guarantees of usability. However, many commercial companies rely on this port, so it should be safe to use.

    Jump to Java

    The FreeBSD Foundation has negotiated a license with Sun Microsystems to distribute FreeBSD binaries for the Java Runtime Environment (JRE™) and Java Development Kit (&jdk;).

    The current release of the JDK and JRE available via the FreeBSD Foundation is 1.3.1. These binaries have been tested and certified to run with FreeBSD 4.8-RELEASE, but may also work on other 4.X releases. These binaries are not intended for use with FreeBSD 5.X, due to a binary compatibility issue the FreeBSD Foundation is working with the FreeBSD release engineering team to resolve.

    For further information about downloading the JDK and JRE binaries for FreeBSD, please see the FreeBSD Foundation Java Downloads page.

    Need help installing &java; on FreeBSD?

    The Java and Jakarta Tomcat article is a useful guide in helping users setup the &jdk; and the JRE™ on FreeBSD. It also includes a small section on installing Jakarta Tomcat from the Apache Software Foundation.

    &footer; diff --git a/en/java/newsflash.sgml b/en/java/newsflash.sgml index c60680bd3d..370bd39456 100644 --- a/en/java/newsflash.sgml +++ b/en/java/newsflash.sgml @@ -1,549 +1,549 @@ - + %includes; ]> &header;

    December, 2003

    • December 30, 2003:
      Greg Lewis has released the sixth patchset (patchset 6) in the &jdk; 1.4 series. See the JDK 1.4.x page for more details.
    • December 19, 2003:
      Greg Lewis has released an updated patchset (patchset 9) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.

    November, 2003

    • November 11, 2003:
      Greg Lewis has released the fifth patchset (patchset 5) in the &jdk; 1.4 series. See the JDK 1.4.x page for more details.

    October, 2003

    • October 10, 2003:
      Greg Lewis has released the fourth patchset (patchset 4) in the &jdk; 1.4 series. See the JDK 1.4.x page for more details.

    August, 2003

    • August 26, 2003:
      The FreeBSD Foundation announces native support for &jdk; 1.3.1 on FreeBSD.

    March, 2003

    • March 7, 2003:
      Greg Lewis has released the third patchset (patchset 3) in the &jdk; 1.4 series. See the JDK 1.4.x page for more details.

    February, 2003

    • February 12, 2003:
      Greg Lewis has released an updated patchset (patchlevel 8) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.
    • February 4, 2003:
      Greg Lewis has released the second patchset (patchset 2) in the &jdk; 1.4 series. See the JDK 1.4.x page for more details.

    November, 2002

    • November 15, 2002:
      Greg Lewis has released a first patchset (patchlevel 1) for the &jdk; 1.4.0 software. See the JDK 1.4.x page for more details.

    September, 2002

    • September 18, 2002:
      Greg Lewis has released an updated patchset (patchlevel 11) for the &jdk; 1.2.2 software. See the JDK 1.2.x page for more details.
    • September 17, 2002:
      Right after Sun released J2SE 1.4.1 FCS, the Linux version was made available in the FreeBSD Ports system. See J2SE 1.4.1 page for more details.

    July, 2002

    • July 26, 2002:
      Greg Lewis has released an updated patchset (patchlevel 7) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.

    February, 2002

    • February 13, 2002:
      Greg Lewis has released an updated patchset (patchlevel 6) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.

    December, 2001

    • December 22, 2001:
      -

      This was posted to announce@freebsd.org:

      +

      This was posted to announce@FreeBSD.org:

      The FreeBSD Foundation has secured a license from Sun Microsystems to distribute a native FreeBSD version of both the Java Development Kit (&jdk;) and the Java Runtime Environment (JRE). Thanks to the great efforts of the FreeBSD Java team, these should be available for inclusion with the upcoming release of FreeBSD 4.5 in January, 2002.

      The general availability of a distributable version of Java will benefit end users, commercial users, and developers who use FreeBSD. Java continues to grow in popularity and has become heavily used in server side web applications, one of FreeBSD's core areas of strength. With an officially licensed binary Java distribution, FreeBSD becomes an ideal platform for execution, development, and deployment of Java based solutions.

      This agreement would not have been possible without the efforts of Nate Williams. Nate not only started the FreeBSD Java porting effort, but also brought Sun Microsystems and the Foundation together to negotiate a license.

      You can find full text of the announcement here.

    October, 2001

    • October 16, 2001:
      Greg Lewis has released an updated patchset (patchlevel 5) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.

    September, 2001

    • September 10, 2001:
      Greg Lewis has released an updated patchset (patchlevel 4) for the &jdk; 1.3.1 software. See the JDK 1.3.x page for more details.
    • September 6, 2001:
      Maxim Sobolev has created a port of the Sun's Forte[tm] for Java[tm], release 3.0 Community Edition integrated development environment (IDE). It can now be built from the ports directory ports/java/forte.

      The port can be used either with native &jdk; 1.3.1, or with Linux &jdk; 1.3.1.

    August, 2001

    • August 27, 2001:
      Greg Lewis has released a long-awaited port of the &jdk; 1.3.1 software. It can now be built from the ports directory ports/java/jdk13. See JDK 1.3.x for more details.

      It should be noted that this is very much a developer-only release and it is not recommended for use in production environment.

    October, 2000

    • October 14, 2000:
      Maxim Sobolev has produced a port of the &jdk; 1.2.2 software. It can now be built from the ports directory ports/java/jdk12-beta. See JDK 1.2.x for more details.

      All the issues noted below are still in place, however.

      So anyone who has a Java2 port you've been waiting on submitting, now is your chance.

    September, 2000

    • September 15, 2000: From the Java news desk:
      Sean O'Connell and Andrew Gallatin have created patches to enable FreeBSD to run IBM's &jdk; 1.3.
      Ernst de Haan has been able to get Sun's Linux &jdk; 1.3.0b9 running on 4.0-STABLE.

      Full details on both can be found here.

    August, 2000

    • August 10, 2000: On August 7th, 2000, the FreeBSD &jdk; team was given access to Sun's JCK (Java Compatibility Kit), which will allow us to test and (hopefully!) release a binary version using the current set of patches. Unfortunately, we are unable (for legal reasons) to distribute a &jdk; that hasn't been run against the JCK like we were able to with the &jdk; 1.1.* releases.

      Unfortunately, as told by Sun (we have no experience *yet*), running the JCK against the port is a difficult and time-consuming process. Hopefully it won't take us the 3 months that Sun expects it to take. :(

      Finally, there are still some issues regarding Motif® that need to be resolved before a full public release can be made. Sun is working on that front, and we need to try contacting the OpenGroup to see if we can get a special exception for Motif binary distributions to use in the &jdk; release.

    May, 2000

    • May 3, 2000: Native &jdk; 1.2.2 port enters alpha test phase
      Greg Lewis has just announced that the native FreeBSD &jdk; 1.2.2 port has entered alpha test stage.
      In its current form, the port will build and run on most FreeBSD releases (3.4, 4.0 and 5.0 on x86) and work is being done on the others (2.2.8 on x86 and 4.0 alpha). Most demo applets and applications run.
      Currently we are looking for enthusiasts who are willing to spend a little time testing the new port. While this is not a trivial task, there are clear step-by-step instructions on how to build and use the port.
      The patches may be found, as usual on:
      http://www.eyesbeyond.com/freebsddom/java/jdk.html
      More information, open issues and step-by-step instructions may be found at:
      http://www.kjkoster.org/java/index.html
    • May 1, 2000: Request for Enhancement - Now the number 1 RFE
      We have petitioned Sun to provide an official FreeBSD JDK2 port. We are currently in 1st place in the vote count. If you are a member of the Java Developer's Connection (it's free), you can vote for it as well http://developer.java.sun.com/developer/bugParade/bugs/4288745.html

    March, 2000

    • March 22, 2000: Pre-Alpha &jdk; 1.2.2 patches available.
      Greg Lewis releases the pre-alpha patches for enterprising Java users to build their own native FreeBSD &jdk; 1.2.2 from. This process is not for the faint of heart, and the resulting &jdk; is not for production systems. Having said that, most AWT and Swing demo's have been found to run. There is plenty of work to do, and we need all the testers we can find. Patches and build instructions may be downloaded from http://www.eyesbeyond.com/freebsd-jdk122-patches-latest.tar.gz. Currently open issues and test results may be found at http://www.kjkoster.org/java/index.html.

    January, 2000

    • January 30, 2000: Blackdown 1.2.2RC4 &jdk;
      The Linux Blackdown Port Team has released RC4 of &jdk; 1.2. It has been tested on FreeBSD 3.4-STABLE and later and runs all demo applets and jfc demos. Several people have mentioned some problems running it with Apache JServ. Until it can be added to the FreeBSD port tree, it can be found at http://www.jmcm.org/tech/ports/linux_jdk.html. (Reported by Jose Marques)

    November, 1999

    • November 28, 1999:Request for Enhancement
      We have petitioned Sun to provide an official FreeBSD JDK2 port. We are currently in 2nd place in the vote count. If you are a member of the Java Developer's Connection (it's free), you can vote for it as well http://developer.java.sun.com/developer/bugParade/bugs/4288745.html
    • November 9, 1999:Another &jdk; 1.1.8 release to fix a separate class of multicast bugs.

    October, 1999

    • October 11, 1999: Work has re-started on the Java2/&jdk; 1.2 port. Expect an early 'alpha' release in the coming weeks for FreeBSD 3.3-stable/ELF boxes.

    September, 1999

    • September 22, 1999: Re-rolled the &jdk; 1.1.8 yet again to fixup some minor bugs that people have found, as well as to speedup the &jdk;. For details checkout the README.FreeBSD supplied in the releases.
      • jdk1.1.8_AOUT.V99-9-22.tar.gz. For FreeBSD versions 2.2.*, which use the A.OUT binary format.
      • jdk1.1.8_ELF.V99-9-22.tar.gz. For FreeBSD versions 3.* and 4.* which use the ELF binary format.

    July, 1999

    • July 19, 1999: Re-rolled the &jdk; 1.1.8 release to fix a couple of minor (but annoying bugs). First, the netpatch (see below) was incorporated into the build, and second an annoying Floating Point bug was found and fixed. The latter bug affected multi-threaded code that did floating point calculations and based on the code could produce completely bogus results.
      • jdk1.1.8_AOUT.V99-7-19.tar.gz. For FreeBSD versions 2.2.*, which use the A.OUT binary format.
      • jdk1.1.8_ELF.V99-7-19.tar.gz. For FreeBSD versions 3.* and 4.* which use the ELF binary format.
    • July 2, 1999: Organization of FreeBSD 'CommAPI' porting team which is an effort to make JAVA's CommAPI freely available to the FreeBSD community. Project is coordinated by DRICOT Jean-Michel and will officially be maintained in http://student.ulb.ac.be/~jdricot/commapi/. Feel free to contact him if you want to join the project.

    June, 1999

    • June 8, 1999: A small bug was found in the &jdk; 1.1.8 release which affected people using UDP sockets. If you tried to send a packet to the broadcast address, the FreeBSD &jdk; refused with a permissions error. This error was fixed, and rather than re-releasing the entire release a small patchset was re-rolled for those folks who are experiencing this problem. If you experience this problem, feel free to download the gzipped tarfile and untar it wherever you installed the jdk. It will install itself over top of the old version. If you aren't experiencing the bug, there is no need to apply the patch, although it wouldn't hurt.
    • June 3, 1999: &jdk; 1.1.8 for A.OUT and ELF releases. This release adds support for older 3.*/ELF releases (without requiring any runtime loader changes), as well as fixes bugs in LOCALE and timezone support for all FreeBSD releases.
      • jdk1.1.8_AOUT.V99-6-3.tar.gz. For FreeBSD versions 2.2.*, which use the A.OUT binary format.
      • jdk1.1.8_ELF.V99-6-3.tar.gz. For FreeBSD versions 3.* and 4.* which use the ELF binary format.
    • June 1, 1999: JDK2 status
      • Work on &jdk; 1.2/JDK2 has been going very slow as the development team has been focusing it's effort on solid JDK1 releases. For most JDK2 development issues, you can use the JDK1 release and the Swing releases provided by Sun for JDK1, which works very well under FreeBSD.

    April, 1999

    • Apr. 16, 1999: New &jdk; 1.1.7 A.OUT release. This fixes build problems in the March release. A new ELF release will be made to support older 3.0 releases as well sometime in the near future.
      • jdk1.1.7_AOUT.V99-4-16.tar.gz. For FreeBSD versions 2.2.*, which use the A.OUT binary format.

    March, 1999

    • Mar. 26, 1999: ELF support for &jdk; 1.1.7, as well as a new A.OUT release which includes minor bugfixes.
      • jdk1.1.7_AOUT.V99-3-24.tar.gz. For FreeBSD versions 2.2.*, which use the A.OUT binary format.
      • jdk1.1.7_ELF.V99-3-25.tar.gz. For FreeBSD versions 3.x and 4 which use the ELF binary format. Note: This requires changes made to the runtime loader to support dladdr() functionality made on 1999/3/24. You will need to be running 3.1-stable or 4.0-current dated later than 1999/3/24. If you don't have the new loader binary or are not tracking -stable or -current, you can download it from here and install it as /usr/libexec/ld-elf.so.1 (you need to be root to do this):
        # install -c -s -o bin -g bin -m 555 -C -fschg ld-elf.so.1 /usr/libexec
    • Mar. 16, 1999: Updates on current development:
      • ELF &jdk; 1.1.7 : An ELF build of &jdk; 1.1.7 (for use on FreeBSD 3.x and later) is currently entering it's initial internal testing phase. A beta release should be available in a few weeks.
      • JDK2 (aka &jdk; 1.2): Several individuals are working on porting JDK2 to FreeBSD, but the work is progressing slowly. This is primarily due to a lack of developer time to work on this project. (The release of Blackdown's JDK2 port will assist our development when they release their source diffs.)

    December, 1998

    • Dec. 21, 1998: jdk1.1.7.V98-12-21.tar.gz.
      • Bugfix version of &jdk; 1.1.7. Thanks go to Keith White who tracked down a couple annoying (and serious) bugs in the &jdk;, notably the modulo bug. This release also has the 256 file-descriptor limit bumped up to 2048. The JRE should also be much more usable, again thanks to Keith.

    November, 1998

    • Nov. 14, 1998: jdk1.1.7.V98-11-5.tar.gz.

    September, 1998

    • Sept 23, 1998: jdk1.1.6.V98-9-23.tar.gz.
      • The August 14 build had jre incorrectly linked in both the &jdk; and the JRE, so a new release was rebuilt with the correct linkage. Otherwise, there were no changes from the older release.

    August, 1998

    • Aug 22, 1998:
      • Updated page to list numerous sites who have agreed to mirror the &jdk; and provide ftp access. Thanks to all!
    • Aug 14, 1998: jdk1.1.6.V98-8-14.tar.gz.
      • The SO_REUSEADDR option is now correctly set on ServerSockets (may affect other sockets as well.)

    July, 1998

    • July 21, 1998: jdk1.1.6.V98-7-21.tar.gz.
      • Updated port to &jdk; 1.1.6. Thanks go to Keith White kwhite@site.uottawa.ca who did most of the work to make this release happen!
      • More standard 'naming' for java.version and such.
      • Fixes for UDP/Multicast sockets.
      • The signal abort error may be fixed (knock on wood).
      • Add support for the "KOI8-R" and "CP866" encodings.
      • Timezone's now work correctly under FreeBSD (this required some native code, but it is embedded in the &jdk; so shouldn't affect users. However, FreeBSD has one of the few (only?) VM's that correctly support Timezones now).
      • sysRmdir() now correctly removes directories.
      • Link in the xpg4 library to support CJK locales.

    May, 1998

    • May 5, 1998:
      • Updated page to include instruction on how to get Sun's JWS (Java Work Shop) working under FreeBSD.

    February, 1998

    • February 25, 1998: jdk1.1.5.V98-2-25.tar.gz.
      • &jdk;'s built on 2.2.2 should now work again.
      • The AWT now correctly sets the Window name.
      • Fixed obscure bug that could cause a core dump if you hit a button in a dialog box multiple times.
      • Fixed bug where SHMEM wasn't released when using images, causing a leak.
      February 12, 1998:
      • Johan Larsson graciously provided an ftp mirror site for the &jdk;, so if you have an aversion to using HTTP, then feel free to grab it from his site.
      • Replaced the 'Steaming Cup of Java' logo with the 'Jump to Java' logo, which is more politically (and legally) acceptable to SUN's lawyers.
      February 9, 1998: jdk1.1.5.V98-2-8.tar.gz.
      • Fixed bugs in Process.waitFor()
      • Modified the way the Motif library was linked in. This will allow anyone with a Motif library (static or dynamic) to build their own &jdk; once the patchkit is released. If their Motif license allows for it, they can also make binary releases available.
      • Non blocking reads on PIPE did not work reliably on all versions of the OS.
      • Multicast now works.

    January, 1998

    • January, 1998:
      • Organization of FreeBSD &jdk; porting team, which now jointly creates new &jdk; releases for FreeBSD.
      • New &jdk; 1.1.5 binary, which has Motif statically compiled in. (Unfortunately, this release was lost in a disk crash on the ftp server.)
    &footer; diff --git a/en/kse/index.sgml b/en/kse/index.sgml index a5ba017006..4dd709c764 100644 --- a/en/kse/index.sgml +++ b/en/kse/index.sgml @@ -1,240 +1,240 @@ - + %includes; Done"> In progress"> Stalled"> Not Started"> Resolved"> Unresolved"> %developers; ]> &header;

    Contents

    Overview

    Kernel Scheduler Entities (KSE), is a kernel-supported threading system similar in design to Scheduler Activations [Anderson, et. al.]. It strikes a balance between user-level (1:N) and kernel-level (1:1) threading models, giving most of the advantages of both, and few of the disadvantages of either.

    There are two halves of this project: kernel support and user support. The kernel support consists of modifications to the FreeBSD scheduler; The user half is a &posix; threads implementation which takes advantage of the extra facilities the kernel provides.

    The goal is to replace the current user threading system provided by the libc_r library, and the -pthread gcc option, with a new libpthread library which will be linked with the -lpthread gcc option.

    Using KSE

    All KSE development is being done in 5.0-CURRENT. No special kernel configuration options are required to build a kernel with the KSE-related changes (the changes are inextricable from the FreeBSD scheduler).

    In order to use KSE in an application, you need to link it against libpthread; this is straightforward. In the application's makefile(s), change the -pthread compiler switch or -lc_r link option to -lpthread and relink. Alternatively, you can use /etc/libmap.conf to map libc_r to libpthread (see libmap.conf(5)).

    Further Reading

    Project Status

    Following is an incomplete general list of tasks:

    Module Task Responsible Last updated Status
    libpthread Write kse(2) man page documenting new system calls. &a.archie; 10 September 2002 &status.done;
    libpthread Repo-copy the libpthread library from libc_r. cvs meister 16 September 2002 &status.done;
    libpthread Use KSE to schedule processes. &a.mini; 30 October 2002 &status.done;
    libpthread Schedule an idle context when appropriate. &a.mini; 2 November 2002 &status.done;
    libpthread Deliver signals to threads. &a.deischen; &a.davidxu; 28 June 2003 &status.done;
    libpthread Locking for SMP. &a.deischen; 3 May 2003 &status.done;
    kernel Locking for SMP. &a.davidxu; 3 May 2003 &status.done;
    libpthread Launch multiple KSEs (one per CPU). &a.davidxu; 3 May 2003 &status.done;
    libpthread, kernel Implement alpha machine-dependent functions. &a.marcel; 30 Aug 2003 &status.wip;
    libpthread, kernel Implement amd64 machine-dependent functions. &a.davidxu; &a.deischen; 30 Aug 2003 &status.done;
    libpthread, kernel Implement i386 machine-dependent functions. &a.davidxu; &a.deischen; 30 Aug 2003 &status.done;
    libpthread, kernel Implement ia64 machine-dependent functions. &a.marcel; 30 Aug 2003 &status.done;
    libpthread, kernel Implement sparc64 machine-dependent functions. &a.jake; 30 Aug 2003 &status.wip;
    kernel Implement KSE-specific signaling. &a.davidxu; 28 June 2003 &status.done;
    libpthread Implement scope system threads. &a.deischen; 3 May 2003 &status.done;
    kernel Efficient scope system threads (no upcalls when they block). &a.davidxu; 30 Aug 2003 &status.done;
    &footer; diff --git a/en/navigation.xml b/en/navigation.xml index 1ffdde4952..9665aaf1c4 100644 --- a/en/navigation.xml +++ b/en/navigation.xml @@ -1,78 +1,78 @@ - $FreeBSD: www/en/navigation.xml,v 1.2 2004/02/03 22:25:23 ale Exp $ + $FreeBSD: www/en/navigation.xml,v 1.3 2004/02/27 22:07:48 simon Exp $ - + - - - + + + diff --git a/en/news/2000/index.sgml b/en/news/2000/index.sgml index 1dc8e10c1c..543f4699a6 100644 --- a/en/news/2000/index.sgml +++ b/en/news/2000/index.sgml @@ -1,456 +1,456 @@ - + %includes; News Home'> %newsincludes; ]> &header;

    December 2000

    November 2000

    • 30-Nov-2000 Individual porting efforts were moved into the platforms directory. Separate pages for the Alpha, IA-64, PowerPC, and SPARC porting projects can be found there.

    • 22-Nov-2000 FreeBSD 4.2 has been released. Please see the Release Information page for more details. Also be sure to check the release errata after installation for any late-breaking issues with 4.2 that occur.

    • 22-Nov-2000 And yet another new committer: Peter Pentchev (ports)

    • 13-Nov-2000 Yet another new committer: OKAZAKI Tetsurou (ports)

    • 13-Nov-2000 Another new committer: Kazuhiko Kiriyama (ports)

    • 13-Nov-2000 New committer: Dmitry Sivachenko (Mainly ports)

    • 12-Nov-2000 Another new committer: Issei Suzuki (Ports)

    • 06-Nov-2000 Another new committer: Jing-Tang Keith Jang (ports, mostly in the chinese category)

    • 02-Nov-2000 Another new committer: Benno Rice (PowerPC port and OpenFirmware /boot/loader)

    October 2000

    • 26-Oct-2000 Yet another new committer: Doug Barton (mergemaster, and whatever other trouble I can get into)

    • 26-Oct-2000 A new committer: Garance A Drosehn (lpr and friends)

    • 18-Oct-2000 New FreeBSD Core Team Elected! Read the official press release for more information.

    • 16-Oct-2000 A new committer: Jonathan Chen (newcard cardbus)

    • 03-Oct-2000 The complete track schedule for BSDCon has been released. BSDCon is the premiere annual technical conference for BSD users and will be held from October 14-20 in Monterey, CA.

    • -
    • 02-Oct-2000 Doug +

    • 02-Oct-2000 Doug Rabson has made a series of commits to -CURRENT with early IA64 support. The kernel will now reach the mountroot prompt. Please follow the ia64 mailing list for more information.

    • 01-Oct-2000 A new committer: Trevor Johnson (sundry ports, mostly in the audio category)

    • 01-Oct-2000 A new committer: James Housley (ports, especially RTEMS. Side interest in IPv6)

    • 01-Oct-2000 A new committer: Mário Sérgio Fujikawa Ferreira

    September 2000

    August 2000

    July 2000

    June 2000

    • 30-June-2000 http://freshports.org/ has been upgraded to FreshPorts 1.1. The FreshPorts website contains the latest details of which ports have been create/updated/removed. This upgrade, the first since FreshPorts was release in early May, gives you an improved home page, which together with a commit history means you can find out about your ports faster and easier.

    • 29-June-2000 Tucows has added a BSD section.

    • 26-June-2000 A new committer: Shunsuke Akiyama (Optical disk driver)

    • 24-June-2000 FreeBSD 3.5 has been released. Please see the Release Information page for more details. Also be sure to check the release errata after installation for any late-breaking issues with 3.5 that occur.

    • 20-June-2000 A new committer: MIHIRA Sanpei Yoshiro (PC-Card)

      A new committer: Coleman Kane (3dfx voodoo for glide/Mesa)

    • 19-June-2000 A new committer: CHOI Junho (Ports)

    • 08-June-2000 Jordan Hubbard and Warner Losh will be in Japan during the first part of June 2000. They will be giving talks at: the BSD BOF at Networld+Interop 2000 Tokyo (8th), the JUS seminor at Tokyo (9th), the NBUG event at Nagoya (10th), and, the K*BUG seminor at Osaka (10th). Please see http://www.jp.FreeBSD.org/.

      A new article is available, explaining how to use PPP, natd, and ipfw to implement a firewall with a PPP dialup connection.

      A new committer: Alexander Langer (Ports, Docs)

    • 06-Jun-2000 The first FreeBSD Conspectus has been added, providing a summary of events on the -stable mailing list over the past week.

    May 2000

    April 2000

    • 16-Apr-2000 New mailing lists available: freebsd-i18n (FreeBSD Internationalization) and freebsd-ppc (Porting FreeBSD to the PowerPC)

    • 04-Apr-2000 A new committer: Murray Stokely (sysinstall)

    March 2000

    February 2000

    • 26-Feb-2000 A new committer: Hajimu UMEMOTO (IPv6)

    • 23-Feb-2000 A new committer: Paul Saab

    • 22-Feb-2000 32BitsOnline.com has a review of FreeBSD 3.4 by Clifford Smith available on their web site. All in all, a good review.

    • 18-Feb-2000 A new committer: Brian S Dean (Kernel support for IA32 hardware debug registers, misc fixes/feature enhancements in other areas)

    • 17-Feb-2000 A new issue of The FreeBSD 'zine came out on the 15th. This is the first issue of the 'zine in 7 months; lots of changes have been made, and many new features have been added. Be sure to check it out.

    • 10-Feb-2000 Michael Lucas has written an excellent article on the differences between the BSD license and the GPL. This article is definitely worth reading.

      New committers: Greg Sutter and Bill Swingle (Docs)

    January 2000

    • 22-Jan-2000 The FreeBSD Diary, a chronicle of what one guy is doing with FreeBSD, has been around for almost two years. Until today, it was tucked away in a corner of his site. Following significant growth, a new-look site was launched today. The site contains a huge number of how-to guides and the readership includes NetBSD, OpenBSD, and Linux users.

    • 13-Jan-2000 A new committer: Wilko Bulte

    • 04-Jan-2000 The Compaq Testdrive program is now making testdrives available of the latest FreeBSD 4.0-20000101-CURRENT release running on an Alpha XP1000 EV6.7. running at 667MHz and loaded with two gigs of ram. To get a free shell account as a participant in the testdrive program, all you need to do is register at the site. These accounts aren't for playing, the goal of the program is to make brand new systems available to developers so they can test, build and port their apps to the world's fastest computer. The testdrive program also offers other systems running FreeBSD, including a Proliant 5500 dual Xeon 450MHz and a DPW500a.

    • 03-Jan-2000 A new committer: Patrick Gardella (JDK/WWW)

    • 02-Jan-2000 A new committer: Ade Lovett (Ports)

    • 01-Jan-2000 A new committer: Jeremy Lea (Ports)

    &newshome; &footer; diff --git a/en/news/press-rel-6.sgml b/en/news/press-rel-6.sgml index bc0031c3ac..1d9f52f5d8 100644 --- a/en/news/press-rel-6.sgml +++ b/en/news/press-rel-6.sgml @@ -1,104 +1,104 @@ - + %includes; %newsincludes; ]> &header;

    The Daemon of the Opera: Opera Software Releases Version for FreeBSD

    Oslo, Norway, October 31, 2002: Opera Software is proud to announce the first golden release of its new port to the UNIX variance FreeBSD. With FreeBSD joining the Opera family, Opera is now available on eight different operating systems.

    The BSD (Berkeley Software Distribution) operating system has its origins at the University of California, Berkeley. It started out as a supplement to UNIX, but over time it evolved into several operating systems. Of the different BSD flavors available, the most widely distributed is FreeBSD, popular among high-end users like system administrators who are looking for a fast, reliable operating system.

    "Opera and FreeBSD´s users are alike in that they emphasize and expect stability and reliability. The match between FreeBSD and Opera should strike a cord with many enterprise customers," says Jon S. von Tetzchner, CEO, Opera Software ASA. "On a personal level, I'm also happy to welcome FreeBSD users into the Opera family. FreeBSD is strictly not only an operating system, but also a community and a philosophy with values I know resonate well with our own."

    The FreeBSD community is enthusiastic to finally be able to surf with Opera.

    "With the release of Opera for FreeBSD, FreeBSD users who download Opera for FreeBSD can browse the Web with one of the fastest browsers available on the market," says Robert Watson, FreeBSD Core Team member. "FreeBSD´s reputation as a reliable and fast desktop operating system is becoming widely known, and we are glad to see that Opera Software is helping us create a more complete desktop environment."

    Opera 6.1 for FreeBSD can be downloaded from www.opera.com.

    About Opera Software

    Opera Software ASA is an industry leader in the development of Web browsers for the desktop and embedded markets, partnering with companies such as IBM, AMD, Symbian, Canal+ Technologies, Ericsson, Sharp and Lineo (now a division of Embedix). The Opera browser has received international recognition from end users and the industry press for being faster, smaller and more standards-compliant than other browsers. Opera is available on Windows, Mac, Linux, Solaris, FreeBSD, OS/2, Symbian OS and QNX. Opera Software ASA is a privately held company headquartered in Oslo, Norway. Learn more about Opera at www.opera.com.

    About the Berkeley Software Distribution Operating System

    Berkeley Software Distribution operating system technologies were originally developed from 1979 to 1992 by the Computer Systems Research Group (CSRG) at the University of California at Berkeley. Berkeley-derived operating system and networking technologies are at the heart of most modern Unix and Unix-like operating systems. Today, virtually every major Internet infrastructure provider uses BSD operating systems. BSD operating system technologies are used by leading mission- critical network computing environments and are embedded in Internet appliance platforms that require advanced Internet functionality, reliability and security.

    About the FreeBSD Project

    FreeBSD is a popular open source operating system developed by the FreeBSD Project and its worldwide team, consisting of more than 5,000 developers funneling their work to 185 "committer" developers. It is available free of -charge from ftp.FreeBSD.org and also +charge from ftp.FreeBSD.org and also distributed as a shrink-wrap software product through CompUSA, Fry's, Borders, Ingram, FreeBSDmall.com and others. FreeBSD includes thousands of ported applications, including office automation, groupware and multimedia applications, and is widely used in companies all over the world as a web server, file server, firewall and router. FreeBSD is distributed under the Berkeley Software Distribution license, which means that it can be copied and modified freely or commercially. For more information about the FreeBSD -Project, visit www.FreeBSD.org.

    +Project, visit www.FreeBSD.org.

    Press Contact

    Opera Software
    Pal A. Hvistendahl
    Marcom Director
    Tel: +47 99 72 43 31
    Fax: +47 24 16 40 01
    pal@opera.com
    US Toll Free: 1-888-624-4846, press only please

    The FreeBSD Project
    -press@freebsd.org

    +press@FreeBSD.org

    &footer; diff --git a/en/news/press.xsl b/en/news/press.xsl index 5773bbaee0..017638e445 100644 --- a/en/news/press.xsl +++ b/en/news/press.xsl @@ -1,85 +1,85 @@ - +

    If you know of any news stories featuring FreeBSD that we have not listed here, please send details to - www@FreeBSD.org so that we can + www@FreeBSD.org so that we can include them.

    You also can visit FreeBSD/Java Press page for information about FreeBSD Java Project's Press News.


  • ,

  • diff --git a/en/news/status/report-2001-06.xml b/en/news/status/report-2001-06.xml index 9642ad92d1..4904ce5fa2 100644 --- a/en/news/status/report-2001-06.xml +++ b/en/news/status/report-2001-06.xml @@ -1,826 +1,826 @@ - + June 2001 - $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.5 2001/09/18 17:48:22 chris Exp $ + $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.6 2003/04/13 16:31:52 hrs Exp $
    Introduction

    One of the benefits of the FreeBSD development model is a focus on centralized design and implementation, in which the operating system is maintained in a central repository, and discussed on centrally maintained lists. This allows for a high level of coordination between authors of various components of the system, and allows policies to be enforced over the entire system, covering issues ranging from architecture to style. However, as the FreeBSD developer community has grown, and the rate of both mailing list traffic and tree modifications has increased, making it difficult even for the most dedicated developer to remain on top of all the work going on in the tree.

    The FreeBSD Monthly Development Status Report attempts to address this problem by providing a vehicle that allows developers to make the broader community aware of their on-going work on FreeBSD, both in and out of the central source repository. This is the first issue, and as such is an experiment. For each project and sub-project, a one paragraph summary is included, indicating progress since the last summary (in this case, simply recent progress, as there have been no prior summaries).

    This status report may be reproduced in whole or in part, as long as the source is clearly identified and appropriate credit given.

    Future Editions

    Assuming there is some positive feedback on this idea, and that future submissions get made such that there is content for future issues, the goal is to release a development status report once a month. As such, the next deadline will be July 31, 2001, with a scheduled publication date in the first week of August. This will put the status report on a schedule in line with the calendar, as well as providing a little over a month until the next deadline, which will include a number of pertinent events, including the Annual USENIX Technical Conference in Boston, MA. Submissions should be e-mailed to:

    robert+freebsd.monthly@cyrus.watson.org

    Many submitters will want to wait until the last week of July so as to provide the most up-to-date status report; however, submissions will be accepted at any time prior to that date.

    -- Robert Watson < rwatson@FreeBSD.org >

    Binary Updater Project Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org - +

    The FreeBSD Binary Updater Project aims to provide a secure mechanism for the distribution of binary updates for FreeBSD. This project is complementary to the Open Packages and libh efforts and there should be very little overlap with those projects. The system uses a client / server mechanism that allows clients to install any known "profile" or release of FreeBSD over the network. Where a specific profile might contain a specific set of FreeBSD software to install, additional packages, and configuration actions that make it more ideal for a specific environment (ie FreeBSD 4.3 Secure Web Server Profile)

    The system can currently be used to install a FreeBSD system or perform the most simple of upgrades but many features are absent. In particular, the client is in its infancy and much work remains to be done. We need additional developers so please get in touch with us at updater@osd.bsdi.com if you are interested in spending some cycles on this.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    Poul-Henning Kamp kicked off a drive to get our GNATS PR database cleaned up so the wheat can be sorted from the chaff. Progress is good, but there is still a lot of work to do. Give a hand if you can. Remember: every unhandled PR is a pissed off contributor or user.

    CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

    I'm in the process of rewriting the CVSROOT/scripts to make them more clean and configurable. A lot of other projects also use these and so it makes sense to make them as easy to use in other environments as possible.

    Status: work in progress. There is now a configuration file, but not all the scripts use it yet.

    DEVFS Poul-Henning Kamp phk@FreeBSD.org

    Work is progressing on implementing true cloning devices in DEVFS. Brian Somers and Poul-Henning Kamp are working to make if_tun the first truly cloning driver in the system. Next will be the pty driver and the bpf driver.

    From July 1st DEVFS will be standard in -current.

    digi driver Brian Somers brian@FreeBSD.org

    Added the digi driver. Initial work was done by John Prince <johnp@knight-trosoft.com>, but all the modular stuff was done by me and initial work on supporting Xe and Xi cards (ala dgb) was done by me. I'm now awaiting an Xe card being sent from joerg@ (almost a donation) so that I can get that side of things working properly.

    Diskcheckd Poul-Henning Kamp phk@FreeBSD.org

    Ben Smithurst has written a "diskcheckd" daemon which will read all sectors on the disks over a configured period. With recent increases in disksizes it is by no means a given that disk read errors will be discovered before they are fatal. This daemon will hopefully result in the drive firmware being able to relocate bad sectors before they become unreadable. This code is now committed to 5.0-CURRENT.

    if_fxp driver Jonathan Lemon jlemon@FreeBSD.org

    In the last month (May-June), the new fxp driver was brought into -stable. This new driver uses the common MII code, so support for new PHYs is easy to add. Support for the new Intel 82562 chips was added. The driver was updated to add VLAN support and a workaround for a bug affecting Intel 815-based boards.

    Java Project Greg Lewis glewis@eyesbeyond.com

    The FreeBSD Java Project has continued its "behind the scenes" work over the last month. Progress was made both technically, with the help of Bill Huey (of Wind River), on a port of JDK 1.3.1 and legally, with Nate Williams continuing negotiations with Sun on a mutually acceptable license to release a binary Java 2 SDK under. The JDK 1.2.2 port has also seen some development, with a new patchset likely to be released soon which includes JPDA and NetBSD support (the latter courtesy of Scott Bartram).

    Kernel Graphics Interface port Nicolas Souchu nsouch@fr.alcove.com

    The Kernel Graphics Interface project has worked for several years to provide a framework for graphic drivers under Linux receiving input from other groups like the UDI project. Currently the KGI core implementation is quite settled, as is the driver coding model as a whole. Work is being done to newbussify KGI and produce a kld, as part of a future redesign of the graphics subsystem in FreeBSD. KGI will be an alternative for graphic card producers that don't accept the XFree86 model of userland graphic adapters and will also provide accelerated support for any other graphic alternative.

    libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org - +

    The libh project is a next generation sysinstall. It is written in C++ using QT for its graphical frontend and tvision for its console support. The menus are scriptable via an embedded tcl interpreter. It has been growing functionality quite a bit lately, including a new disklabel editor. Current work is on installation scripts for CDROM, FTP, ... installs as well as a fully functional standalone disk-partition and label editor. The GUI API was extended a little and many bugs were fixed. There seems to be some interest in i18n work.

    Mount(2) API Poul-Henning Kamp phk@FreeBSD.org

    Maxime Henrion is working on implementing a new and more extensible mount(2) systemcall, mainly to overcome the 32 bits for mountoptions limit, secondary goal to make it possible to mount filesystems from inside the kernel.

    OLDCARD pccard implementation Warner Losh imp@FreeBSD.org

    In the last two months, the OLDCARD pccard implementation was rototilled to within an inch of its life. Many new pci cardbus bridges were added. Power handling was improved. PCI Card cardbus bridges are nearly supported and should be committed in early June to the tree. This will likely be the last major work done on OLDCARD. After pci cards are supported, work will shift to improving NEWCARD.

    PowerPC Port Benno Rice benno@FreeBSD.org

    The PowerPC port is proceeding well. All seems to be working in pmap.c after a number of problems encountered where FreeBSD passes a vm_page_t to a NetBSD-derived function that expects a vm_offset_t. Then after debugging the atomic operations code, I'm now at the point where VM appears to be initialized and it's now hanging while in sys/kern/kern_malloc.c:kmeminit(). Progress continues. =)

    PPP Brian Somers brian@FreeBSD.org

    Developing full MPPE support for Andre Opperman @ Monzoon in Switzerland. Work is now complete and will eventually be brought into -current, but no dates are yet known.

    pseudofs Dag-Erling Smorgrav des@FreeBSD.org

    Pseudofs is a framework for pseudo-filesystems, like procfs and linprocfs. The goal of pseudofs is twofold:

    • eliminate code duplication between (and within) procfs and linprocfs
    • isolate procfs and linprocfs from the complexities of the vfs system to simplify maintenance and further development.

    Pseudofs has reached the point where it is sufficiently functional and stable that linprocfs has been almost fully reimplemented on top of it; the only bit that's missing is the proc/<pid>/mem file.

    The primary to-do item for pseudofs right now is to add support for writeable files (which are required for procfs, and are quite a bit less trivial to handle than read-only files). In addition, pseudofs needs either generic support for raw (non-sbuf'ed, possibly mmap'able) files, or failing that, special-case code to handle proc/<pid>/mem.

    RELNOTESng Bruce A. Mah bmah@FreeBSD.org - +

    RELNOTESng is the name I've given to the rewrite of the *.TXT files that typically accompany a FreeBSD release. The information from these files (which include, among other things, the release notes and the supported hardware list) have been reorganized and converted to SGML. This helps us produce the documentation in various formats, as well as facilitating the maintenance of documentation for multiple architectures. This work was recently committed to -CURRENT, and I intend to MFC it to 4-STABLE before 4.4-RELEASE.

    SMPng Project John Baldwin jhb@FreeBSD.org Jake Burkholder jake@FreeBSD.org SMP Mailing list smp@FreeBSD.org - +

    The SMPng project aims to provide multithreaded support for the FreeBSD kernel. Currently the kernel still runs almost exclusively under the Giant kernel lock. Recently, progress has been made in locking the process group and session structures as well as file descriptors by Seigo Tanimura-san. Alfred Perlstein has also added in a giant lock around the entire virtual memory (VM) subsystem which will eventually be split up into several smaller locks. The locking of the VM subsystem has proved tricky, and some of the current effort is focused on finding and fixing a few remaining bugs in on the alpha architecture.

    SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org - +

    mb_alloc is a new specialized allocator for mbufs and mbuf clusters. Presently, it offers various important advantages over the old (status quo) mbuf allocator, particularly for MP machines. Additionally, it is designed with the possibility of future enhancements in mind.

    Presently in initial review & testing stages, most of the code is already written.

    Sparc64 Port Jake Burkholder jake@FreeBSD.org

    Work has (re)started on a port of FreeBSD to the UltraSPARC architecture, specifically targeting PCI based workstations. Jake Burkholder will be porting the kernel, and Ade Lovett has expressed an interest in working on userland. Recent work on the project includes:

    • built a gnu cross toolchain targeting sparc64
    • obtained remote access to an ultra 5 development machine (thanks to emmy)
    • developed a minimal set of headers and source files to allow the kernel to be compiled and linked
    • implemented a mini-loader which relocates the kernel, maps it into the tlbs and calls it
    • nabbed Benno Rice's openfirmware console driver which allows printf and panic to work

    At this point the kernel can be net-booted and prints the FreeBSD copyright before calling code that is not yet implemented. I am currently working on a design for the pmap module and plan to begin implementation in the next few days.

    TrustedBSD Robert Watson rwatson@FreeBSD.org

    The TrustedBSD Project seeks to improve the security of the FreeBSD operating system by adding new security features, many derived from common trusted operating system requirements. This includes Access Control Lists (ACLs), Fine-grained Event Logging (Audit), Fine-grained Privileges (Capabilities), Mandatory Access Control (MAC), and other architecture features, including file system extended attributes, and improved object labeling.

    Individual feature status reports are documented separately below; in general, basic features (such as EAs, ACLs, and kernel support for Capabilities) will be initially available in 5.0-RELEASE, conditional on specific kernel options. A performance-enhanced version of EAs is currently being targeted at 6.0-RELEASE, along with an integrated capability-aware userland, and MAC support.

    TrustedBSD: ACLs Chris D. Faulhaber jedgar@FreeBSD.org

    Patches are now available to add ACL support to cp(1) and mv(1) along with preliminary support for install(1). Ilmar's i18n patches for getfacl(1) and setfacl(1) need to be updated for the last set of changes and committed. Some other functional improvements are also in the pipeline.

    TrustedBSD Capabilities Thomas Moestl tmm@FreeBSD.org

    The kernel part of the capability implementation is mostly finished; all uses of suser() and suser_xxx() and nearly all comparisons of uid's with 0 have been converted to use the newly introduced cap_check() call. Some details still need clarification. More documentation for this needs to be done.

    POSIX.2c-compatible getfcap and setfcap programs have been written. Experimental capability support in su(1), login(1), install(1) and bsd.prog.mk is being tested.

    Support for capabilities, ACL's, capabilities and MAC labels in tar(1) is being developed; only the capability part is tested right now. Generic support for extended attributes is planned, this will require extensions to the current EA interface, which are written and will probably be committed to -CURRENT in a few weeks. A port of these features to pax(1) is planned.

    TrustedBSD MAC and Object Labeling Robert Watson rwatson@FreeBSD.org

    An initial prototype of a Mandatory Access Control implementation was completed earlier this year, supporting Multi-Level Security, Biba Integrity protection, and a more general jail-based access control model. Based on that implementation, I'm now in the process of improving the FreeBSD security abstractions to simplify both the implementation and integration of MAC support, as well as increase the number of kernel objects protected by both discretionary and mandatory protection schemes. Generic object labeling introduces a structure not dissimilar in properties to the kernel ucred structure, only it is intended to be associated with kernel objects, rather than kernel subjects, permitting the creation of generic security protection routines for objects. This would allow the easy extension of procfs and devfs to support ACLs and MAC, for example. A prototype is underway, with compiling and running code and simple protections now associated with sysctl's.

    diff --git a/en/news/status/report-2001-07.xml b/en/news/status/report-2001-07.xml index 366fa231fe..c935c8c05b 100644 --- a/en/news/status/report-2001-07.xml +++ b/en/news/status/report-2001-07.xml @@ -1,1204 +1,1204 @@ - + July 2001 - $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.5 2002/05/16 01:49:58 trhodes Exp $ + $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.6 2003/04/13 16:31:52 hrs Exp $
    Introduction

    Last month's status report was apparently a great success: I received countless e-mails with comments, questions, and suggestions. I've tried to incorporate any suggestions and address any problems from these e-mails in this month's report, which captures a far more extensive snapshot of FreeBSD activity in the last month. Unlike last month's report, it does a better job of reflecting non-development activity, such as on-going conference planning, documentation, and so on. This is a trend I hope to see improve in future months as well.

    On the topic of conferences, in the future I'd like to report more on publication activities relating to FreeBSD, including online journals with articles relating to FreeBSD, paper journals, conference papers, and so on. Likewise, I would be interested in including references to Call for Papers relating to FreeBSD. I'll take this opportunity to plug both registration and paper submission for BSDCon Europe in November, which has status included in this report, and for the general BSD Conference being hosted by USENIX in February. Your attendance and submissions make these conferences "happen", and promote FreeBSD as a platform for new research, feature development, and application products. Work of extremely high calibre is performed on FreeBSD, and we need to get the word out.

    Submission for Future Editions

    Next month, we're maintaining much the same submission requirements: reports should be one or two paragraphs long, sent by e-mail, and approximate the layout of the entries this month (Project, Contact, URL, and text). I'll send out reminders again over the week before the deadline, with more specific instructions. An area where I'd like to explore improvement lies in the coordination of related status reports for larger projects, such as new architectural work or platform ports. This might even have the effect of encouraging communication within these projects :-). I'd like to continue to focus on pulling in a broader range of groups and their activities, including the Security Officer, Release Engineer, and Core Team.

    -- Robert Watson < rwatson@FreeBSD.org >

    ACPI Mike Smith msmith@FreeBSD.org

    ACPI (Advanced Configuration and Power Interface) is an industry standard which obsoletes APM, Intel MPS, PnPBIOS, and other Intel PC firmware interface standards. It is also used on the IA64 platform. More information on ACPI is available at

    http://developer.intel.com/technology/iapc/acpi

    The FreeBSD ACPI subsystem project is based heavily on the Intel ACPI Component Architecture. This status report outlines the current state of the project; future updates will focus on changes as they occur.

    The Intel ACPI interpreter is fully integrated, although bugs are still coming out of the woodwork occasionally.

    • PCI bus detection and interrupt routing are functional, but power management interaction will require work on the core PCI subsystem.
    • Non-PCI motherboard peripheral probing is implemented, but believed to have problems on some systems.
    • A power policy manager has been implemented. The initial policy manager has two modes, "performance" and "economy".
    • CPU speed throttling is integrated with the platform power policy.
    • System thermal monitoring is implemented, but fan control is believed to have problems.
    • Pushbutton suspend and power-off is implemented.
    • System timekeeping using the ACPI timer is supported.
    • Battery status monitoring is implemented.

    Work is ongoing in the following areas:

    • System suspend and resume.
    • Timekeeper accuracy/reliability.
    • Power profiles.
    • User-level management interfaces.
    • PCI power management.
    • Bug-hunting.
    ARM Port Stephane Potvin septovin@videotron.ca

    The ARM port is currently going pretty well. The kernel is compiling and is able to boot to the point where it panics trying to initialize the network subsystem. The current reference platform is the Netwinder but this may change as many people expressed interest in a more broadly available platform. Things that need to be done before it can get further includes adding footbridge, timer and interrupt supports. The pmap module is not completed yet either.

    BIND 9 Doug Barton dougb@FreeBSD.org Jeroen Ruigrok - asmodai@freebsd.org + asmodai@FreeBSD.org

    Now that BIND 8.2.4 is finally imported the time has come to look at getting BIND 9 imported into CURRENT. The current idea is to have it imported alongside BIND 8 so that people can play with either one until all import problems have been taken care of and people have tested it a bit.

    binup Eric Melville eric@FreeBSD.org

    Although gaining a new name, the project has been at a standstill due to both resource availability during the move between BSDi and Wind River, and other commitments of the developers. The project should obtain an official mailing list, as well as return to an active state after the dust settles.

    BSDCon Europe Paul Richards paul@freebsd-services.co.uk Josef Karthauser joe@tao.org.uk

    The conference will take place at the Thistle Hotel, Brighton, UK from 9-11 November 2001.

    The aim of the conference is to provide a focal point for European users and developers of all the BSD derived operating systems. The format will be similar to other conferences, with 2 days of technical sessions over the Saturday and Sunday.

    We'll be finalizing the schedule towards the end of the month and anybody who is interested in doing a talk should contact us ASAP. There are no restrictions on the use of talks; if it's been done before we may still be interested in having it presented to an European audience, and we make no claims to the talks so speakers are free to present the talks again at other conferences.

    We're also still looking for sponsors.

    We had 80 pre-registrations in the first week so we're expecting a good turnout.

    CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs gibbs@FreeBSD.org

    The new CAM transport code is starting to get supported in more HBAs and to get refined so that it does the intended per-protocol support. No progress on doing any SMPng work for CAM has been made yet. This is a fairly high priority.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    Thanks to various outstanding individual efforts, we are now down to just below 2300 open bug-reports. This means that we have fought our way back to the level we had around march 2000.

    Documentation Project Documentation Project doc@FreeBSD.org

    Work continues (in large part sponsored by WRS) on updating the Handbook ready for the second print edition. There has been a flurry of activity in this area recently, and the ToDo list can be seen at

    - - http://www.freebsd.org/docproj/handbook.html + + http://www.FreeBSD.org/docproj/handbook.html

    Dima and others are doing a stellar job of keeping up with the steady flow of incoming PRs relating to the documentation project.

    The Developers' Handbook,

    - http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html + href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html"> + http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html

    is a year old; it contains a wealth of useful content for developers developing on, or for, FreeBSD. As ever, more contributions are always required, not only for the developers' handbook, but for all of the FreeBSD documentation set.

    Fibre Channel Support Matthew Jacob mjacob@feral.com

    The basic design hasn't changed and this project mainly is in the phase of continued hardening and test case development. The next major feature will be to fully integrate into the new CAM TRAN code and to fully support on the fly device addition and removal. The only HBA supported is QLogic at this time. Future support for the QLogic line is planned to have 2300 (2Gb) and IP support before October.

    Hardware Watchpoints in the Kernel Debugger Brian Dean bsd@FreeBSD.org

    Hardware watchpoints are now available for kernel debugging on the IA32 (i386) architecture. One can now set hardware watchpoints using the new ddb command 'hwatch', which is analogous to the existing 'watch' command. Alternatively, if greater flexibility is required, direct access to the debug registers is available using the ddb 'set' command which allows complete control over the processor hardware debug facilities. Hardware watchpoints are very useful in tracking down those elusive memory overwrite bugs in the kernel. Hardware watchpoints can even be used to set a code breakpoint in ROM, which is commonly found in embedded systems.

    ifconfig support for IEEE 802.11 wireless devices Brooks Davis brooks@FreeBSD.org

    Support for configuring IEEE 802.11 wireless devices via ifconfig has been committed to -current and -stable. It contains most of the functionality needed to configure an wireless device. Some missing features are being worked on including integrated support for DHCP so a single entry in /etc/rc.conf can be used to fully configure a wireless device on a DHCP lan and setting the CTS/RTS threshold. Currently the an(4) and wi(4) drivers are supported in -current and -stable with the awi(4) device supported in -current. Further work is needed to support Frequency Hopping devices such as ray(4).

    jailNG Robert Watson rwatson@FreeBSD.org

    jailNG is a from-scratch rewrite of the popular jail(8) service, focusing on improved management functions, as well as more fine-grained configurability. An initial prototype has been written, based on explicitly named and configured jails, and work is proceeding on userland integration. Currently, it's not clear if the timeline for this will be 5.0-RELEASE, or 5.1-RELEASE.

    FreeBSD Java Project - + Greg Lewis glewis@eyesbeyond.com

    The main development in the FreeBSD Java Project over the last month was the release of an initial "Developers Only" patchset for the JDK 1.3.1. Since that release progress had been made towards a much more usable alpha quality patchset which is likely to be turned into a port, as per the current JDK 1.2.2 patchset. This new patchset will feature a number of bugfixes, which essentially get the JDK to a working state for early adopters, and an initial implementation of "native threads" based on FreeBSD's userland pthreads. Unfortunately this implementation isn't fully functional, but is included in the hope of getting more eyeballs on the code (particularly experienced pthread programmers). We'd also like to welcome Fuyuhiko Maruyama-san as a new committer, the usual punishment for too many good patches.

    jpman project Japanese Man Page Project man-jp@jp.FreeBSD.org

    We have been working to provide Japanese version of FreeBSD online manuals, since 1996. Currently, RELENG_4 manuals are based. Translated versions are placed on doc/ja_JP.eucJP/man and provided to users using ports/japanese/man-doc. Also, we discuss about related commands (e.g. ports/japanese/man and ports/japanese/groff).

    Kernel Summit - Usenix 2001 John Baldwin jhb@FreeBSD.org

    The first FreeBSD kernel summit meeting was held June 29-30, 2001 in Boston, MA at the Usenix 2001 Annual Technical Conference. Links to a variety of files are posted on the web site.

    Note: I (jhb) am still working on writing up a general summary of the meeting. When that is completed it will be posted here and mailed to the -hackers mailing list.

    KSE threading the kernel - + Julian Elischer julian@elischer.org

    I'm working on multithreading the kernel. So far I have over 400KB of diffs relative to todays -current (I'm keeping my tree updated with changes as they occur rather than get hit with a big update at the end).

    I have split the proc structure and am changing most of the kernel to pass around a thread identifier instead of a proc structure.

    The following interfaces have been changed so far:

    • device devsw entries
    • vfs calls
    • mutexes
    • events
    • system calls
    • scheduler
    • + a lot of code in between.

    I have still a lot of work to go with a lot of "dumb editing" (s/struct proc \*p/struct thread \*td/) usually I change a few items and then fix everything that breaks when I try compile it. I'd like to check it in on a branch so others can help the editing but haven't worked out the best way to do it yet.

    I have implemented changes to the scheduler so that KSE's are scheduled instead of processes, and threads sleep, letting the KSE pick up a new thread. but it's not anywhere ready yet (heck it doesn't compile yet :-)

    Note that I have not yet updated the document listed above.. everywhere it mentions "ksec" or "KSE-context", the code uses the word "thread". I will update it soon as Jason has sent me the source.

    FreeBSD Monthly Development Status Reports Robert Watson rwatson@FreeBSD.org> Chris Costello chris@FreeBSD.org

    The FreeBSD Monthly Development Status Report aims to keep users and developers up-to-date on the latest goings-on in the FreeBSD project by providing summaries of each project and its status. At the time of this writing, the July 2001 status report is being prepared and is very near release. The FreeBSD Web site now has a Status Reports section, which, when the July 2001 report is released, will be updated to include a link to an HTML-ified version.

    NetBSD rc.d port Doug Barton dougb@FreeBSD.org Sheldon Hearn sheldonh@FreeBSD.org

    The NetBSD rc.d port aims to improve the FreeBSD startup process by porting Luke Mewburn's rc.d work from NetBSD to FreeBSD. This will score FreeBSD startup and shutdown dependencies without losing the traditional and much loved monolithic configuration filesystem.

    Luke Mewburn's USENIX paper and slides on the system as implemented in NetBSD are available here:

    http://groups.yahoo.com/group/FreeBSD-rc/message/3

    Interested parties are urged to study this material before joining the discussion list.

    The intention at this stage is to decide on an approach that will ensure that the differences between the NetBSD rc.d system and the system as ported to FreeBSD will be kept to a minimum. This will probably involve discussions with Luke around those areas of the system that are identified as areas for potential improvement.

    Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

    The goal of this project is the implementation of ATM signalling and other ATM protocols by means of the netgraph(4) framework. This should provide an easily extensible architecture for using ATM on FreeBSD. Currently the full UNI4.0 stack (except for the LIJ capability) has been implemented, including ILMI and a first version of the ATM Forum API for UNI. An implementation of Classical IP over ATM is also available. Drivers have been implemented for the Fore PCA200E and Fore HE-155 cards.

    network device cloning Brooks Davis brooks@FreeBSD.org

    Network device cloning support has been imported from NetBSD. This allows virtual devices to be allocated on demand rather then being statically allocated at compile time. Our implementation differs slightly from that of NetBSD's in that we allow both the creation of specific devices (i.e. gif0) and arbitrary devices instead of just allowing specific devices. Currently, the only device in the tree which has been converted is the gif(4) device which has been converted in both -current and -stable. Work is ongoing to convert all other virtual network devices with work in progress on faith, stf, and vlan interfaces. In general this conversion is accompanied by appropriate modifications to make these devices fully modular.

    Next Generation POSIX threads (NGPT) Arun Sharma arun@sharma.dhs.org

    Porting NGPT (next generation pthreads) to FreeBSD

    NGPT is an effort led by IBM engineers to implement MxN threads (also known as many user threads to one kernel thread mapping) on Linux. I have ported it to FreeBSD to use rfork(2).

    The port is right here:

    - - http://www.freebsd.org/cgi/query-pr.cgi?pr=29239 + + http://www.FreeBSD.org/cgi/query-pr.cgi?pr=29239

    OLDCARD upgrade to support PCI cards - + Warner Losh imp@village.org

    Funded by: Monzoon Networking, LLC

    This month has been a month of conventration and consolidation. Much of the changes from current have been migrating into stable. I've improved power support, suspend/resume interactions, interrupt handling, and ability to work after windows/NEWCARD has run. Interrupt routing continues to be a locking issue for a complete MFC. Current patches are available at the above website. I'm racing to get this done before 4.4 is released.

    Open Runtime Platform (ORP) Arun Sharma arun@sharmas.dhs.org eGroups: ORP orp@egroups.com

    Information on Intel ORP - a BSD licensed Java VM is right here:

    http://www.intel.com/research/mrl/orp/

    A FreeBSD patch has been tested to work with NGPT and submitted to the ORP project. The patch is available here:

    http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz

    There are some issues to be ironed out to make it work with FreeBSD's default (user level) pthread implementation.

    OpenPackages

    OpenPackages intends to create a software packaging system that will allow third-party programs to be installed, without operating system dependent changes, on as many platforms as are feasible. OpenPackages was originally based on code from the BSD ports systems, and has been improved and extended by developers of many heritages.

    The OpenPackages Project is pleased to release the Milestone 2 codebase. This release contains a working package building system and a single test package. OP currently is known to build on certain instances of the following operating systems: FreeBSD, HP/UX, IRIX, Linux (Debian, Red Hat, Suse, Mandrake, TurboLinux, Caldera, etc.), NetBSD, OpenBSD, Solaris

    PAM Mark R V Murray mark@grondar.za

    (First report)

    Large cleanup and extension of FreeBSD PAM modules. All modules are to be documented, consistent in style (style(9) used) and as complete as possible WRT functionality. Mostly done.

    PowerPC Port Benno Rice benno@FreeBSD.org

    We now have the rudiments of device support. We have a nexus driver for OpenFirmware machines, along with support for the Apple UniNorth PCI/AGP host bridge. I'm currently trying to get the USB hardware working so that I can get closer to having a console driver independent of OpenFirmware, then I'll be trying to get the system to get to single-user mode using NFS.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    Work has begun, but nothing has yet been committed. The NCP addresses used by ppp have been abstracted and initial support has been added to the filter set for ipv6 addresses. NCP negotiation hasn't yet been started.

    Porting ppp to hurd & linux Brian Somers brian@Awfulhak.org

    Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed.

    pppoed Brian Somers brian@freebsd-services.com

    Making pppoed function in a production environment. Most of the work is complete and committed. Additional work includes adding a -l option where ``-l label'' is shorthand for ``-e exec ppp -direct label'' and discovering why rogue child processes are being left around.

    PRFW - Hooks within the FreeBSD kernel Evan Sarmiento ems@open-root.org

    PRFW is a set of hooks which I have integrated into the FreeBSD kernel. This allows modules to easily intercept system calls with less overhead. It also supports per-pid restrictions, which means, one process may not be able to use X function in Y manner, but another process may.

    Progress: I was working on this in 4.3-RELEASE, but now I'm merging it into current. I will be submitting a patch to the mailing lists in about a week.

    SCSI Tape Support Matthew Jacob mjacob@feral.com

    This driver is currently not working well under -current and is undergoing some work at this time. No major design or feature changes are planned. There was some notion of adding TapeAlert support, but HP supports that as a binary product via a user library and it was felt that it'd be more politically prudent to leave it alone.

    SMPng Peter Wemm peter@FreeBSD.org John Baldwin jhb@FreeBSD.org

    Development

    In the 'smpng' p4 branch there is code to make the ast() function loop to close the race when an AST is triggered while we are handling previously triggered AST's.

    In the 'jhb_preemption' p4 branch work is being done to make the kernel fully preemptive. It is reportedly stable on UP x86, but SMP x86 locks up, UP alpha has problems during shutdown and can recurse indefinitely until it exhausts its stack.

    Management

    We are using a perforce repository for live development work, which can track multiple separate long-lived works-in-progress and collaborate between multiple developers at the same time on the same change set.

    FreeBSD-current is being imported into p4 hourly, for easy tracking of the moving -current tree.

    I haven't written up a good primer yet, but we're able to open this up to the general developer community. NEWCARD work looks like it will be done here too. Perforce is ideal for tracking this sort of long-lived project without having to resort to passing patches around.

    KSE work is now being checked into a kse p4 branch - thanks Julian!

    KSE work is focusing on getting the main API changes into the base tree well before 5.0.

    SMPng mbuf allocator - + Bosko Milekic bmilekic@FreeBSD.org

    mb_alloc is a specialized allocator for mbufs and mbuf clusters. It offers various important advantages over the old mbuf allocator, particularly for MP machines. Additionally, it is designed with the possibility of important future enhancements in mind.

    The mb_alloc code has been committed to -CURRENT a month ago and appears to be holding up well. Prior to committing it, preliminary performance measurements were done merely to ensure that it is not significantly worse than the old allocator, even with Giant still in place. Results were promising - [http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html] + href="http://people.FreeBSD.org/~bmilekic/code/mb_alloc/results.html"> + [http://people.FreeBSD.org/~bmilekic/code/mb_alloc/results.html] - also see jlemon's results (link at the bottom of accompanying text). Since the commit, Matt Jacob has provided useful feedback and bugfixes. Work is now being done to re-enable mbtypes statistics and make appropriate changes to netstat(1) and systat(1).

    sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org

    The sparc64 port has been committed to the FreeBSD repository. As such further development will occur in cvs, rather than as a separately maintained patch set. Significant progress has been made since the last status report, including; support for kernel debugging with ddb, much more complete pmap support, support for context switching and process creation, and filling out of important machine dependent data structures. Thomas Moestl has shown a strong interest in working on the port and is in the process of implementing support for saving and restoring a process's floating point context. I look forward to working with him and any other developers that happen to fall out of the wood works.

    FreeBSD/sparc64 kernel loader Robert Drehmel robert@ferrari.de

    The sparc64 loader is functional enough to boot an ELF binary from an UFS filesystem using the existent openfirmware library, which has been revised to work flawlessly on 32-bit and 64-bit architectures. Support for netbooting and modules will be implemented next, followed by a better openfirmware mapping strategy.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    This project brings a SYN cache implementation to FreeBSD, in order to make it more robust to DoS attacks. A SYN cookie approach was considered, but ultimately rejected because it does not conform to the TCP protocol. The SYN cache will work with T/TCP, IPV6 and IPSEC, and the size of each cache element is currently is less than 1/5th the size of a normal TCP control block.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org

    It's been a busy month, with a number of relevant news items. Not least important is that NAI Labs was awarded a $1.2M contract from the US Defense Advanced Research Projects Agency (DARPA) to work on a variety of components relevant to the TrustedBSD Project, including support for pluggable security models, and supporting features such as improving the extended attributes implementation, simple crypto support for swap and filesystems, documentation, and much more.

    On the features side, progress continues on Mandatory Access Control, object labeling, and improving the consistency of kernel access control mechanisms--in particular, with regard to inter-process authorization and credential management. Work has begun on porting LOMAC, NAI Labs' Low-Watermark Mandatory Access Control scheme, from Linux to FreeBSD, and it has been re-licensed under a BSD license. We hope to have an initial port complete in time for 5.0-RELEASE later this year.

    diff --git a/en/news/status/report-2001-08.xml b/en/news/status/report-2001-08.xml index 2fca9db81d..bd3b02e072 100644 --- a/en/news/status/report-2001-08.xml +++ b/en/news/status/report-2001-08.xml @@ -1,1519 +1,1519 @@ - + August 2001 - $FreeBSD: www/en/news/status/report-august-2001.xml,v 1.4 2001/09/18 19:39:41 chris Exp $ + $FreeBSD: www/en/news/status/report-august-2001.xml,v 1.5 2003/04/13 16:31:52 hrs Exp $
    Introduction

    The FreeBSD Project made substantial progress in the month of August, 2001, both on continuing the development of the RELENG_4 line (4.x-STABLE and 4.x-RELEASE), and on 5.0-CURRENT, the main development branch. During this month, the decision was made to push the release of 5.0-CURRENT back so that KSE (support for fine-grained user threads) could be completed in time for the release, rather than postponing that support for 6.0. As such, the lifespan of the RELENG_4 line will be extended, with new features continuing to be backported to that branch. 4.4-RELEASE went into final beta during this month, and will also be available shortly.

    This month's edition of the status report has been written with the assistance of Nik Clayton and Chris Costello.

    Future submissions

    For next month, the submission procedures remain the same: reports should be between one and two paragraphs long, sent by e-mail, and in a format approximately that of this month's submissions (Project, Contact, URL, and text). Reminders will be mailed to the hackers@FreeBSD.org and developers@FreeBSD.org mailing lists at least a week before the deadline; complete submission instructions may be found in those reminders.

    -- Robert Watson

    Fibre Channel Support Matthew Jacob mjacob@FreeBSD.org

    2 Gigabit support was integrated on 8/31/2001 (QLogic 2300/2312 cards). Because of the author's shrinking time commitment for FreeBSD, the previously planned "next step" which would have been more complete new CAM Transport integration is now probably just the addition of an FC-IP adjunct (as this can benefit many platforms simultaneously).

    SCSI Tape Support Matthew Jacob mjacob@FreeBSD.org

    A major update to error handling was done on 8/28/2001 which should correct most of the EOM detection problems that have been around for a while. There are several things to fix. The principle thing to fix next is the establishment of a loader(8) mediated device quirks method.

    CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs - gibbs@freebsd.org + gibbs@FreeBSD.org Kenneth Merry - ken@freebsd.org + ken@FreeBSD.org

    No change since last status. Some discussion amongst all of us occurred, but lack of time and commitment to FreeBSD has meant little has actually been committed to the tree. SMPng work will be left to those who seem to have a notion about what needs to be done.

    Intel Gigabit Ethernet Matthew Jacob mjacob@FreeBSD.org

    No new status to report. This driver will be worked on again soon and cleaned up to work better.

    KSE Julian Elischer julian@elischer.org Peter Wemm peter@FreeBSD.org Matt Dillon dillon@FreeBSD.org

    Work in adding supporting infrastructure to the kernel for KSE threading support has reached "milestone 2".

    Milestone 2 is where the kernel source consistently refers to its resources in terms of per-thread and per-process resources, in the way that it will need to when there are > 1 threads per process, but the LOGICAL changes to such things as the scheduler, and fork and exit, have not yet been made to allow more than one thread to be created. (nor have new threading syscalls been added yet). This is an important milestone as it represents the last point where the kernel has only "mechanical" changes. To go further we must start adding new algorithms and functions.

    The kernel for milestone 2 is reliable and has no noticeable performance degradations when compared to a matching -current kernel. (the differences are less than the margin of error, so that sometimes the new kernel actually fractionally beats the unaltered kernel).

    We hope that by the time this is published, the KSE patches will have been committed. The Major effect for most developers will be only that the device driver interface requires a 'thread' pointer instead of a Proc pointer in the open, close and ioctl entrypoints.

    I'm sure there will be small teething problems but we are not expecting great problems at the commit.

    FreeBSD core-secretary Alan Clegg - abc@freebsd.org + abc@FreeBSD.org - core-secretary@freebsd.org + core-secretary@FreeBSD.org

    The position of Core Secretary was filled by Alan Clegg - <abc@freebsd.org> The first core-secretary report should be + <abc@FreeBSD.org> The first core-secretary report should be available the second week in September and will cover the issues discussed by core during August 2001.

    FreeBSD PAM Mark Murray markm@FreeBSD.org

    Development is continuing; pam_unix has gained the ability to change passwords, login(1) has had PAM made compulsory (and is going to have more PAM-capable features handed over to PAM).

    Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

    The ATM stack has been tested with a number of FreeBSD machines and a Marconi ATM switch and seems to be quite stable running CLIP. Multi port support for the native ATM API has been implemented but needs some testing.

    PRFW - hooks for the FreeBSD kernel Evan Sarmiento ems@open-root.org

    PRFW is a set of hooks for the FreeBSD kernel. It allows users to insert code into system calls, for such purposes as creating extended security features. Last week, PRFW reached 0.1.0, with many bugfixes and cleaning. I urge anyone who is interested to please visit the site, join the mailing list. Also take a peek at lsm.immunix.org, the Linux hooks. It will be a good contrast.

    CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

    Work is still progressing to make all of the perl scripts run using perl's 'strict' mode, and to migrate all FreeBSD specific options into the configuration file (CVSROOT/cfg.pm). I'll be looking for help soon to write a guide on how to make use of these scripts for use in your own repository. Anyone interested in helping should contact me at the above email address.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    The software has been committed to -current and seems functional. Outstanding issues include dealing with IPV6CP events (linkup & linkdown scripts) and allocating site-local and global addresses (currently, ``iface add'' is the only way to actually use the link).

    Porting ppp to hurd & linux Brian Somers brian@freebsd-services.com

    Status is unchanged since last month. Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed. Many conflicts are expected after the commit of IPv6 support in ppp.

    pppoed Brian Somers brian@freebsd-services.com

    Making pppoed function in a production environment. All known problems have been fixed and committed.

    pppoa Brian Somers brian@freebsd-services.com

    I looked at bringing PPPoA into the base system, but could not because of an overly restrictive distribution license on the Alcatel Speedtouch modem firmware. It has been committed as a port instead and is running live at a FreeBSD Services client site.

    OLDCARD improvements Warner Losh - imp@freebsd.org + imp@FreeBSD.org

    The OLDCARD improvements have been completed, except for a few edge cases for older laptops with CL-PD6729/30 chips and some pci bios issues. Some minor work will continue, but after 4.4R is released, only a few remaining bugs will be fixed before the author moves on to greener fields of NEWCARD development.

    jpman project Kazuo Horikawa horikawa@psinet.com man-jp@jp.FreeBSD.org

    Targeting 4.4-RELEASE, one team has been translating newly MFC'ed section [125678] manpages. The other team has been updating section 3 since May and one third (1/3) is finished. The port ja-groff is updated to be groff-1.17.2 based, and now it has the same functionality as base system does. The port ja-man is updated to have the search capability under an architecture subdirectory, as base system does. The doc/ja_JP.eucJP/man hierarchy update (adding architecture subdirectories) is planned after 4.4-RELEASE.

    ARM port Stephane Potvin sepotvin@videotron.ca

    Basic footbridge support is now functional and the kernel is now able to probe the pci bus. Access primitives for the bus are still missing so I can't attach any drivers yet.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    The syncache implementation is completed, and currently under testing and review. The code should be committed to -current in the near future, and a patchset for -stable made available.

    Compressed TCP state Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    State information for TCP connections is primarily kept in the TCP/IP control blocks in the kernel. Not all of the TCP states make use of the entire structure, and significant memory savings can be had by using a cut-down version of the state in some cases. The first phase of this project will address connections that are in the TIME_WAIT state by moving them into a smaller structure.

    This project has completed the initial research and rough design phases, with actual code development starting immediately.

    Network SMP locking Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    For 5.0, the goal is for the network stack to run without the Giant lock. Initial development in this area may focus on partitioning the code and data structures into distinct areas of responsibilities. A first pass of locking may involve using a several smaller mini-giant code locks in order to reduce the problem to a manageable size.

    Progress for this month includes the creation of a perforce repository to officially track the locking changes, and the initial submission of locks for the &ifnet list. Some code cleanup has also been done to the main tree in order to better support future locking additions.

    Network device nodes Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Currently, all network devices (fxp0, lo0, etc) exist in their own namespace, and are accessed through a socket interface. This project creates device nodes in /dev for network devices, and allows control and access in that fashion.

    This is experimental work, and suggestions for APIs and functionality are strongly encouraged and welcomed. In is not clear whether it will be possible (or desirable) to provide the exact same set of operations that can be done through the socket interface.

    Benefits of approach include the fact that a kqueue filter can be attached to a network device for monitoring purposes. Initial code exists to send a kq event whenever the network link status changes. Other benefits may include better access control by using filesystem ACLs to control access to the device.

    RELNOTESng Bruce Mah bmah@FreeBSD.org - +

    RELNOTESng, the DocBook-ified set of release documentation files, has been merged to the RELENG_4 branch. 4.4-RELEASE will be the first release of FreeBSD with the new-style release notes, hardware list, etc. Some of these documents are being translated by the Japanese and Russian translation teams.

    Snapshots of RELNOTESng for CURRENT and 4-STABLE in HTML, text, and PDF are available at the above URL and are updated irregularly but frequently. Dima Dorfman <dd@FreeBSD.org> and Nik Clayton <nik@FreeBSD.org> have been working to have automatically-generated snapshots on the main FreeBSD web site.

    On my TODO list: 1) Resynchronize the FreeBSD installation document with the installation chapter in the Handbook. 2) Update the hardware lists (with particular emphasis on PCCARD and USB devices). 3) Update the infrastructure to allow the architecture-dependent parts of RELNOTESng to scale to more hardware platforms.

    FreeBSD/sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org Thomas Moestl - tmm@freebsd.org + tmm@FreeBSD.org Robert Drehmel - robert@freebsd.org + robert@FreeBSD.org

    Sparc64 development is still continuing rapidly and we're making some excellent progress. Of note, some problems with the way the pmap module implements copy-on-write mappings have been fixed and fork() now works as expected, support for signals has been added, and the port has been updated for KSE in the perforce repository. Thomas Moestl has begun work on pci bus support, and a basic nexus bus for sparc64 has been written. The driver for the Sun `Psycho' and `Sabre' UPA-to-PCI bridges and associated code has been ported from NetBSD (the Sabre is the on-chip version found in the UltraSparc IIi and IIe). PCI configuration, I/O and memory space accesses do already work, as well as interrupt assignment and delivery for devices attached directly to the bridge, and the first PCI device drivers can attach and seem to work mostly. Interrupt routing and busdma support still need much work.

    Documentation Project Nik Clayton - nik@freebsd.org + nik@FreeBSD.org Documentation Project doc@FreeBSD.org

    The Handbook has been the main focus of activity this month. Due to go to the printers on the 15th a vast amount of new content has been submitted and committed. This includes a complete rewrite of the "Installing FreeBSD", which massively expands the amount of information available to people new to FreeBSD. It even includes screenshots.

    - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install.html + href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html"> + http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html

    Comments, and contributions are, of course, welcome.

    IP Multicast Routing support Bill Fenner fenner@FreeBSD.org

    FreeBSD's IP Multicast Routing support was recently updated in several ways. One big change is that it's now able to be loaded as a KLD instead of statically compiled into the kernel; this is especially useful for experimentation or updating of an existing system. It also now coexists nicely with the kernel IP encapsulation infrastructure, so that multicast tunnels can better coexist with MobileIP, certain IPSec tunnels and generic IPv4-in-IPv4 tunnels.

    Mbuf SMPng allocator Bosko Milekic bmilekic@FreeBSD.org - +

    The allocator appears to be stable. Mbtypes statistics have been re-activated thanks, in part, to Jiangyi Liu <jyliu@163.net> although the diff has not yet been committed (I'm just in the process of cleaning it up a little and final testing). More work to come: cleanups, follow TODO from the original commit, and perhaps an eventual generalization of the allocator for various network-related allocations (in a more distant future).

    RAIDframe for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - +

    After two months of little progress, RAIDframe work is gearing up again. The port to -stable has some known bugs but is fairly stable. The port to -current was recently completed and patches will be released soon. RAIDframe is a multi-platform RAID subsystem designed at CMU. This is a port of the NetBSD version by Greg Oster.

    aac driver Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - +

    The aac driver has been given a lot of attention lately and is now nearly feature complete. Changes include crashdump support, correct handling of controller initiated commands, and more complete management interface support. The Linux RAID management tool available from Dell and HP now fully works; a FreeBSD native version of the tool is also in the works. These changes have been checked into -current, and will appear in -stable once 4.4 has been released.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    We are making some progress, we are now down to 2170 open PR's down from an all time high of 3270 just 3 months ago. The aim is still to get rid of all the dead-wood in the PR database so only relevant PRs in the database. A big thanks from me to the people who have made this happen!

    network device cloning Brooks Davis brooks@FreeBSD.org

    Support for cloning vlan devices via ifconfig has been committed to -current and will be MFC'd after further testing. Additionally, Maksim Yevmenkin submitted code to allow cloning of tap and vmnet devices on devfs systems. Code for faith and stf should be committed shortly.

    ia64 Port Doug Rabson dfr@FreeBSD.org

    Current status is that the ia64 kernel builds and runs in a simulator environment up to single user mode and has been tested lightly in that environment. My current focus is on completing the ia64 loader so that I can start to get kernels working on the real hardware. The loader is coming along well and I expect to be able to load kernels (but not necessary execute them) soon.

    libh Project Alexander Langer alex@FreeBSD.org Nathan Ahistrom nra@FreeBSd.org

    I have access to the libh CVS repo again and am testing a new, OBJDIR capable build structure at the moment. Done that, I'm going to continue testing the package library and implement the missing functionality. Currently, import of libh into the base system is under discussion (arch mailinglist). Now that 5.0-RELEASE has been shifted, I want 5.0 ship with a libh installer and package system. We can really need people who are good in C++, are able to understand what the current implementation does and also feel that working on libh is fun and thus are willing to help.

    GNOME Desktop for FreeBSD Maxim Sobolev sobomax@FreeBSD.org FreeBSD GNOME Team gnome@FreeBSD.org

    Getting GNOME Fifth-Toe metaport ready for 4.4-RELEASE was the main focus of activity this month. In the process many components were updated, many bugs were tracked down and solved, which allowed to make this 97-component meta-package building and working properly.

    Next month the project will be focused on organizing work of the FreeBSD GNOME Team as well as on attempts to increase amount of people participating in the team (anybody who is willing to participate is welcome to drop a note to gnome@FreeBSD with a short explanation of how he/she could help).

    fbsd-nvdriver Erik Greenwald erik@floatingmind.com Joel Willson siigorny@linuxsveeden.borkborkbork

    NVIDIA Corporation releases Linux drivers by using a combination of binary object files and source (under a constrictive license). The FreeBSD NVIDIA driver project aimed to completely replace the source component of the driver using code targeting FreeBSD 4.3 and released under the BSD license. The binary module provided is supposedly the same module used on Windows, BeOS, and OS/2, so it should be portable between different i80x86 based OS's.

    The project is currently on indefinite hold. Our contact at NVIDIA seemed enthusiastic about the project, and was fairly quick about returning email, but when we discovered issues that prevented porting without changes to the binary component or error codes we needed deciphered, Nick (the contact) said he'd look into it and never got back. The first major problem was the ioctl interface, the NVIDIA driver passes a pointer and depends on the kernel side to copyout the right amount, where FreeBSD expect the parameters to be correct and the copyout is performed by the subsystem. This was worked around using Dave Rufinos "ioctl tunnel" idea. After that, we found that X refused to load and traced it down to an ioctl defined in the binary component erroring. We cannot tell what that ioctl is, were told that we could not sign an NDA for source to that component, and have been waiting a month for Nick to "look into it". Therefore progress is impossible (without breaking the license) and we believe that the flaws make the driver unportable to any *nix other than Linux.

    FreeBSD Release Engineering FreeBSD Release Engineer Team re@FreeBSD.org

    The FreeBSD release engineering process for FreeBSD 4.4 started to ramp up around August 1st when the "code slush" took affect. During this time all commits to the RELENG_4 branch were reviewed by re@FreeBSD.org (over 250 code snippets had to be reviewed). After the first release candidate on August 15th, all submissions were scrutinized under a more strict potential risk vs benefit curve. The best way to help get involved with the release engineering process is to simply follow the low volume freebsd-qa mailing list, help out with the neverending supply of PRs related to our installation tools (sysinstall), or to work on a possible next-generation replacement for our installation technology, such as the libh or OpenPackages projects.

    Many companies donated equipment, network access, or paychecks to finance these activities. Including Compaq, Yahoo!, Wind River Systems, and many more.

    Improved TCP Initial Sequence Numbers Mike Silbersack silby@silby.com

    In mid March, 2001, Tim Newsham of Guardent identified an attack possible against the initial sequence number generation scheme of FreeBSD (and other OSes.) In order to guard against this threat, a randomized sequence number generation scheme was ported over from OpenBSD and included in 4.3-release. Unfortunately, non-monotonic generation was found to cause major problems with applications which initiate continuous, rapid connections to a single host.

    In order to restore proper operation under such circumstances while still providing strong resistance against sequence number prediction, FreeBSD 4.4 uses the algorithm specified in RFC 1948. This algorithm hashes together host and port information with a piece of secret data to generate a unique sequence number space for each connection. As a result, outgoing initial sequence numbers are again monotonic, but also unguessable by an attacker.

    LOMAC Brian Feldman green@FreeBSD.org

    The port of LOMAC to FreeBSD is progressing well, and already has a very high level of stability (no known outstanding bugs!). Aspects which have already been implemented include a stacking filesystem overlay with fully-functional access controls (for files and directories) based on path names, access controls for sending signals, and file-backed-memory revocation for processes.

    SMPng John Baldwin jhb@FreeBSD.org Peter Wemm wemm@FreeBSD.org

    Updates to things from last month:

    • The ast() fixes were committed last month.
    • The work on the preemptive kernel is stalled for the time being. It is still unstable on Alpha and SMP systems.

    New stuff since last month:

    • sx locks now support upgrades and downgrades.
    • Witness now supports lock upgrades and downgrades.
    • Jason Evans has committed a semaphore implementation.
    • Matt Dillon has pushed Giant down into all of the syscalls.
    • John Baldwin has been working on proc locking in a p4 'jhb_proc' branch.
    • John is also currently working on making the ktrace code use a work thread to asynchronously write trace data out to the trace file. This will make ktrace safe almost completely MP safe with the exception that a few ktrace events need Giant in order to call malloc(9) and that ktrgenio() is still synchronous. Specifically, however, ktrpsig(), ktrsysret(), and ktrcsw() no longer need Giant.
    • Jonathan Lemon has started work on locking the network stack in a p4 'netlock' branch.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - +

    Most of the work this month has focused on development of the native JDK 1.3.1 patchset. The 3rd patchset is out and has been accompanied with the creation of a FreeBSD "port". This has allowed early adopters much easier access to the code and naturally resulted in a number of bugs being found. Development work has mostly focused on fixing these problems and the project is now set to release fourth patchset over the weekend, which should see the JDK in a reasonably usable state. One of the big challenges left is producing a working HotSpot JVM, which looks like it will require some heavy hacking.

    We also welcome OpenBSD's Heikki Korpela to the porting team :)

    floppy driver overhaul Joerg Wunsch j@uriah.heep.sax.de

    As part of some ongoing development activity, the floppy driver (fdc(4)) enjoyed some overhaul in the past which is part of an ongoing process. Automatic density selection will come next, something i meant to implement for years now. As part of that, the entire density selection stuff has been rewritten. 2.88 MB floppies are on the wishlist as well, but I need a working 2.88 drive before attempting to implement that.

    sppp(4) merge Joerg Wunsch j@uriah.heep.sax.de

    sppp(4) should be merged with the ISDN4BSD offspring variant. This will merge some features and bugfixes from the i4b branch (like VJ compression), and eventually end up in a single sppp(4) in the tree. While being at that, incorporating many changes and bugfixes from NetBSD is considered as well.

    KAME Munechika Sumikawa sumikawa@FreeBSD.org

    The KAME project (http://www.kame.net/) has merged its IPv6 and IPsec implementation as of July 2001 to FreeBSD CURRENT and STABLE, in cooperation with some contributors of the project. The latest code includes a number of bug fixes, has been fully tested in FreeBSD STABLE, and will appear in FreeBSD 4.4 RELEASE. Thus, the new RELEASE version will be quite stable in terms of IPv6 and IPsec.

    The project has assigned a talented guy to be responsible for merge from KAME to FreeBSD, so future merge efforts will be smoother.

    TrustedBSD Robert Watson rwatson@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

    The TrustedBSD project continues to move ahead, with progress made in the ACL, Capability, and MAC implementations. In addition, support from DARPA is permitting new work to improve the extended attribute code, improve security abstractions, and work on security documentation. Due to the push-back of the FreeBSD 5.0 release, it should now be possible to include a complete MAC implementation in that release. Specific status reports appear for components where substantial progress is being made.

    TrustedBSD Capabilities Robert Watson rwatson@FreeBSD.org Thomas Moestl tmm@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

    Capabilities support is currently being committed to the base FreeBSD tree--userland libraries are now fully committed, and kernel infrastructure is being integrated.

    BSDCon Europe Paul Richards paul@freebsd-services.com

    Planning for BSDCon Europe is going well. We're still accepting proposals for talks but the schedule is starting to fill up so we may not be for much longer.

    An update of the site that includes accommodation information, a preliminary schedule, a list of speakers and an online payment page will be launched on Wednesday 19 September.

    The fee will be £150 for individuals and £250 for corporations. The individual pricing is valid only until the end of September, the price will rise to £200 for October and late registrations in November will be £250.

    The updated website will include a list of sponsorship options, we're still looking for more sponsorship.

    diff --git a/en/news/status/report-2001-09.xml b/en/news/status/report-2001-09.xml index ac158233e5..3716ceb880 100644 --- a/en/news/status/report-2001-09.xml +++ b/en/news/status/report-2001-09.xml @@ -1,944 +1,944 @@ - + September 2001 - $FreeBSD: www/en/news/status/report-september-2001.xml,v 1.1 2001/11/12 22:25:12 chris Exp $ + $FreeBSD: www/en/news/status/report-september-2001.xml,v 1.2 2003/04/13 16:31:52 hrs Exp $
    Introduction

    In the month of September, the FreeBSD Project continued its investment in long-term projects, including continuing work on a fine-grained SMP implementation, support for Kernel Schedulable Entities (KSE) supporting highly efficient threading, and broadening support for modern hardware platforms, including Intel's new IA64 architecture, UltraSparc, and PowerPC. Additional focus was placed on the release process, including work on the release notes infrastructure, support for DVD releases, and work on a binary updating tool.

    Due to the delay in getting the September report out the door, the November status report will also cover October. During the month of November, we look forward to BSDCon Europe, the first such event outside the continental United States. The USENIX conference paper submission deadlines are also in November, and FreeBSD users and developers are encouraged to submit to the general and FREENIX tracks. Please see www.usenix.org for more information.

    PRFW Evan Sarmiento evms@csa.bu.edu

    PRFW provides hooks in the FreeBSD kernel, allowing users to insert their own checks in system calls and various kernel functions. PRFW is nearing 0.5, which will incorporate numerous structural changes such as, much faster per-process hooks, kernel function hooks, plus, a new way of adding hooks which would enable users to reference hooks by a string.

    FreeBSD libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org

    The build process is now creating four different versions of the libs, which include support for TVision, Qt, both or none. I created some first packages from existing ports and installed those libh packages on my system only using libh's tools, including registering all the files in the package database, recording their checksums etc. Patches to the disk editor have been submitted, which include functionality to write the changes in the fdisk part and initial support for a disk label editor. We'll soon have a new committer.

    RELNOTESng Bruce A. Mah bmah@FreeBSD.org - +

    FreeBSD 4.4-RELEASE was the first release of FreeBSD with its new-style release documentation. Both English and Japanese versions of these documents were created. Regularly-built snapshots of -CURRENT and 4-STABLE release documentation are now available on the Web site, but they require a little HTML infrastructure to make them viewer-friendly. I intend to continue updating my snapshot site at the URL above, at least for a little while.

    Call for help: The hardware compatibility lists need to be updated in the areas of the Alpha architecture, USB devices, and PCCARD devices. I'm looking for volunteers to help; interested parties should contact me at the email address above. DocBook experience is not required; familiarity with the hardware above would be very helpful.

    Fibre Channel Support Matthew Jacob mjacob@FreeBSD.org

    Bug fixing and move to -STABLE of 2Gb support.

    Intel Gigabit Ethernet Matthew Jacob mjacob@FreeBSD.org

    Quite a lot of cleanup of this driver. Bug fixes and some performance enhancements. However, this driver is likely to be removed shortly and replaced by one from Intel itself.

    TIRPC Martin Blapp mb@imp.ch

    As you know, in march 2001 the version 2.3 of TIRPC has been committed together with many userland changes. Alfred Perlstein and Ian Dowse have helped me a lot with the porting effort and if I had problems with understanding the code.

    Most bugs are now fixed, some remaining areas to fix are secure RPC (keyserv) and unix domain support. I've patches for these area available. Ian Dowse fixed a lot of outstanding bugs in the rpcbind binary itself. Thank you Ian !

    The plan is now to migrate slowly towards TIRPC 2.8, which is threadsafe for the server- and clientside. One first patch I've made available on my URL. TIRPC 2.8 is licensed under the "Sun Standards License Version 1.0" and we have to add some license lines and the license itself to all modified files.

    A example is timed_clnt_create.diff which can be found on the homepage.

    binup Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org

    The project has gained a mailing list, freebsd-binup@FreeBSD.org - and the source tree has been moved into the projects/ directory in the FreeBSD CVS repository. Current work is focusing on extending the FreeBSD package framework, and the client library should be rewritten and completed by the end of the year.

    TODO: make the projects/ hierarchy into a cvsup distribution and add it to cvs-all. Then update distrib.self.

    Porting ppp to hurd & linux Brian Somers brian@freebsd-services.com

    Status is unchanged since last month. Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed. Many conflicts are expected after the commit of IPv6 support in ppp.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    The software has been committed to -current and seems functional. Outstanding issues include dealing with IPV6CP events (linkup & linkdown scripts) and allocating site-local and global addresses (currently, ``iface add'' is the only way to actually use the link). A bug exists in -stable (running the not-yet-MFC'd ppp code) whereby routing entries are disappearing after a time (around 12 or 24 hours). No further details are yet available.

    FreeBSD DVD generation Brian Somers brian@freebsd-services.com

    A two disc set has been mastered and sent for pressing. There are a few surprises with this release - details will be given in the official announcement (at BSDConEurope).

    Netgraph ATM Harti Brandt brandt@fokus.gmd.de

    ATM-Forum LAN-emulation version 2.0 without support for QoS has been implemented and tested. The ILMI daemon has been modularized into a general mini-SNMP daemon, an ILMI module and a not yet finished IPOA (IP over ATM) module.

    jpman project man-jp@jp.FreeBSD.org

    We have finished updating section [125678] manpages to 4.4-RELEASE based, 1 week after 4.4-RELEASE is announced. To finish this update, OKAZAKI Tetsurou has imported Ex/Rv macro support on ja-groff-1.17.2_1. SUZUKI Koichi did most Ex/Rv changes on Japanese manpages. He also find some issues of these macro usage on some original manpages and filed a PR. For post-4.4-RELEASE, now we target 4.5-RELEASE. Section 3 update is also in progress.

    New Mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@qualys.com

    We've made some good progress now, and the new nmount(2) syscall is nearly finished. There is still some work to do to have a working kernel_mount() and to convert all filesystems to use this new API for their VFS_MOUNT() functions.

    FreeBSD/sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org Thomas Moestl - tmm@freebsd.org + tmm@FreeBSD.org

    I am pleased to announce that as of 1 AM Friday October 19th, the sparc64 port boots to single user mode. A few binaries from the base system have been built and verified to work properly. Much of this work is still in review for commit, but will be integrated into the cvs tree as soon as possible. EBus support has been ported from NetBSD, and ISA support has been written. The PCI host bridge code has stabilized, and busdma seems to work correctly now. The sio driver has had EBus support added, and the ATA driver has been modified so that it works on big-endian systems and uses the busdma API. With these changes, a root file system can now be successfully mounted from ATA disks on sparc64, even in DMA mode. The gem driver, which supports Sun GEM and ERI and Apple GMAC and GMAC2 ethernet adaptor, has been ported from NetBSD but has not yet had sufficient testing.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    No new status to report, the code is still waiting to be committed. It is likely that this code will be expanded to include syn cookies as a further fallback mechanism.

    Compressed TCP state Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Development on this project has been slowed, pending the commit of the syncache code, as this builds on part of that work.

    Network SMP locking Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Not much progress has been made this month, with other projects occupying most of my time. However, reviewing all the code and data structures had a side benefit; a hash table for inet addresses has been added. This will significantly speed up interface address lookups in the case where there are a larger number of interface aliases.

    Multiple console support Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Currently, a single device may act as a console at any time, which requires the user to choose the console device at boot time. With the upcoming network console support, it is desirable to allow multiple console devices which behave identically, and to alter consoles while the kernel is running.

    The code is completed, and needs some final polishing to clean up the rough edges. Console output can be sent to both syscons and sio, (as well as the network) and when in ddb, input can be taken from any input source. A small control program allows adding and removing consoles on the fly.

    Network console Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    This project's goal is to add low level network functionality to FreeBSD. The initial target is to make a network console available for remote debugging with ddb or gdb. A secondary target is to utilize the code to perform network crash dumps. The design assumes that the network card and driver are working, but does not rely on other parts of the kernel.

    Initial development has been fairly rapid, and a minimal TCP/IP stack has been written. It is currently possible to telnet to a machine which is at the ddb> prompt and interact with the debugger.

    Network device nodes Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Network devices now support aliases in the form of /dev/netN, where N is the interface index. Devices may be wired down to a specific index number by entries in /boot/device.hints of either:

    hint.net.<ifindex>.dev="devname" hint.net.<ifindex>.ether="ethernet address"

    Additionally, ifconfig has been updated so that it will accept the alias name when configuring a device.

    Intel Gigabit driver Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    The gx driver has finally been committed to the tree. The driver provides support for the Intel PRO/1000 cards, both fiber and copper variants. The driver supports VLAN tagging and TCP/IP checksum offload.

    KSE - julian@freebsd.org + julian@FreeBSD.org - + - +

    In the last month, not a lot has happened other than settling in of the big August commit. Largely due to me having a sudden increased workload at work, and a need for increased time to be spent elsewhere. However some design work has proceeded. The API has firmed up somewhat and several people have been reading through what has been done already in order to be able to help in the next phase.

    Milestone 3 will be to have the ability to generate and remove multiple threads/KSEs per process. Milestone 3 will NOT require that doing so will be safe. (especially in SMP systems), i.e. locking issues will not be fully addressed, so while some testing will be possible, it will not be possible to actually run in this mode with any load.

    This will require allocators and destructors for the new structures. Creation of the syscalls. Generation of an accurate written API for the userland crew. Writing of the upcall launch code. Production of a userland test program (not a full thread scheduler). Resolution of some of the more glaring incompatibilities (e.g. the scheduler) in a backwards compatible manner. (i.e. if there are no multi threaded processes on a system it should behave the same as now (and be as reliable)).

    Criteria for knowing when we have reached Milestone 3 is the ability for a simple process on an unloaded system to perform a series of blocking syscalls reliably. e.g. open 2 sockets, and send data on one, after having done a read on another, and then 'respond' in like manner..

    PowerPC Port Benno Rice benno@FreeBSD.org

    There have been a few major successes in the PowerPC port this month. Mark Peek has succeeded in getting the FreeBSD/PowerPC kernel cross compiled on FreeBSD and booting under the PSIM simulator (now in /usr/ports/emulators/psim-freebsd). I have succeeded in getting the FreeBSD loader to load and execute kernels using the OpenFirmware found on Apple Macintosh hardware. Mark is now working on completing some of the startup and pmap code, while I am taking advantage of the simulator to work on some interrupt and device issues.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - Official FreeBSD Java + Official FreeBSD Java Project site.

    The project has moved forward on JDK 1.3.1 development this month, with the release of two more patchsets. The team is reasonably confident that the latest patchset is a stable release of the core JDK 1.3.1 tools and classes, when the default "green" threads subsystem is used. This is mostly thanks to hard work by Fuyuhiko Maruyama to stabilize and fix the code. Bill Huey has also been progressing with his work on the "native" threads subsystem, although this hasn't yet reached the stability of "green" threads. Another (arguably the) major highlight of the latest patchset was the integration of NetBSD support by Scott Bartram and Alistair Crooks (the latter of NetBSD packages fame). Hopefully OpenBSD support will follow, making it truly a united BSD Java Project.

    Improving FreeBSD startup scripts Doug Barton DougB@FreeBSD.org Gordon Tetlow gordont@gnf.org Improving FreeBSD startup scripts Luke Mewburn's papers NetBSD Initialization and Services Control

    This group is for discussion about the startup scripts in FreeBSD, primarily the scripts in /etc/rc*. Primary focus will be on improvements and importation of NetBSD's excellent work on this topic.

    Alright folks, I finally got off my butt last night and put together a roadmap for the migration to the new rc.d init scripts that were imported from NetBSD a long time ago and just sat in the tree.

    M1 (Patch included)
    Setup infrastructure
    Make rcorder compile
    Hook rc.subr into the distribution (and mergemaster)
    Hook rcorder into the world
    Add toggle in rc.conf to switch between rc_ng and current boot scripts

    M2
    Get FreeBSD to boot with the new boot scripts
    Rewrite the /etc/rc.d scripts to work with FreeBSD

    M3
    Add some FreeBSD specific support into rc.subr

    M4
    Add true dependency checking to the infrastructure so that starting nfsd will start mountd and rpcbind
    add support into rc.subr
    Add dependencies into rc.d scripts

    I'd like a couple of people to take a look at this and then I'll submit a pr for it if there aren't too many objections. I'm expecting M2 to run into quite a bikeshed, but hey, I got my nice shiny asbestos back from the cleaners.

    FreeBSD C99/POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List freebsd-standards@bostonradio.org

    The FreeBSD C99/POSIX Conformance Project aims to implement all requirements of the C99 Standard and the latest 1003.1-200x POSIX draft (currently Draft 7). In cases where aspects of the standard cannot be followed, those aspects will be documented in the c99(7) or posix(7) manuals. It is also an aim of this project to implement regression tests to ensure correctness whenever possible.

    Patches that implement the <stdint.h> and <inttypes.h> headers, and modifications to printf(3) have been developed and will be committed shortly. They will allow us to use some of the new types C99 introduces, such as intmax_t and the printf(3) conversion specifier "%j".

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    Some progress has been made on the proc locking this month. Also, a new LOCK_DEBUG macro was defined to allow some locking infrastructure to be more efficient. Kernels now only include the filenames of files calling mutex, sx, or semaphore lock operations if the filenames are needed. Also, mutex operations are no longer inlined if any debugging options are turned on. The ucred API was also overhauled to be more locking friendly. A group has also started investigating the tty subsystem to design and possibly implement a locking strategy.

    diff --git a/en/news/status/report-2001-11.xml b/en/news/status/report-2001-11.xml index ff2e34e623..c4f07c642e 100644 --- a/en/news/status/report-2001-11.xml +++ b/en/news/status/report-2001-11.xml @@ -1,1025 +1,1025 @@ - + November 2001
    Introduction

    This months report covers activity during the second half of October, and the month of November. During these months, substantial work was performed to improve system performance and stability, in particular addressing concerns regarding regressions in network performance for the TCP protocol, and via the introduction of polled network device driver support. Work continues on long-term architectural projects for 5.0, including KSEs, NEWCARD, and TrustedBSD, as well as the cleaning up of long-standing problems in FreeBSD, such as PAM integration. Administrative changes are also documented, including work to redefine and formalize the release engineering process, and the approval of a new portmgr group which will administer the ports collection.

    FreeBSD users and developers are strongly encouraged to attend the USENIX BSD Conference in February of next year; it is expected that this will be a useful forum both for learning about FreeBSD and on-going work, as well as providing an opportunity for developers to work more closely and act as a vehicle for discussion and round-the-clock hacking. More information is available at the USENIX web site.

    Robert Watson

    TCP Performance Improvements Matthew Dillon dillon@FreeBSD.org

    A number of serious TCP bugs effecting throughput snuck into the system over the last few releases and have finally been fixed. TCP performance should be greatly improved for a number of cases, including TCP/NFS.

    Intel Gigabit Driver: wx desupported Matthew Jacob mjacob@feral.com

    The wx driver is desupported and removed from -current. No further support for wx in -stable is planned. Newer and better drivers are now in the tree.

    Fibre Channel Support Matthew Jacob mjacob@feral.com Qlogic ISP Host Adapter Software

    Ongoing bug fixes. Work is underway, to be integrated shortly, that makes the cross platform endian support easier and will prepare the FreeBSD version for eventual sparc64 and PowerPC usage.

    TrustedBSD Audit John Doe trustedbsd-audit@trustedbsd.org TrustedBSD Project Homepage

    Currently, we are exploring a variety of strategies to learn about the implementation and performance issues in order to have a solid design. One of our main goals will be to use a standardized interface to the system, whether it be POSIX.1e, or another of the other standards, because as they say "Standards are great because you have so many to choose from." Hopefully within the next month or so, we will populate the perforce TrustedBSD tree with an agreed upon framework that is ready for serious final work.

    Pluggable Authentication Modules Mark Murray markm@FreeBSD.org Dag-Erling Smørgrav des@FreeBSD.org - +

    On the code side, a number of libpam bugs have been fixed; a new PAM module, pam_self(8) , has been written; and preparations have been made for the transition from /etc/pam.conf to /etc/pam.d .

    On the documentation side, new manual pages have been written for pam_ssh(8) , pam_get_item(3) and pam_set_item(3) , and work has started on a longer article about PAM which is expected to be finished by the end of the year.

    A lot of work still remains to be done to integrate PAM more tightly with the FreeBSD base system—particularly the passwd(1) , chpass(1) etc. utilities—and ports collection.

    Status Report: mb_alloc (-CURRENT mbuf allocator) Bosko Milekic bmilekic@FreeBSD.org Code Dump and Preliminary Results

    Presently re-style(9)ing mbuf code with the help of Bruce (bde). The next larger step is approaching: to better performance, as initially planned, not have reference counters for clusters allocated separately via malloc(9). Rather, use some of the [unused] space at the end of each cluster as a counter; since this space is totally unused and since ref. counter <--> mbuf cluster is a one-to-one relationship, this is most convenient.

    FreeBSD 4.5 Release Engineering Murray Stokely murray@FreeBSD.org - FreeBSD + FreeBSD Release Engineering. FreeBSD 4.5 Release Process / Schedule.

    Release engineering activities for FreeBSD 4.5 have begun. An overview of the entire process has been added to the FreeBSD web site, along with a specific schedule for 4.5. The code freeze is scheduled to start on December 20. The team responsible for responding to MFC requests sent to re@FreeBSD.org for this release is: Murray Stokely, Robert Watson, and John Baldwin. Some of our many goals for this release include closing more installation-related problem reports, being more conservative with our approval of changes during the code freeze, and continuing to document the entire process. For suggestions or questions about FreeBSD 4.5 release activities, please subscribe to the public freebsd-qa@FreeBSD.org mailing list.

    Web site conversion to XML Nik Clayton nik@FreeBSD.org

    Work is (slowly) progressing on converting the web site to use pages marked up in a simple XML schema, and then generating HTML and other output formats using XSLT style sheets. The work so far can be tested by doing "cvs checkout -r XML_XSL_XP www" and then "cd www/en; make index.html". Take a look at index.page in the same directory to see the source XML. The CVS logs for index.page contain detailed instructions explaining how index.page was generated from its earlier form.

    FreeBSD in Bulgarian Peter Pentchev roam@FreeBSD.org

    The FreeBSD in Bulgarian project aims to bring a more comfortable working environment to Bulgarian users of the FreeBSD OS. This includes, but is not limited to, font, keymap and locale support, translation of the FreeBSD documentation into Bulgarian, local user groups and various forms of on-line help channels and discussion forums to help Bulgarians adopt and use FreeBSD.

    Bulgarian locale support has been committed to FreeBSD 5.0-CURRENT (and later merged into 4.x-STABLE on December 10th). A local CVS repository for the translation of the FreeBSD documentation into Bulgarian has been created.

    New mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@qualys.com

    There is now some code ready for the new mount API, which has to be reviewed and tested. If it is adopted, we will probably start converting all the filesystems, as well as other code in the kernel, to make them use it. If you want to play with it, the patch is available at the above URL.

    Network interface cloning and modularity Brooks Davis brooks@FreeBSD.org

    Support for VLAN cloning has been merged from current and will ship with 4.5-RELEASE. Additionally, new rc.conf support for cloning interfaces at boot has been MFD'd. Work is ongoing to MFC stf and faith cloning as well as adding cloning for ppp devices and enhancing VLAN modularity.

    Device Polling Luigi Rizzo luigi@iet.unipi.it Web page with code and detailed description.

    This work uses a mixed interrupt-polling architecture to handle network device drivers, giving the system substantial improvements in terms of stability and robustness to overloads, as well as the ability to control the sharing of CPU between network-related kernel processing and other user/kernel tasks. Last not least, you might even see a moderate (up to 20-30%, machine dependent) performance improvement.

    RELNOTESng Bruce Mah bmah@FreeBSD.org

    I've been working on making the Hardware Notes less i386-centric. This will be especially important for -CURRENT as the ia64 and sparc ports reach maturity; most of this work should be completed in time to be MFC-ed for FreeBSD 4.5-RELEASE. I encourage any interested parties to review the release documentation and send me comments or patches.

    FreeBSD NVIDIA Driver Port Matthew N. Dodd mdodd@FreeBSD.org News and Status. FTP directory.

    The port of the driver is around 90% feature complete. AGP support and "Registry" support via sysctl need to be finished/implemented. The NVIDIA guys are working on a build of the X11 libs and extensions for FreeBSD; once this is done hardware accelerated direct rendering should work. The previous version this driver is no longer available. I'm planning on making a snapshot of my code once I chase out a few more bugs.

    Please note that development is taking place under -CURRENT right now; a port to -STABLE will be available at some later time.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Anonymous FTP

    jp.FreeBSD.org daily SNAPSHOTs project is yet another snapshots server that provides latest 4-stable and 5-current distribution. You also find installable ISO image, live filesystem, HTMLed source code with search engine, and more; please check project webpage for more details.

    UDF Filesystem Scott Long scottl@FreeBSD.org - UDF + UDF Filesystem.

    Modest gains have been made on the UDF filesystem since the last report. Reading of files from DVD-ROM now works (and is fast, according to some reports), and there is preliminary support for reading from CD-RW media. The CD-RW support has only been tested against CD's created with Adaptec/ Roxio DirectCD, and much, much more testing is needed. Once this support is solid, I plan to check it into the tree and start work on making the filesystem writable.

    NEWCARD/OLDCARD Status report Warner Losh imp@FreeBSD.org

    Not much to report. A number of minor bugs in OLDCARD have been corrected. A larger number of machines now work. Additional work on ToPIC support has been committed, but continued lack of a suitable ToPIC machine has left the author unable to do much work. A few stubborn machines still need to be supported (the author has an example of one such machine, so there is hope for it being fixed. Some pci related issues remain for both OLDCARD and NEWCARD.

    NEWCARD work is ramping up, while OLDCARD work is ramping down. A number of things remain to be done for NEWCARD, including suspend/ resume support, generic device arrival/removal daemon and hopefully automatic loading of drivers. A number of current pccard drivers still need to be converted to NEWBUS. Several Chipset issues remain, as does the merging of isa pccard bridge code with the pccbb code.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper + Old concept paper here.

    This project is now finally underway, thanks to DARPA and NAI getting a sponsorship lined up. The infrastructure code and data structures are currently taking form inside a userland simulation harness.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org User and developer information (in Japanese).

    Targeting 4.5-RELEASE, we continued to revising doc/ja_JP.eucJP/man/man[1256789] to catch up with RELENG_4. Section 3 updating has 45% finished.

    LOMAC Status Report Brian Feldman green@FreeBSD.org NAI Labs' LOMAC page

    A FreeBSD -CURRENT snapshot with LOMAC is currently being prepared, with aid of Perforce on the "green_lomac" branch. Very soon there should be a working demonstration installation CD of FreeBSD with LOMAC, including the ability to enable LOMAC in rc.conf with sysinstall, being a legitimate "out-of-the-box" FreeBSD experience. Actual release build is pending debugging issues with program start-up (especially xdm).

    ATA Project Status Report Søren Schmidt sos@FreeBSD.org

    Work is underways to support failing mirror disks better and handle hotswapping in a new replacement disk and have it rebuild automagically.

    Support for the Promise TX4 is now working in my lab, seems they did the PCI-PCI bridging in the not so obvious way.

    Plans are in the works to backport the -current ATA driver to -stable with hotswap and the works. Now that -current is delayed I'm working on ways to give me time to get this done, since I've had lots of requests lately and we really can't let down our customers :).

    SMART support is being worked on, but no timelines yet.

    Although not strictly ATA, Promise has equipped me with a couple SuperTrak sx6000 RAID controllers, they take 6 ATA disks and does RAID0-5 in hardware. I have done a driver (its an I2O device) for both -current and -stable and it works beautifully with hotswap the works. It will enter the tree when it is more mature, and I have an agreement with Promise on how we handle userland control util etc. BTW it seems it can also be used as a normal 6 channel PCI ATA controller, a bit on the expensive side maybe...

    Revised {mode,log}page support for camcontrol Kelly Yancey kbyanc@FreeBSD.org

    Extending camcontrol's page definition file format to include both modepage and logpage definitions; adding support to camcontrol to query and reset log page parameters. Consideration is being made to possibly include support for diagnostic and vital product data pages, but that is outside the current project scope. New page definition file format includes capability to conditionally include page definitions based on SCSI INQUIRY results allowing vendor-specific pages to be described also. Approximately 80% complete.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    Work on the FreeBSD C99 & POSIX Conformance Project is progressing nicely. Since the last status report, two new headers have been added [<stdint.h> and <inttypes.h>], several new functions implemented [atoll(3), imaxabs(3), imaxdiv(3), llabs(3), lldiv(3), strerror_r(3), strtoimax(3), and strtoumax(3)], and changes to assert(3) and printf(3) were made to support C99. More printf(3) changes are in the works to support the remaining C99 and POSIX requirements. Additionally, research was done into our POSIX Utility conformance and a list of tasks was derived from that research.

    Several other interesting events occurred during November and the beginning of December. The project mailing list was moved to the FreeBSD.org domain, and is now available at standards@FreeBSD.org. On December 6, 2001, the IEEE Standards Board approved the Austin Group Specification as IEEE Std 1003.1-2001, thus making the work we're doing ever more important.

    Improving FreeBSD startup scripts Doug Barton Committer DougB@FreeBSD.org Gordon Tetlow Contributor gordont@gnf.org Improving FreeBSD startup scripts Luke Mewburn's papers NetBSD Initialization and Services Control <-- from http://groups.yahoo.com/group/FreeBSD-rc/ -->

    This group is for discussion about the startup scripts in FreeBSD, primarily the scripts in /etc/rc*. Primary focus will be on improvements and importation of NetBSD's excellent work on this topic.

    <-- from Gordon Tetlow's ranting -->

    Due to personal commitments by the folks working on this project we have been unable to spend much time porting the rc.d infrastructure into the FreeBSD boot framework.

    Currently, the system will boot (with a little fudging) just before network utilization. There are patches floating around for this (see the -arch list from September).

    KSEs Julian Elischer julian@FreeBSD.org - My web-page with + My web-page with links - Jason Evans' KSE + Jason Evans' KSE page.

    I have been working behind the scenes on design rather than programming for this last month. I have been working however in the p4 tree to make the system run with the thread structure NOT a part of the proc structure (a prerequisite for threading)

    Ports Manager Team (portmgr) Will Andrews will@FreeBSD.org Ports build cluster

    After a discussion with the Core Team about our status regarding the ports collection, we heard from them that they'd decided to recognize us as the final authority for approving ports committers. We've spent the last few weeks working on our ports build cluster (see the link) and trying to find ways to improve it for the ports development community. We've also handled a few minor issues in the ports collection.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org TrustedBSD Home Page

    The TrustedBSD Project continued focusing development efforts on fine-grained Capabilities and Mandatory Access Control this month. Kernel support for capabilities is essentially complete, and efforts are underway to adapt userland applications to use Capabilities. The login process has been updated to allow users to run with additional privilege based on /etc/capabilities. The MAC implementation work has also been active, with improved support for the labeling of IPC objects, including better integration into the network stack. Both development trees have been updated to work with recent KSE-related developments, as well as exist more happily in a fine-grained SMP kernel. Initial audit-related work appears in a separate entry.

    Development of TrustedBSD source code was moved to the FreeBSD Perforce repository, permitting better source code management. As such, the TrustedBSD development trees will now be available via cvsup.

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    October ended up being a bit busier than November for SMPng. During October, Peter Wemm finally finished the ambitious task of unwinding all the macros in NFS and splitting it up into two halves: client and server. Andrew Reiter also submitted some code to add locks to taskqueues, and the folks working on the TTY subsystem designed the locking strategy they will be using. Per-thread ucred references were also added for user traps and syscalls. Once the necessary locking on the process ucred references is committed, this will allow kernel code to access the credentials of the current thread without needing locks while also ensuring that a thread has constant credentials for the lifetime of a syscall. November only saw a few small bug fixes unfortunately, but December is already shaping up to be a very active month, so next month's report should be a bit more interesting.

    In non-coding news, the website for the SMPng project has moved from its old location to the new location above. Also, I have completed a paper I am presenting for BSDCon regarding the SMPng project. The paper will be available in the conference proceedings and will be available online after the conference as well.

    diff --git a/en/news/status/report-2001-12-2002-01.xml b/en/news/status/report-2001-12-2002-01.xml index 528066c904..5985f9c1b7 100644 --- a/en/news/status/report-2001-12-2002-01.xml +++ b/en/news/status/report-2001-12-2002-01.xml @@ -1,716 +1,716 @@ - + December 2001 - January 2002 - $FreeBSD: www/en/news/status/report-dec-2001-jan-2002.xml,v 1.4 2002/03/09 07:06:48 dd Exp $ + $FreeBSD: www/en/news/status/report-dec-2001-jan-2002.xml,v 1.5 2003/04/13 16:31:52 hrs Exp $
    Introduction

    This bi-monthly report covers development activities on the FreeBSD Project for December 2001 and January 2002. A variety of accomplishments have been made over the last couple of months, including strong progress relating to the KSE project, which brings Scheduler Activations to the FreeBSD kernel, as well as less visible infrastructure projects such as improvements to the mount interface, PAM integration work, and translation efforts. Shortly following the deadline for this status report, the BSD Conference and FreeBSD Developer Summit were held, and will be covered in the next bi-monthly report at the end of March. Plans are already under way for the USENIX Annual Technical Conference in Monterey, CA, later this year, and all and sundry are encouraged to attend to get further insight in FreeBSD development.

    Robert Watson

    USB stack maintenance Josef Karthauser joe@FreeBSD.org

    I've been working to integrate recent improvements in the NetBSD usb stack to FreeBSD -current. Both NetBSD and OpenBSD currently share the same source, as FreeBSD did too at once point before it diverged. The goal is to get back to that state, but there are many improvements on both sides that need to be merged before this is complete.

    I'm currently looking for someone to help maintain usb in -stable. Please let me know if you're interested.

    TrustedBSD ACLs Chris Faulhaber jedgar@FreeBSD.org

    Patches for cp(1), ls(1), and mv(1) to bring in POSIX.1e-compliant Access Control List support have been updated to patch against builds of -CURRENT. Other system utilities are currently being evaluated for ACL support including install(1) (patch available) and mtree(8). Work is in progress to verify the native getfacl(1), setfacl(1), and other utilities build and work correctly on other ACL-enabled systems (e.g. Linux w/ACL patches) and to help verify POSIX-compliance of the continuing TrustedBSD work along with other systems. Finally, experimental Perl and PHP modules are available allowing limited access to native ACLs for languages other than C.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    The project is making progress. The goal is to design and implement Host Controller Interface (HCI) and Link Layer Control and Adaptation Protocol (L2CAP) layers using Netgraph framework. More distant goal is to write support for Service Discovery Protocol (SDP) and RFCOMM protocol (Serial port emulation over Bluetooth link) . All information was obtained from Bluetooth Specification Book v1.1.

    Project status: In progress. 1) Design: mostly complete, there are some minor issues to be resolved. 2) Implementation: Kernel - HCI and L2CAP Netgraph nodes have been implemented; 3) User space (API, library, utilities) - in progress. 4) Testing: In progress. I do not have real Bluetooth hardware at this point, so i wrote some tools that allow me to test the code. Some of them will be used as foundation for future user space utilities.

    Issues: 1) Bluetooth hardware; I do not have real Bluetooth hardware, so if people can donate hardware/specs it would be great. I promise to write all required drivers and make them available. I also promise to return hardware/specs on first request. 2) Project name; I would like to see the name that reflects the following: it is a Bluetooth stack, implementation is for FreeBSD and implementation is based on Netgraph framework

    "GEOM" - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper + Old concept paper here.

    This project is now finally underway, thanks to DARPA and NAI getting a sponsorship lined up. The infrastructure code and data structures are currently taking form inside a userland simulation harness. Basic MBR and BSD methods have been written and device attach/taste/dettach algorithms been implemented and validated.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage SNAPSHOTs Notes (in Japanese)

    I've update OS of buildboxes to the latest FreeBSD 5-current and 4-stable. Everything goes fine. From January 2002, I've started a webzine, SNAPSHOTS Notes (only Japanese version is available). SNAPSHOTs Notes pickups tips and information especially for the people living with FreeBSD 5-current/4-stable. Article or idea for SNAPSHOTs notes are always welcome (you don't need to write in Japanese :-).

    TrustedBSD Audit trustedbsd-discuss trustedbsd-discuss@TrustedBSD.org TrustedBSD project website

    Robert Watson created the TrustedBSD audit perforce tree, which is a branch from the TrustedBSD base tree, in order to start pushing development efforts towards using a revision control system. Andrew Reiter started to merge in some framework related code for generation of audit records, enqueueing writes, and handling data writing. There is a great deal of work to be done with updates and discussion on the trustedbsd-discuss@TrustedBSD.org mailing list.

    KSE Status Report Julian Elischer julian@FreeBSD.org - Links from + Links from here. - Links from + Links from here.

    The KSE project (an attempt to support scalable thread in FreeBSD using kernel support), has reached What I call "milestone 3". At this milestone it is possible to run a multithreaded program on a single CPU but with full concurrency of threads on that CPU. In other words the kernel supports the fact that one thread can block by allowing another thread to run in its place. A test program that demonstrates this is available at the above website.

    Milestone 4 will be to allow threads from the same program to run on multiple CPUs but may require more input from the SMPng project. I am at the moment (Feb 6) getting ready to commit a first set of changes for milestone 3, that have no real effect but serve to drastically reduce the complexity of the remaining diff so that others can read it more easily. After changes to libkvm to support this diff have been added it should be possible to run 'ps' and look at multiple threads in a treaded process. I will be demonstrating KSE/M3 at BSDcon.

    Netgraph ATM Harti Brandt brandt@fokus.gmd.de

    The Netgraph ATM package has been split into a number of smaller packages: bsnmp is a general-purpose SNMP daemon with support for loadable modules. Two modules come with it: one implementing the standard network-interface and IP related parts of MIB-2 and one for interfacing other modules to the NetGraph sub-system. ngatmbase contains the drivers for the ATM hardware, the ng_atm netgraph type and a few test tools. This package allows one to use ATM PVCs. It should be possible, for example, to do PPP over ATM with this package. Both bsnmp and ngatmbase are available in version 1.0 under the link above. Two other modules will be released in February: ngatmsig containing the UNI-4.0 signalling stack as netgraph nodes and ngatmip containing CLIP and LANE-2.0.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    A significant amount of progress was made in December and January, particularly in the area of utility conformance. Several utilities were updated to conform to SUSv3, they include: at(1), mailx(1), pwd(1), split(1), and uudecode(1). Several patches have been submitted to increase conformance in other utilities, they include: fold(1), patch(1), m4(1), nice(1), pr(1), renice(1), wc(1), and xargs(1). These are in the process of being reviewed and committed. Two new utilities have been written, specifically pathchk(1) and tabs(1). These are also being reviewed and will be committed shortly.

    A patch which implements most of the requirements of scanf(3) is being reviewed and is expected to be committed shortly. This will allow us to MFC a number of new functions and headers. Additionally, work has started on wide string and complex number support.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project (in Japanese)

    For 4.5-RELEASE, port ja-man-doc-4.5.tgz is in sync with base system except for OpenSSH pages (OpenSSH 2.3 based instead of 2.9) and perl5 pages (jpman project do not maintain). Section 3 updating has 55% finished.

    OKAZAKI Tetsurou has incorporated changes on base system's groff into port japanese/groff. MORI Kouji has fixed two bugs of port japanese/man.

    KAME KAME core team core@kame.net KAME Users Mailing List snap-users@kame.net

    The KAME project is currently focusing on the scoped addressing architecture, the advanced API implementation, NATPT and the mobile ipv6 implementation. Though these stuffs are not stable enough to be merge into the FreeBSD tree, you can get and try them from the above URL.

    FreeBSD in Bulgarian Peter Pentchev roam@FreeBSD.org

    The FreeBSD in Bulgarian project aims to bring a more comfortable working environment to Bulgarian users of the FreeBSD OS. This includes, but is not limited to, font, keymap and locale support, translation of the FreeBSD documentation into Bulgarian, local user groups and various forms of on-line help channels and discussion forums to help Bulgarians adopt and use FreeBSD.

    A guide for using FreeBSD with Bulgarian settings has been put up on the project's website. The CVS repository will be made public shortly, linked to on the URL's above.

    An independent project for making FreeBSD easier to use by Bulgarians has appeared, . It also hosts a mailing list for discussions of FreeBSD in Bulgarian, stable@FreeBSD-bg.org. For more information about the mailing list, send an e-mail with "help" in the message body to majordomo@FreeBSD-bg.org.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - +

    The past two months have been an exciting time in the FreeBSD Java Project with the signing of a license between the FreeBSD Foundation and Sun allowing us access to updated JDK source code and the Java Compatibility Kit (JCK). This license will also allow the project to release a binary version of both the JDK and JRE once JCK testing is complete. Work on this testing is under way with the project hopeful of being able to make a binary release in the not too distant future.

    In lieu of the binary release which was hoped for with FreeBSD 4.5 the project will release an updated source patchset this weekend. This patchset will feature further work on the FreeBSD "native" threads subsystem from Bill Huey. Also, thanks to hard work by Joe Kelsey and Fuyuhiko Maruyama, the patchset will for the first time feature a working Java browser plugin!

    Revised {mode,log}page support for camcontrol Kelly Yancey kbyanc@FreeBSD.org

    Extending camcontrol's page definition file format to include both modepage and logpage definitions; adding support to camcontrol to query and reset log page parameters. Consideration is being made to possibly include support for diagnostic and vital product data pages, but that is outside the current project scope. New page definition file format includes capability to conditionally include page definitions based on SCSI INQUIRY results allowing vendor-specific pages to be described also. Approximately 90% complete.

    Pluggable Authentication Modules Mark Murray markm@FreeBSD.org Dag-Erling Smørgrav des@FreeBSD.org OpenPAM

    OpenPAM, a new library intended to replace Linux-PAM in FreeBSD, has been written and is undergoing integration testing. It is available for download from the URL listed above.

    In addition to this, a couple of new modules have been written (pam_lastlog(8), pam_login_access(8)), and the pam_unix(8) module has been extended to perform most of the tasks normally performed by login(1), which is now fully PAMified.

    The PAM FDP article has been put on hold until OpenPAM replaces Linux-PAM in CVS, to avoid wasting effort on soon-to-be obsolete documentation.

    TrustedBSD MAC Implementation Robert Watson rwatson@FreeBSD.org TrustedBSD Project Web Site

    Substantial progress has been made towards a working MAC implementation. The focus over the last two months has been moving from a hard-coded series of MAC policies to a more flexible implementation. A pluggable policy framework has been created (and is still under development), supporting Biba, MLS, TE, a "BSD Extended" model, and a sample mac_none module. Some modules must be compiled in or loaded prior to boot; others may be introduced at run-time. Support for networking has improved, with improved handling of IP fragmentation in IPv4, support for various pseudo-interfaces such as if_tun and if_tap, improved integration into userland, NFS-related fixes, moving the VFS enforcement out of individual filesystems, support for a 'multilevel' mount flag, support for explicit labeling in procfs and devfs, addition of an 'extattrctl lsattr' argument to list EAs on a filesystem, support for label ranges in the Biba and MAC policies, and much more.

    Targets for the next two months include more universal enforcement of VFS-related calls, improved support for alternative ABIs, improved flexibility of in-kernel subject and object labels, support for IPv6 and IPsec, and improved support for NFS serving.

    Development continues in the FreeBSD Perforce repository, which may be accessed using cvsup.

    New mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@sneakerz.org

    Now that the patch has been mailed to the - freebsd-arch@freebsd.org mailing list, and that there were no + freebsd-arch@FreeBSD.org mailing list, and that there were no objections, the commit will happen soon. Poul is currently testing it in his own tree. After it has been committed, it will be time to modify the filesystems in the tree to use VFS_NMOUNT instead of VFS_MOUNT. Mount(8) will also need some modifications. Some new manpages -- nmount(2) and kernel_vmount(9) -- are being created in the meantime.

    SMPng smp@FreeBSD.org smp@FreeBSD.org SMPng project website

    Alfred Perlstein committed file descriptor locking code which was definitely a good push towards trying to lock down some important pieces of global data. Peter Wemm has made progress on pmap cleanups for x86 SMP TLB shootdowns. Matt Dillon and John Baldwin have made progress on getting patches done for moving accesses to ucred's out from under Giant's protection. John Baldwin has also made some commits in order to get the alpha port's SMP working. Matt Dillon has plans for hunting down fileops locking issues in order to continue his previous Giant pushdown work.

    diff --git a/en/news/status/report-2002-05-2002-06.xml b/en/news/status/report-2002-05-2002-06.xml index 0a10d2f6df..25248f14b7 100644 --- a/en/news/status/report-2002-05-2002-06.xml +++ b/en/news/status/report-2002-05-2002-06.xml @@ -1,1446 +1,1446 @@ - + May - June 2002
    Introduction

    May and June were remarkably busy months for the FreeBSD Project-- FreeBSD developers met in Monterey, CA in June for FreeBSD Developer Summit III to discuss strategy for the FreeBSD 5.0 release later this year, for the USENIX Annual Technical conference and for the FreeBSD BoF. Substantial technical progress was made on FreeBSD 5.0, and FreeBSD 4.6-RELEASE was cut on the RELENG_4 branch in June.

    The remainder of the summer will continue to be busy. Final components and features for 5.0-RELEASE will go into the tree, and the development direction will change from new features to stability, performance, and production-readiness. With additional 5.0 development previews late in the summer, we hope to broaden the tester base for the -CURRENT branch, and start to get early adopters digging out any potential problems in their test environments. I encourage both FreeBSD Developers and FreeBSD Users to give 5.0-DP2 a spin (on a machine without critical data!) and let us know how it goes. The more testing that happens before the release, the less fixing we have to do afterwards!

    Robert Watson

    TCP Hostcache Andre Oppermann oppermann@pipeline.ch

    The current cache for the TCP metrics is embedded directly into the routing table route objects. This is highly inefficient as every route has an empty 56 Byte large metrics structure in it. TCP is the only consumer (except the MTU and Expiry field) of the structure. A full view of the Internet routes (110k routes) has more than 6 Mbyte of unused overhead due to it. The hit rate today is at only approx. 10% in webserver applications. The TCP hostcache will move this entire metrics structure from the routing table to the TCP stack. Every entry is a host entry so a simple hash table is sufficient to keep the entries. Its implementation is much like the TCP Syncache.

    The hostcache is going through testing on our servers and will be ready for committing in September. The results of the TCP metrics measurement will be used to tune the cache.

    IP Routing Table Replacement Andre Oppermann oppermann@pipeline.ch Claudio Jeker jeker@n-r-g.com

    The current Patricia Trie routing table in BSD UNIX is not very efficient and wastes an enormous amount of space for every node (more than 256 bytes) (A full Internet view of 110k routes takes 33 MByte of KVM). Another problem are pointers from and to everywhere in the routing table. This makes replacing the table very hard and also significantly increases the table maintenance burden (for example for some kinds of updates the entire PCB has to be searched linearly). Also this is a heavy burden for SMP locking. The rewrite focuses on untangling the pointer mess, making the routing table replaceable and providing a more IP optimized table (5 MByte for 110k routes). Other new options include policy routing and some structural alignments in the network stack for clarity, simplicity and flexibility.

    The rewritten IP routing table will be ready for committing in October.

    TCP Metrics Measurement Andre Oppermann oppermann@pipeline.ch Olivier Mueller omueller@8304.ch Diploma Thesis of ZHWIN students, look for Olivier Mueller and Daniel Graf

    These students will analyse the tcpdumps of five major Swiss newspaper websites which give a representative overview of the user structure in Switzerland. The nice thing about Switzerland is that is has a very good mix of Modem/ISDN, leased line, Cable, ADSL and 3G/GSM/GPRS users. Every Internet access technology is represented. The goal is to analyze the behavior of all TCP sessions to the monitored sites. Parameters to be analyzed include TCP session RTT, RTT variance, in/outbound BDP, MSS changes, flow control behavior, packet loss, packet retransmit and timing of HTTP traffic to find optimal TCP parameter caching method.

    If you have any other metrics you think is useful please contact me so I can put that into the job description for the Students. The study will be made in September and October.

    NATD rewrite Claudio Jeker jeker@n-r-g.com Andre Oppermann oppermann@pipeline.ch

    The current natd is pretty powerful in translating different kinds of traffic but not very powerful in configuration. This project rewrites natd and parts of libalias to give it a configuration set as powerful and expressive as the ones in ipf (ipnat) and pf. In addition it'll use kqueue and will support aliasing to multiple IP addresses.

    The rewritten natd will be ready for committing in early September.

    FreeBSD/ia64 Peter Wemm peter@FreeBSD.org - IA64 project + IA64 project updates and information.

    IA64 has been progressing slowly. We have access to a prototype 4-way Itaninum2 system from Intel and have managed to get it up and running to the point of being able to access disk and network with SMP enabled. We have a big problem with ACPI2.0 and PCI routing table entries behind pci-pci bridges with no short-term solution in sight. Various WIP items have been committed to CVS, namely more complete support for executing 32bit i386 binaries as well as Marcel Moolenaar's prototype EFI GPT tools.

    Libh Status Report Antoine Beaupre - antoine@usw4.freebsd.org + antoine@usw4.FreeBSD.org Alexander Langer - alex@freebsd.org + alex@FreeBSD.org Nathan Ahlstrom - nra@freebsd.org + nra@FreeBSD.org - - libh + + libh new development web page. - + First snapshots of the diskeditor in action

    Max has been busy cleaning up the user interface dark side, and has come up with a plan to improve the build system (using an automated Makefile dependency generator); the UI design and the TCL glue magic (using Swig). A development page has been created on usw4, publishing a lot of information about the current project status, a Changelog, screenshots, documentation, etc. A new listbox widget has been implemented, making diskeditor look nicer and more usable. The package system backend is being inspected and redesigned to conform to a standard that is itself being re-thought. Indeed, the old sysinstall2.txt text has been SGML-ized and enhanced and now provides a good (although rough) overview of libh package system. This allowed the document to be enhanced with diagrams of how different procedures work. We are therefore getting closer to a real pkgAPI specification document. The package management tools have been slightly enhanced and should be a bit more usable, and we started committing regression test suites in the tree, mostly to test and maintain pkg API conformance.

    So work continues on libh. I plan to take a look at the rhtvision port to see if it would be better to use it for the tvision backend. I'll keep on working on the package system to make it really trustworthy, while Max is continuing his great work on the UI subsystem. I hope to make a new libh alpha release soon. Note that from now on, libh progress will be published on the development page.

    OLDCARD Warner Losh imp@FreeBSD.org

    A major power bug was fixed in oldcard. This caused many problems for people using PCI interrupts having their machines hang on boot. This fix has made it into 4.6.1.

    Cardbus power is now used on all cardbus bridges that support it. This means that we now support 3.3V cards on all cardbus bridges. Before, we only supported them on some of the bridges because every bridge uses different 3.3V power control when programmed through the ExCA registers. Now that we're going through the CardBus bridge's power control register, 3.3V cards work. In fact, for CardBus bridges, the so called X.XV and Y.YV cards will work in those bridges that support them. However, X.XV and Y.YV haven't been defined yet, and no bridges support them (but the bridge interface define it). Obviously this latter part is untested.

    CL-PD6722 support has been augmented slightly. Now it is possible to instruct the driver which type of 3.3V card detection strategy to use. There are three choices: none, do it like the CL-PD6710 does it and do it like the CL-PD6722 does it.

    Preliminary support for the CL-PD6729 on a PCI card using PCI interrupts has been committed. However, it fails for at least one of the cards like this the author has.

    Client drivers can now ask for the manufacturer and model number of the card without parsing the CIS directly.

    Except for fixing bugs and updating pccard.conf entries, no additional work is planned on the OLDCARD system.

    NEWCARD Warner Losh imp@FreeBSD.org

    A devd daemon, to replace pccardd and usbd, has been designed. A few minor bugs have been fixed in NEWCARD. NEWCARD is now the default in -current. There is an experimental pci/cardbus bus code merge available as a branch which will be merged into current as soon as it is stable.

    Status: The ed driver, for non-ne2000 clones, is broken and won't probe. The ata driver won't attach. The sio driver hangs on the first character. The wi driver is known to work well. Cardbus cards are generally known to work well, except for some de based cards, which unfortunately includes the popular Xircom cards. Many systems fail to work because acpi fails to route interrupts correctly for non-root pci bridges.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    Things are going well with the FreeBSD GNOME Project. We have just finished porting the GNOME 2.0 Final development platform and desktop to FreeBSD! We hope to be able to make GNOME 2.0 the default for 5.0-DP2 and 4.7-RELEASE. In the meantime, we're working to port more GNOME 2.0 applications.

    In order to allow GNOME 1.4.1 applications to work with GNOME 2.0, we are revamping the GNOME porting infrastructure. GNOME 1.4.1 based ports are being converted to use the new GNOMENG porting structure. The specifics of this new system will be written up in the GNOME porting guide found on the FreeBSD GNOME project homepage.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    The BSD Java Porting Team has been making slow but steady progress on a number of fronts in the last few months. Unfortunately most of this has occurred behind the scenes, meaning this is a good opportunity to bring the community up to date.

    • Bill Huey has gotten the Java HotSpot Virtual Machine up and running on FreeBSD! While dubbing the code of alpha quality, Bill has been working hard and is able to run major examples such as the Java 2D demo. This code has hit the repository and will soon be available.
    • The port of the 1.4 J2SDK has commenced. The first commits have gone into the tree, although a first patchset is a way off yet.
    • Progress continues with the TCK compliance testing. The current status has the JDK down to 19 compiler failures and 183 runtime failures. As we edge closer to compliance its hoped that example code will be released to allow the community to pull together through the final few bugs.
    • A new patchset for JDK 1.3.1 is imminent. This patchset will include HotSpot for the first time.

    KAME Project SUZUKI Shinsuke core@kame.net KAME Project Web Page IPv6 Showcase at Network+Interop2002 IPv6 Showcase at Network+Interop2002 (detailed, but in Japanase) Pictures of IPv6 Showcase

    I'm afraid KAME Project does not work actively with regard to FreeBSD in these two month, since we are too busy with the demonstration of our IPv6 implementation at Networld+Interop 2002 Tokyo. (Thanks to a great effort, the demonstration was quite successful)

    We are aware of netinet6-related bug reports regarding socket handling, fine-grain locking, ip6fw etc. Regret to say, we could not answer them right now due to the above situation, however we'll discus these issues internally and determine what to do.

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org Call for papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    FreeBSD Release Engineering re@FreeBSD.org

    Over the past few months the FreeBSD Release Engineering Team oversaw a release process that culminated in the release of FreeBSD 4.6 for the i386 and Alpha architectures on June 15. The RE team is currently working concurrently on FreeBSD 4.6.1 and 5.0 DP2. 4.6.1 is a minor point release with an updated SSH and BIND, fixes for some of the reported ata(4) problems, and assorted security enhancements that will be detailed in the release notes. The release engineering activities for 4.6.1 are taking place on the RELENG_4_6 branch in CVS, while the work on 5.0 DP2 is taking place in Perforce so as not to disturb ongoing -CURRENT development. We are still committed to FreeBSD 5.0 on or around November 15, 2002. For more information about upcoming release schedules, please see our website above. The RE team would like to thank Sentex Communications for providing the release builders with access to a fast i386 build machine. Compaq also donated a couple of fast Alpha build machines to the project.

    Fast IPSEC Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPSEC protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPSEC protocols.

    Basic functionality is operational for IPv4 protocols. IPv6 support is coded but not yet tested. Hardware assisted cryptographic operations are working with good performance improvements. Operation with software-based cryptographic calculations appears to be at least as good as the existing implementation. Numerous opportunities for performance improvements have been identified.

    This work is currently being done in the -stable tree. A port to the -current tree is about to start.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    Since the last status report, the following utilities have been brought up to conformance (at least to some degree) with POSIX.1-2001, they include: asa(1), cd(1), compress(1), ctags(1), ls(1), newgrp(1), nice(1), od(1), pathchk(1), renice(1), tabs(1), tr(1), uniq(1), wc(1), and who(1). In addition, development is taking place on bringing the BSD SCCS suite up to date with newer standards.

    On the API front, printf(9) has been given support for the `j' and 'n' flags, waitpid(2) now supports the WCONTINUED option, and an implementation of fstatvfs() and statvfs() has been committed. An implementation of utmpx is in progress, which has an aim to address some of the major problems with the current utmp. Several headers have been brought up to conformance with POSIX.1-2001, they include: <netinet/in.h>, <pwd.h>, <sys/statvfs.h>, and <sys/wait.h>.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPSEC), and OpenSSL (through the /dev/crypto device).

    The software has been available as a patch against the -stable tree for about six months. The core crypto support is tested, including device drivers for the Hifn 7951, and Broadcom 5805, 5820, and 5821 parts. Recent work has concentrated on fixing device driver bugs, fixing support for Hifn 7811 parts, adding support for public key operations, and adding flow-control between the crypto layer and device drivers. Future work includes porting this facility to the -current tree.

    KSE (Kernel schedulable Entity) thread support Julian Elischer julian@FreeBSD.org Dan Eischen deischen@FreeBSD.org Some info here.

    The project took a major step at the beginning of July when Milestone-III was committed. Milestone-III allows a simple test program (available at /usr/src/tools/KSE/ksetest/) to run multiple threads, using kernel support. It does not yet allow the ability to allow these threads to run on different CPUs simultaneously. Milestone IV will be to allow this, however Milestone-III should allow Dan to start (with any interested parties) to start prototyping the userland part of the system. Milestone-III is only currently usable on x86, and does not include some of the requirements for full thread-control, suspension etc. that will be required later.

    Before M-IV is started some small tweaking is likely in the central sources on M-III as we discover issues as we try to get the userland jumpstarted. These will have no effect on non-KSE processes, (i.e. all of them :-) and should not be an issue for other developers.

    A tex/fig->html guru is needed to help maintain the KSE web page (not mentioned above as it is broken).

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    The SMPng project has continued to make steady progress in the past two months. Jeff Roberson completed the switch over to UMA for the general kernel malloc() and free() pushing down Giant appropriately so that callers of malloc() and free() are no longer required to hold Giant. Alan Cox continues to clean up the locking in the VM system pushing down Giant in several of the VM related system calls. Jeffrey Hsu committed locking for TCP/IP protocol control blocks in the network stack. John Baldwin committed the changes to the p_canfoo() API to use thread credentials for subject threads and added appropriate locking for the targer process credentials. Support for adaptive mutexes on SMP systems as well as the new IA32 PAUSE instruction were also committed in May. The kernel tracing facility KTRACE also received an overhaul such that the majority of its work was pushed out into a worker thread allowing trace points to no longer require Giant. Andrew Reiter has also been pushing down Giant in several system calls.

    Bosko continues to work on light-weight interrupt threads for i386. Most of the bugs in the turnstile code have been found and fixed; however, the turnstile and preemption patches have temporarily been put on hold so that more emphasis can be placed on fixing bugs and making -current more stable in preparation for 5.0 release in November. Alan Cox and Andrew Reiter are continuing the work mentioned above. Jeff Roberson is also working on fixing the current vnode locking in VFS. Peter Wemm has also started to tackle TLB issues on SMP in the i386 pmap again as well.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    After an outstanding job serving the project as Security Officer for over a year, Kris stepped down in January in order to focus more of his time pursuing his PhD. I offered to attempt to fill the vacant role.

    This is the first report by the SO Team. Notable events since the beginning of 2002 follow.

    28 FreeBSD Security Advisories have been issued, 16 of which were regarding the base system. Of those sixteen, 8 affected only FreeBSD.

    FreeBSD Security Notices were introduced, and four have been issued so far. The Security Notices cover issues that are not regarded as critical enough to warrant a Security Advisory. So far only Ports Collection issues (i.e. vulnerabilities in optional 3rd party packages) have been reported in Security Notices. The first four Security Notices covered 53 individual issues.

    Issues reported to the SO team are now being tracked using a RequestTracker ticket database.

    The SO team has undergone membership changes, as well as some changes in internal organization. The membership and organization has also been made publicly visible on the FreeBSD Security Officer web page.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    For 4.6-RELEASE, we announced the package ja-man-doc-4.6.tgz which is in sync with 4.6-RELEASE base system manual pages except for perl5 pages (jpman project do not maintain them). Continuing section 3 updating has 88% finished.

    FreeBSD/KGI Status Report Nicholas Souchu nsouch@FreeBSD.org Project URL

    Progression is slow, but the effort is maintained. Most of fb over KGI has been written in parallel with a KGI display driver based on fb. DDC/DDC2 is being discussed for Plug & Play monitor support. KGI aims at providing a generic OS independent interface which would take advantage of FreeBSD I2C (iic(4)) infrastructure.

    UFS2 - Extended attribute and large size support for UFS Poul-Henning Kamp phk@FreeBSD.org Kirk Mckusick mckusick@FreeBSD.org

    UFS2 is an extension to the well-known UFS filesystem which using a new inode format adds support for "64bit everywhere" and later for extended attribute support, in addition to the current UFS features: soft-updates and snapshots.

    The basic UFS2 code has been committed and work on the extended attribute interface and vnode operations will continue.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code has gotten so far that it beats our current code in some areas while still lacking in others. The goal is for GEOM to be the default in 5.0-RELEASE.

    Currently work on a cryptographic module which should be able to protect a diskpartition from practically any sort of attack is progressing.

    OpenOffice.org for FreeBSD Martin Blapp mbr@FreeBSD.org OpenOffice.org FreeBSD port Homepage

    The port of openoffice 1.0 has been finished. Most showstopper issues with rtld, libc and our toolchain have been fixed. There is one remaining deadlock in the web-browser code of OO.org. If anybody like to help us with fixing this bug (may be another libc_r bug as it looks like) just mail me! Unfortunately gcc2 support got broken again with the import of gcc2.95.4 in STABLE. Exceptions support seems to be broken again; we get internal compiler errors with c++ exceptions code. You'll have to use gcc31 again.

    Since our package cluster is outdated and can not build OO.org packages anytime soon, I did my own little package cluster and can now offer packages for 4.6R for 16 different languages. They can be found on the project homepage.

    Porting of OpenOffice1.0.1 is on it's way. A beta port and a package have been made available on the project homepage.

    Lightweight Interrupt Scheduling Bosko Milekic bmilekic@FreeBSD.org + href="http://people.FreeBSD.org/~peter/p4db/chb.cgi?FSPC=//depot/projects/interrupt/sys/..."> The interrupt p4 branch

    The lightweight interrupt scheduling code makes scheduling an interrupt on i386 without having to grab the sched_lock possible, and also avoids a full-blown context switch.

    Currently, the code in the p4 branch works, although needs a little bit of cleanup and, most importantly, requires a merge to post-KSE III. Now that stuff seems to have stabilized a bit, I'm waiting to get a little time (and nerve) to do the merge. Also, looking forward for some KSE interface that will allow for "KSE borrowing," which would make this cleaner with regards to KSE and lightweight interrupts. This is a 5.0 feature.

    TIRPC port for BSD sockets Martin Blapp mbr@FreeBSD.org TIRPC for FreeBSD Homepage

    A lot of remaining PR's and Bugs have been closed. All relevant rpc concerning patches have been committed. Thanks go to Alfred and Ian Dowese.

    Jean-Luc Richier <Jean-Luc.Richier@imag.fr> has made a patch available which adds IPv6 support to all remaining rpc servers. See ftp://ftp.imag.fr/pub/ipv6/NFS/NFS_IPV6_FreeBSD5.0.gz and ftp://ftp.imag.fr/pub/ipv6/NFS/0README_NFS_IPV6_FreeBSD5.0 We will check his code and add it to CURRENT ASAP.

    A first commit part from TIRPC99 has been done. I'm working now on porting the remaining parts so when FreeBSD 5.0 gets released, it will be TIRPC99 based. This will happen together with the NetBSD project, as they use the same codebase as we do.

    mb_alloc updates Bosko Milekic bmilekic@FreeBSD.org - Some + Some [Old] mb_alloc stuff

    mb_alloc is getting some updates and a couple of optimizations. A new allocator interface routine should already be committed by the time this report is "published:" m_getcl() allocates an mbuf and a cluster in one shot. This is the result of months (literally) of requests from Alfred and, recently, Luigi - who, coincidentally, is the author of the same [upcoming] routine in -STABLE.

    Other than that, mb_alloc is being shown how to perform multi-mbuf or cluster allocations without dropping the cache lock in between (m_getcl() and m_getm() will use this). Finally, work is being done to optimize ext_buf ref. count allocations and to provide support for jumbo (> 9K) clusters.

    Improving FreeBSD Startup Scripts Doug Barton DougB@FreeBSD.org Mike Makonnen makonnen@pacbell.net Gordon Tetlow gordont@FreeBSD.org The Yahoo! group site for discussion of this project

    We are making excellent progress. There is a fully functioning implementation imported to -current now. We need as many people as possible to rc_ng equal to YES in /etc/rc.conf.

    The next step is to set the default to YES, which we plan to do before DP 2.

    ipfw2 Luigi Rizzo luigi@FreeBSD.org

    In summer 2002 the native FreeBSD firewall has been completely rewritten in a form that uses BPF-like instructions to perform packet matching in a more effective way. The external user interface is completely backward compatible, though you can make use of some newer match patterns (e.g. to handle sparse sets of IP addresses) which can dramatically simplify the writing of ruleset (and speed up their processing). The new firewall, called ipfw2, is much faster and easier to extend than the old one. It has been already included in FreeBSD-CURRENT, and patches for FreeBSD-STABLE are available from the author.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese ) SNAPSHOTs anonftp area on the web Release branch snapshots for FreeBSD/i386

    I spent busy days in last two months, many new topics are emerged from the project. We now support FreeBSD/alpha 5-current distribution by cross-compiling on the x86 PC. Anonymous ftp area is now exported to the yet another web server. Our release branch snapshots are relocated to daemon.jp.FreeBSD.org because of our CPU/network bandwidth problem.

    I'm seriously considering to solve the lack of CPU and network resources for the project's future evolution. Maybe the bandwidth problem can be resolved (several bandwidth offers have been received!), but there is no answer about CPU problems (I have a plan to upgrade our PCs from P3-500MHz to P4 or better). If you have interested in donating PCs to the project, please email me for more detail.

    Userland Regression Tests Juli Mallett jmallett@FreeBSD.org

    Regression tests for many bugs fixed in text manipulation utilities have been added, as well as tests for various non-standard versions of functionality that FreeBSD users should expect. A library of m4 macros for creating the tests themselves has been added.

    Single UNIX Specification conformant SCCS suite Juli Mallett jmallett@FreeBSD.org

    The final version of SCCS distributed by CSRG has been integrated into the projects CVS repository, and worked on extensively to the point where essential functionality works on FreeBSD (and other operating systems). Some standards-related functionality has been implemented

    Zero Copy Sockets status report Ken Merry ken@FreeBSD.org Zero copy patches and information.

    The zero copy sockets code was committed to FreeBSD-current on June 25th, 2002. I'm not planning on doing any more patches, although I will leave the web page up as it contains useful information.

    Many thanks to the folks who have tested and reviewed the code over the years.

    locking up pcb's in the networking stack Jeffrey Hsu hsu@FreeBSD.org - +

    Jennifer Yang's patch was committed June 10 for the BSD Summit. After a few bugs which were reported initially and fixed that same week, networking in -current has been stable, including the parts that were not locked up, like IPv6. Work is on-going to lock up the rest of the stack.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Another engineering snapshot is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20020709.tar.gz. If anyone has Bluetooth hardware and spare time please join in and help me with testing.

    This snapshot includes basic support for USB devices and manual pages. The HCI layer now has support for multiple control hooks. All HCI transport drivers (H4, BT3C and UBT) has been changed to provide consistent interface to the rest of the world. Some userspace utilities have been changed as well.

    Still no support for RFCOMM (Serial port emulation over Bluetooth link) and SDP (Service Discovery Protocol). Several design flaws have been discovered and it might take some time to resolve these issues.

    TrustedBSD MAC Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD main web page

    The TrustedBSD Project has been busy in May and June, developing new features, presenting on the technology at the FreeBSD Developer Summit, and improving the readiness of the MAC branch for integration into the main FreeBSD tree. The migration to dynamic labeling in the TrustedBSD MAC framework is complete, with all policies now making use of dynamic labels in the kernel. This permits policies to associate arbitrary additional security data with a variety of kernel objects at run-time. Implement mac_test, a sanity checking module. Pass labels as well as objects to each policy entry point to reduce knowledge of label storage in the policies. Implement mac_partition, a simple jail-like policy. Adapt the MAC framework for process locking.

    Improve support for sockets: provide a peerlabel maintained for stream sockets (unix domain, tcp), entry points for accept, bind, connect, listen. Improve support for IPv4 and IPv6 by labeling IP fragment reassembly queues, and providing entry points to instrument fragment matching, update, reassembly, etc. Locally disable KAME if_loop mbuf contiguity hack because it drops labels on mbufs: we need to make sure the label is propagated. Label pipes and provide access control for them. Improve vnode labeling: now handle labeling for devfs, pseudofs, procfs. Fix interactions between MAC and ACLs relating to the new VAPPEND flag.

    SELinux policy tools now ported to SEBSD. SEBSD now labels subjects and file system objects. Provide ugidfw, a tool for managing rules for the mac_bsdextended policy.

    Massive diff reduction. KSEIII merged. Main tree integration will begin shortly.

    Updated prototype code may be retrieved from the TrustedBSD CVS trees on cvsup10.FreeBSD.org.

    diff --git a/en/news/status/report-2002-07-2002-08.xml b/en/news/status/report-2002-07-2002-08.xml index e526d12d70..fb53d369a4 100644 --- a/en/news/status/report-2002-07-2002-08.xml +++ b/en/news/status/report-2002-07-2002-08.xml @@ -1,1057 +1,1057 @@ - + July - August 2002
    Introduction

    Throughout July and August, the FreeBSD Project has been working on pulling together the last few major pieces of new functionality for FreeBSD 5.0-RELEASE. At this point, the release appears to be on track for late November or early December. Work on fine-grained locking continues, especially in the VFS, as with improved support for threading through the KSE work; features such as GEOM, UFS2, and TrustedBSD MAC are maturing, and the new ia64 and sparc64 hardware ports are approaching production quality. In the next two months, we have a lot to look forward to: additional 5.0 developer preview snapshots, additional locking and threading improvements, and many cleanups on the new supported architectures. Firewire support has been imported into the main tree, and substantial cleanup of the ACPI/legacy PCI code is also in the works. Also, expect the import of new IPsec hardware acceleration support in the near future.

    When new developer previews are posted, please give them a try! While we know that 5.0-RELEASE will be for "early adopters", the more testing we get out of the way now, the less we have to tidy up later. The new features are extremely exciting, and understanding when and how to deploy them properly will be important. In the next two months, among other things, the release engineering team will post updated release schedules, as well as guidance for FreeBSD consumers as to how to decide what releases of FreeBSD will be right for them. Keep an eye out for this, and provide us with feedback.

    Also, for those of you in Europe -- we look forward to seeing you at BSDCon Europe in a couple of months!

    Scott Long, Robert Watson

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    Network interface cloning and modularity Brooks Davis brooks@FreeBSD.org

    Cloning support for ppp(4) and disc(4) interfaces has been committed. A man page for disc has been created and the disc devices now appear as disc# instead of ds#. Some work is still needed on pppd to make it understand cloning though it should work as long as the devices are created beforehand.

    On the API front, management of mandatory interfaces (i.e. lo0) is handled by the generic cloning code so if_clone_destroy has the same API as NetBSD again and <if>_modevent doesn't need to create the necessary devices manually.

    At this point, all pseudo interfaces have been converted to the cloning API or already did their own cloning (sl(4) for example uses it's own mechanism). Some devices such as tun(4) and tap/vmware should probably be converted to use the cloning API instead of their current ad-hoc, devfs based cloning system. This would be a good junior kernel hacker task. Also, the handbook and FAQ could use some general cloning documentation prior to 5.0 release.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating RELENG_4 targeting for 4.7-RELEASE. When port ja-man-1.1j_5 was broken around the end of July, Kumano-san and Mori-san tried to update the port to be based on a newer FreeBSD base system's man commands. But, we decided only to fix the port ja-man-1.1j_5 to be buildable, as the new one was not complete at that time.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code has gotten so far that it beats our current code in some areas while still lacking in others. The goal is for GEOM to be the default in 5.0-RELEASE.

    Currently work on a cryptographic module which should be able to protect a diskpartition from practically any sort of attack is progressing.

    UFS2 - 64bit UFS with native extended attributes Poul-Henning Kamp phk@FreeBSD.org Kirk McKusick mckusick@FreeBSD.org

    The UFS2 filesystem approaches feature completion: Extended attribute functionality have been added, including a new compound modification API and basic testing has been passed.

    French FreeBSD Documentation Project Sebastien Gioria gioria@FreeBSD.org Marc Fonvieille blackend@FreeBSD.org Stephane Legrand stephane@FreeBSD-fr.ORG The French FreeBSD Documentation Project. The FreeBSD Web Server translate in French. - Translation of the Hanbook. + Translation of the Hanbook.

    We've got currently almost 50% of the new handbook translated (all the installation part is translated). Most of the articles are translated too.

    The web site in on the way, see the Web Server. We need now to integrate it on the US CVS tree.

    One of the big job now, is to translate the latest FAQ and the very big project will be the manual pages

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack

    I'm very pleased to announce that another engineering release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20020909.tar.gz

    This release features several major changes and includes support for H4 UART and H2 USB transport layers, Host Controller Interface (HCI), Link Layer Control and Adaptation Protocol (L2CAP) and Bluetooth sockets layer. It also comes with several user space utilities that can be used to configure and test Bluetooth devices. Also there are several man pages.

    Service Discovery Protocol (SDP) is now supported. This release includes SDP daemon, configuration tool and user space library (ported from BlueZ-sdp-0.7).

    RFCOMM is now supported. This release includes rfcommd daemon that provides RFCOMM service via pseudo ttys. Not very useful for legacy application, but it is possible to run PPP over Bluetooth now. This was ported from old BlueZ-rfcommd-1.1 (no longer supported by BlueZ) and still has some bugs in it.

    Next step is to fix current RFCOMM support and work on new in-kernel RFCOMM and BNEP (Bluetooth Network Encapsulation Protocol) implementation. Also user space need more work (better tools, libraries, documentation etc.).

    Netgraph ATM Harti Brandt brandt@fokus.fhg.de Introduction to NgAtm

    Version 1.2 has been released recently. It should compile and work an any recent FreeBSD-current. Support to manipulate SUNI registers has been added to the ATM drivers (to switch between SONET and SDH modes, for example). The ngatmsig package now includes a small and simple call control module that may be used to build a simple ATM switch. The netgraph stuff has been patched to use the official netgraph locking.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    On the API front, fmtmsg(3) was implemented, glob(3) was given support for new flags, ulimit(3) was implemented, and wide character/string support was significantly improved with the addition of 30 new functions (see the project status board for details). Work is progressing on adding the C99 restrict type-qualifier to functions throughout the system. This allows the compiler to make additional optimizations based on the knowledge that a restrict-qualified argument is the only reference to a given object (ie. it doesn't overlap with another argument).

    Several headers have been brought up to conformance with POSIX.1-2001, they include: <fmtmsg.h>, <poll.h>, <sys/mman.h>, and <ulimit.h>. The header <cpio.h> was implemented. The headers <machine/ansi.h> and <machine/types.h> were merged into a single header to help simplify the way variable types are created.

    The sh(1) built-in, command(1), was reimplemented to conform with POSIX. Additionally, several utilities which were previously brought up to conformance were merged into the 4-STABLE branch.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    The GNOME 2 desktop port has reach version 2.0.2rc1 with an expected 2.0.2 release before 4.7-RELEASE. Mozilla 1.1 has been ported, and is resident in the tree with Mozilla 1.0.1. The GNOMENG porting effort is going well. A good deal of ports have been moved to the new infrastructure with the help of Edwin Groothuis. We are now working on smoothing out some of the rough edges, then, once all the work is done, make GNOMENG the default.

    A long-standing annoyance in Nautilus has also been recently corrected. The desktop is no longer cluttered with volume icons, and removable media (such as CDs) should now be handled correctly.

    ATAPI/CAM Status Report Thomas Quinot thomas@FreeBSD.org

    The ATAPI/CAM module allows ATAPI devices (CD-ROM, CD-RW, DVD drives, floppy drives such as Iomega Zip, tape drives) to be accessed through the SCSI subsystem (CAM). ATAPI/CAM has been integrated in -CURRENT. The code should be fairly functional (it has been used by many testers as patches against -STABLE and -CURRENT over the past eight months), but there are pending issues on SMP machines. Testers most welcome.

    A MFC of this feature will probably happen after the end of the 4.7 code freeze.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPSEC), and OpenSSL (through the /dev/crypto device).

    OpenSSL 0.9.7 beta 3 was imported and patched with fixes from OpenBSD's source tree. This permits any user-level application that use -lcrypto to automatically get hardware crypto acceleration. Otherwise the core crypto support is stable and has been in production use on -stable machines for several months.

    Import of this work into the -current tree has started. A publicly available patch against 4.7 will be released once 4.7 ships. Integration of this work into the -stable source tree is planned for 4.8.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    Recent work focused on increasing performance. Support is still limited to IPv4 protocols, with IPv6 support coded but not yet tested.

    Import of this work into the -current tree has started. A publicly available patch against 4.7 will be released once 4.7 ships.

    VM issues in -stable Matthew Dillon dillon@FreeBSD.org VM corruption patch for -stable.

    Work is in progress to MFC a number of bug fixes related to vm_map corruption into -stable. This work is probably too involved to make it into the 4.7 release but is expected to be committed just after the freeze is lifted. The corruption in question typically occurs in large-memory systems under heavy loads and typically panics or KPFs (kernel-page-fault's) the machine in a vm_map related function.

    New SCSI Target Emulator Nate Lawson nate@root.org

    The existing SCSI target code has been rewritten. The kernel driver is much simpler, deferring all functionality to usermode and simply passing CCBs to and from the SIM. The supplied usermode emulates a disk (RBC) with IO going to a backing file. It replaces /sys/cam/scsi/scsi_target* and /usr/share/examples/scsi_target.

    The code is definitely alpha quality and has known problems on -current although it appears to work ok on -stable. See the included README for how to install and test. Feedback is welcome!

    Lottery Scheduler for FreeBSD -STABLE Mário Sérgio Fujikawa Ferreira lioux@FreeBSD.org

    Yet another implementation of Lottery Scheduling devised by Carl Waldspurger et. al. is being developed against FreeBSD -STABLE branch. It is being developed as part of a graduation project in Computer Science at Universidade de Brasília in Brazil. Therefore, other implementations have not yet been verified to avoid plagiarization but will be checked in a later stage of this project searching for better implementation ideas. Currently, part of the necessary scheduling kernel structure has been mapped and work has progressed despite the general lack of kernel documentation. Further outcomes of this project will be a simple documentation of the kernel scheduler structure of -STABLE branch, a port of the Lottery Scheduler to -CURRENT branch and additional implementations of other scheduling disciplines from Carl Waldspurger et. al. Members of the FreeBSD community have been and will continue to be instrumental in both testing and providing feedback for ideas implemented here.

    The FreeBSD Brazilian Portuguese Documentation Project Edson Brandi ebrandi.home@uol.com.br Mário Sérgio Fujikawa Ferreira lioux@FreeBSD.org Ricardo Nascimento Ferreira nightwish@techemail.com Diego Linke gamk@gamk.com.br Jean Milanez Melo jmelo@freebsdbrasil.com.br Patrick Tracanelli eksffa@freebsdbrasil.com.br Alexandre Vasconcelos alexandre@sspj.go.gov.br FUG-BR Grupo de Usuários FreeBSD - Brasil

    The FreeBSD Brazilian Portuguese Documentation Project is merging with a translation group formed by members of the FUG-BR FreeBSD Brazilian user group. The Brazilian Project decided to become an official group under FUG-BR after receiving continued excellent contributions from them. They have managed to complete the translation of the FreeBSD FAQ which is currently undergoing both proofing and SGML"fication" stages. Work is progressing fast: the Handbook has been half translated and articles are under way. The previous Brazilian Project is proud to become part of such a dedicate group. The contacts above represent the current official contacts for the new translation group. We hope to have at least part of this work ready for the FreeBSD 4.7 Release.

    KSE Julian Elischer - julian@freebsd.org + julian@FreeBSD.org Jonathon Mini - mini@freebsd.org + mini@FreeBSD.org Dan Eischen - deischen@freebsd.org + deischen@FreeBSD.org - poor description + poor description

    David Xu and I have been working on cleaning up some of the work done in KSE-III and Jonathon and Dan have been working on the userland interface. The userland library will be committed soon in a prototypical state and a working test program using that interface will hopefully accompany it. I have just committed a rework of the run states for kernel threads that simplifies or solves some problems that were being seen recently.

    Hopefully in the next few weeks we will be able to run threads on separate processors. The basics of Signal support are presently evolving. Archie Cobbs will also be assisting with some of this work. I have a mail alias for all the developers at kse@elischer.org. It is managed by hand at the moment.

    Release Engineering re@FreeBSD.org

    The Release Engineering (RE) Team completed and released FreeBSD 4.6.2. This ``point release'' fixes several important bugs in the ATA subsystem, as well as addressing a number of security issues in the base system that surfaced shortly after FreeBSD 4.6 was released. The release documentation distributed with FreeBSD 4.6.2 contains more details. (Note: Some earlier documents and reports referred to this release as version 4.6.1.) The next release in the 4.X series will be FreeBSD 4.7, which has a scheduled release date of 1 October 2002.

    Concurrently, work is continuing on the 5.0-DP2 developer preview snapshot, an important milestone along the release path of FreeBSD 5.0, which is scheduled for release on 20 November. As 5.0 draws closer, we are focusing more on getting the system stabilized, as opposed to adding new functionality. To help us with this effort, developers should discuss with us any new features planned for -CURRENT, beginning 1 October.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese )

    The project runs as it should be. New security-branch snapshots are available for both 4.5 and 4.6(.2). I've update buildboxes OS to the latest 5-current/4-stable without any errors. Also current problem, less CPU power for the future, is not solved yet -- but situation is not so bad, I hope I'll show a good news in the next report.

    FreeBSD Donations Team Michael Lucas donations@FreeBSD.org

    The Donations team started rolling in the last couple of months. Offers of equipment are coming in, and we are allocating them to FreeBSD committers as quickly as possible. We now have a "Committer Want List" available in our section of the Web site. Several small items, such as network cards, have been routed to people who are willing to write the code to support them. We have a few larger donations (i.e., actual servers) ready to go to developers, once shipping information is straightened out.

    RAIDFrame for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - Project homepage + Project homepage

    Work on RAIDFrame stalled for quite a bit, then it picked up in early summer, then it stalled, and now it's going again. A significant amount of work has been done to make the locking SMPng-friendly and to cut down on kernel stack abuse. I'm happy to say that it's starting to work reliably when used with file- backed 'md' disks. Even more exciting is that it's finally starting to work on real disks, too. A lot of cleanup is still needed, and a few gross hacks still exist, but it might actually be ready for the FreeBSD 5.0 release. Patches for FreeBSD 5-current and 4-stable are available from the website. The 4-stable patches are a year old but still apply and perform well.

    Libh Status Report Antoine Beaupré anarcat@anarcat.ath.cx Alexander Langer - alex@freebsd.org + alex@FreeBSD.org - Project's home + Project's home page

    The primary libh development box, where the CVS repo and development webpage was living, is dead. The server has crashed after a system upgrade and has never came back to life. We had to pull the drives out of it to make proper backups. We will setup another box in place of this one and hope for the best. So right now, the port is broken because the CVS is unaccessible, as the development web page. We're working on it, please bear with us.

    On a brighter note, Max started implementing the changes he proposed to the build system and the TCL API; LibH is switching to SWIG for its TCL bindings, which should simplify the system a lot, and shorten build times. The Hui subsystem is therefore being completely re-written. On my side, I made a few tests in building and running LibH under rhtvision, and it didn't fulfill the promises I thought it would, so I just put aside that idea. Work on libh stalled during July because I completely lost network access for the whole month. So right now, LibH is in a bit of a mess, but we have high hopes of settling everything down to a new release pretty soon, which will make full use of the new SWIG bindings.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    The Security Team continues to be very busy. The security-officer mailing list traffic for the months of June, July, and August consisted of 1,230 messages (over 13 messages a day). This is well over 50% of the freebsd-hackers traffic volume in the same period!

    Since June (the time of our last report), 9 new Security Advisories were published, and one Security Notice was published covering 25 Ports Collection issues.

    FreeBSD 4.6.2-RELEASE was released on August 15th. This marked the first time a point release was created from the security branch. The process went smoothly from the Security Team perspective, despite a schedule slippage due to newly discovered bugs, and a snafu which resulted in 4.6.1-RELEASE being skipped.

    In September, the FreeBSD Security Officer published a new PGP key (ID 0xCA6CDFB2, found on the FTP site and in the Handbook). This aligned the set of those who possess the corresponding private key with the membership of the security-officer alias published on the FreeBSD Security web site. It also worked around an issue with the deprecated PGP key being found corrupted on some public key servers.

    TrustedBSD Mandatory Access Control (MAC) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org

    It's been a busy few months, with a variety of development, documentation, and public relations activities. The MAC Framework, our pluggable kernel access control mechanism for FreeBSD, has matured substantially, and large parts of it were merged to the main FreeBSD tree over July and August.

    A variety of entry point changes were made, including: component names are now passed to VFS namespace VOPs; aggressive caching of MAC labels in vnodes; mmap memory access downgrades on subject relabel; check for access()/eaccess(); checks for vnode read, write, ioctl, pool, permitting revocation post-open() by aware policies; labeling and access control checks for pipe IPC objects, clean up of socket/visibility checks; checks for socket bind, connect, listen, ....; many locking improvements and assertions, especially for vnodes, processes; framework now supports partial label updates on subjects and objects; credential management in 'struct file' improved so that active_cred and file_cred are more carefully distinguished and passed to MAC framework explicitly; accounting system uses cached credentials for write operations now; socreate() can use cached credential to label sockets fixing deferred nfs socket connections and reconnections with TCP; kse interactions with proc1 fixed; IO_NOMACCHECK flag to vn_rdwr() for internal use to avoid redundant or incorrect MAC checks on aio vnode operations; mac_syscall() policy function demux; su no longer changes MAC labels by default; mac_get_pid() to support ps and getpmac -p pid; mmap revocation defaults to "fail stop"; MAC_DEBUG wraps atomic label counters; UFS2 extended attributes supported; initial port of LOMAC to the MAC framework; update all policies for all these changes; merge of KSE III; merge of nmount(); upgrade of ugidfw to speak user and group names; libugidfw; many namespace and naming consistency improvements; module dependencies on MAC framework; large scale merging of MAC functionality to the main FreeBSD tree. KDE interfaces to common management activities.

    Wrote and taught full-day MAC framework tutorial at STOS BSD and Darwin Security Symposium; first draft of MAC framework architecture and API guide. This is now in the Developer's Handbook.

    Next couple of months will bring continued maturity improvements, labeling and protection of more objects; VFS performance improvements; better support for UFS2 EAs and separate EA entries for each policy; improved support for LOMAC; MLS compartments; IPsec security association labeling; improved SEBSD FLASK/TE port; and much more.

    diff --git a/en/news/status/report-2002-09-2002-10.xml b/en/news/status/report-2002-09-2002-10.xml index 73b039e148..f92e5555f4 100644 --- a/en/news/status/report-2002-09-2002-10.xml +++ b/en/news/status/report-2002-09-2002-10.xml @@ -1,1021 +1,1021 @@ - + September-October 2002
    Introduction:

    Another busy pair of months at the FreeBSD Project have brought substantial maturity and feature completeness to the fledgeling 5.0-CURRENT branch. And just in time too, because by the time you read the next status report, we hope that you'll have FreeBSD 5.0 running on your desktop! Over the past two months, we've seen an upgrade of sparc64 to Tier 1 (Fully Supported) status, integration of a high quality storage encryption module, the commit of hardware-accelerated IPsec support, the addition of a general-purpose "Device Daemon" to process hardware attach/detach events to replace earlier single-purpose and bus-specific daemons, the commit of RAIDFrame, and the improved maturity of the TrustedBSD work. We've also seen another successful release of the 4.x branch, 4.7-RELEASE, which will continue to be the production supported platform as 5.X is brought in for landing.

    Over the next two months, the FreeBSD Project will be focused almost entirely on making 5.0 a success: improving system stability and performance, as well as increasing the pool of applications that build and run on 5.0. The Release Engineering team will have announced the 5.0 code freeze, and released DP2 by the time you read this. Following DP2 will be a series of Release Candidates (RC's), and then the release itself. If you're interested in getting involved in the testing process, please lend a hand -- a spare box and a copy of the DP and RC ISOs burnt onto CD will make a difference. The normal caveats associated with pre-release versions of operating systems apply! You may also be interested in reading the Early Adopter's guide produced by the Release Engineering team to help determine when a transition from the 4.x branch to the 5.x branch will be appropriate for you and your organization.

    Thanks,

    Robert Watson, Scott Long

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another engineering release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20021104.tar.gz

    This release features minor bug fixes and new OpenOBEX library port. The snapshot includes support for H4 UART and H2 USB transport layers, Host Controller Interface (HCI), Link Layer Control and Adaptation Protocol (L2CAP) and Bluetooth sockets layer. It also comes with several user space utilities that can be used to configure and test Bluetooth devices. Also there are several man pages.

    Service Discovery Protocol (SDP) port has been updated to version 0.8. (ported from BlueZ-sdp-0.8). Most of the RFCOMM issues have been resolved and now rfcommd works with Windows (3COM, Xircom and Widcomm) and Linux stacks.

    New supported USB device - EPoX BT-DG02 dongle. Also I have received successful report about Mitsumi USB dongle and C413S Bluetooth enabled cell phone (L2CAP and SDP works, waiting on RFCOMM report).

    I'm currently working on OBEX server (Push and File Transfer profiles) which will be based on OpenOBEX library (included in the snapshot).

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    October 10, 2002 marked the one year anniversary of our project. During that time we have made significant advances in FreeBSD's standards conformance. FreeBSD 5.0-RELEASE will be the showcase for most of our hard work. We hope that our tireless effort has had a positive effect on FreeBSD and software vendors that maintain or are considering porting their software to FreeBSD.

    On the API front, _Exit(3) (an alias for _exit(2)) was added, sysconf(3) was update for POSIX.1-2001, and some of the glob(3) additions were MFC'd. The insque(), lsearch(), and remque() family of functions were reimplemented and moved to libc from libcompat. Several wide character functions were implemented, including all printf() and scanf() variants. Finally, support for wide character format types (%C, %S, %lc, %ls) were added to printf(3).

    Work on utility conformance continued as getconf(1)'s compliance was updated, c99(1) (a new version of c89(1)) was implemented, and cd(1) and command(1) changes were MFC'd.

    Almost 20 headers were brought up to conformance with applicable standards. Not much work remains to fix conformance issues in the remaining standard headers. Work in this area, as well as others, has slowed down in preparation for 5.0-RELEASE.

    DEVD Status Report Warner Losh imp@FreeBSD.org

    DEVD has been integrated into FreeBSD current. It was integrated in an incomplete state. However, it is useful in the state that it is in for doing simple things like running camcontrol rescan when a SCSI pcmcia card is inserted, or running /etc/pccard_ether with an ethernet card is inserted. The more sophisticated regular expression matching is not yet complete. Devd only does actions on device arrival and departure, but does not yet do anything with unknown devices. In addition to listening for device events, there is some desire to have /dev/devctl also allow for some direct control of the device tree.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    This work was committed to -current. To configure it for use specify options FAST_IPSEC in your system configuration file. At present support is limited to IPv4.

    GBDE - Geom Based Disk Encryption Poul-Henning Kamp phk@FreeBSD.org

    GBDE has been committed to -current.

    The "Geom Based Disk Encryption" module provides a mechanism for very strong encryption of a GEOM "disk". The algorithm has passed informal review by a couple of seasoned crypto heavy-weights. Any GEOM device can be protected with GBDE, entire physical disks, MBR slices, BSD partitions etc etc. Booting from an encrypted partition is not possible, however.

    The focus of GBDE is to protect a "cold" disk media. (FreeBSD is not equipped well for protecting key material on a running system from being compromised.) For a cold media, the only feasible attack on a GBDE protected media is guessing the pass-phrase.

    Summary of the GBDE multilevel protection scheme: Up to four separate pass-phrases can unlock their own separate copies of the 2048 bit masterkey. The master-keys are protected using AES/256/CBC keyed with a SHA-2 hash derived from the pass-phrase. A salted MD5 hash over the sectoroffset "cherry-picks" which masterkey bytes participate in the MD5 hash which generates the "kkey" for each particular sector. The kkey AES/128/CBC encrypts the PRNG produced single-use key which AES/128/CBC encrypts the actual sector data.

    GBDE has features for master-key destruction and pass-phrase invalidation.

    See gbde(4) and gbde(8) for more details.

    This software was developed for the FreeBSD Project by Poul-Henning Kamp and NAI Labs, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research program.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code is now the default on most (if not all ?) architectures and the few remaining issues in libdisk/sysinstall is being hashed out.

    Although we are far from finished developing GEOM, its current feature set is a significant step forward for FreeBSD, providing not only immediate relief for new architectures (sparc64, ia64 etc) but also because it is designed as SMPng code from the start.

    This software was developed for the FreeBSD Project by Poul-Henning Kamp and NAI Labs, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research program.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project Homepage. + FreeBSD GNOME Project Homepage.

    These last two months have seen quite a lot of GNOME activity. GNOME has started releasing development snapshots of the upcoming GNOME 2.2 desktop. FreeBSD porting has begun outside of the main ports tree in the MarcusCom CVS repository. If you are interested in testing the new desktop, follow the instructions on the aforementioned cvsweb URL, and checkout the "ports" module.

    Evolution 1.2 is also close at hand. Ximian has posted its first release candidate, 1.1.90, which has been ported to FreeBSD, and is available from the MarcusCom CVS repo listed above. As soon as Ximian officially releases Evolution 1.2, it will be placed in the FreeBSD ports tree.

    The Mozilla ports have received numerous updates. We are now tracking all three released Mozilla versions. The mozilla-vendor port is tracking the 1.0.x branch, mozilla is tracking 1.1.x, and mozilla-devel is tracking 1.2.x. The mozilla-devel port now has support for anti-aliased fonts as well as a GTK+-2 interface

    Finally, the GNOME team would like to welcome its newest team member, Adam Weinberger. Adam has been submitting patches for both GNOME ports as well as documentation. Currently, he has been active in the GNOME 2.2 porting effort. We are happy to have him.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPsec), and OpenSSL (through the /dev/crypto device).

    This work was committed to the -current tree. To configure it for use specify device crypto in your system configuration file or you can load the crypto module. The /dev/crypto device support is brought in with device cryptodev or by loading the cryptodev module. Two crypto device drivers exist: ubsec for Broadcom-based PCI hardware and hifn for Hifn-based PCI hardware.

    Integration of this work into the -stable source tree should be completed by the time this report is published.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    Since the last status report the BSD Java Porting Team has continued to make steady progress. The most exciting news we have is courtesy of our newest team member, Alexey Zelkin of FreeBSD committer fame.

    • Thanks to a lot of hard work, primarily by Alexey, the project is very close to being able to release our first patch set for the 1.4 JDK. Things are reportedly working quite well under -CURRENT, with -STABLE support being only marginally behind (thanks in part to the libc_r MFC by Max Khon).
    • The project has released another patchset for the 1.2.2 JDK, mainly to add support for OpenBSD and for JPDA. Most of the projects energy at the moment is focused on 1.3 and 1.4, however we still hope to back port relevant fixes if appropriate to 1.2.2.
    • Nate Williams has been hard at work behind the scenes migrating us to a new CVS server which has kindly been donated by the FreeBSD Foundation. The Project appreciates the continued support of the Foundation. Please support them so they can continue to support us and other important FreeBSD efforts!

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-4.7.tgz

    For 4.7-RELEASE, we privately published package ja-man-doc-4.7.tgz which consists of man[1256789] entries 10 days after the 4.7-RELEASE release date. Man3 update god no progress, as updating other sections busied us. We decided to suspend man3 update officially, as we need to spend most of our time to catch up with the forthcoming 5.0-RELEASE.

    KDE FreeBSD Project Will Andrews will@FreeBSD.org KDE-FreeBSD Mailinglist kde@FreeBSD.org KDE/FreeBSD Website KDE/FreeBSD Build Server

    The KDE/FreeBSD team has been working on two major goals during the last two months, Maintenance of the KDE 3.0.x ports and Preparing the upcoming KDE 3.1 Release.

    Maintenance KDE 3.0 conducted by Alan Eldrige: September started with the Removal of the KDE 2.x Ports from the FreeBSD-Repository. Later Packages of KDE 3.0.4 were released and the FreeBSD Ports were updated.

    Preparing for KDE 3.1 conducted by Will Andrews: A lot of effort was spent on Improving the Fruitsalad-Build-System. We are now able to create packages directly from the KDE CVS.

    KSE Project Status Julian Elischer - julian@freebsd.org + julian@FreeBSD.org David Xu - davidxu@freebsd.org + davidxu@FreeBSD.org Jonathon Mini - mini@freebsd.org + mini@FreeBSD.org Daniel Eischen - deischen@freebsd.org + deischen@FreeBSD.org KSE Project web page some links

    The KSE code has now all the basic kernel functionality to start being used by the userland. There are still things to be done for testing and familiarization.

    General system utilities have not yet been changed. e.g. ps and top etc. need to know about threads.

    There is quite a lot of code in the kernel that still assumes that there is one thread in a process. Signals are not yet handled in the final manner (though they are delivered to a random thread in the process :-/ ).

    The system calls and datastructures are now however in place. The test program successfully starts several threads that can be scheduled on different processors, and closes them down again. The userland is probably going to be able to do simple scheduling of pthread threads using KSE by the time that this report is published.

    I still need someone to take over the "official" web page since jason left. LaTeX sure isn't my thing.

    LibH Antoine Beaupré anarcat@anarcat.ath.cx Alexander Langer - alex@freebsd.org + alex@FreeBSD.org - + LibH development page

    Not much since the last status report, except that we now have the repo and development web page back online, thanks to the services of John De Boskey who freely provided the necessary hardware and bandwidth to host the project. We have also ported LibH to GCC 3.x, so that it can compile on -CURRENT correctly. This, however, broke tvision, which doesn't compile under GCC 3.x, so we moved to rhtvision but this caused linking problems so we're stuck with no console front end, for now.

    Work on a Hui rewrite and SWIG bindings stalled. Alex was able to come up with a simple patch to make the ports system use LibH's pkg_create script to build libh packages, so we're getting closer to a real pkg_create(1) drop-in replacement. I rewrote the milestone list to show a bit more relevant and encouraging tasks that will be dealt with in order to really push LibH forward.

    FreeBSD/MIPS Juli Mallett jmallett@FreeBSD.org

    A mailing list was created, freebsd-mips, and a Perforce branch was created in //depot/projects/mips. Changes which will be necessary to allow multiple MIPS (and PowerPC) metaports to exist under one architecture port were made, and are being pushed back into the main FreeBSD tree. Some preliminary header work has been done, and porting the ARCBIOS interfaces to the kernel has begun. The toolchain in tree was updated and modified in places to support a FreeBSD/MIPS (Big Endian) target, in the Perforce branch. Some early boot code has proven the GDB MIPS simulator to work, for at least R3000 code, though whether R3000 will be supported has been under discussion. Some initial architectural decisions were also made, to steer current work.

    NEWCARD Status Report Warner Losh imp@FreeBSD.org

    Work on newcard continues. A number of bugs have been fixed in the last few months. You are now able to load and unload drivers (including the bridge) to test changes to pccard and/or cardbus bus code. It is now possible to load a driver that has a pccard attachment and have a previously inserted card probe and attach. This is also true for CardBus. A number of issues remain to be solved before 5.0. However, with the integration of devd into the tree nearly all of old functionality of OLDCARD is now present in NEWCARD (the biggest remaining parts are power control for the sockets, as well as pccardc dumpcis).

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    The PowerPC port has been running diskless on NewWorld G3/G4 machines for a while now. A GEOM module to support Apple Partition Maps is being written. There should be an installable ISO image available in the near future.

    RAIDFrame for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - Project homepage + Project homepage

    RAIDFrame was imported into FreeBSD-current in late October, a major milestone after 18 months. It is still very experimental and not suitable for production environments. The website contains a lengthy TODO list which I hope to start attending to soon. Still, I encourage everyone to try it out and report bugs back to me.

    Release Engineering re@FreeBSD.org

    The Release Engineering (RE) team completed and released FreeBSD 4.7 on 10 October 2002. This release features updates for a number of contributed software programs in the base system, as well as all of the security and bug fixes from FreeBSD 4.6.2. The next release in the 4.X series will be FreeBSD 4.8, which has a scheduled release date of 1 February 2003.

    Before that time, however, will be the release of FreeBSD 5.0. Thus far, we have not been able to release the 5.0-DP2 developer snapshot due to various stability issues. Thanks to much effort from many of our fellow developers, we believe that most of these have been resolved. The RE team wishes to emphasize that FreeBSD 5.0 will involve new code and features that have not seen widespread testing, and that more conservative users may wish to continue to track the 4.X series for the near-term future. To provide more information on these issues, we have added an Early Adopter's Guide to the release documentation for 5.0.

    Brian Somers has resigned from the RE team due to increased time pressures. We thank him for all of his help with FreeBSD 4.5, 4.6, 4.6.2, and 4.7, and we hope to continue working with him as a fellow developer.

    Scott Long has graciously offered to help improve the communication between the RE team and the rest of the developer community. We greatly appreciate his assistance.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese)

    Recent 5-current release procedure troubles prevent the project from releasing a new snapshots. But 5-current FreeBSD/i386 release is back again in late Oct/2002! I have a plan to build daily FreeBSD/sparc64 snapshots for 5-current. Stay tuned...

    FreeBSD/sparc64 Status Report Jake Burkholder jake@FreeBSD.org Thomas Moestl tmm@FreeBSD.org

    A lot has happened recently for the sparc64 port. Sysinstall and make release work and can be used to build installable snapshots. The gdb5.3 port now works, and, thanks to Thomas Moestl, kernel crash dumps are supported which can be analyzed by gdb. These 2 items are the last things considered necessary by the Core team for FreeBSD/sparc64 to be a Tier 1 architecture, which means that 5.0-RELEASE for sparc64 will be officially supported by the release engineering team and by the security officer team.

    Recently Jake Burkholder has been working on alternate installation methods other than bootable iso, including a mini-root filesystem which can be written to the swap partition of an existing machine. Thomas Moestl has been putting some finishing touches on the release process, ensuring that the release documentation can be built properly, and that the port readme files can be generated by the release process.

    An experimental iso built with make release is now available on the freebsd ftp site and mirrors in /pub/FreeBSD/development/sparc64/5.0-20021031-SNAP. It is expected that by the middle of November new 5.0-SNAP releases will be available every few days for download and for ftp install, cpu power and bandwidth permitting.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@FreeBSD.org TrustedBSD web site

    Most progress on TrustedBSD over the last two months related to improving the maturity of the ACL and MAC implementations, and merging new aspects of those features into the primary FreeBSD CVS Repository for inclusion in FreeBSD 5.0. This included fixes to run better on sparc64, improved tuning of what system objects are mediated, locking fixes and optimizations especially relating to the vnode and pipe implementations, improved support for MAC labeling on symlinks, support for asynchronous process label changes as required in some locking situations, remove use of "temporary labels" and prefer use of object type specific labels reducing redundant and/or confusing label management code in policies, improve avoidance of memory allocation in M_NOWAIT scenarios for socket allocation in the syncache, mediation of link operations, race condition fixes for devfs involving label creation, improve handling of VM events such as mmaping, improve mediation of socket send/receive events (as distinguished from socket transmit/deliver events), support for manipulating EAs on symlinks using new system calls, support for MNT_ACLS and MNT_MULTILABEL flags at mount time, as well as FS_ACLS and FS_MULTILABEL superblock flags to key useful defaults using tunefs, correction of a memory leak in the UFS ACL code, enable UFS ACL support by default in GENERIC, mediation points for file creation, deletion, and rename, support for a mac_execve() execution interface in the style of SELinux's execve_secure() permitting a label transition request as part of the exec operation for policies that support it, more consistent handling of NFS lookups, support for labeling of multicast encapsulated packets, ATM packet labeling, FDDI packet labeling, STF packet labeling, revised label interface that avoids userland parsing of per-policy elements, reducing us to a single instance of parsing and printing for each policy (and further abstracting policy implementation details from the library code).

    Also, change to single-level sockets for Biba and MLS policies, support for partial label updates for Biba and MLS, addition of mac.9 man page, revised user API system calls, implementation of mac_get_pid(), and various other related bits, creation of mac.conf(5) to specify label defaults, checks for various system operations including swapon(), settime(), and sysctl(), reboot(), acct(), introduction of command line utilities for maintaining file and process labels, support for user labels tied to login class, su support for label changes, ifconfig support for interface labels, ps support for process labels, ls support for file labels, ftpd support for login labels, development of the Biba and MLS notions of privilege, and a move to C99 sparse structure initialization, restoring full type checking for policy entry points.

    OSF DCE 1.1 RPC UUIDs Marcel Moolenaar marcel@FreeBSD.org Hiten Pandya hiten@uk.FreeBSD.org

    Universally Unique Identifiers (UUIDs) are 128 bit values that may be generated independently on separate nodes (hosts), which result in globally unique strings. UUIDs are also known as Globally Unique Identifiers (GUIDs). The UUID support for FreeBSD (libc) conforms to the DCE 1.1 RPC specification.

    UUID support has been added to FreeBSD -CURRENT, and will be available in version 5.0. It is being extensively used in GPT partition handling for IA-64 platform. For now, a simple manual page has been provided, which outlines information about the provided uuid routines. Many documentation additions and enhancements to uuidgen(1) are in the pipeline.

    Wireless Networking Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to improve the wireless networking support in the system. The initial work will incorporate the 802.11 link layer done by Atsushi Onoe for NetBSD. This core support code implements the basic 802.11 protocols required for Station and AP operation in BSS, IBSS, and Ad Hoc modes of operation. Wireless device drivers will then be revised to use this common code instead of their private implementations.

    Following this initial stage the wireless networking support will be extended to support functionality needed for workgroup, enterprise, and metropolitan (e.g. mesh) networking environments. This will include full power management support, the 802.1D spanning tree protocol for running multiple AP's in a bridged configuration, QoS support, and enhanced security protocols (LEAP, AES, EAP). Support for new hardware devices is also planned.

    diff --git a/en/news/status/report-2002-11-2002-12.xml b/en/news/status/report-2002-11-2002-12.xml index b4af350d9b..a496b74076 100644 --- a/en/news/status/report-2002-11-2002-12.xml +++ b/en/news/status/report-2002-11-2002-12.xml @@ -1,877 +1,877 @@ - + November-December 2002
    Introduction:

    At long last, FreeBSD 5.0 is here. Along with putting the final polish on the tree, FreeBSD developers somehow found the time to work on other things too. IA64 took some major steps towards working on the Itanium2 platform, an effort was started to convert all drivers to use busdma and ban vtophys(), hardware crypto support and DEVD hit the tree, NewReno was fixed and effort began on locking down the network layer of the kernel. Also high performance, modular scheduler started taking shape and will be a welcome addition to the kernel soon.

    Looking forward, the focus will be on stabilizing and improving the performance of 5.0. The RELENG_5 (aka 5-STABLE) branch will be created once we've reached our goals in this area, so hopefully we will get there quickly. Meanwhile, preparations for the next release from the 4.x series, 4.8, will begin soon. Of course, the best way to get 5.x to stabilize os to install and run it!

    Thanks,

    Scott Long, Robert Watson

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that all kernel modules and few userland tools made it to the FreeBSD source tree. Many thanks to Julian Elischer.

    Unfortunately no big changes since the last report. Some minor problems have been discovered and patches are available on request. I will prepare all the patches and submit them to Julian for review.

    OBEX server and client (based on OpenOBEX library) is almost complete. I'm currently doing interoperability testing. If anyone has hardware and time please contact me. The HCI security daemon has been implemented and tested with Sony Ericsson T68i cell phone and Windows stack. It is now possible to setup secure Bluetooth connections.

    A few people have complained about RFCOMM daemon. These individuals want to use GPRS and Bluetooth enabled cell phone to access Internet. If you have this problem please contact me for possible workaround. My next goal is to get robust RFCOMM implementation to address all these issues.

    TrustedBSD Project: Access Control Lists Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion List trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

    Largely bug-fixing and userland application tweaks; new interfaces were added to manipulate ACLs on extended attributes; bugs were fixed in ls relating to ACL flagging. Patches to teach cp, mv, gzip, bzip, and other apps about ACL preservation are in testing and review. tunefs flags were added to ease configuration of ACLs, especially on UFS2 file systems.

    Possible changes to make use of Linux/Solaris umask semantics are under consideration: right now we implement verbatim POSIX.1e/IRIX merging of the umask, ACL mask, and requested creation mode during file, device, fifo, and directory creation. Solaris and the most recent Linux patches ignore the umask in the context of a default ACL; this requires some rearrangement of umask handling in our VFS, although the results would be quite useful. We're exploring how to do this in a low impact way.

    TrustedBSD Project: MAC Framework Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion List trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

    Framework changes:

    Instrument KLD system calls (module and kld load, unload, stat) Instrument NFSd system call. Instrument swapoff(2). Instrument per-architecture privileged parts of sysarch(). Make use of condition variables to allow callers to wait for the framework to "unbusy" when loading/unloading policies, rather than returning EBUSY. Store mount pointer in devfs_mount structure for use by policies. Improve handling of labels in loopback interface "re-align" packet copy case. Provide full paths on devfs object creations to help policies label them properly (not merged). Experimentation with moving MAC labels into m_tags (not merged). NFS server now uses real ucreds, not hacked up ucreds, meaning we can start laying the groundwork for enforcement on NFS operations. (not merged)

    Policy changes

    LOMAC: mac_lomac replaces lomac (LOMAC now uses the MAC Framework), SEBSD: Improved support for devfs labeling based on SELinux genfs. Handling of hard link checks. Support export of process transition information for login and others using sysctl. Login now prompts for roles. Allow policy reload. TTY labeling. Locking adaptation from Linux. Many, many policy adaptations and fixes. We can now boot in enforcing mode! mac_bsdextended: fix a bug in which VAPPEND wasn't mapped to VWRITE, so opens with the O_APPEND bug failed improperly.

    Userland changes

    setfmac(8) now supports a setfsmac(8) execution mode, which accepts initial labeling specification files. Supports an SELinux compatibility mode so it can accept SELinux label specfiles using the SEBSD module. sendmail(8) now sets user labels as part of the context switch for mail delivery.

    Documentation changes

    Man page updates for MAC command line tools, modules, admin hints, etc. Updates to the FreeBSD Developer's Handbook chapter on MAC policies and entry points. MAC section in FreeBSD Handbook.

    busdma driver conversion project Maxime Henrion mux@FreeBSD.org

    This project has been coming along pretty well. The amd(4) and xl(4) drivers have now been converted to use the busdma API, sparc64 got the bus_dmamap_load_mbuf() and bus_dmamap_load_uio() functions, and the gem(4) and hme(4) drivers have been updated to use bus_dmamap_load_mbuf() instead of bus_dmamap_load().

    A lot more still needs to be done, as shown on the project's page. A fair number of conversions are on their way though, and we can expect a fair number of drivers to be converted soon, thanks to all the developers who are working on this project.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    The POSIX Utility Conformance in FreeBSD list (link above) has been updated to reflect current reality. Not much work remains to complete base utility conformance.

    On the API front, grantpt(), posix_openpt(), unlockpt(), wordexp(), and wordfree() were implemented. The header <wordexp.h> was added.

    There are currently about 40 unassigned tasks on our project's status board ranging from documentation, utilities, to kernel hacking. We would encourage any developers looking for something to work on to check out the status board and see if anything interests them.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPsec), and OpenSSL (through the /dev/crypto device).

    This work will be part of the 5.0 release and has been committed to the -stable source tree for inclusion in the 4.8 release.

    Recent work has focused on improving performance. System statistics are now maintained and an optional profiling facility was added for analyzing performance. Using this facility the overhead for using the crypto API has been significantly reduced.

    The ubsec (Broadcom) driver was changed to significantly improve performance under load. In addition several memory leaks were fixed in the driver and the public key support was enabled for use.

    Upcoming work will focus on load-balancing requests across multiple crypto devices and integrating OpenSSL 0.9.7 which will automatically enable application use of crypto hardware.

    DEVD Warner Losh imp@FreeBSD.org

    Devd has been integrated into FreeBSD 5.0-RELEASE. The integrated code supports a range of configuration options. The config files are fully parsed now and their actions are performed.

    Future work in this area is likely to be limited to improving the devctl interface. /dev/devctl likely will be a cloneable device in future versions. Individual device control via devctl is also planned.

    Donations Team Status Report Michael Lucas donations@FreeBSD.org Donations main page FreeBSD developer wantlist completed donations

    The Donations project expedited several dozen donations during 2002, and was able to place most of what was offered. We still are in dire need of SMP and Sparc systems. You can see information on our needs and donations that have been handled by the team on the donations web page.

    We are relying increasingly upon the developer wantlist to place items offered to the Project, and using the commit statistics to help place items. As such, active committers who ask for what they want beforehand have a decent chance of getting it. Less active committers, and committers who do not ask for what they want, will be lower in our priorities but will not be excluded.

    We are in the process of streamlining the tax deduction process for donations, and hope to have news on that shortly. We are also always working to accelerate and reduce our internal processes, to get the most equipment in the hands of the most people as quickly as possible.

    I especially want to thank David O'Brien and Tom Rhodes for stepping up and making the team far more successful. Also, the FreeBSD Foundation has been quite helpful in handling tax-deductible contributions.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    This work will be part of the 5.0 release. Performance has been improved due to work on the crypto subsystem.

    FFS volume label support Gordon Tetlow gordon@FreeBSD.org - Current patch set. + Current patch set.

    The goal of the project is to use a small amount of space in the FFS superblock to store a volume label of the user's choice. A GEOM module will then expose the volume labels into a namespace in devfs. The idea is to make it easier to manage filesystems across disk swaps and movement from system to system.

    At this point, everything pretty much works. I've submitted parts of the patch to respective subsystem maintainers for review. There are some issues with namespace collision that I haven't addressed yet, but the basic functionality is there

    French FreeBSD Documentation Project Sebastien Gioria gioria@FreeBSD.org Marc Fonvieille blackend@FreeBSD.org Stéphane Legrand stephane@FreeBSD.ORG The French FreeBSD Documentation Project. The FreeBSD Web Server translated in French. - Translation of the hanbook. + Translation of the hanbook. French Daemon News like web site.

    Most of the articles are translated too. Marc is still translating the handbook, 60% is currently translated. Stéphane has began the integration of our French localization web site in the US CVS Tree. Sébastien is still maintaining the Release Notes.

    We launched a new site, www.FreeBSD-fr.info, consisting in a French Daemon News like site. Netasq have donated our new server; we will install it in a new hosting provider in the few next weeks. One of the big job now is the translation of the FAQ, and the big project will be the manual pages.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    Since the ports tree has been frozen for most of this reporting period, there have not been too many GNOME updates going into the official CVS tree. However, development has not stopped. GNOME 2.2 is nearing completion, and quite a few FreeBSD users have stepped up to test the GNOME 2.1 port sources from the MarcusCom CVS repository. If anyone else is interested, follow the instructions on the aforementioned cvsweb URL, and checkout the "ports" module.

    The upcoming FreeBSD 5.0-RELEASE will be the first release to have the GNOME 2.0 desktop as the default GNOME desktop choice. During the previously mentioned ports freeze, all the GNOME 2 ports were fixed up so that they build and package on both i386 and Alpha platforms. Alas, the one port that will not make the cut for Alpha is Mozilla. There are still problems with the xpcom code, but work is ongoing to get a working Alpha port.

    Finally, the FreeBSD Mono (an OpenSource C# runtime) port has also received some new life. Mono has been updated to 0.17 (the latest released version), and Juli Mallett has ported gtk-sharp (GTK+ bindings for C#).

    FreeBSD/ia64 Status Peter Wemm peter@FreeBSD.org Marcel Moolenaar marcel@FreeBSD.org - - + +

    The ia64 port is up and running on the new Itanium2 based hp machines thanks to a lot of hard work by Marcel Moolenaar. So far we are running on the hp rx2600 as these were the machines graciously donated by Hewlett-Packard and Intel. We had a prototype Intel Tiger4 system for a while, but we had to return the machine and we do not know if it currently runs. Most of the changes necessary to run these are sitting in the perforce tree and are not in the -current or RELENG_5 cvs tree. As a result, the cvs derived builds (-current and the 5.0-RC series and presumably 5.0-RELEASE) are only usable on obsolete Itanium1 systems.

    Lots of other stability and functionality fixes have been made over the last few months, including initial libc_r support. The OS appears to be stable enough for sustained workloads - it is building packages now, for example. We still do not have gdb support, even for reading core files.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating our Japanese translated manual pages to RELENG_5 based. All existing entries have been updated, but 15 exceptions are not, most of which require massive update. We will also need to add translations which did not exist on RELENG_4.

    KGI/FreeBSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    KGI (Kernel Graphic Interface) is a kernel infrastructure providing user applications with means to access hardware graphic resources (dma, irqs, mmio). KGI is already available under Linux as a separate standalone project. The KGI/FreeBSD project aims at integrating KGI in the FreeBSD kernel.

    KGI/FreeBSD has been recently donated 2 PCI graphic cards (Matrox Millenium II and a coming Mach64) and other have been proposed. Please see the FreeBSD web pages for details. Thanks to donation@ for organizing and promoting donations. Thanks to the donators for their contribution to KGI/FreeBSD.

    KGI/FreeBSD progressed fine the last months. Most of the VM issues for mapping HW resources in user space have been addressed and a first attempt of coding was made. This prototyping raised some API compatibility problems with the current Linux implementation and was discussed heavily on the kgi devel lists. Ask if you're interested in such issues, I'll be pleased to share them.

    Most of coding is now done. Let's start debugging!

    SMP locking for network stack Jeffrey Hsu hsu@FreeBSD.org

    Work is ongoing to continue to lock up the network stack. Recently, the focus has been on the IP stack. The plan there involves a series of inter-related pieces to lock up the ifaddr ref count, the inet list, the ifaddr uses, the ARP code, the routing tree, and the routing entries. We are over 3/5 of the way done down this path.

    In addition to TCP and UDP, the other networking protocols such as raw IP, IPv6, AppleTalk, and XNS need to be locked up. Around 1/4 these remaining protocols have been locked and will be committed after the IP stack is locked.

    The protocol independent socket layer needs to be locked and operating correctly with the protocol dependent locks. This part is mostly done save for much needed testing and code cleanup.

    Finally, a pass will be need to be made to lock up the devices drivers and various statistics counters.

    TCP congestion control Jeffrey Hsu hsu@FreeBSD.org

    This effort fixes some outstanding problems in our TCP stack with regard to congestion control. The first item is to fix our NewReno implementation. Following that, the next urgent correction is to fix a problem involving window updates and dupack counts. When that stabilizes, we will then change the recovery code to make use of SACK information. Eventually, this project will update the BSD stack to add Limited Transmit and other new internet standards and standards-track improvements.

    FreeBSD Package Cluster work Kris Kennaway kris@FreeBSD.org - +

    The 3 FreeBSD package clusters (i386, alpha, sparc64) have been unified to run from the same master machine, instead of using 3 separate masters. This has freed up some machine resources to use as additional client machine, as well as simplifying administrative overheads. Build logs for all 3 architectures - can now be found on the http://bento.freebsd.org webpage. The + can now be found on the http://bento.FreeBSD.org webpage. The sparc64 package cluster now has 3 build machines (an u5 and two u10s), and an ia64 cluster is about to be created.

    Package builds now keep track of how many sequential times a port has failed to build (html summaries are available on the bento website). This allows tracking of ports which have suddenly become broken (e.g. due to a bad upgrade, or due to changes in the FreeBSD source tree), and in the future will be used to send out notifications to port maintainers when their port fails to build 5 times in a row. This feature is currently experimental, and further code changes will be needed to stabilize it.

    Wireless Networking Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to improve the wireless networking support in the system. By the time of this report the 802.11 link layer code should be committed. A version of the wi driver that uses this code should be committed shortly. Conversion of other drivers is planned as are drivers for new devices.

    Support for 802.1x/EAP is the next planned milestone (both as a supplicant and authenticator).

    FreeBSD Release Engineering Scott Long re@FreeBSD.org - Release Engineering + Release Engineering Homepage

    November and December were especially busy for the release engineering team. Scott Long joined the team to help with secretary and communications tasks while Brian Somers bowed out to focus on other projects.

    FreeBSD 5.0-DP2 was released in November after much delay and anticipation, and marked the final milestone needed for 5.0 to become a reality. Shortly after that, we imposed a code freeze on the HEAD branch of CVS and released 5.0-RC1. Creation of the RELENG_5_0 branch came next, followed by the release of 5.0-RC2 from this branch. At this point, enough critical problems still existed that we scheduled an RC3 release for the new year, and pushed the final 5.0-RELEASE date to mid-January. By the time this is published, FreeBSD 5.0-RELEASE should be a reality.

    For the time being, there will not be a RELENG_5 (aka 5-STABLE) branch. FreeBSD 4.x releases will continue, with 4.8 being scheduled for March 2003. Release in the 4.x series will be lead by Murray Stokely, and releases in the 5.x series will be lead by Scott Long. Once HEAD has reached acceptable performance and stability goals, the RELENG_5 branch will be created and HEAD will move towards 6.0 development. We hope to reach this with the 5.1 release this spring.

    SMP aware scheduler Jeff Roberson jeff@FreeBSD.org

    A new scheduler will be available as an optional component along side the current scheduler in the 5.1 release. It has been designed to work well with KSE and SMP. Some ideas have been borrowed from solaris and linux along with many novel approaches. It has O(1) performance with regard to the number of processes in the system. It also has cpu affinity which should provide a speed boost for many applications.

    The scheduler has a few loose ends and lots of tuning before it is production quality although it is quite stable. Please see the post to arch and subsequent discussion for more details.

    diff --git a/en/news/status/report-2003-01-2003-02.xml b/en/news/status/report-2003-01-2003-02.xml index 6fd027cb12..a21d51f12e 100644 --- a/en/news/status/report-2003-01-2003-02.xml +++ b/en/news/status/report-2003-01-2003-02.xml @@ -1,700 +1,700 @@ - + January-February 2003
    Introduction:

    Another busy two months have passed in the FreeBSD project. With 5.0 released, attention is focusing on making it faster via more fine-grained locking, adding more high-end features like large memory (PAE) support for i386, and further progress on many other projects. FreeBSD 5.1 is expected to ship in late May or early June, with 5.2 following at the end of summer. A roadmap for the push to 5-STABLE is available at - http://www.freebsd.org/doc/en/articles/5-roadmap. Although + href="http://www.FreeBSD.org/doc/en/articles/5-roadmap"> + http://www.FreeBSD.org/doc/en/articles/5-roadmap. Although the 5.x series isn't expected to fully stabilize until the 5.2 release, 5.1 promises to be an exciting release and a significant improvement over 5.0 in terms of speed and stability.

    Not to be forgotten, FreeBSD 4.8, the latest in the 4-STABLE series, is nearing release. Lots of last minute work is going into to it to deliver features like XFree86 4.3.0, Intel HyperThreading(tm) support, and of course many more bug fixes. Don't forget to support the FreeBSD vendors and developers by buying a copy of the CD set when it comes out!.

    Thanks,

    Scott Long, Robert Watson

    FreeBSD/MIPS Status Report Juli Mallett jmallett@FreeBSD.org FreeBSD/MIPS project page. FreeBSD/MIPS platform page.

    Large portions of headers have been filled in, all have been stubbed out. Minimal functions and data elements have been stubbed out or filled in. Machinery added to support some requisite tunables for building real kernels. GCC fixed to generate correct local label prefixes making it possible to link real kernels. Work begun on providing enough to create and boot real kernels, on real hardware. Decision to only support MIPS-III and above made.

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030305.tar.gz

    This release features new in-kernel RFCOMM implementation that provides SOCK_STREAM sockets interface. This makes old user-space RFCOMM daemon obsolete. People should not use old user-space RFCOMM daemon any longer. The release features new RFCOMM PPP daemon that supports DUN and LAN profiles. Note: PPP patch (support for chat scripts in -direct mode) is required for DUN support. Look for it in the mailing list archive or contact me directly. People with Bluetooth enabled cell phones can now use them to access Internet.

    The Bluetooth sockets layer has been cleaned up. People should not see any WITNESS complaints with new code. Locking issues have been revisited and code in much better shape now, although it probably is not 100% SMP ready just yet. The code should work on SMP system anyway because sockets layer is still under Giant.

    The simple OBEX server and client (based on OpenOBEX library) is complete. OBEX File Push and OBEX File Transfer profiles work and have been tested with Sony Ericsson T68i cell phone and Bluetooth 3COM stack on Windows2K. It is now possible to send pictures, address book and calendar entries from the cell phone via Bluetooth. Minor bug in OpenOBEX library has been fixed and OPEX Put-Empty command now works.

    Due to changes in API userland tools must be in sync with the kernel. People should install new include files, recompile and reinstall all userland tools as part of upgrade. I'm sorry about that.

    FreeBSD 4.8 Release Engineering Murray Stokely re@FreeBSD.org FreeBSD 4.8 Release Schedule.

    The FreeBSD 4.8 Release Process is well underway. The RELENG_4 branch has been under code freeze since February 15, and the first release candidates were made available in early March. A testing guide has been put together and is available from http://www.FreeBSD.org/releases/4.8R/qa.html.

    Developers should coordinate with re@FreeBSD.org about any changes they would like to include in this release, and users are encouraged to try out the release candidates and help find as many bugs as possible now, before the final release is made.

    FreeBSD 4.8 represents the newest production release from the stable '4.X' branch. It does not include all of the features that were made available in the "new technology" 5.0 release in January.

    New Doceng Body Formed Murray Stokely doceng@FreeBSD.org - +

    The doceng@ team is a new body to handle some of the meta-project issues associated with the FreeBSD Documentation Project. The main responsibilities of this team are to grant approval of new doc committers, to manage the doc release process, to ensure the documentation toolchains are functional, to maintain the doc project primer, and to maintain the sanctity of the doc/ and www/ trees. The current members of this team are Nik Clayton, Ruslan Ermilov, Jun Kuriyama, Bruce A. Mah, and Murray Stokely.

    KGI/FreeBSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    The later months have been very busy on KGI. Most of the framework has been debugged for typical usage (fb, no accel). I got KII (the input interface) connected to syscons through atkbd. Opening /dev/graphic works and framebuffer resource access is permitted. Finally, the KGIM (KGI module) framework has a better building tree for board / monitor drivers and board drivers are now loading with resource allocation.

    Most important on the TODO list: 5.0-RELEASE move (I currently work with a May-2002 5.0-current). Most of debug is now done. Let's validate!

    Note that KGI project homepage has changed since the last report.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-5.0.tbz

    We have released Japanese translation of 5.0-RELEASE online manual pages on February 2nd. Most of entries which did not exist on RELENG_4 were not yet translated. I hope we can finish such entries soon.

    Disk I/O improvements Poul-Henning Kamp phk@FreeBSD.org

    We have the first disk device driver (aac) out from under Giant now, and in certain scenarios it gives improvements up to 20%. The device driver API was pruned to reflect that NO_GEOM compatibility is unnecessary, this resulted in approx 1000 lines less source code, the majority of which were removed from the device drivers. The new API for cdevsw is a lot simpler and hopefully less likely to confuse people. The ability to automatically allocate a device major number has been introduced and is already used by a handful of drivers. Checks introduced with this facility has shown that the uniqueness of manually allocated major numbers had already broken down.

    Work continues on the statistics collection API and on a unified API for manual configuration of GEOM nodes.

    Support for PAE and >4G ram on x86 Jake Burkholder jake@FreeBSD.org

    Support for PAE is mostly complete, and has been checked into the jake_pae branch. The approach that is being taken to add support for PAE is to allow the pmap module to view the page table directory as 4 pages instead of 1, and to avoid using the 3rd level structure, the page directory pointer table, as much as possible. Due to its small size, 32 bytes, the PDPT cannot be uniformly recursively mapped, and as such does not provide a regular multi level structure like the page tables used by the alpha or x86-64 architectures. What remains to be done for PAE support is to develop an API for manipulating page table entries which will allow idempotent 64 bit loads and stores to be used where necessary.

    Experimental support for >4G ram using PAE has been developed and checked into the jake_pae_test branch in Perforce. This involved adding a physical address type separate from virtual addresses, for use by the vm system and bus code which needs to use physical addresses directly. Initial testing has shown good results with device drivers that can dma to 64 bit physical addresses.

    Funding for this project is being provided by DARPA and Network Associate Laboratories, and hardware support by FreeBSD Systems.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    In the period from September 2002 through February 2003, the FreeBSD Security Team email aliases saw 1297 messages, a much smaller volume than over the summer (remember the Apache and OpenSSL worms? 4.6.1 oops I mean 4.6.2-RELEASE?).

    Also during this period: 95 items were added to the SO issue-tracking database; 39 of these involved the FreeBSD base system while the rest involved ports. 9 new Security Advisories were published, 2 of which covered issues unique to FreeBSD.

    In January, the SO published a new PGP key (ID 0xCA6CDFB2, found on the FTP site and in the Handbook). This aligned the set of those who possess the corresponding private key with the membership of the security-officer alias published on the FreeBSD Security web site. It also worked around an issue with the deprecated PGP key being found corrupted on some public key servers.

    In February, Mike Tancsa of Sentex donated two machines to the Security Officer. These have been a great help already in testing the security branches, preparing patches, and generating updated binaries. Thank you very much, Mike!

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    FreeBSD 4.8-RELEASE will continue in the tradition of 5.0-RELEASE, and include GNOME 2 as the default GNOME desktop. This means that 4.8 will ship with GNOME 2.2.

    Following on the heels of the recent GNOME 2.2 release, GNOME 2.3 snapshots are gearing up. The development schedule is available from http://www.gnome.org/start/2.3/. Ports will be made available the same way they were for the 2.1 development releases. Stay tuned to freebsd-gnome@ for more details.

    We are currently in another ports freeze in preparation for 4.8-RELEASE. Following the freeze, a new bsd.gnome.mk will be committed that effectively removes the USE_GNOMENG macro. This new version will add support for GNOME 2 as well as setup backward compatibility for ports that have not yet been converted to the new GNOME infrastructure. People interested in testing this new Mk file, can check out the ``ports'' module following the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    Work on PowerPC is progressing steadily. The system can now boot multi-user from the net and disk. ATA-DMA is being integrated with the ATAng code, and support for older G3 machines is being added.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    January and February were quiet months that saw with them the addition of some C99 math functions and macros, which include: fpclassify(), isfinite(), isgreater(), isgreaterequal(), isinf(), isless(), islessequal(), islessgreater(), isnan(), isnormal(), and signbit(). Additional C99 math library support is in the works.

    Buffer Cache lockdown Jeff Roberson jeff@FreeBSD.org

    Most of the file system buffer cache has been reviewed and protected. The vnode interlock was extended to cover some buffer flag fields so that a separate interlock was not required. The global buffer queue data structures were locked and counters were converted to atomic ops. The BUF_*LOCK functions grew an interlock argument so that buffers could be safely removed from the vnode clean and dirty lists. The lockmgr lock is now required for all access to buf fields. This was not strictly followed before because splbio provided the needed protection.

    There are a few areas of code that need to be protected and cleaned up before giant can be pushed down. Most notably the background write code is currently unsafe without giant. Also, many of the VM bits that the buffer cache relies on are not safe. This work has been done with the expectation that the VM and VFS subsystems will be giant free soon.

    ULE Scheduler Jeff Roberson jeff@FreeBSD.org

    The ULE scheduler has been committed to the 5.0-CURRENT branch. Early adopters and experimenters are welcome to try it and submit bug reports. It has shown noticeable performance improvements over the old scheduler under some workloads. There are currently problems with nice fairness but otherwise the interactive performance is very good. More work to improve the load balancing algorithm is required as well. This should be ready for use by the general FreeBSD user base in the next month or so.

    Read-ahead performance Jeff Roberson jeff@FreeBSD.org

    Some improvements have been made to the clustered read ahead code. They allow for many more outstanding IO requests when an application does sequential access. This has a larger impact on RAID systems than on single disk systems. The maximum number of file system blocks that we will read ahead is tunable via the 'vfs.read_max' sysctl. This optimization has shown a 20% improvement in simple tests.

    Status Report for Newbus lockdown Warner Losh imp@FreeBSD.org

    Locking of the non-obj parts of newbus is nearing completion. A single lock is used for the device tree. Minimal changes to subr_bus have so far been necessary to make this work, however some lock order issues remain. After this work, it will no longer be necessary to hold Giant to call device_* routines safely. kobj work is being done by others and will likely require more extensive design work to make SMP friendly.

    TCP congestion control Jeffrey Hsu hsu@FreeBSD.org

    The objective of this effort is to improve the performance, stability, and correctness of the BSD networking stack by adding support for new standards and standards track proposals while maintaining compliance with existing specifications. The upcoming 4.8 and 5.1 releases will be the first ones using the new NewReno logic. Recently, we implemented the Limited Transmit algorithm (RFC 3042) which benefits connections with small congestion windows, as happens, for example, on many short web connections. We also recently added support for larger sized starting congestion windows as described in RFC 3390. This helps short TCP connections as well as those with large round-trip delays, such as those over satellite links.

    SMP locking for network stack Jeffrey Hsu hsu@FreeBSD.org

    The list of subsystems locked up include IP, UDP, TCP, ifaddr reference counting, syncache, the ifnet list, routing radix trees, and ARP. These have already been committed into the tree. In addition, SMP locking for raw IP, divert socket processing, and Unix domain sockets have also recently been completed and tested. Work is currently being done in some of the subsystems required to make parallel networking processing SMP-safe.

    diff --git a/en/news/status/report-2003-03-2003-09.xml b/en/news/status/report-2003-03-2003-09.xml index 6e5d8f7df2..3caa2a7145 100644 --- a/en/news/status/report-2003-03-2003-09.xml +++ b/en/news/status/report-2003-03-2003-09.xml @@ -1,970 +1,970 @@ - + March-September 2003
    Introduction:

    The FreeBSD Bi-monthly status reports are back! In this edition, we catch up on seven highly productive months and look forward to the end of 2003.

    As always, the FreeBSD development crew has been hard at work. Support for the AMD64 platform quickly sprang up and is nearly complete. KSE has improved greatly since the 5.1 release and will soon become the default threading package in FreeBSD. Many other projects are in the works to improve performance, enhance the user experience, and expand FreeBSD into new areas. Take a look below at the impressive summary of work!

    Scott Long, Robert Watson

    VideoBSD John-Mark Gurney jmg@FreeBSD.org Documentation of VideoBSD

    Still in the planning stage. Working on creating an extensible interface that is usable for both userland and kernel implementations for device drivers. Deciding on how to interface userland implemented device drivers with applications.

    KSE Dan Eischen deischen@FreeBSD.org David Xu davidxu@FreeBSD.org - KSE Project + KSE Project Page

    KSE seems to be working well on x86, amd64, and ia64. The alpha userland bits are done, but a couple of functions are unimplemented in the kernel. For sparc64, the necessary functions are implemented in the kernel, but the userland context switching functions need more attention.

    Since 5.1, efficient scope system threads (no upcalls when they block) have been implemented, and KSE based pthread library can have both POSIX scope process threads and scope system threads. It is also possible that KSE based pthread library can implement pthread both in 1:1 and M:N mode, I know Dan has such Makefile file patch for libkse not yet committed.

    KSE program now can work under ULE scheduler, its efficient should be improved under the new scheduler in future. BSD scheduler is still the best scheduler for current KSE implement.

    FreeBSD/ia64 Marcel Moolenaar marcel@FreeBSD.org Project home page.

    Much has happened since the last bi-monthly report, which was more than half a year ago. FreeBSD 5.0 and FreeBSD 5.1 have been released for example. With FreeBSD 5.2 approaching quickly, we're not going to look back too far when it comes to our achievements. There's too much ahead of us...

    Two milestones have been reached after FreeBSD 5.1. The first is the ability to support both Intel and HP machines with sources in CVS. This due to a whole new driver for serial ports, or UARTs. Unfortunately this still implies that syscons is not configured. That's another task for another time, but keep an eye on KGI/FreeBSD... The second milestone is the completion of KSE support. Both M:N and 1:1 threading is functional on ia64 and the old libc_r library has been obsoleted. Testing has shown that KSE (i.e. M:N) may well become the default threading model. It's looking good.

    The ABI hasn't changed after 5.1 and the expectation is that it won't change much. This means that we can think about becoming a tier 1 platform. This also means we need gdb(1) support. Work on it has been started but the road is bumpy and long. Kernel stability also has improved significantly and we typically have one kernel panic remaining: VM fault on no fault entry. This will be addressed with the long awaited PMAP overhaul (see below).

    Most work for FreeBSD 5.2 will be "sharpening the saw". Get those loose ends tied. This is a slight change of plan made possible by a slip in the release schedule. The 5.2 release is not going to be the start of the -stable branch; it has been moved to 5.3. So, we use the extra time to prepare the ground for 5.3.

    The planned PMAP overhaul will probably be finished after 5.2. This should address all known issues with SMP and fix those last panics. As a side-effect, major performance improvements can be expected. More news about this in the next status reports.

    Disk I/O Poul-Henning Kamp phk@FreeBSD.org

    The following items are in progress in the Disk I/O area: Turn scsi_cd.c into a GEOM driver. (Patch out for review). Turn atapi-cd.c into a GEOM driver. Turn fd.c into a GEOM driver. Move softupdates and snapshot processing from SPECFS to UFS/FFS. Move userland access to device drivers out of vnodes.

    Once these preliminaries are dealt with, scatter/gather and mapped/unmapped support will be added to struct bio/GEOM.

    Binary security updates for FreeBSD Colin Percival cperciva@daemonology.net

    FreeBSD Update is a system for tracking the FreeBSD release (security) branches. In addition to being faster and more convenient than source updates, FreeBSD Update also requires less bandwidth and is more secure than source updates via CVSup. However, FreeBSD Update is limited; it can only update files which were installed from an official RELEASE image and not recompiled locally. Right now I'm publishing binary updates for 4.7-RELEASE and 4.8-RELEASE; since my only available box takes 3.5 hours to buildworld, I don't have enough resources to do any more than that.

    In the near future, I'd like to: Find someone who is willing to donate a faster buildbox; start building updates for other releases (at a minimum, for all "supported" FreeBSD releases); add warnings if a file would have been updated but can't be updated because it was recompiled locally; add code to compare the local system against a list of "valid" MD5 hashes for intrusion detection purposes; and add support for cross-signing, whereby several machines could build updates independently to protect against buildbox compromise.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr http://pf4freebsd.love2party.net PF homepage PF FAQ

    The project started this spring and released version 1.0 with a port installation (security/pf) in may 2003. Version 2.0 is on the doorstep as OpenBSD 3.4 will be released. Due to the porting efforts we were able to reveal some bugs in the OpenBSD code and provided locking for the PFIL_HOOKS, which we utilize. Tarball installation of a loadable kernel module for testing can be found on the project homepage, a patchset is in the making.

    PF was started at OpenBSD as a substitute for ipfilter and provides the same function set. However, in the two years it exists now, it has gained many superior features that no other packet filter has. For a impression take a look at the pf FAQ.

    We hope to be eventually integrated into the base system. Before that we have to resolve some issues with tcpdump and kame.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030908.tar.gz. I have also prepared patch for the FreeBSD source tree. The patch was submitted for review to the committers.

    Fixed few bugs in kernel modules. The ng_hci(4) and ng_l2cap(4) modules were changed to fix issue with Netgraph timeouts. The ng_ubt(4) module was changed to fix compilation issue on -current.

    Improved user-space utilities. Implemented new libsdp(3). Added new sdpcontrol(8) utility. The rfcomm_sppd(1), rfcomm_pppd(8) and obexapp(1) were changed and now can obtain RFCOMM channel via SDP from the server. The hccontorol(8) utility now has four new commands. The hcsecd(8) daemon now saves link keys on the disk.

    I've been recently contacted by few individuals who whould like to port current FreeBSD Bluetooth code to other BSD systems (OpenBSD and NetBSD). The work is slowly progressing towards un-Netgraph'ing current code. In the mean time Netgraph version will be the primary supported version of the code.

    Rescue build infrastructure Gordon Tetlow gordon@FreeBSD.org Tim Kientzle kientzle@FreeBSD.org

    The rescue build infrastructure has been committed. There is one known issue with make using both the '-s' and '-j' flags that appears to be a bug in make. Anyone interested in tracking down should contact us.

    Dynamically Linked Root Support Gordon Tetlow gordon@FreeBSD.org

    Support for a dynamically linked /bin and /sbin has been committed, although it is not turned on by default. Adventurous users can try it out by building /bin and /sbin using the WITH_DYNAMICROOT make flag. More testing is needed to determine if this is going to be default for 5.2-RELEASE. If anyone would like to benchmark worldstones with and without dynamically linked /bin and /sbin, please feel free to do so and submit the results.

    ACPI Status Report Nate Lawson njl@FreeBSD.org

    Work is continuing on updating ACPI with new features as well as bugfixing. A new embedded controller driver was written in July with support for the ACPI 2.0 ECDT as well as more robust polling support. Also, a buffer overflow in the ACPICA resource list handling that caused panics for some users was fixed. Marcel helped get acpidump(8) tested and basically working on ia64.

    Upcoming work includes integrating ACPI notifies with devd(8), committing user-submitted drivers for ASUS and Toshiba hotkeys, Cx processor sleep states (so my laptop doesn't burn my lap), and power resource support for intelligently powering down unused or idle devices.

    Users who have problems with ACPI are encouraged to submit a PR - and email its number to acpi-jp@jp.freebsd.org. Bug reports + and email its number to acpi-jp@jp.FreeBSD.org. Bug reports of panics or crashes have first priority and non-working features or missing devices (except suspend/resume problems) second. Reports of failed suspend/resume should NOT be submitted as PRs at this time due to most of them being a result of incomplete device support that is being addressed. However, feel free to mail them to the list as any information is helpful.

    uart(4) Marcel Moolenaar marcel@FreeBSD.org

    The uart(4) project was born out of the need to have a working serial interface (i.e. an RS-232-C interface) in a legacy-free configuration and after an unsuccessful attempt to convert sio(4). The biggest problem with sio(4) is that it has been intertwined in many ugly ways into the kernel's core. Conversion could not happen without breaking something that invariably affects some group of people negatively. With sio(4) as a good bad example and a strong desire to solve multiple problems at once, the idea of an UART (Universal Asynchronuous Receiver/Transmitter) device that, given its generic name, could handle different flavors of UART hardware started to settle firmly in the authors mind.

    The biggest challenge was of course solving the problem of the low-level console access prior to the initialization of the bus infrastructure and still have a driver that uses the bus access exclusively. Along the way the problem of having an UART function as the keyboard on sparc64 was solved with the introduction of system devices, which also encapsulated the console as a system device.

    The uart(4) driver can be enhanced to support the various UART hardware on pc98 and this is currently being worked on. Keyboard support on sparc64 is underway as well. Plans exist for a rewrite of the remote gdb support that uses a generic interface to allow various drivers, including uart(4), to register itself as a communications channel. And since uart(4) does not support multi- port cards by itself, we likely need to either enhance puc(4) or otherwise introduce other umbrella drivers

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches.

    Since I ported icc to FreeBSD I wanted to build FreeBSD with icc. Now with icc 7.1 (and some patches) it is possible. There are still some bugs, e.g. NFS doesn't work with an icc compiled kernel, IP seems to be fragile, and some advanced optimizations trigger an ICE (Intel is working on it). At the moment I'm waiting for our admins to install icc on the FreeBSD cluster (we got a commercial license from Intel, so we are allowed to distribute binaries which are compiled with icc), after that I will try to convince some people with more knowledge of the IP and NFS parts of the kernel to debug the remaining problems. When the icc compiled kernel seems to work mostly bugfree the userland will get the porting focus. Interested people may try to do a build of the ports tree with icc independently from the status of the porting of the userland... if this happens at the FreeBSD cluster, we would also be allowed to distribute the binaries.

    Benefits include: another set of compiler errors (debugging help), more portable source, and code which is better optimized for a P4 (gcc has some drawbacks in this area)

    KDE FreeBSD Project KDE-FreeBSD Mailinglist kde@FreeBSD.org

    The FreeBSD ports were updated to KDE 3.1.4, another bug- and security-fixes release. With this update, the QT port was updated to version 3.2. Both will be included in FreeBSD 4.9. Significant work was spent to fix KDE on FreeBSD-CURRENT after the removal of the gcc -pthread Option. Automatic package builds from KDE CVS continued to ensure and improve the quality of the upcoming KDE 3.2 release.

    Future: Work is in progress to setup a new server for hosting the KDE-FreeBSD Website, Repository and another KDE CVS mirror. With help from Marcel Moolenaar the project will try to make KDE compile and working on the Intel IA64. And last but not least efforts are being made to fix the currently broken kdesu program.

    WifiBSD Status Report Jon Disnard masta@wifibsd.org www.wifibsd.org

    WifiBSD is a miniture version of FreeBSD for wireless applications. Originally for the Soekris Net45xx line of main-boards, but is now capable of being targeted to any hardware/architecture FreeBSD itself supports. Although not feature complete, WifiBSD is expected to be ready for 5.2-RELEASE. The design goal is to meet, or exceed, the functionality of commercial/consumer 802.11 wireless gear. Features that need attention (to name just a few) are: http interface, consol menu interface, and installation. Volunters are welcome.

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    Work has restarted after a hiatus. Current focus is on getting loadable modules working, NEWBUSing the NetBSD dbdma code, and completing the BMAC ethernet driver.

    There is a huge amount of work to do. Volunteers more than welcome!

    AMD64 Porting Peter Wemm peter@FreeBSD.org

    The last known bug that prevented AMD64 machines completing a full release has been fixed - one single character error that caused ghostscript to crash during rendering diagrams. SMP work is nearing completion and should be committed within the next few days. The SMP code uses the ACPI MADT table based on John Baldwin's work-in-progress there for i386. We need to spend some time on low level optimization because there are several suboptimal places that have been ignored for simplicity, context switching in particular. MTRR support has been committed and XFree86 can use it. cvsup now works but the ezm3 port has not been updated yet. The default data segment size limit is 8GB instead of 512M, and the (primitive) i386 binary emulation support knows how to lower the rlimits for executing 32 bit binaries.

    Notable things missing still: Hardware debug register support needs to be written; gdb is still being done as an external set of patches relative to the not-yet-released FSF gdb tree; DDB does not disassemble properly; DDB cannot do stack traces without -fno-omit-frame-pointer - a stack unwinder is needed; i386 and amd64 linux binary emulation is needed, and the i386 FreeBSD binary emulation still needs work - removing the stackgap code in particular.

    The platform in general is very reliable although a couple of problems have been reported over the last week. One appears to be a stuck interrupt, but all that code has been redone for SMP support.

    bsd.java.mk version 2.0 Ernst De Haan znerd@FreeBSD.org Herve Quiroz herve.quiroz@esil.univ-mrs.fr Project homepage

    The FreeBSD Java community has started an effort to improve the current framework for Java-based ports. The main objective is the automation of JDK/JRE build and run dependency checking.

    The original version was aimed to ease the life of porters. Although it has proved to be useful and reliable to a great extend, we are currently working on a new version. We intend to reach a high degree of flexibility to cope with the recent increase of available JDK/JRE flavors. Furthermore, the new version will be easier to maintain, which means improved reliability, and hopefully more frequent updates.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    The BSD Java Porting Team has recently reached an exciting milestone with the release of the first "Diablo" JDK and JRE courtesy of the FreeBSD Foundation. The release of Diablo Caffe and Diablo Latte 1.3.1 was the first binary release of a native FreeBSD JDK since 1.1.8 and marks an important step forward in FreeBSD Java support.

    The team is continuing development work, with a focus on achieving a compliant JDK 1.4 release in the near future.

    ATAPI/CAM Status Report Thomas Quinot thomas@FreeBSD.org

    With the introduction of ATAng, some users of ATAPI/CAM have experienced various problems. These have been mostly tracked down to issues in the new ATA code, as well as two long-standing problems in portions of the CAM layer that are rarely exercised with "real" SCSI SIMs. This has also been an occasion to cleanup ATAPI/CAM to make it more robust, and to enable DMA for devices accessed through it, resulting in improved performances.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-5.1.tbz

    We have released Japanese translation of 5.1-RELEASE online manual pages on June 10.

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Several months ago, I took it upon myself to to try present the - information contained on the bento + information contained on the bento build cluster to be presented in a more user-friendly fashion; that is, to be browsed by error type, by maintainer, and so forth. An early addition was code to attempt to classify ports PRs by either "existing port" (after assiging the most likely category and portname); "new port"; "framework" (e.g. bsd.port.mk changes); and "unknown". Various columns about the ports PRs were added to the reports.

    The initial intent of this was to make life easier for ports maintainers; however, the "general" reports are also useful to anyone who just wants to, e.g., find out if a particular port is working on their particular architecture and OS combination before downloading it. Those with that general interest should start with the overview of one port.

    kgi4BSD Status Report Nicholas Souchu nsouch@FreeBSD.org Project URL

    A lot of work done since last report: site reworked completly (see new URL), console design with console message in text or graphic modes implemented, implementation of a compatibility layer to compile Linux fbdev drivers with more or less changes in the original driver (experimental).

    Except some memory allocation bugs, X (XGGI based on XFree 3.3.6) is now working with the same driver as the console. A basic terminal has now to be implemented.

    Volonteers are welcome to the project...

    Device_t locking Warner Losh imp@FreeBSD.org

    A number of races have been identified in locking device_t. Most of the races have been identified in making device_t have to do with how drivers are written. Efforts are underway to identify all the races, and to contact the authors of subsystems that can help the drivers. Of special concern is the need for the driver to ensure that all threads are completely out of the driver code before detach() finishes. Of additional concern is making sure that all sleepers are woken up before certain routines are called so that other subsystems can ensure the last condition and leave no dangling references. Locking device_t is relatively straight forward apart from these issues. Towards the end of proper locking, sample strawmen drivers are being used to work out what, exactly proper is. Once these issues are all known and documented in the code, efforts will be made to update relevant documentation in the tree. There are many problems with driver locking that has been done to date, but until we nail down how to write a driver in current, it will be premature to contact specific driver writers with specific concerns.

    Cryptographic Support Sam Leffler sam@FreeBSD.org

    Support for several new crypto devices was added. The SafeNet 1141 is a medium performance part that is not yet available on retail products. The Hifn 7955 and 7956 parts are starting to appear on retail products that should be available by the end of the year. Both devices support AES encryption. Support for public key operations for the SafeNet devices was recently done for OpenBSD and will be backported. Public key support for the Hifn parts is planned.

    A paper about the performance work done on the cryptographic subsystem was presented at the Usenix BSDCon 2003 conference and received the best paper award.

    NetBSD recently imported the cryptographic subsystem.

    Release Engineering Status Scott Long re@FreeBSD.org

    The release of 4.9 is just around the corner and offers Physical Address Extensions (PAE) for x86 along with the same world-class stability and performance that is expected from the 4-STABLE series. As always, don't forget to purchase a copy of the CD set from your favorite FreeBSD vendor.

    FreeBSD 5.1 was released in June and offered vastly improved stability over 5.0 along with a working implementation of Kernel Scheduled Entities, allowing for true multithreading of applications across multiple CPUs. FreeBSD 5.2 will be released by the end of 2003 and will focus on improved network and overall performance.

    Wireless Networking Support Sam Leffler sam@FreeBSD.org

    Numerous bugs have been fixed since the last status report (and of course a few new ones added). Progress on improved security has been slowed by other work. But new features and fixes are coming in from other groups that are now sharing the code. In particular NetBSD recently imported the revised 802.11 layer and the Linux-based MADWIFI project is using it too (albeit in an older form). The MADWIFI users have already contributed features such as fragmentation reassembly of 802.11 frames and improved signal monitoring. Power save polling and an improved rate control algorothm are expected to come in from the NetBSD folks. WPA support is still in the plans; the best estimate is that work on that will start in January.

    Network Subsystem Locking and Performance Sam Leffler sam@FreeBSD.org

    The purpose of this project is to improve performance of the network subsystem. A major part of this work is to complete the locking of the networking subsystem so that it no longer depends on the "Giant lock" for proper operation. Removing the use of Giant will improve performance and permit multiple instances of the network stack to operate concurrently on multiprocessor systems.

    This project started in August. The emphasis has been on locking the "lower half" of the networking code so that packet forwarding through the IPv4 path can operate without the Giant lock as part of the 5.2 release. To this end locking was added to several network interface drivers and much of the "middleware" code in the network was locked (e.g. ipfw, dummynet, then routing table, multicast routing support, etc). Work towards this goal is still ongoing but should be ready for 5.2. A variety of test systems have been running for several months without the Giant lock in the network drivers and IP layer.

    Past the 5.2 release Giant will be removed from the "upper half" of the network subsystem and the socket layer. Once this is done the plan is to measure and improve performance (though some work of this sort is always happening). The ultimate goal is a system that performs at least as well as 4.x for normal use on uniprocessor systems. On multiprocessor systems we expect to see significantly better performance than 4.x due to greater concurrency and reduced latency.

    diff --git a/en/news/status/report-2003-10-2003-12.xml b/en/news/status/report-2003-10-2003-12.xml index 5e1be71d77..c55f64dbab 100644 --- a/en/news/status/report-2003-10-2003-12.xml +++ b/en/news/status/report-2003-10-2003-12.xml @@ -1,1361 +1,1361 @@ - + October-December 2003
    Introduction:

    The FreeBSD status reports are back again with the 2003 year-end edition. Many new projects are starting up and gaining momentum, including XFS, MIPS, PowerPC, and networking locking and multithreading. The end of 2003 also saw the release of FreeBSD 4.9, the first stable release to have greater than 4GB support for the ia32 platform. Work on FreeBSD 5.2 also finished up and was released early in January of 2004. Many thanks to all of the people who worked so hard on these releases and made them happen.

    This is the largest status report ever, so read and enjoy!

    Scott Long, Robert Watson

    libarchive, bsdtar Tim Kientzle kientzle@FreeBSD.org - +

    The libarchive library, which reads and writes tar and cpio archives, is about ready to commit to the tree. The bsdtar program, built on libarchive, is also nearing completion and should soon be a worthwhile successor to our aging GNU tar. I plan a gradual transition during which "bsdtar" and "gtar" will coexist in the tree.

    Oddly enough, libarchive and bsdtar are the first fruits of a project to completely rewrite the pkg tools. I've started architecting a libpkg library for handling routine package management and have a prototype pkg_add that is three times faster than the current version.

    Publications Page Update Josef El-Rayes josef@daemon.li Updated Publications Page

    I did a xml/xslt conversion of the html files to make maintaining of the page more comfortable. I removed the cdsets, which might be kept in CVS or some kind of archive for historical reasons. The books got an update, and were categorized in respect to the language they are written in. As soon as I get my access on the cvs repository I will commit the updates. People are encouraged to add local FreeBSD books, I missed, especially in the asian area. Feel free to send me links to books to add.

    DVB-ASI Support Vincent Jardin Vincent.Jardin@6wind.com Home page and source code Computer Modules

    DVB ASI stands for Digital Video Broadcast - Asynchronous Serial Interface. It is the standard defined to send and receive DVB stream from Satellite (DVB-S), Terrestrial link (DVB-T), and TV Cable (DVB-C). This standard was developed in Europe to transport 188-byte MPEG cells and 204-byte MPEG cells. However it can be used to carry IP over DVB too.

    The FreeBSD driver uses the newbus amd the bus-dma API. It means that it could be easily ported to all the BSD flavors (NetBSD, OpenBSD).

    It uses the same API than the Linux DVB ASI support from ComputerModules that is based on the following devices:

    • /dev/asitxN for the transmit stream (only open, write, select, close and ioctl are supported)
    • /dev/asirxN for the receive stream (only open, read, select, close and ioctl are supported)
    It means that software such as Videolan that support DVB-ASI broadcasting could be supported by this driver.

    Special thanks to Tom Thorsteinson from Computer Modules who helped 6WIND to port their driver. It is used by 6WIND in order to provide IPv4, IPv6, Ethernet and our network services over DVB.

    Copyright 2003-2004, 6WIND

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Enhancements continue to be made to the system. Several, including improvements to the PR classification algorithm, the ability to more correctly guess when a PR has been updated, and better handling of errors in both port Makefiles and the bento builds, are invisible to end-users. However, the addition of a "repocopy" classification is notable, as is the allowing the wildcard search in "overview of one port" (thanks to edwin@ for the shove in that direction.) Additionally, logic has been added to identify the proposed category/portname of new ports, with the goal being to quickly identify possible duplications of effort. (Some SQL performance was sacrificed to this goal, leading to some pages to load more slowly; this needs to be fixed.)

    The other work has been on an email back-end to allow the occasional sending of email to maintainers. Two functions are currently available: "remind maintainers of their ports that are marked BROKEN", and "remind maintainers of PRs that they may not have seen." A recent run of the former got generally good response, especially as changing some cases of BROKEN to IGNORE (PR ports/61090) had removed almost all the annoying false positives. However, work remains to try to find out why a few allegedly broken ports only fail in certain environments (including the bento cluster).

    The next plan is to use the proposed DEPRECATED Makevar (see ports/59362) to create a new report to allow querying of "ports currently slated to be removed". This report could also be posted to ports@ periodically with minimal work. The author believes that doing this would allow the port deprecation process to be much more visible to the general FreeBSD user community.

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches

    The FreeBSD kernel now builds and runs fine with icc v7 (only GENERIC and a custom kernel tested so far). A review on arch@ revealed no major concerns and some src committers are willing to commit the patches. As icc v8 is out and defines __GNUC__ I want to rework the patches before they get committed so an icc v8 compiled kernel DTRT too.

    A complete build of the ports collection (as of start of December) finished and is under review to determine the reason of build failures. Current icc stats:

    • 1108 failed builds (excluding build failures because of failed dependencies)
    • 3535 successfully build packages (~ 1.7 GB)
    A parallel build with gcc on the same snapshot of the ports collection has:
    • 520 failed builds (excluding build failures because of failed dependencies)
    • 7261 successfully build packages (~ 4.8 GB)

    The above mentioned build of the ports collection was run on a P4 with a icc compiled kernel (optimized for a P4). No kernel panics or other strange behavior was noticed. The ports collection was build with a CPUTYPE of p4 and CFLAGS set to "-Os -pipe -mfpmath=sse -msse2" in the gcc and "-O2" in the icc case. No package is tested for correct run-time behavior so far.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr PF homepage PF FAQ

    Much work has been invested into getting release 2.00 stable. It provides the complete OpenBSD 3.4 function set, as well as fine grained locking to work with a giant free network stack.

    pf provides: IPv6 filtering and normalization, "syn-proxy" to protect (web)server against SYN-floods, passive OS detection, fast and modular address tables, source/policy routing, stateful filter and normalization engine, structured rulesets via anchors and many many more. Especially in connection with ALTQ, pf can help to harden against various flood attacks and improve user experience.

    New features from OpenBSD-Current like: state synchronization over wire and enhanced support for cloned interfaces require patches to the kernel. We are trying to resolve this issue and start OpenBSD-Current tracking again as soon as possible.

    Binary security updates for FreeBSD Colin Percival cperciva@daemonology.net

    Thanks to recent donations, I am now building binary security updates for FreeBSD {4.7, 4.8, 4.9, 5.0, 5.1, 5.2}-RELEASE. (Note that FreeBSD 4.7 and 5.0 are no longer officially supported; any advisories which are not reflected in the CVS tree will likewise not result in binary updates.)

    The current version (1.5) of FreeBSD Update will warn about locally modified files and will, by default, leave them untouched; if a "distribution branch", (i.e. crypto, nocrypto, krb4, or krb5) is specified, FreeBSD Update can be forced to "update" files which have been compiled locally.

    The only major issue remaining with FreeBSD Update is the single-point-of-failure of the update building process; I would like to resolve this in the future by having several machines cross-verify and cross-sign, but this will require a significant investment of time, and will probably have to wait until I've finished writing my DPhil thesis.

    SGI XFS port for FreeBSD Alexander Kabaev kan@FreeBSD.org Russell Cattelan cattelan@thebarn.com

    A project was started to revive a stalled effort to port SGI XFS journaling filesystem to FreeBSD. The project is based on Linux development sources from SGI and is currently being kept in a private Perforce repository. The work is progressing slowly due to lack of free time. At the moment we have XFS kernel module which is capable of mounting XFS filesystems read-only, with a panic or two happening infrequently, that need to be isolated and fixed. Semi-working metadata updates with full transaction support are there too, but will probably have to be rewritten to minimize the amount of custom kernel changes required.

    We seek volunteers to help with userland part of the port. Namely, existing xfsprogs port needs to be cleaned up, incompletely ported utilities brought into a working shape. xfs_dump/xfs_restore and as much from xfstests suite as possible need to be ported too. We do not need testers for now, so please to not ask for module sources just yet.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Bluetooth code was integrated into the FreeBSD source tree. Bluetooth kernel modules appear to be stable. I have received few success stories from the users.

    During last few months the efforts were to make Bluetooth code more user friendly. Bluetooth Service Discovery Procotol daemon sdpd was reimplemented under BSD-style license and committed. The next step is to integrate existing Bluetooth utilities with SDP.

    Thanks to Matt Peterson <matt at peterson dot org> I now have Bluetooth keyboard and mouse for development. I'm currently working on Bluetooth HID profile implementation.

    Dave Sainty <dave at dtsp dot co dot nz> from NetBSD project offered his help in porting Bluetooth stack to NetBSD.

    Network interface naming changes Brooks Davis brooks@FreeBSD.org

    At the end of October, the if_name and if_unit members of struct ifnet were replaced with if_xname from NetBSD and if_dname and if_dunit. These represent the name of the interface and the driver name and instance of the interface respectively. Other then breaking IPFilter for a few weeks due to the userland being on the vendor branch, this change went quite well. A few ports needed minor changes, but otherwise nothing changed from the user perspective.

    The purpose of this change was the lay the groundwork for support for network interface renaming and to allow the implementation of more interesting pseudo interface cloning support. An example of interesting cloning support would be using "ifconfig fxp0.20 create" to create and configure a vlan interface on fxp0 that handled frames marked with the tag 20. Interface renaming is being worked on in Perforce at the moment with a working version expected for review soon. Support for enhanced device cloning is still in the planing stage.

    Kernel Tunables Documentation Project Tom Rhodes trhodes@FreeBSD.org - The + The problem report which kicked this project in action

    FreeBSD has well over a few hundred tunables without documentation. This project aims at designing an automated process to rip all available tunables and generate a manual page based on the selected kernel options. The ideal implementation, however; would gather tunables from the LINT kernels as well. This would provide a default manual page for all supported architectures. A simple tool has been forged from the various off-list and on-list discussions and is waiting review from the -doc team. Anyone interesting in reviewing my current work is requested to get in contact with me.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating existing Japanese translations of manual pages to meet the 5.2-RELEASE schedule. Also, 22 new translations were complete during this period.

    FreeBSD MIDI Mathew Kanner matk@FreeBSD.org

    This project aims to update the current MIDI implementation. We are currently looking at removing the current code sometime in February and importing the new version soon after. I'm currently working on a kernel/timidity bridge for those without external hardware.

    The FreeBSD Russian Documentation Project Andrey Zakhvatov andy@FreeBSD.org The FreeBSD Project [Russian]

    The FreeBSD Russian Documentation Project aims to provide FreeBSD Documentation translated to Russian. Already done: FAQ, Porters Handbook, WWW (partially synched with English version), some articles.

    We working at Handbook (and more docs) translation and synchronization with English versions and need more translators (or financial aid to continue our work. If you can help, please, contact us at ru-cvs-committers@FreeBSD.org.ua (or andy@FreeBSD.org).

    KSE Daniel Eischen deischen@FreeBSD.org

    The libkse library will shortly be renamed to libpthread and be made the default thread library. This includes making the GCC -pthread option link to -lpthread instead of libc_r and changing PTHREAD_LIBS to -lpthread. David Xu has been working on GDB support and has it working with the GDB currently in our tree. The next step is to make a libpthread_db and get it working with GDB 6.0 which marcel has imported into the perforce tree.

    Donations Team Michael Lucas donations@FreeBSD.org - FreeBSD Donations Project + FreeBSD Donations Project

    2003 was quite successful for the Donations team. We shepherded over 200 items from donors into the hands of developers. Some high points include: a small cluster for the security team, assorted laptop hardware for our cardbus work, and documentation for our standards group. In the main FreeBSD.org cluster we were able to replace 8 DEC Miata machines with 6 Alpha DS10s (21264). Every committer doing SMP work now has multi-processor testing hardware.

    We have smoothed out the tax deduction process with the FreeBSD Foundation, and can ship donated items directly to the recipients instead of tying up Foundation time handling shipping.

    Current team membership is: Michael Lucas, David O'Brien, and Tom Rhodes. Wilko Bulte has replaced Robert Watson as the Core Team representative.

    ACPI Nate Lawson njl@FreeBSD.org ACPI TODO - ACPI-JP + ACPI-JP Mailing List

    The updated acpi_cpu driver was committed in November. Work is ongoing to finish support for _CST re-evaluation, which makes it possible for laptops based on processors like the Centrino to use varying CPU idle states when on or off AC power. 5.2-RELEASE also went out with support for _CID packages, which fixed mouse probing for Compaq users. Control of CPU idle states and throttling can now be done through rc.conf(5) settings for the /etc/power_profile script, which switches between performance/economy levels when the AC status changes.

    One huge task underway is the cpufreq project, a framework for detecting and controlling various frequency/voltage technologies (SpeedStep, LongRun, ACPI Performance states, etc.) The ACPI performance states driver is working and the framework is being implemented. It requires newbus attachments for CPUs so some ground work needs to go in before the driver can be committed.

    ACPI-CA was updated to 20031203 in early December and with a few patches is reasonably stable. An ACPI debugging how-to has been written and is being DocBooked by trhodes@. Ongoing work on fixing interrupt storms due to various ways of setting up the SCI is being done by jhb@.

    I'd like to welcome Philip Paeps (philip@) to the FreeBSD team. Philip has written an ACPI ASUS driver that will be committed soon and has been very helpful on the mailing lists. We've also had a lot of help from jhb@, marcel@, imp@, and peter@. We're hoping to see the return of takawata@ and iwasaki@, who have been very helpful in the past. If any developers are interested in assisting with ACPI, please see the ACPI TODO and send us an email.

    kgi4BSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    Most of the console blocks are in place with nice results (see screenshots on the site). Boot console and virtual terminals are working with 8bit rendering and perfect integration of true graphic drivers in the kernel.

    Now it is time to bring it to end user and a precompiled R5.2 GENERIC kernel is available for this (see the site news). In parallel, after providing a last tarball/patch for R5.2, everything will move to Perforce.

    As always, volunteers are welcome. The task is huge but very exciting.

    FreeBSD/powerpc on PPCBug-based embedded boards Rafal Jaworowski rafal.jaworowski@motorola.com

    The direct objective is to make FreeBSD/powerpc work on Motorola MCP750 and similar (single board computer that is compliant with Compact PCI standard) Based on this work it would be easy to bring it to other embedded systems.

    1. loader(8): it is based on the existing loader for FreeBSD/powerpc port but binding to OpenFirmware was removed and replaced with PPCBug firmware binding. It only supports netbooting for the moment, so disk (compact flash) support needs to be done one day. The loader is the only piece that relies onPPCBug system calls - once the kernel starts it doesn't need firmware support any longer.

    2. kernel: it is now divorced from OpenFirmware dependencies; most of the groundwork finished includes: nexus stuff is sorted out (resources management is ok except interrupts assignment); host to PCI bridge low level routines are finished so configuration of and access to PCI devices works; the only important thing missing is the IRQ management (Raven MPIC part is done, but the board has the second PIC, 8259-compatible that needs to be set up, but here the existing code from x86 arch will be adopted).

    Once the IRQ management is cleared out, most of the devices on board would work straight away since they are pretty standard chips with drivers already implemented in the tree (e.g. if_de).

    At the moment work is on hold (don't have physical access to the device) but will resume when I'm back home (late Feb).

    TrustedBSD Mandatory Access Control (MAC) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD MAC page

    The TrustedBSD Mandatory Access Control (MAC) Framework permits the FreeBSD kernel and userspace access control policies to be adapted at compile-time, boot-time, or run-time. The MAC Framework provides common infrastructure components, such as policy-agnostic labeling, making it possible to easily development and distribute new access control policy modules. Sample modules include Biba, MLS, and Type Enforcement, as well as a variety of system hardening policies.

    TrustedBSD MAC development branch in Perforce integrated to 5.2-RELEASE.

    The TrustedBSD MAC Framework now enforces protections on System V IPC objects and methods. Shared memory, semaphores, and message queues are labeled, and most operations are controlled. The Biba, MLS, Test, and Stub policies have been updated for System V IPC. (Not yet merged)

    The TrustedBSD MAC Framework now enforces protections on POSIX semaphore objects and methods. The Biba, MLS, Test, and Stub policies have been updated. (Not yet merged)

    The TrustedBSD MAC Framework's central kernel implementation previously existed in one large file, src/sys/kern/kern_mac.c. It is now broken out into a series of by-service files in src/sys/security/mac. src/sys/security/mac/mac_internal.h specifies APIs, structures, and variables used internally across the different parts of the framework. System calls and registration still occur in kern_mac.c. This permits more easy maintenance of locally added object types. (Merged)

    Break out mac_policy_list into two different lists, one to hold "static" policy modules -- ones loaded prior to kernel initialization, and that may not be loaded, and one for "dynamic" policy modules -- that are either loaded later in boot, or may be unloaded. Perform less synchronization when using static modules only, reducing overhead for entering the framework when not using dynamic modules. (Merged)

    Introduced a kernel option, MAC_STATIC, which permits only statically registered policy modules to be loaded at boot or compiled into the kernel. When running with MAC_STATIC, no internal synchronization is required in the MAC Framework, lowering the cost of MAC Framework entry points. (Not yet merged)

    Make mac.h userland API definition C++-happy. (Merged)

    Created mac_support.4, a declaration of what kernel and userspace features are (and aren't) supported with MAC. (Not yet merged)

    Stale SEBSD module deleted from MAC branch; SEBSD module will solely be developed in the SEBSD branch from now on. See the TrustedBSD SEBSD report for more detail.

    Use only pointers to 'struct label' in various kernel objects outside the MAC Framework, and use a zone allocator to allocate label storage. This permits label structures to have their size changed more easily without changing the normal kernel ABI. This also lowers the non-MAC memory overhead for base kernel structures. This also simplifies handling and storage of labels in some of the edge cases where labels are exposed outside of the Framework, such as in execve(). Include files outside of the Framework are substantially simplified and now frequently no longer require _label.h. (Merged)

    Giant pushed down into the MAC Framework in a number of MAC related system calls, as it is not required for almost all of the MAC Framework. The exceptions are areas where the Framework interacts with pieces of the kernel still covered by MAC and relies on Giant to protect label storage in those structures. However, even in those cases, we can push Giant in quite a bit past label internalization/externalization/ storage allocation/deallocation. This substantially simplifies file descriptor-based MAC label system calls. (Merged)

    Remove unneeded mpo_destroy methods for Biba, LOMAC, and MLS since they cannot be unloaded. (Merged)

    Biba and MLS now use UMA zones for label allocation, which improves storage efficiency and enhances performance. (Merged)

    Bug fix for mac_prepare_type() to better support arbitrary object label definitions in /etc/mac.conf. (Merged)

    Labels added to 'struct inpcb', which represents TCP and UDP connections at the network layer. These labels cache socket labels at the application layer so that the labels may be accessed without application layer socket locks. When a label is changed on the socket, it is pushed down to the network layer through additional entry points. Biba, MLS policies updated to reflect this change. (Merged)

    SO_PEERLABEL socket option fixed so that peer socket labels may be retrieved. (Merged)

    mac_get_fd() learns to retrieve local socket labels, providing a simpler API than SO_LABEL with getsockopt(). mac_set_fd() learns about local socket labels, providing a simpler API than SO_LABEL with setsockopt(). This also improves the ABI by not embedding a struct label in the socket option arguments, instead using the copyin/copyout routine for labels used for other object types. (Merged)

    Some function names simplified relating to socket options. (Merged)

    Library call mac_get_peer() implemented in terms of getsockopt() with SO_PEERLABEL to improve API/ABI for networked applications that speak MAC. (Merged)

    mac_create_cred() renamed to mac_cred_copy(), similar to other label copying methods, allowing policies to implement all the label copying method with a single function, if desired. This also provides a better semantic match for the crdup() behavior. (Merged)

    Support "id -M", similar to Trusted IRIX. (Not yet merged)

    TCP now uses the inpcb label when responding in timed wait, avoiding reaching up to the socket layer for label information in otherwise network-centric code.

    Numerous bug fixes, including assertion fixes in the MAC test policy relating to execution and relabeling. (Merged)

    TrustedBSD Access Control Lists (ACLs) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD ACLs page

    TrustedBSD Access Control Lists (ACLs) provide extended discretionary access control support for the UFS and UFS2 file systems on FreeBSD. They implement POSIX.1e ACLs with some extensions, and meet the Common Criteria CAPP requirements. Most ACL-related work is complete, with remaining tasks associated with userspace integration, third party applications, and compatibility

    Prototyped Solaris/Linux semantics for combining ACLs and the umask: if an default ACL mask is defined, substitute that mask for the umask, permitting ACLs to override umasks. (Not merged)

    TrustedBSD "Security-Enhanced BSD" -- FLASK/TE Port Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD SEBSD page

    TrustedBSD "Security-Enhanced BSD" (SEBSD) is a port of NSA's SELinux FLASK security architecture, Type Enforcement (TE) policy engine and language, and sample policy to FreeBSD using the TrustedBSD MAC Framework. SEBSD is available as a loadable policy module for the MAC Framework, along with a set of userspace extensions support security-extended labeling calls. In most cases, existing MAC Framework functions provide the necessary abstractions for SEBSD to plug in without SEBSD-specific changes, but some extensions to the MAC Framework have been required; these changes are developed in the SEBSD development branch, then merged to the MAC branch as they mature, and then to the FreeBSD development tree.

    Unlike other MAC Framework policy modules, the SEBSD module falls under the GPL, as it is derived from NSA's implementation. However, the eventual goal is to support plugging SEBSD into a base FreeBSD install without any modifications to FreeBSD itself.

    TrustedBSD SEBSD development branch in Perforce integrated to 5.2-RELEASE. Other changes in the MAC branch, including restructuring of MAC Framework files also integrated, and a move to zone allocation for labels. See the TrustedBSD MAC Framework report for more detail on these and other MAC changes that also affect the SEBSD work.

    FreeBSD PTY code modified so that the MAC Framework and SEBSD module can create pty's with the label of the process trying to access them. Improves compatibility with the SELinux sample policy. (Not yet merged)

    SEBSD now loads its initial policy in the boot loader rather than using a dummy policy until the root file system is mounted, and then loading it using VFS operations. This avoids initial labeling and access control conditions during the boot.

    security_load_policy() now passes a memory buffer and length to the kernel, permitting the policy reload mechanisms to be shared between the early boot load and late reloads. The kernel SEBSD code now no longer needs to perform direct file I/O relating to reading the policy. checkpolicy now mmap's the policy before making the system call.

    SEBSD now enforces protections on System V IPC objects and methods. Shared memory, semaphores, and message queues are labeled, and most operations are controlled. The sample policy has been updated.

    The TrustedBSD MAC Framework now controls mount, umount, and remount operations. A new MAC system call, mac_get_fs() can be used to query the mountpoint label. lmount() system call allows a mount label to be explicitly specified at mount time. The SEBSD policy module has been updated to reflect this functionality, and sample TE policy has been updated. (Not yet merged)

    SEBSD now enforces protections on POSIX semaphores; the sample policy has been updated to demonstrate how to label and control sempahores. This includes sample rules for PostgreSQL.

    The SEBSD sample policy, policy syntax, and policy tools have been updated to the SELinux code drop from August. Bmake these pieces so we don't need gmake.

    Provide file ioctl() MAC Framework entry point and SEBSD implementation.

    A large number of sample policy tweaks and fixes. The policy has been updated to permit cron to operate properly. It has been updated for FreeBSD 5.2 changes, including dynamically linked root. Teach the sample policy about FreeBSD's sendmail wrapper.

    Adapt sysinstall and install process for SEBSD pieces. Teach sysinstall, newfs, et al, about multilabel file systems, install SEBSD sample policy pieces, build policy. Automatically load the SEBSD module on first boot after install.

    Allow "ls -Z" to print out labels without long format.

    TrustedBSD Audit Robert Watson rwatson@FreeBSD.org TrustedBSD Audit Discussion List trustedbsd-audit@TrustedBSD.org TrustedBSD Audit Page

    The TrustedBSD Project is producing an implementation of CAPP compliant Audit support for use with FreeBSD. Little progress was made on this implementation between October and December other than an update to the existing development tree. However, in January, work began on porting the Darwin Audit implementation to FreeBSD. Details on this work will appear in the next report; more information is available on the TrustedBSD audit discussion list. Perforce messages may be seen on the trustedbsd-cvs mailing list.

    TrustedBSD Documentation Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD Documentation Page

    The TrustedBSD Project is implementing many new features for the FreeBSD Project. It also provides documentation for users, administrators, and developers.

    mac_support.4 added -- documents TrustedBSD MAC Framework feature compatibility. See also the MAC Framework report.

    FreeBSD security architecture updated and corrections/additions made.

    A variety of documentation updates relating to API changes, including the socket-related API changes in libc/mac(3).

    FreeBSD/MIPS Status Report Juli Mallett jmallett@FreeBSD.org

    TLB support code and PMAP have come along nicely. GCC and related have been kept up to date with the main tree. An evaluation board from Broadcom was donated and initial work on that platform has been occurring. Much old and obsolete code brought from NetBSD for bootstrapping the effort has been cleaned up. The system has been seen to get to the point of trying to initialize filesystems, but there are still bugs even before that milestone.

    AGP 3.0 Support John Baldwin jhb@FreeBSD.org

    Simple support AGP 3.0 including support for AGP 8x mode was added. The support is simple in that it still assumes only one master and one target. The main gain is the ability to use AGP 8x with drm modules that support it.

    Network Subsystem Locking and Performance Sam Leffler sam@FreeBSD.org

    The purpose of this project is to improve performance of the network subsystem. A major part of this work is to complete the locking of the networking subsystem so that it no longer depends on the "Giant lock" for proper operation. Removing the use of Giant will improve performance and permit multiple instances of the network stack to operate concurrently on multiprocessor systems.

    Locking of the network subsystem is largely complete. Network drivers, middleware layers (e.g. ipfw, dummynet, bridge, etc.), the routing tables, IPv4, NFS, and sockets are locked and operating without the use of Giant. Much of this work was included in the 5.2 release, but not enabled by default. The remaining work (mostly locking of the socket layer) will be committed to CVS as soon as we can resolve how to handle "legacy protocols" (i.e. those protocols that are not locked). The code can be obtained now from the Perforce database. A variety of test and production systems have been running this code for several months without any obvious issues.

    Performance analysis and tuning is ongoing. Initial results indicate SMP performance is already better than 4.x systems but UP performance is still lagging (though improved over -current). The removal of Giant from the network subsystem has reduced contention on Giant and highlighted performance bottlenecks in other parts of the system.

    This work was supported by the FreeBSD Foundation.

    Wireless Networking Support Sam Leffler sam@FreeBSD.org

    Work to merge the NetBSD and MADWIFI code bases is almost complete. This brings in new features and improves sharing which will enable future development. Support was added for 802.1x client authentication (using the open1x xsupplicant program) and for shared key authentication (both client and AP) which improves interopability with systems like OS X. The awi driver was updated to use the common 802.11 layer and the Atheros driver received extensive work to support hardware multi-rate retry. Kismet now works with the device-independent radiotap capture format. All of this work is still in Perforce but should be committed to CVS soon.

    Work has begun on full 802.1x and WPA support.

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    Work is progressing on SMPng on several different fronts. Sam Leffler and several other folks have been working on locking the network stack as mentioned elsewhere in this update. Several infrastructure improvements have been made in the past few months as well.

    The low-level interrupt code for the i386 architecture has been redesigned to allow for a runtime selection between different types of interrupt controllers. This work allows the Advanced Programmable Interrupt Controllers (APICs) to be used instead of the AT 8259A PIC without having to compile a separate kernel to do so. It also allows the APIC to be used in a UP kernel as well as on a UP box. Together, all these changes allow an SMP kernel to work on a UP box and thus allowed SMP to be enabled in GENERIC as it already is on all of the other supported architectures. This work also reworked the APIC support to correctly route PCI interrupts when using an APIC to service device interrupts. This work was also used to add SMP support to the amd64 port.

    A turnstile implementation was committed that implemented a queue of threads blocked on a resource along with priority inheritance of blocked threads to the owner of the resource. Turnstiles were then used to replace the thread queue built into each mutex object which shrunk the size of each mutex as well as reduced the use of the sched_lock spin mutex.

    diff --git a/en/news/status/report-2004-01-2004-02.xml b/en/news/status/report-2004-01-2004-02.xml index e48dac06a3..2cb5ad26e9 100644 --- a/en/news/status/report-2004-01-2004-02.xml +++ b/en/news/status/report-2004-01-2004-02.xml @@ -1,865 +1,865 @@ - + January-February 2004
    Introduction:

    2004 started with another exciting two months for the project. FreeBSD 5.2 was released in early January and then quickly followed in February with the 5.2.1 bug-fix release. Looking forward, we are expecting a late-April release date for FreeBSD 4.10, and mid-summer date for FreeBSD 5.3. And don't forget to support the FreeBSD vendors and developers by buying a copy of the latest CD or DVD sets.

    Thanks,

    Scott Long

    Disk and device I/O Poul-Henning Kamp phk@FreeBSD.org

    In the overall area of disk and device I/O, a significant milestone was reached with the implementation of proper reference counting on dev_t. We are now able to properly allocate and free dev_t. Cloning device drivers also had the job made easier for them with the addition of the unit number management routines.

    It is not quite decided which will be the next step in the quest for a truly SMPng I/O subsystem, but a leading candidate is to implement the device-access vnode bypass to get more concurrency in the system: Instead of taking the tour through the vnodes for each i/o operation on a device we will go directly from the file descriptor layer to DEVFS/SPECFS. In addition to Giant-less disk I/O, this should enable us to pull the entire tty subsystem and the PTY driver out from under Giant and we expect that to improve the "snappiness" of the system measurably.

    The FreeBSD Dutch Documentation Project. Remko Lodder remko@elvandar.org

    The Dutch Documentation Project is a ongoing project in translating the handbook and other documentation to the dutch language. Currently there is 1 active person (me) translating the documentation. I am currently working on the handbook/basics section. But i can use some more hands, please drop me an email if you wish to help out so that the dutch translation will speed up and be ready in some time. Contact remko@elvandar.org for information.

    Weekly cvs-src summaries Mark Johnston mark@xl0.org Polish translations

    I have been producing weekly summaries of commits and the surrounding discussions as reported on the cvs-src mailing list. These summaries are posted to -current on Sunday evenings and archived on the Web. The reception has been overwhelmingly good. As of the end of February, Polish translations are being produced by Lukasz Dudek and Szymon Roczniak; they are also planning to translate the older summaries.

    libarchive/bsdtar Tim Kientzle kientzle@FreeBSD.org - +

    libarchive, with complete documentation, has been committed to -CURRENT. bsdtar should follow soon. For a few months, gtar and bsdtar will both be available in the base system. Once bsdtar is in the tree, I hope to resume work on libpkg and my pkg_add rewrite.

    Note that bsdtar is not an exact replacement for gtar: it does some things better (reads/writes standard formats, archive ACLs and file flags, detects format and compression automatically), some things worse (does not handle multi-volume archives or sparse files) and a few things just different (writes POSIX-format archives by default, not GNU-format). The command lines are sufficiently similar that most users should have no problems with the transition. However, people who rely on peculiar options or capabilities of gtar may have to look to ports.

    Network interface naming changes Brooks Davis brooks@FreeBSD.org

    The first actual feature related to the if_xname conversion was committed in early February. Network interfaces can now be renamed with "ifconfig <if> name <newname>".

    Work is slowly progressing on a new network interface cloning API to enable interesting cloners like auto-configurating vlans. This work is taking place in the perforce repository under: //depot/user/brooks/xname/...

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    After a slow time at the end of last year due to a disk crash, the project is moving along rapidly. The loader is fully functional with Forth support. Syscons has been integrated. New Powerbook models are supported. Work is starting on a G5 port.

    There's still lots to do, so as usual volunteers are most welcome.

    The FreeBSD Simplified Chinese Project Dong LI ld@FreeBSD.org.cn Xin LI delphij@frontfree.net - The FreeBSD Simplified + The FreeBSD Simplified Chinese Project (In Simplified Chinese) - Translated + Translated Website Snapshot - Translated Handbook Snapshot + Translated Handbook Snapshot

    The project is a joint effort of volunteers, which focus in the internationalization and localization of the FreeBSD Operating System and applications running on FreeBSD. All of the work resulted in this project will be contributed back to the FreeBSD project.

    Thanks to many volunteers' help, by this time of writing, we have finished more than 60% of the translation of the FreeBSD Handbook. We plan to submit a preliminary translation of the FreeBSD website as well as the FreeBSD Handbook when most part of them were finished, which is expected to happen in a couple of months. The snapshot of the documentation translation effort could be accessed through the URL listed above.

    The project also supported individual efforts on porting applications (especially software that supports Simplified and/or Traditional Chinese) to FreeBSD. We are also doing some research on making FreeBSD kernel and base system more i18n-aware.

    Verify source reachability option for ipfw2 Andre Oppermann andre@FreeBSD.org

    The verify source reachability option for ipfw2 checks if the source IP address of a packet entering the machine is reachable at all. Thus if we can't send a packet back because we don't have a route back we don't have to forward it because two way communication isn't possible anyway. It is more than likely that such a packet is spoofed. This option is almost the same as what is known on Cisco IOS as "ip verify unicast source reachable-via [any|ifn]". Using this option only makes sense when you don't have a default route which naturally always matches. So this is useful for machines acting as routers with a default-free view of the entire Internet as common when running a BGP daemon (Zebra/Quagga or OpenBSD bgpd).

    One useful way of enabling it globally on a router looks like this: ipfw add xxxx deny ip from any to any not versrcreach or for an individual interface only: ipfw add xxxx deny ip from any to any not versrcreach recv fxp0

    Move ARP out of routing table Andre Oppermann andre@FreeBSD.org

    The ARP IP address to MAC address mapping does not belong into the routing table (FIB) as it is currently done. This will move it to its own hash based structure which will be instantiated per each 802.1 broadcast domain. With this change it is possible to have more than one interface in the same IP subnet and layer 2 broadcast domain. The ARP handling and the routing table will be quite a bit simplified afterwards. As an additional benefit full MAC address based accosting will be provided. Work on this project is already in progress.

    Automatic sizing of TCP send buffers Andre Oppermann andre@FreeBSD.org

    The current TCP send and receive buffers are static and set to a conservative value to preserve kernel memory. This is sub-optimal for connections with a high bandwidth*delay product because the size of the TCP send buffer determines how big the send window can get. For high bandwidth trans-continental links this seriously limits the maximum transfer speed per TCP connection. For example a 170ms RTT and a 32kB send buffer limit the speed to approximately 1.5Mbit per second even thought you might have a 10Mbit pipe.

    This project makes the TCP send buffer to automatically adapt to the optimal buffer size for maximal link usage. In the case above this would be a buffer of approximately 220kB. The main challenge is to have a stable and reliable measurement of the link parameters and manage the kernel memory properly and in a fair way. We don't want to have a few connections to monopolize all available socket buffer space and many edge cases have to be considered. The first implementation will be tuned conservatively but even that will provide significantly better performance than the static buffers currently. Work on this project is already in progress.

    Testbed for testing and qualification of TCP performance Andre Oppermann andre@FreeBSD.org

    The TCP performance test and qualification testbed is an automated environment that simulates various common and uncommon end-to-end network and link characteristics such as delay, bandwidth limitations, congestion, packet drops, packet corruption and out of order arrival. The testbed automatically steps through all link types and tests various TCP optimizations and parameter adjustments. In the end all data is graphically arranged and compared against standard behaviour and each other to judge the positive or negative effects of the modifications. Work on this project has just started and is based on FreeBSDs dummynet.

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Thanks to the loan of a box by Will Andrews, the system has been moved into production. The previous installation at lonesome.com now refers you to the new system. As part of the installation, a preliminary FAQ was added.

    The database is updated once per hour.

    New reports available include ones about ports marked DEPRECATED, since that function has now been incorporated into bsd.port.mk. (The author hopes that this will allow the port deprecation process to be much more visible to the general FreeBSD user community.) In addition, a report for ports marked FORBIDDEN was added (the code was essentially the same).

    The next topic of interest is to try to identify ports which are slave ports because the status of these ports is not currently being updated automatically. This problem also affects FreshPorts. PR ports/63683 is an attempt to address this problem. Also, preliminary work has been done on creating some graphs and charts for various statistics, and in creating a tool to browse port dependencies for the entire ports tree.

    Some general observations about the trends in ports PRs can be made:

    • In the past 6 months, the amount of time to get ports PRs committed has dropped dramatically. (This is especially true of PRs for new ports.)
    • The queue of PRs for existing ports that are unmaintained has similarly been trimmed. Both of these two items are due in large part to a few very active committers (how do they ever get their "real" work done?) Thanks, guys, you know who you are.
    • There is still a fairly high number of PRs (~400/~750) which apply to existing ports, and have been assigned to a FreeBSD committer. This represents around 370 individual ports. We seem to have a much harder time getting these numbers to go down; basically, we just hold our own most weeks. This is somewhat disappointing.
    • The number of ports marked BROKEN has jumped dramatically, currently standing at over 250 (for i386-current). This represents less a sudden problem as it does Kris' effort to bring existing brokenness to people's attention -- thus, a much larger percentage of ports with build errors are now labeled as BROKEN.
    • Approximately two-thirds of the port build errors are still due to compilation problems, primarily from the gcc3.3 import. Another 10% fail to install correctly. The reasons for the others are more varied.

    FreeSBIE FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Home FreeSBIE Mailing List FreeSBIE Mirror List

    The FreeSBIE Project aims to develop a set of scripts that allow anyone to create their own FreeBSD Bootable Cdrom, with their own set of installed packages. The Project releases an ISO builded with FreeSBIE scripts, to show what they can do. On Sunday 29 February 2004, FreeSBIE 1.0 was released and it had a great success, as there were post on Slashdot.org, OSnews, DaemonNews and BSDForums. Thanks to the huge amount of feedback they got, FreeSBIE Developers are now developing new features such as support for archs different from i386. Website redesign is on the way too.

    kgi4BSD Nicholas Souchu nsouch@FreeBSD.org Project URL

    Move to Perforce is done. I spent some time on building a common compilation tree with Linux: until now drivers were build in a FreeBSD makefile tree, not compatible with Linux.

    The next priorities are ANSI support and keymaps in the KGC Kernel Graphic Console system.

    FreeBSD/ia64 Marcel Moolenaar marcel@FreeBSD.org Home page.

    Work on the PMAP overhaul has been put into gear. A lot of issues will be addressed, including support for sparse physical memory and of course SMP. Performance will be addressed to the extend possible, but functionality has priority. The redesign will lay the foundation for NUMA support where possible. An example of this is limiting TLB shootdowns to processors that actually have or had TLBs belonging to the PMAP loaded. Of course, without NUMA hardware the implementation of NUMA support is quite limited.

    FreeBSD Package Grid Kris Kennaway kris@FreeBSD.org

    Distributed package builds are currently done using a set of home-grown shell scripts for managing, scheduling and dispatching of package builds on the client machines. This has been sufficient for our needs in the past, but has a number of significant shortcomings that limit future growth. I am rewriting the package build scripts to work on top of Sun GridEngine (ports/sysutils/sge), as a client application of a "FreeBSD package grid". Some of the design goals for the new system are:

    • Better robustness against machine failure, and more efficient scheduling of build jobs
    • Support for remote build machines, to make better use of machine resources and clusters that are not on the same LAN as the build master
    • Ability for other committers to submit port build jobs to the system, for testing of changes, new ports, etc.
    vinum + GEOM Lukas Ertl le@FreeBSD.org

    The "geomification" of vinum has made some progress. I now have all basic setups working (concatenated plexes, striped plexes, RAID5 plexes, and RAID1), but I still have to implement correct error handling and status change handling.

    Still missing is a userland tool, so currently you still have to use "old-style" vinum to configure your setup.

    NanoBSD Poul-Henning Kamp phk@FreeBSD.org

    NanoBSD, src/tools/tools/nanobsd, is a tool for stuffing FreeBSD onto small disk media (like CompactFlash) for embedded applications. The disk image is built with three partitions, two for software images and one for configuration files. Having two software partitions means that new software can be uploaded to the non-active partition while running off the active partition.

    The first really public version has been committed and many suggestions and offers of patches have started pouring in.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr PF homepage PF FAQ ALTQ

    The sources were imported from OpenBSD 3.4R and patched with diffs obtained from the port. Since March the 8th it is linked to the build and install. There is some more work to be done in order make pf a home inside the tree, but the biggest hunk of work was lifted during the past two month.

    OpenBSD 3.5 is scheduled for early May, so we might see an update before 5.3R. Work towards integration of the - often requested - ALTQ framework is in progress also, though it is not yet clear how well it goes along with the ongoing work towards a giant free net stack.

    FreeBSD/arm Status Report Olivier Houchard cognet@FreeBSD.org

    Development goes reasonably fast, right now it boots single user. It is still very simics-centric, and it deserves a huge cleanup and a few bug fixes, but there's already a decent amount of code to work with, mostly taken from NetBSD. I now plan to work on real hardware support (as soon as I can get some), to get the missing userland bits (mainly rtld and the pthread libs) so that I can build a full world.

    SGI XFS port for FreeBSD Alexander Kabaev kan@FreeBSD.org Russell Cattelan cattelan@thebarn.com

    Not much has changed since last report was submitted. The read-only access XFS volumes is quite stable now. The work is underway to rewrite xfs_buf layer to minimize local changes intrusiveness. Initial attempt to make XFS code to compile and run on amd64 is in progress too.

    We really need a care-taker for our userland tools.

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches.

    If nothing bad happened, the icc patches got committed around the date of the deadline for submissions of this report. Please search the archives of -current and/or cvs-all for more information.

    The next steps in this project are to

    • fix the kernel to also run without problems when compiled with icc v8
    • fix the kernel if some problems surface after more people give it a try
    • get some ports to compile with icc

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Bluetooth Service Discovery Procotol daemon sdpd was integrated with existing Bluetooth utilities. From now on users should not use GNU sdpd (Linux BlueZ port).

    Bluetooth HID profile implementation is almost complete. Thanks to Matt Peterson < matt at peterson dot org > for giving me Bluetooth keyboard and mouse for development.

    FreeBSD GNOME Project Report FreeBSD GNOME Team gnome@FreeBSD.org FreeBSD GNOME Project Site.

    It has been a year since our last status report, but we haven't slowed down. Since the last report, Alexander Nedotsukov (bland) and Pav Lucistnik (pav) have joined the FreeBSD GNOME team. GNOME 2.4 was released back in September 2003, followed by 2.4.1 and 2.4.2. We are actively working on getting GNOME 2.6.0 out the door at the end of March. GNOME 2.6 Beta releases can be obtained via the project URL above.

    To help make GNOME 2.6.0 our best release to date, we have created a script to automate the upgrade from GNOME 2.4. We also have a new GNOME package build server that builds and serves i386 packages for all supported FreeBSD releases. We plan on having the GNOME 2.6.0 packages available the moment 2.6.0 hits the ports tree.

    Included in the release of GNOME 2.6 is GTK+ 2.4, the next installment in the GTK+ 2 series. Because GTK+ 2 has become very stable over the past few years, the FreeBSD GNOME Team is pushing for GTK+ 2 support to be included by default in all applications that support it. This has already been done with Mozilla, Firefox, and Thunderbird. A complete GNOME Desktop and application environment can already be built using only GTK+ 2. The ultimate goal is to phase GTK+ 1 out of the ports tree.

    Network Stack Locking Sam Leffler sam@FreeBSD.org Robert Watson rwatson@FreeBSD.org

    This project is aimed at converting the FreeBSD network stack from running under the single Giant kernel lock to permitting it to run in a fully parallel manner on multiple CPUs (i.e., a fully threaded network stack). This will improve performance/latency through reentrancy and preemption on single-processor machines, and also on multi-processor machines by permitting real parallelism in the processing of network traffic. As of FreeBSD 5.2, it was possible to run low level network functions, as well as the IP filtering and forwarding plane, without the Giant lock, as well as "process to completion" in the interrupt handler.

    Work continues to improve the maturity and completeness of the locking (and performance) of the network stack for 5.3. The network stack locking development branch has been updated cothe latest CVS HEAD, tracking a variety of FreeBSD changes, including tracking and driving changes in the interface and device cloning APIs, push-down and fixes to locking in the Berkeley Packet Filter, consistency improvements in allocation flags for network objects, diagnosis of excessive acquisition of Giant in various system callouts and timeouts, removal of Giant from several system callouts, "const"-ification of a number of global variables in the network stack (IPv4, IPv6, elsewhere) as part of ananalysis of locking requirements, fine-grain locking of a number of pseudo-interfaces (disc, loopback, faith, stf, gif, tap, tun), IP encapsulation and tunneling, initial review and locking of parts of PPP and SLIP, experimentation with PCB assertions on IPv6, additional socket locking assertions, graphing of the FreeBSD sockets layer to support locking analysis, merging of theMT_TAG to m_tag conversion to improve the ability to queue packets, moving of the debug.mpsafenet tunable to controlling Giant over the forwarding plane to Giant over the entire stack("dual-mode" to support non-MPSAFE protocols), adaption of existing network lock assertions to also assert Giant when running non-MPSAFE, analysis of high cost of select() locking, improved locking and synchronization annotations, TCP callouts run MPSAFE, logtimeout() runs MPSAFE, uma_timeout() runs MPSAFE, callout sampling instrumentation, loadav() runs MPSAFE, AppleTalk locking begun: AARP locked down and DDP analysis, rawcb list locked, locking analysis of mrouter and IP ID code, IGMP locked, IPv6 analysis begun, IPX/SPX analysis begun, PPP timeouts converted to callouts, Netgraph analysis begun. Many of these changes have not yet been merged to the main FreeBSDtree, but this is a work in progress.

    In related work on Pipe IPC (not quite network stack locking), substantial time was invested in diagnosing an increase in the cost of pipe allocation since FreeBSD 4.x, as well as coalescing the several allocations needed to create a pipe, as well as moving to slab allocation so as to amortize the cost of pipe initialization. Future work here will include caching the VM structures supporting pipe buffers.

    Recent contributors include Robert Watson, Sam Leffler, MaxLaier, Maurycy Pawlowski-Wieronski, Brooks Davis, and many others who are omitted here only by accident.

    diff --git a/en/news/status/report-august-2001.xml b/en/news/status/report-august-2001.xml index 2fca9db81d..bd3b02e072 100644 --- a/en/news/status/report-august-2001.xml +++ b/en/news/status/report-august-2001.xml @@ -1,1519 +1,1519 @@ - + August 2001 - $FreeBSD: www/en/news/status/report-august-2001.xml,v 1.4 2001/09/18 19:39:41 chris Exp $ + $FreeBSD: www/en/news/status/report-august-2001.xml,v 1.5 2003/04/13 16:31:52 hrs Exp $
    Introduction

    The FreeBSD Project made substantial progress in the month of August, 2001, both on continuing the development of the RELENG_4 line (4.x-STABLE and 4.x-RELEASE), and on 5.0-CURRENT, the main development branch. During this month, the decision was made to push the release of 5.0-CURRENT back so that KSE (support for fine-grained user threads) could be completed in time for the release, rather than postponing that support for 6.0. As such, the lifespan of the RELENG_4 line will be extended, with new features continuing to be backported to that branch. 4.4-RELEASE went into final beta during this month, and will also be available shortly.

    This month's edition of the status report has been written with the assistance of Nik Clayton and Chris Costello.

    Future submissions

    For next month, the submission procedures remain the same: reports should be between one and two paragraphs long, sent by e-mail, and in a format approximately that of this month's submissions (Project, Contact, URL, and text). Reminders will be mailed to the hackers@FreeBSD.org and developers@FreeBSD.org mailing lists at least a week before the deadline; complete submission instructions may be found in those reminders.

    -- Robert Watson

    Fibre Channel Support Matthew Jacob mjacob@FreeBSD.org

    2 Gigabit support was integrated on 8/31/2001 (QLogic 2300/2312 cards). Because of the author's shrinking time commitment for FreeBSD, the previously planned "next step" which would have been more complete new CAM Transport integration is now probably just the addition of an FC-IP adjunct (as this can benefit many platforms simultaneously).

    SCSI Tape Support Matthew Jacob mjacob@FreeBSD.org

    A major update to error handling was done on 8/28/2001 which should correct most of the EOM detection problems that have been around for a while. There are several things to fix. The principle thing to fix next is the establishment of a loader(8) mediated device quirks method.

    CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs - gibbs@freebsd.org + gibbs@FreeBSD.org Kenneth Merry - ken@freebsd.org + ken@FreeBSD.org

    No change since last status. Some discussion amongst all of us occurred, but lack of time and commitment to FreeBSD has meant little has actually been committed to the tree. SMPng work will be left to those who seem to have a notion about what needs to be done.

    Intel Gigabit Ethernet Matthew Jacob mjacob@FreeBSD.org

    No new status to report. This driver will be worked on again soon and cleaned up to work better.

    KSE Julian Elischer julian@elischer.org Peter Wemm peter@FreeBSD.org Matt Dillon dillon@FreeBSD.org

    Work in adding supporting infrastructure to the kernel for KSE threading support has reached "milestone 2".

    Milestone 2 is where the kernel source consistently refers to its resources in terms of per-thread and per-process resources, in the way that it will need to when there are > 1 threads per process, but the LOGICAL changes to such things as the scheduler, and fork and exit, have not yet been made to allow more than one thread to be created. (nor have new threading syscalls been added yet). This is an important milestone as it represents the last point where the kernel has only "mechanical" changes. To go further we must start adding new algorithms and functions.

    The kernel for milestone 2 is reliable and has no noticeable performance degradations when compared to a matching -current kernel. (the differences are less than the margin of error, so that sometimes the new kernel actually fractionally beats the unaltered kernel).

    We hope that by the time this is published, the KSE patches will have been committed. The Major effect for most developers will be only that the device driver interface requires a 'thread' pointer instead of a Proc pointer in the open, close and ioctl entrypoints.

    I'm sure there will be small teething problems but we are not expecting great problems at the commit.

    FreeBSD core-secretary Alan Clegg - abc@freebsd.org + abc@FreeBSD.org - core-secretary@freebsd.org + core-secretary@FreeBSD.org

    The position of Core Secretary was filled by Alan Clegg - <abc@freebsd.org> The first core-secretary report should be + <abc@FreeBSD.org> The first core-secretary report should be available the second week in September and will cover the issues discussed by core during August 2001.

    FreeBSD PAM Mark Murray markm@FreeBSD.org

    Development is continuing; pam_unix has gained the ability to change passwords, login(1) has had PAM made compulsory (and is going to have more PAM-capable features handed over to PAM).

    Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

    The ATM stack has been tested with a number of FreeBSD machines and a Marconi ATM switch and seems to be quite stable running CLIP. Multi port support for the native ATM API has been implemented but needs some testing.

    PRFW - hooks for the FreeBSD kernel Evan Sarmiento ems@open-root.org

    PRFW is a set of hooks for the FreeBSD kernel. It allows users to insert code into system calls, for such purposes as creating extended security features. Last week, PRFW reached 0.1.0, with many bugfixes and cleaning. I urge anyone who is interested to please visit the site, join the mailing list. Also take a peek at lsm.immunix.org, the Linux hooks. It will be a good contrast.

    CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

    Work is still progressing to make all of the perl scripts run using perl's 'strict' mode, and to migrate all FreeBSD specific options into the configuration file (CVSROOT/cfg.pm). I'll be looking for help soon to write a guide on how to make use of these scripts for use in your own repository. Anyone interested in helping should contact me at the above email address.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    The software has been committed to -current and seems functional. Outstanding issues include dealing with IPV6CP events (linkup & linkdown scripts) and allocating site-local and global addresses (currently, ``iface add'' is the only way to actually use the link).

    Porting ppp to hurd & linux Brian Somers brian@freebsd-services.com

    Status is unchanged since last month. Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed. Many conflicts are expected after the commit of IPv6 support in ppp.

    pppoed Brian Somers brian@freebsd-services.com

    Making pppoed function in a production environment. All known problems have been fixed and committed.

    pppoa Brian Somers brian@freebsd-services.com

    I looked at bringing PPPoA into the base system, but could not because of an overly restrictive distribution license on the Alcatel Speedtouch modem firmware. It has been committed as a port instead and is running live at a FreeBSD Services client site.

    OLDCARD improvements Warner Losh - imp@freebsd.org + imp@FreeBSD.org

    The OLDCARD improvements have been completed, except for a few edge cases for older laptops with CL-PD6729/30 chips and some pci bios issues. Some minor work will continue, but after 4.4R is released, only a few remaining bugs will be fixed before the author moves on to greener fields of NEWCARD development.

    jpman project Kazuo Horikawa horikawa@psinet.com man-jp@jp.FreeBSD.org

    Targeting 4.4-RELEASE, one team has been translating newly MFC'ed section [125678] manpages. The other team has been updating section 3 since May and one third (1/3) is finished. The port ja-groff is updated to be groff-1.17.2 based, and now it has the same functionality as base system does. The port ja-man is updated to have the search capability under an architecture subdirectory, as base system does. The doc/ja_JP.eucJP/man hierarchy update (adding architecture subdirectories) is planned after 4.4-RELEASE.

    ARM port Stephane Potvin sepotvin@videotron.ca

    Basic footbridge support is now functional and the kernel is now able to probe the pci bus. Access primitives for the bus are still missing so I can't attach any drivers yet.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    The syncache implementation is completed, and currently under testing and review. The code should be committed to -current in the near future, and a patchset for -stable made available.

    Compressed TCP state Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    State information for TCP connections is primarily kept in the TCP/IP control blocks in the kernel. Not all of the TCP states make use of the entire structure, and significant memory savings can be had by using a cut-down version of the state in some cases. The first phase of this project will address connections that are in the TIME_WAIT state by moving them into a smaller structure.

    This project has completed the initial research and rough design phases, with actual code development starting immediately.

    Network SMP locking Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    For 5.0, the goal is for the network stack to run without the Giant lock. Initial development in this area may focus on partitioning the code and data structures into distinct areas of responsibilities. A first pass of locking may involve using a several smaller mini-giant code locks in order to reduce the problem to a manageable size.

    Progress for this month includes the creation of a perforce repository to officially track the locking changes, and the initial submission of locks for the &ifnet list. Some code cleanup has also been done to the main tree in order to better support future locking additions.

    Network device nodes Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Currently, all network devices (fxp0, lo0, etc) exist in their own namespace, and are accessed through a socket interface. This project creates device nodes in /dev for network devices, and allows control and access in that fashion.

    This is experimental work, and suggestions for APIs and functionality are strongly encouraged and welcomed. In is not clear whether it will be possible (or desirable) to provide the exact same set of operations that can be done through the socket interface.

    Benefits of approach include the fact that a kqueue filter can be attached to a network device for monitoring purposes. Initial code exists to send a kq event whenever the network link status changes. Other benefits may include better access control by using filesystem ACLs to control access to the device.

    RELNOTESng Bruce Mah bmah@FreeBSD.org - +

    RELNOTESng, the DocBook-ified set of release documentation files, has been merged to the RELENG_4 branch. 4.4-RELEASE will be the first release of FreeBSD with the new-style release notes, hardware list, etc. Some of these documents are being translated by the Japanese and Russian translation teams.

    Snapshots of RELNOTESng for CURRENT and 4-STABLE in HTML, text, and PDF are available at the above URL and are updated irregularly but frequently. Dima Dorfman <dd@FreeBSD.org> and Nik Clayton <nik@FreeBSD.org> have been working to have automatically-generated snapshots on the main FreeBSD web site.

    On my TODO list: 1) Resynchronize the FreeBSD installation document with the installation chapter in the Handbook. 2) Update the hardware lists (with particular emphasis on PCCARD and USB devices). 3) Update the infrastructure to allow the architecture-dependent parts of RELNOTESng to scale to more hardware platforms.

    FreeBSD/sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org Thomas Moestl - tmm@freebsd.org + tmm@FreeBSD.org Robert Drehmel - robert@freebsd.org + robert@FreeBSD.org

    Sparc64 development is still continuing rapidly and we're making some excellent progress. Of note, some problems with the way the pmap module implements copy-on-write mappings have been fixed and fork() now works as expected, support for signals has been added, and the port has been updated for KSE in the perforce repository. Thomas Moestl has begun work on pci bus support, and a basic nexus bus for sparc64 has been written. The driver for the Sun `Psycho' and `Sabre' UPA-to-PCI bridges and associated code has been ported from NetBSD (the Sabre is the on-chip version found in the UltraSparc IIi and IIe). PCI configuration, I/O and memory space accesses do already work, as well as interrupt assignment and delivery for devices attached directly to the bridge, and the first PCI device drivers can attach and seem to work mostly. Interrupt routing and busdma support still need much work.

    Documentation Project Nik Clayton - nik@freebsd.org + nik@FreeBSD.org Documentation Project doc@FreeBSD.org

    The Handbook has been the main focus of activity this month. Due to go to the printers on the 15th a vast amount of new content has been submitted and committed. This includes a complete rewrite of the "Installing FreeBSD", which massively expands the amount of information available to people new to FreeBSD. It even includes screenshots.

    - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install.html + href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html"> + http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html

    Comments, and contributions are, of course, welcome.

    IP Multicast Routing support Bill Fenner fenner@FreeBSD.org

    FreeBSD's IP Multicast Routing support was recently updated in several ways. One big change is that it's now able to be loaded as a KLD instead of statically compiled into the kernel; this is especially useful for experimentation or updating of an existing system. It also now coexists nicely with the kernel IP encapsulation infrastructure, so that multicast tunnels can better coexist with MobileIP, certain IPSec tunnels and generic IPv4-in-IPv4 tunnels.

    Mbuf SMPng allocator Bosko Milekic bmilekic@FreeBSD.org - +

    The allocator appears to be stable. Mbtypes statistics have been re-activated thanks, in part, to Jiangyi Liu <jyliu@163.net> although the diff has not yet been committed (I'm just in the process of cleaning it up a little and final testing). More work to come: cleanups, follow TODO from the original commit, and perhaps an eventual generalization of the allocator for various network-related allocations (in a more distant future).

    RAIDframe for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - +

    After two months of little progress, RAIDframe work is gearing up again. The port to -stable has some known bugs but is fairly stable. The port to -current was recently completed and patches will be released soon. RAIDframe is a multi-platform RAID subsystem designed at CMU. This is a port of the NetBSD version by Greg Oster.

    aac driver Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - +

    The aac driver has been given a lot of attention lately and is now nearly feature complete. Changes include crashdump support, correct handling of controller initiated commands, and more complete management interface support. The Linux RAID management tool available from Dell and HP now fully works; a FreeBSD native version of the tool is also in the works. These changes have been checked into -current, and will appear in -stable once 4.4 has been released.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    We are making some progress, we are now down to 2170 open PR's down from an all time high of 3270 just 3 months ago. The aim is still to get rid of all the dead-wood in the PR database so only relevant PRs in the database. A big thanks from me to the people who have made this happen!

    network device cloning Brooks Davis brooks@FreeBSD.org

    Support for cloning vlan devices via ifconfig has been committed to -current and will be MFC'd after further testing. Additionally, Maksim Yevmenkin submitted code to allow cloning of tap and vmnet devices on devfs systems. Code for faith and stf should be committed shortly.

    ia64 Port Doug Rabson dfr@FreeBSD.org

    Current status is that the ia64 kernel builds and runs in a simulator environment up to single user mode and has been tested lightly in that environment. My current focus is on completing the ia64 loader so that I can start to get kernels working on the real hardware. The loader is coming along well and I expect to be able to load kernels (but not necessary execute them) soon.

    libh Project Alexander Langer alex@FreeBSD.org Nathan Ahistrom nra@FreeBSd.org

    I have access to the libh CVS repo again and am testing a new, OBJDIR capable build structure at the moment. Done that, I'm going to continue testing the package library and implement the missing functionality. Currently, import of libh into the base system is under discussion (arch mailinglist). Now that 5.0-RELEASE has been shifted, I want 5.0 ship with a libh installer and package system. We can really need people who are good in C++, are able to understand what the current implementation does and also feel that working on libh is fun and thus are willing to help.

    GNOME Desktop for FreeBSD Maxim Sobolev sobomax@FreeBSD.org FreeBSD GNOME Team gnome@FreeBSD.org

    Getting GNOME Fifth-Toe metaport ready for 4.4-RELEASE was the main focus of activity this month. In the process many components were updated, many bugs were tracked down and solved, which allowed to make this 97-component meta-package building and working properly.

    Next month the project will be focused on organizing work of the FreeBSD GNOME Team as well as on attempts to increase amount of people participating in the team (anybody who is willing to participate is welcome to drop a note to gnome@FreeBSD with a short explanation of how he/she could help).

    fbsd-nvdriver Erik Greenwald erik@floatingmind.com Joel Willson siigorny@linuxsveeden.borkborkbork

    NVIDIA Corporation releases Linux drivers by using a combination of binary object files and source (under a constrictive license). The FreeBSD NVIDIA driver project aimed to completely replace the source component of the driver using code targeting FreeBSD 4.3 and released under the BSD license. The binary module provided is supposedly the same module used on Windows, BeOS, and OS/2, so it should be portable between different i80x86 based OS's.

    The project is currently on indefinite hold. Our contact at NVIDIA seemed enthusiastic about the project, and was fairly quick about returning email, but when we discovered issues that prevented porting without changes to the binary component or error codes we needed deciphered, Nick (the contact) said he'd look into it and never got back. The first major problem was the ioctl interface, the NVIDIA driver passes a pointer and depends on the kernel side to copyout the right amount, where FreeBSD expect the parameters to be correct and the copyout is performed by the subsystem. This was worked around using Dave Rufinos "ioctl tunnel" idea. After that, we found that X refused to load and traced it down to an ioctl defined in the binary component erroring. We cannot tell what that ioctl is, were told that we could not sign an NDA for source to that component, and have been waiting a month for Nick to "look into it". Therefore progress is impossible (without breaking the license) and we believe that the flaws make the driver unportable to any *nix other than Linux.

    FreeBSD Release Engineering FreeBSD Release Engineer Team re@FreeBSD.org

    The FreeBSD release engineering process for FreeBSD 4.4 started to ramp up around August 1st when the "code slush" took affect. During this time all commits to the RELENG_4 branch were reviewed by re@FreeBSD.org (over 250 code snippets had to be reviewed). After the first release candidate on August 15th, all submissions were scrutinized under a more strict potential risk vs benefit curve. The best way to help get involved with the release engineering process is to simply follow the low volume freebsd-qa mailing list, help out with the neverending supply of PRs related to our installation tools (sysinstall), or to work on a possible next-generation replacement for our installation technology, such as the libh or OpenPackages projects.

    Many companies donated equipment, network access, or paychecks to finance these activities. Including Compaq, Yahoo!, Wind River Systems, and many more.

    Improved TCP Initial Sequence Numbers Mike Silbersack silby@silby.com

    In mid March, 2001, Tim Newsham of Guardent identified an attack possible against the initial sequence number generation scheme of FreeBSD (and other OSes.) In order to guard against this threat, a randomized sequence number generation scheme was ported over from OpenBSD and included in 4.3-release. Unfortunately, non-monotonic generation was found to cause major problems with applications which initiate continuous, rapid connections to a single host.

    In order to restore proper operation under such circumstances while still providing strong resistance against sequence number prediction, FreeBSD 4.4 uses the algorithm specified in RFC 1948. This algorithm hashes together host and port information with a piece of secret data to generate a unique sequence number space for each connection. As a result, outgoing initial sequence numbers are again monotonic, but also unguessable by an attacker.

    LOMAC Brian Feldman green@FreeBSD.org

    The port of LOMAC to FreeBSD is progressing well, and already has a very high level of stability (no known outstanding bugs!). Aspects which have already been implemented include a stacking filesystem overlay with fully-functional access controls (for files and directories) based on path names, access controls for sending signals, and file-backed-memory revocation for processes.

    SMPng John Baldwin jhb@FreeBSD.org Peter Wemm wemm@FreeBSD.org

    Updates to things from last month:

    • The ast() fixes were committed last month.
    • The work on the preemptive kernel is stalled for the time being. It is still unstable on Alpha and SMP systems.

    New stuff since last month:

    • sx locks now support upgrades and downgrades.
    • Witness now supports lock upgrades and downgrades.
    • Jason Evans has committed a semaphore implementation.
    • Matt Dillon has pushed Giant down into all of the syscalls.
    • John Baldwin has been working on proc locking in a p4 'jhb_proc' branch.
    • John is also currently working on making the ktrace code use a work thread to asynchronously write trace data out to the trace file. This will make ktrace safe almost completely MP safe with the exception that a few ktrace events need Giant in order to call malloc(9) and that ktrgenio() is still synchronous. Specifically, however, ktrpsig(), ktrsysret(), and ktrcsw() no longer need Giant.
    • Jonathan Lemon has started work on locking the network stack in a p4 'netlock' branch.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - +

    Most of the work this month has focused on development of the native JDK 1.3.1 patchset. The 3rd patchset is out and has been accompanied with the creation of a FreeBSD "port". This has allowed early adopters much easier access to the code and naturally resulted in a number of bugs being found. Development work has mostly focused on fixing these problems and the project is now set to release fourth patchset over the weekend, which should see the JDK in a reasonably usable state. One of the big challenges left is producing a working HotSpot JVM, which looks like it will require some heavy hacking.

    We also welcome OpenBSD's Heikki Korpela to the porting team :)

    floppy driver overhaul Joerg Wunsch j@uriah.heep.sax.de

    As part of some ongoing development activity, the floppy driver (fdc(4)) enjoyed some overhaul in the past which is part of an ongoing process. Automatic density selection will come next, something i meant to implement for years now. As part of that, the entire density selection stuff has been rewritten. 2.88 MB floppies are on the wishlist as well, but I need a working 2.88 drive before attempting to implement that.

    sppp(4) merge Joerg Wunsch j@uriah.heep.sax.de

    sppp(4) should be merged with the ISDN4BSD offspring variant. This will merge some features and bugfixes from the i4b branch (like VJ compression), and eventually end up in a single sppp(4) in the tree. While being at that, incorporating many changes and bugfixes from NetBSD is considered as well.

    KAME Munechika Sumikawa sumikawa@FreeBSD.org

    The KAME project (http://www.kame.net/) has merged its IPv6 and IPsec implementation as of July 2001 to FreeBSD CURRENT and STABLE, in cooperation with some contributors of the project. The latest code includes a number of bug fixes, has been fully tested in FreeBSD STABLE, and will appear in FreeBSD 4.4 RELEASE. Thus, the new RELEASE version will be quite stable in terms of IPv6 and IPsec.

    The project has assigned a talented guy to be responsible for merge from KAME to FreeBSD, so future merge efforts will be smoother.

    TrustedBSD Robert Watson rwatson@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

    The TrustedBSD project continues to move ahead, with progress made in the ACL, Capability, and MAC implementations. In addition, support from DARPA is permitting new work to improve the extended attribute code, improve security abstractions, and work on security documentation. Due to the push-back of the FreeBSD 5.0 release, it should now be possible to include a complete MAC implementation in that release. Specific status reports appear for components where substantial progress is being made.

    TrustedBSD Capabilities Robert Watson rwatson@FreeBSD.org Thomas Moestl tmm@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

    Capabilities support is currently being committed to the base FreeBSD tree--userland libraries are now fully committed, and kernel infrastructure is being integrated.

    BSDCon Europe Paul Richards paul@freebsd-services.com

    Planning for BSDCon Europe is going well. We're still accepting proposals for talks but the schedule is starting to fill up so we may not be for much longer.

    An update of the site that includes accommodation information, a preliminary schedule, a list of speakers and an online payment page will be launched on Wednesday 19 September.

    The fee will be £150 for individuals and £250 for corporations. The individual pricing is valid only until the end of September, the price will rise to £200 for October and late registrations in November will be £250.

    The updated website will include a list of sponsorship options, we're still looking for more sponsorship.

    diff --git a/en/news/status/report-dec-2001-jan-2002.xml b/en/news/status/report-dec-2001-jan-2002.xml index 528066c904..5985f9c1b7 100644 --- a/en/news/status/report-dec-2001-jan-2002.xml +++ b/en/news/status/report-dec-2001-jan-2002.xml @@ -1,716 +1,716 @@ - + December 2001 - January 2002 - $FreeBSD: www/en/news/status/report-dec-2001-jan-2002.xml,v 1.4 2002/03/09 07:06:48 dd Exp $ + $FreeBSD: www/en/news/status/report-dec-2001-jan-2002.xml,v 1.5 2003/04/13 16:31:52 hrs Exp $
    Introduction

    This bi-monthly report covers development activities on the FreeBSD Project for December 2001 and January 2002. A variety of accomplishments have been made over the last couple of months, including strong progress relating to the KSE project, which brings Scheduler Activations to the FreeBSD kernel, as well as less visible infrastructure projects such as improvements to the mount interface, PAM integration work, and translation efforts. Shortly following the deadline for this status report, the BSD Conference and FreeBSD Developer Summit were held, and will be covered in the next bi-monthly report at the end of March. Plans are already under way for the USENIX Annual Technical Conference in Monterey, CA, later this year, and all and sundry are encouraged to attend to get further insight in FreeBSD development.

    Robert Watson

    USB stack maintenance Josef Karthauser joe@FreeBSD.org

    I've been working to integrate recent improvements in the NetBSD usb stack to FreeBSD -current. Both NetBSD and OpenBSD currently share the same source, as FreeBSD did too at once point before it diverged. The goal is to get back to that state, but there are many improvements on both sides that need to be merged before this is complete.

    I'm currently looking for someone to help maintain usb in -stable. Please let me know if you're interested.

    TrustedBSD ACLs Chris Faulhaber jedgar@FreeBSD.org

    Patches for cp(1), ls(1), and mv(1) to bring in POSIX.1e-compliant Access Control List support have been updated to patch against builds of -CURRENT. Other system utilities are currently being evaluated for ACL support including install(1) (patch available) and mtree(8). Work is in progress to verify the native getfacl(1), setfacl(1), and other utilities build and work correctly on other ACL-enabled systems (e.g. Linux w/ACL patches) and to help verify POSIX-compliance of the continuing TrustedBSD work along with other systems. Finally, experimental Perl and PHP modules are available allowing limited access to native ACLs for languages other than C.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    The project is making progress. The goal is to design and implement Host Controller Interface (HCI) and Link Layer Control and Adaptation Protocol (L2CAP) layers using Netgraph framework. More distant goal is to write support for Service Discovery Protocol (SDP) and RFCOMM protocol (Serial port emulation over Bluetooth link) . All information was obtained from Bluetooth Specification Book v1.1.

    Project status: In progress. 1) Design: mostly complete, there are some minor issues to be resolved. 2) Implementation: Kernel - HCI and L2CAP Netgraph nodes have been implemented; 3) User space (API, library, utilities) - in progress. 4) Testing: In progress. I do not have real Bluetooth hardware at this point, so i wrote some tools that allow me to test the code. Some of them will be used as foundation for future user space utilities.

    Issues: 1) Bluetooth hardware; I do not have real Bluetooth hardware, so if people can donate hardware/specs it would be great. I promise to write all required drivers and make them available. I also promise to return hardware/specs on first request. 2) Project name; I would like to see the name that reflects the following: it is a Bluetooth stack, implementation is for FreeBSD and implementation is based on Netgraph framework

    "GEOM" - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper + Old concept paper here.

    This project is now finally underway, thanks to DARPA and NAI getting a sponsorship lined up. The infrastructure code and data structures are currently taking form inside a userland simulation harness. Basic MBR and BSD methods have been written and device attach/taste/dettach algorithms been implemented and validated.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage SNAPSHOTs Notes (in Japanese)

    I've update OS of buildboxes to the latest FreeBSD 5-current and 4-stable. Everything goes fine. From January 2002, I've started a webzine, SNAPSHOTS Notes (only Japanese version is available). SNAPSHOTs Notes pickups tips and information especially for the people living with FreeBSD 5-current/4-stable. Article or idea for SNAPSHOTs notes are always welcome (you don't need to write in Japanese :-).

    TrustedBSD Audit trustedbsd-discuss trustedbsd-discuss@TrustedBSD.org TrustedBSD project website

    Robert Watson created the TrustedBSD audit perforce tree, which is a branch from the TrustedBSD base tree, in order to start pushing development efforts towards using a revision control system. Andrew Reiter started to merge in some framework related code for generation of audit records, enqueueing writes, and handling data writing. There is a great deal of work to be done with updates and discussion on the trustedbsd-discuss@TrustedBSD.org mailing list.

    KSE Status Report Julian Elischer julian@FreeBSD.org - Links from + Links from here. - Links from + Links from here.

    The KSE project (an attempt to support scalable thread in FreeBSD using kernel support), has reached What I call "milestone 3". At this milestone it is possible to run a multithreaded program on a single CPU but with full concurrency of threads on that CPU. In other words the kernel supports the fact that one thread can block by allowing another thread to run in its place. A test program that demonstrates this is available at the above website.

    Milestone 4 will be to allow threads from the same program to run on multiple CPUs but may require more input from the SMPng project. I am at the moment (Feb 6) getting ready to commit a first set of changes for milestone 3, that have no real effect but serve to drastically reduce the complexity of the remaining diff so that others can read it more easily. After changes to libkvm to support this diff have been added it should be possible to run 'ps' and look at multiple threads in a treaded process. I will be demonstrating KSE/M3 at BSDcon.

    Netgraph ATM Harti Brandt brandt@fokus.gmd.de

    The Netgraph ATM package has been split into a number of smaller packages: bsnmp is a general-purpose SNMP daemon with support for loadable modules. Two modules come with it: one implementing the standard network-interface and IP related parts of MIB-2 and one for interfacing other modules to the NetGraph sub-system. ngatmbase contains the drivers for the ATM hardware, the ng_atm netgraph type and a few test tools. This package allows one to use ATM PVCs. It should be possible, for example, to do PPP over ATM with this package. Both bsnmp and ngatmbase are available in version 1.0 under the link above. Two other modules will be released in February: ngatmsig containing the UNI-4.0 signalling stack as netgraph nodes and ngatmip containing CLIP and LANE-2.0.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    A significant amount of progress was made in December and January, particularly in the area of utility conformance. Several utilities were updated to conform to SUSv3, they include: at(1), mailx(1), pwd(1), split(1), and uudecode(1). Several patches have been submitted to increase conformance in other utilities, they include: fold(1), patch(1), m4(1), nice(1), pr(1), renice(1), wc(1), and xargs(1). These are in the process of being reviewed and committed. Two new utilities have been written, specifically pathchk(1) and tabs(1). These are also being reviewed and will be committed shortly.

    A patch which implements most of the requirements of scanf(3) is being reviewed and is expected to be committed shortly. This will allow us to MFC a number of new functions and headers. Additionally, work has started on wide string and complex number support.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project (in Japanese)

    For 4.5-RELEASE, port ja-man-doc-4.5.tgz is in sync with base system except for OpenSSH pages (OpenSSH 2.3 based instead of 2.9) and perl5 pages (jpman project do not maintain). Section 3 updating has 55% finished.

    OKAZAKI Tetsurou has incorporated changes on base system's groff into port japanese/groff. MORI Kouji has fixed two bugs of port japanese/man.

    KAME KAME core team core@kame.net KAME Users Mailing List snap-users@kame.net

    The KAME project is currently focusing on the scoped addressing architecture, the advanced API implementation, NATPT and the mobile ipv6 implementation. Though these stuffs are not stable enough to be merge into the FreeBSD tree, you can get and try them from the above URL.

    FreeBSD in Bulgarian Peter Pentchev roam@FreeBSD.org

    The FreeBSD in Bulgarian project aims to bring a more comfortable working environment to Bulgarian users of the FreeBSD OS. This includes, but is not limited to, font, keymap and locale support, translation of the FreeBSD documentation into Bulgarian, local user groups and various forms of on-line help channels and discussion forums to help Bulgarians adopt and use FreeBSD.

    A guide for using FreeBSD with Bulgarian settings has been put up on the project's website. The CVS repository will be made public shortly, linked to on the URL's above.

    An independent project for making FreeBSD easier to use by Bulgarians has appeared, . It also hosts a mailing list for discussions of FreeBSD in Bulgarian, stable@FreeBSD-bg.org. For more information about the mailing list, send an e-mail with "help" in the message body to majordomo@FreeBSD-bg.org.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - +

    The past two months have been an exciting time in the FreeBSD Java Project with the signing of a license between the FreeBSD Foundation and Sun allowing us access to updated JDK source code and the Java Compatibility Kit (JCK). This license will also allow the project to release a binary version of both the JDK and JRE once JCK testing is complete. Work on this testing is under way with the project hopeful of being able to make a binary release in the not too distant future.

    In lieu of the binary release which was hoped for with FreeBSD 4.5 the project will release an updated source patchset this weekend. This patchset will feature further work on the FreeBSD "native" threads subsystem from Bill Huey. Also, thanks to hard work by Joe Kelsey and Fuyuhiko Maruyama, the patchset will for the first time feature a working Java browser plugin!

    Revised {mode,log}page support for camcontrol Kelly Yancey kbyanc@FreeBSD.org

    Extending camcontrol's page definition file format to include both modepage and logpage definitions; adding support to camcontrol to query and reset log page parameters. Consideration is being made to possibly include support for diagnostic and vital product data pages, but that is outside the current project scope. New page definition file format includes capability to conditionally include page definitions based on SCSI INQUIRY results allowing vendor-specific pages to be described also. Approximately 90% complete.

    Pluggable Authentication Modules Mark Murray markm@FreeBSD.org Dag-Erling Smørgrav des@FreeBSD.org OpenPAM

    OpenPAM, a new library intended to replace Linux-PAM in FreeBSD, has been written and is undergoing integration testing. It is available for download from the URL listed above.

    In addition to this, a couple of new modules have been written (pam_lastlog(8), pam_login_access(8)), and the pam_unix(8) module has been extended to perform most of the tasks normally performed by login(1), which is now fully PAMified.

    The PAM FDP article has been put on hold until OpenPAM replaces Linux-PAM in CVS, to avoid wasting effort on soon-to-be obsolete documentation.

    TrustedBSD MAC Implementation Robert Watson rwatson@FreeBSD.org TrustedBSD Project Web Site

    Substantial progress has been made towards a working MAC implementation. The focus over the last two months has been moving from a hard-coded series of MAC policies to a more flexible implementation. A pluggable policy framework has been created (and is still under development), supporting Biba, MLS, TE, a "BSD Extended" model, and a sample mac_none module. Some modules must be compiled in or loaded prior to boot; others may be introduced at run-time. Support for networking has improved, with improved handling of IP fragmentation in IPv4, support for various pseudo-interfaces such as if_tun and if_tap, improved integration into userland, NFS-related fixes, moving the VFS enforcement out of individual filesystems, support for a 'multilevel' mount flag, support for explicit labeling in procfs and devfs, addition of an 'extattrctl lsattr' argument to list EAs on a filesystem, support for label ranges in the Biba and MAC policies, and much more.

    Targets for the next two months include more universal enforcement of VFS-related calls, improved support for alternative ABIs, improved flexibility of in-kernel subject and object labels, support for IPv6 and IPsec, and improved support for NFS serving.

    Development continues in the FreeBSD Perforce repository, which may be accessed using cvsup.

    New mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@sneakerz.org

    Now that the patch has been mailed to the - freebsd-arch@freebsd.org mailing list, and that there were no + freebsd-arch@FreeBSD.org mailing list, and that there were no objections, the commit will happen soon. Poul is currently testing it in his own tree. After it has been committed, it will be time to modify the filesystems in the tree to use VFS_NMOUNT instead of VFS_MOUNT. Mount(8) will also need some modifications. Some new manpages -- nmount(2) and kernel_vmount(9) -- are being created in the meantime.

    SMPng smp@FreeBSD.org smp@FreeBSD.org SMPng project website

    Alfred Perlstein committed file descriptor locking code which was definitely a good push towards trying to lock down some important pieces of global data. Peter Wemm has made progress on pmap cleanups for x86 SMP TLB shootdowns. Matt Dillon and John Baldwin have made progress on getting patches done for moving accesses to ucred's out from under Giant's protection. John Baldwin has also made some commits in order to get the alpha port's SMP working. Matt Dillon has plans for hunting down fileops locking issues in order to continue his previous Giant pushdown work.

    diff --git a/en/news/status/report-jan-2003-feb-2003.xml b/en/news/status/report-jan-2003-feb-2003.xml index 6fd027cb12..a21d51f12e 100644 --- a/en/news/status/report-jan-2003-feb-2003.xml +++ b/en/news/status/report-jan-2003-feb-2003.xml @@ -1,700 +1,700 @@ - + January-February 2003
    Introduction:

    Another busy two months have passed in the FreeBSD project. With 5.0 released, attention is focusing on making it faster via more fine-grained locking, adding more high-end features like large memory (PAE) support for i386, and further progress on many other projects. FreeBSD 5.1 is expected to ship in late May or early June, with 5.2 following at the end of summer. A roadmap for the push to 5-STABLE is available at - http://www.freebsd.org/doc/en/articles/5-roadmap. Although + href="http://www.FreeBSD.org/doc/en/articles/5-roadmap"> + http://www.FreeBSD.org/doc/en/articles/5-roadmap. Although the 5.x series isn't expected to fully stabilize until the 5.2 release, 5.1 promises to be an exciting release and a significant improvement over 5.0 in terms of speed and stability.

    Not to be forgotten, FreeBSD 4.8, the latest in the 4-STABLE series, is nearing release. Lots of last minute work is going into to it to deliver features like XFree86 4.3.0, Intel HyperThreading(tm) support, and of course many more bug fixes. Don't forget to support the FreeBSD vendors and developers by buying a copy of the CD set when it comes out!.

    Thanks,

    Scott Long, Robert Watson

    FreeBSD/MIPS Status Report Juli Mallett jmallett@FreeBSD.org FreeBSD/MIPS project page. FreeBSD/MIPS platform page.

    Large portions of headers have been filled in, all have been stubbed out. Minimal functions and data elements have been stubbed out or filled in. Machinery added to support some requisite tunables for building real kernels. GCC fixed to generate correct local label prefixes making it possible to link real kernels. Work begun on providing enough to create and boot real kernels, on real hardware. Decision to only support MIPS-III and above made.

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030305.tar.gz

    This release features new in-kernel RFCOMM implementation that provides SOCK_STREAM sockets interface. This makes old user-space RFCOMM daemon obsolete. People should not use old user-space RFCOMM daemon any longer. The release features new RFCOMM PPP daemon that supports DUN and LAN profiles. Note: PPP patch (support for chat scripts in -direct mode) is required for DUN support. Look for it in the mailing list archive or contact me directly. People with Bluetooth enabled cell phones can now use them to access Internet.

    The Bluetooth sockets layer has been cleaned up. People should not see any WITNESS complaints with new code. Locking issues have been revisited and code in much better shape now, although it probably is not 100% SMP ready just yet. The code should work on SMP system anyway because sockets layer is still under Giant.

    The simple OBEX server and client (based on OpenOBEX library) is complete. OBEX File Push and OBEX File Transfer profiles work and have been tested with Sony Ericsson T68i cell phone and Bluetooth 3COM stack on Windows2K. It is now possible to send pictures, address book and calendar entries from the cell phone via Bluetooth. Minor bug in OpenOBEX library has been fixed and OPEX Put-Empty command now works.

    Due to changes in API userland tools must be in sync with the kernel. People should install new include files, recompile and reinstall all userland tools as part of upgrade. I'm sorry about that.

    FreeBSD 4.8 Release Engineering Murray Stokely re@FreeBSD.org FreeBSD 4.8 Release Schedule.

    The FreeBSD 4.8 Release Process is well underway. The RELENG_4 branch has been under code freeze since February 15, and the first release candidates were made available in early March. A testing guide has been put together and is available from http://www.FreeBSD.org/releases/4.8R/qa.html.

    Developers should coordinate with re@FreeBSD.org about any changes they would like to include in this release, and users are encouraged to try out the release candidates and help find as many bugs as possible now, before the final release is made.

    FreeBSD 4.8 represents the newest production release from the stable '4.X' branch. It does not include all of the features that were made available in the "new technology" 5.0 release in January.

    New Doceng Body Formed Murray Stokely doceng@FreeBSD.org - +

    The doceng@ team is a new body to handle some of the meta-project issues associated with the FreeBSD Documentation Project. The main responsibilities of this team are to grant approval of new doc committers, to manage the doc release process, to ensure the documentation toolchains are functional, to maintain the doc project primer, and to maintain the sanctity of the doc/ and www/ trees. The current members of this team are Nik Clayton, Ruslan Ermilov, Jun Kuriyama, Bruce A. Mah, and Murray Stokely.

    KGI/FreeBSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    The later months have been very busy on KGI. Most of the framework has been debugged for typical usage (fb, no accel). I got KII (the input interface) connected to syscons through atkbd. Opening /dev/graphic works and framebuffer resource access is permitted. Finally, the KGIM (KGI module) framework has a better building tree for board / monitor drivers and board drivers are now loading with resource allocation.

    Most important on the TODO list: 5.0-RELEASE move (I currently work with a May-2002 5.0-current). Most of debug is now done. Let's validate!

    Note that KGI project homepage has changed since the last report.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-5.0.tbz

    We have released Japanese translation of 5.0-RELEASE online manual pages on February 2nd. Most of entries which did not exist on RELENG_4 were not yet translated. I hope we can finish such entries soon.

    Disk I/O improvements Poul-Henning Kamp phk@FreeBSD.org

    We have the first disk device driver (aac) out from under Giant now, and in certain scenarios it gives improvements up to 20%. The device driver API was pruned to reflect that NO_GEOM compatibility is unnecessary, this resulted in approx 1000 lines less source code, the majority of which were removed from the device drivers. The new API for cdevsw is a lot simpler and hopefully less likely to confuse people. The ability to automatically allocate a device major number has been introduced and is already used by a handful of drivers. Checks introduced with this facility has shown that the uniqueness of manually allocated major numbers had already broken down.

    Work continues on the statistics collection API and on a unified API for manual configuration of GEOM nodes.

    Support for PAE and >4G ram on x86 Jake Burkholder jake@FreeBSD.org

    Support for PAE is mostly complete, and has been checked into the jake_pae branch. The approach that is being taken to add support for PAE is to allow the pmap module to view the page table directory as 4 pages instead of 1, and to avoid using the 3rd level structure, the page directory pointer table, as much as possible. Due to its small size, 32 bytes, the PDPT cannot be uniformly recursively mapped, and as such does not provide a regular multi level structure like the page tables used by the alpha or x86-64 architectures. What remains to be done for PAE support is to develop an API for manipulating page table entries which will allow idempotent 64 bit loads and stores to be used where necessary.

    Experimental support for >4G ram using PAE has been developed and checked into the jake_pae_test branch in Perforce. This involved adding a physical address type separate from virtual addresses, for use by the vm system and bus code which needs to use physical addresses directly. Initial testing has shown good results with device drivers that can dma to 64 bit physical addresses.

    Funding for this project is being provided by DARPA and Network Associate Laboratories, and hardware support by FreeBSD Systems.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    In the period from September 2002 through February 2003, the FreeBSD Security Team email aliases saw 1297 messages, a much smaller volume than over the summer (remember the Apache and OpenSSL worms? 4.6.1 oops I mean 4.6.2-RELEASE?).

    Also during this period: 95 items were added to the SO issue-tracking database; 39 of these involved the FreeBSD base system while the rest involved ports. 9 new Security Advisories were published, 2 of which covered issues unique to FreeBSD.

    In January, the SO published a new PGP key (ID 0xCA6CDFB2, found on the FTP site and in the Handbook). This aligned the set of those who possess the corresponding private key with the membership of the security-officer alias published on the FreeBSD Security web site. It also worked around an issue with the deprecated PGP key being found corrupted on some public key servers.

    In February, Mike Tancsa of Sentex donated two machines to the Security Officer. These have been a great help already in testing the security branches, preparing patches, and generating updated binaries. Thank you very much, Mike!

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    FreeBSD 4.8-RELEASE will continue in the tradition of 5.0-RELEASE, and include GNOME 2 as the default GNOME desktop. This means that 4.8 will ship with GNOME 2.2.

    Following on the heels of the recent GNOME 2.2 release, GNOME 2.3 snapshots are gearing up. The development schedule is available from http://www.gnome.org/start/2.3/. Ports will be made available the same way they were for the 2.1 development releases. Stay tuned to freebsd-gnome@ for more details.

    We are currently in another ports freeze in preparation for 4.8-RELEASE. Following the freeze, a new bsd.gnome.mk will be committed that effectively removes the USE_GNOMENG macro. This new version will add support for GNOME 2 as well as setup backward compatibility for ports that have not yet been converted to the new GNOME infrastructure. People interested in testing this new Mk file, can check out the ``ports'' module following the instructions at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi.

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    Work on PowerPC is progressing steadily. The system can now boot multi-user from the net and disk. ATA-DMA is being integrated with the ATAng code, and support for older G3 machines is being added.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    January and February were quiet months that saw with them the addition of some C99 math functions and macros, which include: fpclassify(), isfinite(), isgreater(), isgreaterequal(), isinf(), isless(), islessequal(), islessgreater(), isnan(), isnormal(), and signbit(). Additional C99 math library support is in the works.

    Buffer Cache lockdown Jeff Roberson jeff@FreeBSD.org

    Most of the file system buffer cache has been reviewed and protected. The vnode interlock was extended to cover some buffer flag fields so that a separate interlock was not required. The global buffer queue data structures were locked and counters were converted to atomic ops. The BUF_*LOCK functions grew an interlock argument so that buffers could be safely removed from the vnode clean and dirty lists. The lockmgr lock is now required for all access to buf fields. This was not strictly followed before because splbio provided the needed protection.

    There are a few areas of code that need to be protected and cleaned up before giant can be pushed down. Most notably the background write code is currently unsafe without giant. Also, many of the VM bits that the buffer cache relies on are not safe. This work has been done with the expectation that the VM and VFS subsystems will be giant free soon.

    ULE Scheduler Jeff Roberson jeff@FreeBSD.org

    The ULE scheduler has been committed to the 5.0-CURRENT branch. Early adopters and experimenters are welcome to try it and submit bug reports. It has shown noticeable performance improvements over the old scheduler under some workloads. There are currently problems with nice fairness but otherwise the interactive performance is very good. More work to improve the load balancing algorithm is required as well. This should be ready for use by the general FreeBSD user base in the next month or so.

    Read-ahead performance Jeff Roberson jeff@FreeBSD.org

    Some improvements have been made to the clustered read ahead code. They allow for many more outstanding IO requests when an application does sequential access. This has a larger impact on RAID systems than on single disk systems. The maximum number of file system blocks that we will read ahead is tunable via the 'vfs.read_max' sysctl. This optimization has shown a 20% improvement in simple tests.

    Status Report for Newbus lockdown Warner Losh imp@FreeBSD.org

    Locking of the non-obj parts of newbus is nearing completion. A single lock is used for the device tree. Minimal changes to subr_bus have so far been necessary to make this work, however some lock order issues remain. After this work, it will no longer be necessary to hold Giant to call device_* routines safely. kobj work is being done by others and will likely require more extensive design work to make SMP friendly.

    TCP congestion control Jeffrey Hsu hsu@FreeBSD.org

    The objective of this effort is to improve the performance, stability, and correctness of the BSD networking stack by adding support for new standards and standards track proposals while maintaining compliance with existing specifications. The upcoming 4.8 and 5.1 releases will be the first ones using the new NewReno logic. Recently, we implemented the Limited Transmit algorithm (RFC 3042) which benefits connections with small congestion windows, as happens, for example, on many short web connections. We also recently added support for larger sized starting congestion windows as described in RFC 3390. This helps short TCP connections as well as those with large round-trip delays, such as those over satellite links.

    SMP locking for network stack Jeffrey Hsu hsu@FreeBSD.org

    The list of subsystems locked up include IP, UDP, TCP, ifaddr reference counting, syncache, the ifnet list, routing radix trees, and ARP. These have already been committed into the tree. In addition, SMP locking for raw IP, divert socket processing, and Unix domain sockets have also recently been completed and tested. Work is currently being done in some of the subsystems required to make parallel networking processing SMP-safe.

    diff --git a/en/news/status/report-jan-2004-feb-2004.xml b/en/news/status/report-jan-2004-feb-2004.xml index e48dac06a3..2cb5ad26e9 100644 --- a/en/news/status/report-jan-2004-feb-2004.xml +++ b/en/news/status/report-jan-2004-feb-2004.xml @@ -1,865 +1,865 @@ - + January-February 2004
    Introduction:

    2004 started with another exciting two months for the project. FreeBSD 5.2 was released in early January and then quickly followed in February with the 5.2.1 bug-fix release. Looking forward, we are expecting a late-April release date for FreeBSD 4.10, and mid-summer date for FreeBSD 5.3. And don't forget to support the FreeBSD vendors and developers by buying a copy of the latest CD or DVD sets.

    Thanks,

    Scott Long

    Disk and device I/O Poul-Henning Kamp phk@FreeBSD.org

    In the overall area of disk and device I/O, a significant milestone was reached with the implementation of proper reference counting on dev_t. We are now able to properly allocate and free dev_t. Cloning device drivers also had the job made easier for them with the addition of the unit number management routines.

    It is not quite decided which will be the next step in the quest for a truly SMPng I/O subsystem, but a leading candidate is to implement the device-access vnode bypass to get more concurrency in the system: Instead of taking the tour through the vnodes for each i/o operation on a device we will go directly from the file descriptor layer to DEVFS/SPECFS. In addition to Giant-less disk I/O, this should enable us to pull the entire tty subsystem and the PTY driver out from under Giant and we expect that to improve the "snappiness" of the system measurably.

    The FreeBSD Dutch Documentation Project. Remko Lodder remko@elvandar.org

    The Dutch Documentation Project is a ongoing project in translating the handbook and other documentation to the dutch language. Currently there is 1 active person (me) translating the documentation. I am currently working on the handbook/basics section. But i can use some more hands, please drop me an email if you wish to help out so that the dutch translation will speed up and be ready in some time. Contact remko@elvandar.org for information.

    Weekly cvs-src summaries Mark Johnston mark@xl0.org Polish translations

    I have been producing weekly summaries of commits and the surrounding discussions as reported on the cvs-src mailing list. These summaries are posted to -current on Sunday evenings and archived on the Web. The reception has been overwhelmingly good. As of the end of February, Polish translations are being produced by Lukasz Dudek and Szymon Roczniak; they are also planning to translate the older summaries.

    libarchive/bsdtar Tim Kientzle kientzle@FreeBSD.org - +

    libarchive, with complete documentation, has been committed to -CURRENT. bsdtar should follow soon. For a few months, gtar and bsdtar will both be available in the base system. Once bsdtar is in the tree, I hope to resume work on libpkg and my pkg_add rewrite.

    Note that bsdtar is not an exact replacement for gtar: it does some things better (reads/writes standard formats, archive ACLs and file flags, detects format and compression automatically), some things worse (does not handle multi-volume archives or sparse files) and a few things just different (writes POSIX-format archives by default, not GNU-format). The command lines are sufficiently similar that most users should have no problems with the transition. However, people who rely on peculiar options or capabilities of gtar may have to look to ports.

    Network interface naming changes Brooks Davis brooks@FreeBSD.org

    The first actual feature related to the if_xname conversion was committed in early February. Network interfaces can now be renamed with "ifconfig <if> name <newname>".

    Work is slowly progressing on a new network interface cloning API to enable interesting cloners like auto-configurating vlans. This work is taking place in the perforce repository under: //depot/user/brooks/xname/...

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    After a slow time at the end of last year due to a disk crash, the project is moving along rapidly. The loader is fully functional with Forth support. Syscons has been integrated. New Powerbook models are supported. Work is starting on a G5 port.

    There's still lots to do, so as usual volunteers are most welcome.

    The FreeBSD Simplified Chinese Project Dong LI ld@FreeBSD.org.cn Xin LI delphij@frontfree.net - The FreeBSD Simplified + The FreeBSD Simplified Chinese Project (In Simplified Chinese) - Translated + Translated Website Snapshot - Translated Handbook Snapshot + Translated Handbook Snapshot

    The project is a joint effort of volunteers, which focus in the internationalization and localization of the FreeBSD Operating System and applications running on FreeBSD. All of the work resulted in this project will be contributed back to the FreeBSD project.

    Thanks to many volunteers' help, by this time of writing, we have finished more than 60% of the translation of the FreeBSD Handbook. We plan to submit a preliminary translation of the FreeBSD website as well as the FreeBSD Handbook when most part of them were finished, which is expected to happen in a couple of months. The snapshot of the documentation translation effort could be accessed through the URL listed above.

    The project also supported individual efforts on porting applications (especially software that supports Simplified and/or Traditional Chinese) to FreeBSD. We are also doing some research on making FreeBSD kernel and base system more i18n-aware.

    Verify source reachability option for ipfw2 Andre Oppermann andre@FreeBSD.org

    The verify source reachability option for ipfw2 checks if the source IP address of a packet entering the machine is reachable at all. Thus if we can't send a packet back because we don't have a route back we don't have to forward it because two way communication isn't possible anyway. It is more than likely that such a packet is spoofed. This option is almost the same as what is known on Cisco IOS as "ip verify unicast source reachable-via [any|ifn]". Using this option only makes sense when you don't have a default route which naturally always matches. So this is useful for machines acting as routers with a default-free view of the entire Internet as common when running a BGP daemon (Zebra/Quagga or OpenBSD bgpd).

    One useful way of enabling it globally on a router looks like this: ipfw add xxxx deny ip from any to any not versrcreach or for an individual interface only: ipfw add xxxx deny ip from any to any not versrcreach recv fxp0

    Move ARP out of routing table Andre Oppermann andre@FreeBSD.org

    The ARP IP address to MAC address mapping does not belong into the routing table (FIB) as it is currently done. This will move it to its own hash based structure which will be instantiated per each 802.1 broadcast domain. With this change it is possible to have more than one interface in the same IP subnet and layer 2 broadcast domain. The ARP handling and the routing table will be quite a bit simplified afterwards. As an additional benefit full MAC address based accosting will be provided. Work on this project is already in progress.

    Automatic sizing of TCP send buffers Andre Oppermann andre@FreeBSD.org

    The current TCP send and receive buffers are static and set to a conservative value to preserve kernel memory. This is sub-optimal for connections with a high bandwidth*delay product because the size of the TCP send buffer determines how big the send window can get. For high bandwidth trans-continental links this seriously limits the maximum transfer speed per TCP connection. For example a 170ms RTT and a 32kB send buffer limit the speed to approximately 1.5Mbit per second even thought you might have a 10Mbit pipe.

    This project makes the TCP send buffer to automatically adapt to the optimal buffer size for maximal link usage. In the case above this would be a buffer of approximately 220kB. The main challenge is to have a stable and reliable measurement of the link parameters and manage the kernel memory properly and in a fair way. We don't want to have a few connections to monopolize all available socket buffer space and many edge cases have to be considered. The first implementation will be tuned conservatively but even that will provide significantly better performance than the static buffers currently. Work on this project is already in progress.

    Testbed for testing and qualification of TCP performance Andre Oppermann andre@FreeBSD.org

    The TCP performance test and qualification testbed is an automated environment that simulates various common and uncommon end-to-end network and link characteristics such as delay, bandwidth limitations, congestion, packet drops, packet corruption and out of order arrival. The testbed automatically steps through all link types and tests various TCP optimizations and parameter adjustments. In the end all data is graphically arranged and compared against standard behaviour and each other to judge the positive or negative effects of the modifications. Work on this project has just started and is based on FreeBSDs dummynet.

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Thanks to the loan of a box by Will Andrews, the system has been moved into production. The previous installation at lonesome.com now refers you to the new system. As part of the installation, a preliminary FAQ was added.

    The database is updated once per hour.

    New reports available include ones about ports marked DEPRECATED, since that function has now been incorporated into bsd.port.mk. (The author hopes that this will allow the port deprecation process to be much more visible to the general FreeBSD user community.) In addition, a report for ports marked FORBIDDEN was added (the code was essentially the same).

    The next topic of interest is to try to identify ports which are slave ports because the status of these ports is not currently being updated automatically. This problem also affects FreshPorts. PR ports/63683 is an attempt to address this problem. Also, preliminary work has been done on creating some graphs and charts for various statistics, and in creating a tool to browse port dependencies for the entire ports tree.

    Some general observations about the trends in ports PRs can be made:

    • In the past 6 months, the amount of time to get ports PRs committed has dropped dramatically. (This is especially true of PRs for new ports.)
    • The queue of PRs for existing ports that are unmaintained has similarly been trimmed. Both of these two items are due in large part to a few very active committers (how do they ever get their "real" work done?) Thanks, guys, you know who you are.
    • There is still a fairly high number of PRs (~400/~750) which apply to existing ports, and have been assigned to a FreeBSD committer. This represents around 370 individual ports. We seem to have a much harder time getting these numbers to go down; basically, we just hold our own most weeks. This is somewhat disappointing.
    • The number of ports marked BROKEN has jumped dramatically, currently standing at over 250 (for i386-current). This represents less a sudden problem as it does Kris' effort to bring existing brokenness to people's attention -- thus, a much larger percentage of ports with build errors are now labeled as BROKEN.
    • Approximately two-thirds of the port build errors are still due to compilation problems, primarily from the gcc3.3 import. Another 10% fail to install correctly. The reasons for the others are more varied.

    FreeSBIE FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Home FreeSBIE Mailing List FreeSBIE Mirror List

    The FreeSBIE Project aims to develop a set of scripts that allow anyone to create their own FreeBSD Bootable Cdrom, with their own set of installed packages. The Project releases an ISO builded with FreeSBIE scripts, to show what they can do. On Sunday 29 February 2004, FreeSBIE 1.0 was released and it had a great success, as there were post on Slashdot.org, OSnews, DaemonNews and BSDForums. Thanks to the huge amount of feedback they got, FreeSBIE Developers are now developing new features such as support for archs different from i386. Website redesign is on the way too.

    kgi4BSD Nicholas Souchu nsouch@FreeBSD.org Project URL

    Move to Perforce is done. I spent some time on building a common compilation tree with Linux: until now drivers were build in a FreeBSD makefile tree, not compatible with Linux.

    The next priorities are ANSI support and keymaps in the KGC Kernel Graphic Console system.

    FreeBSD/ia64 Marcel Moolenaar marcel@FreeBSD.org Home page.

    Work on the PMAP overhaul has been put into gear. A lot of issues will be addressed, including support for sparse physical memory and of course SMP. Performance will be addressed to the extend possible, but functionality has priority. The redesign will lay the foundation for NUMA support where possible. An example of this is limiting TLB shootdowns to processors that actually have or had TLBs belonging to the PMAP loaded. Of course, without NUMA hardware the implementation of NUMA support is quite limited.

    FreeBSD Package Grid Kris Kennaway kris@FreeBSD.org

    Distributed package builds are currently done using a set of home-grown shell scripts for managing, scheduling and dispatching of package builds on the client machines. This has been sufficient for our needs in the past, but has a number of significant shortcomings that limit future growth. I am rewriting the package build scripts to work on top of Sun GridEngine (ports/sysutils/sge), as a client application of a "FreeBSD package grid". Some of the design goals for the new system are:

    • Better robustness against machine failure, and more efficient scheduling of build jobs
    • Support for remote build machines, to make better use of machine resources and clusters that are not on the same LAN as the build master
    • Ability for other committers to submit port build jobs to the system, for testing of changes, new ports, etc.
    vinum + GEOM Lukas Ertl le@FreeBSD.org

    The "geomification" of vinum has made some progress. I now have all basic setups working (concatenated plexes, striped plexes, RAID5 plexes, and RAID1), but I still have to implement correct error handling and status change handling.

    Still missing is a userland tool, so currently you still have to use "old-style" vinum to configure your setup.

    NanoBSD Poul-Henning Kamp phk@FreeBSD.org

    NanoBSD, src/tools/tools/nanobsd, is a tool for stuffing FreeBSD onto small disk media (like CompactFlash) for embedded applications. The disk image is built with three partitions, two for software images and one for configuration files. Having two software partitions means that new software can be uploaded to the non-active partition while running off the active partition.

    The first really public version has been committed and many suggestions and offers of patches have started pouring in.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr PF homepage PF FAQ ALTQ

    The sources were imported from OpenBSD 3.4R and patched with diffs obtained from the port. Since March the 8th it is linked to the build and install. There is some more work to be done in order make pf a home inside the tree, but the biggest hunk of work was lifted during the past two month.

    OpenBSD 3.5 is scheduled for early May, so we might see an update before 5.3R. Work towards integration of the - often requested - ALTQ framework is in progress also, though it is not yet clear how well it goes along with the ongoing work towards a giant free net stack.

    FreeBSD/arm Status Report Olivier Houchard cognet@FreeBSD.org

    Development goes reasonably fast, right now it boots single user. It is still very simics-centric, and it deserves a huge cleanup and a few bug fixes, but there's already a decent amount of code to work with, mostly taken from NetBSD. I now plan to work on real hardware support (as soon as I can get some), to get the missing userland bits (mainly rtld and the pthread libs) so that I can build a full world.

    SGI XFS port for FreeBSD Alexander Kabaev kan@FreeBSD.org Russell Cattelan cattelan@thebarn.com

    Not much has changed since last report was submitted. The read-only access XFS volumes is quite stable now. The work is underway to rewrite xfs_buf layer to minimize local changes intrusiveness. Initial attempt to make XFS code to compile and run on amd64 is in progress too.

    We really need a care-taker for our userland tools.

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches.

    If nothing bad happened, the icc patches got committed around the date of the deadline for submissions of this report. Please search the archives of -current and/or cvs-all for more information.

    The next steps in this project are to

    • fix the kernel to also run without problems when compiled with icc v8
    • fix the kernel if some problems surface after more people give it a try
    • get some ports to compile with icc

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Bluetooth Service Discovery Procotol daemon sdpd was integrated with existing Bluetooth utilities. From now on users should not use GNU sdpd (Linux BlueZ port).

    Bluetooth HID profile implementation is almost complete. Thanks to Matt Peterson < matt at peterson dot org > for giving me Bluetooth keyboard and mouse for development.

    FreeBSD GNOME Project Report FreeBSD GNOME Team gnome@FreeBSD.org FreeBSD GNOME Project Site.

    It has been a year since our last status report, but we haven't slowed down. Since the last report, Alexander Nedotsukov (bland) and Pav Lucistnik (pav) have joined the FreeBSD GNOME team. GNOME 2.4 was released back in September 2003, followed by 2.4.1 and 2.4.2. We are actively working on getting GNOME 2.6.0 out the door at the end of March. GNOME 2.6 Beta releases can be obtained via the project URL above.

    To help make GNOME 2.6.0 our best release to date, we have created a script to automate the upgrade from GNOME 2.4. We also have a new GNOME package build server that builds and serves i386 packages for all supported FreeBSD releases. We plan on having the GNOME 2.6.0 packages available the moment 2.6.0 hits the ports tree.

    Included in the release of GNOME 2.6 is GTK+ 2.4, the next installment in the GTK+ 2 series. Because GTK+ 2 has become very stable over the past few years, the FreeBSD GNOME Team is pushing for GTK+ 2 support to be included by default in all applications that support it. This has already been done with Mozilla, Firefox, and Thunderbird. A complete GNOME Desktop and application environment can already be built using only GTK+ 2. The ultimate goal is to phase GTK+ 1 out of the ports tree.

    Network Stack Locking Sam Leffler sam@FreeBSD.org Robert Watson rwatson@FreeBSD.org

    This project is aimed at converting the FreeBSD network stack from running under the single Giant kernel lock to permitting it to run in a fully parallel manner on multiple CPUs (i.e., a fully threaded network stack). This will improve performance/latency through reentrancy and preemption on single-processor machines, and also on multi-processor machines by permitting real parallelism in the processing of network traffic. As of FreeBSD 5.2, it was possible to run low level network functions, as well as the IP filtering and forwarding plane, without the Giant lock, as well as "process to completion" in the interrupt handler.

    Work continues to improve the maturity and completeness of the locking (and performance) of the network stack for 5.3. The network stack locking development branch has been updated cothe latest CVS HEAD, tracking a variety of FreeBSD changes, including tracking and driving changes in the interface and device cloning APIs, push-down and fixes to locking in the Berkeley Packet Filter, consistency improvements in allocation flags for network objects, diagnosis of excessive acquisition of Giant in various system callouts and timeouts, removal of Giant from several system callouts, "const"-ification of a number of global variables in the network stack (IPv4, IPv6, elsewhere) as part of ananalysis of locking requirements, fine-grain locking of a number of pseudo-interfaces (disc, loopback, faith, stf, gif, tap, tun), IP encapsulation and tunneling, initial review and locking of parts of PPP and SLIP, experimentation with PCB assertions on IPv6, additional socket locking assertions, graphing of the FreeBSD sockets layer to support locking analysis, merging of theMT_TAG to m_tag conversion to improve the ability to queue packets, moving of the debug.mpsafenet tunable to controlling Giant over the forwarding plane to Giant over the entire stack("dual-mode" to support non-MPSAFE protocols), adaption of existing network lock assertions to also assert Giant when running non-MPSAFE, analysis of high cost of select() locking, improved locking and synchronization annotations, TCP callouts run MPSAFE, logtimeout() runs MPSAFE, uma_timeout() runs MPSAFE, callout sampling instrumentation, loadav() runs MPSAFE, AppleTalk locking begun: AARP locked down and DDP analysis, rawcb list locked, locking analysis of mrouter and IP ID code, IGMP locked, IPv6 analysis begun, IPX/SPX analysis begun, PPP timeouts converted to callouts, Netgraph analysis begun. Many of these changes have not yet been merged to the main FreeBSDtree, but this is a work in progress.

    In related work on Pipe IPC (not quite network stack locking), substantial time was invested in diagnosing an increase in the cost of pipe allocation since FreeBSD 4.x, as well as coalescing the several allocations needed to create a pipe, as well as moving to slab allocation so as to amortize the cost of pipe initialization. Future work here will include caching the VM structures supporting pipe buffers.

    Recent contributors include Robert Watson, Sam Leffler, MaxLaier, Maurycy Pawlowski-Wieronski, Brooks Davis, and many others who are omitted here only by accident.

    diff --git a/en/news/status/report-july-2001.xml b/en/news/status/report-july-2001.xml index 366fa231fe..c935c8c05b 100644 --- a/en/news/status/report-july-2001.xml +++ b/en/news/status/report-july-2001.xml @@ -1,1204 +1,1204 @@ - + July 2001 - $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.5 2002/05/16 01:49:58 trhodes Exp $ + $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.6 2003/04/13 16:31:52 hrs Exp $
    Introduction

    Last month's status report was apparently a great success: I received countless e-mails with comments, questions, and suggestions. I've tried to incorporate any suggestions and address any problems from these e-mails in this month's report, which captures a far more extensive snapshot of FreeBSD activity in the last month. Unlike last month's report, it does a better job of reflecting non-development activity, such as on-going conference planning, documentation, and so on. This is a trend I hope to see improve in future months as well.

    On the topic of conferences, in the future I'd like to report more on publication activities relating to FreeBSD, including online journals with articles relating to FreeBSD, paper journals, conference papers, and so on. Likewise, I would be interested in including references to Call for Papers relating to FreeBSD. I'll take this opportunity to plug both registration and paper submission for BSDCon Europe in November, which has status included in this report, and for the general BSD Conference being hosted by USENIX in February. Your attendance and submissions make these conferences "happen", and promote FreeBSD as a platform for new research, feature development, and application products. Work of extremely high calibre is performed on FreeBSD, and we need to get the word out.

    Submission for Future Editions

    Next month, we're maintaining much the same submission requirements: reports should be one or two paragraphs long, sent by e-mail, and approximate the layout of the entries this month (Project, Contact, URL, and text). I'll send out reminders again over the week before the deadline, with more specific instructions. An area where I'd like to explore improvement lies in the coordination of related status reports for larger projects, such as new architectural work or platform ports. This might even have the effect of encouraging communication within these projects :-). I'd like to continue to focus on pulling in a broader range of groups and their activities, including the Security Officer, Release Engineer, and Core Team.

    -- Robert Watson < rwatson@FreeBSD.org >

    ACPI Mike Smith msmith@FreeBSD.org

    ACPI (Advanced Configuration and Power Interface) is an industry standard which obsoletes APM, Intel MPS, PnPBIOS, and other Intel PC firmware interface standards. It is also used on the IA64 platform. More information on ACPI is available at

    http://developer.intel.com/technology/iapc/acpi

    The FreeBSD ACPI subsystem project is based heavily on the Intel ACPI Component Architecture. This status report outlines the current state of the project; future updates will focus on changes as they occur.

    The Intel ACPI interpreter is fully integrated, although bugs are still coming out of the woodwork occasionally.

    • PCI bus detection and interrupt routing are functional, but power management interaction will require work on the core PCI subsystem.
    • Non-PCI motherboard peripheral probing is implemented, but believed to have problems on some systems.
    • A power policy manager has been implemented. The initial policy manager has two modes, "performance" and "economy".
    • CPU speed throttling is integrated with the platform power policy.
    • System thermal monitoring is implemented, but fan control is believed to have problems.
    • Pushbutton suspend and power-off is implemented.
    • System timekeeping using the ACPI timer is supported.
    • Battery status monitoring is implemented.

    Work is ongoing in the following areas:

    • System suspend and resume.
    • Timekeeper accuracy/reliability.
    • Power profiles.
    • User-level management interfaces.
    • PCI power management.
    • Bug-hunting.
    ARM Port Stephane Potvin septovin@videotron.ca

    The ARM port is currently going pretty well. The kernel is compiling and is able to boot to the point where it panics trying to initialize the network subsystem. The current reference platform is the Netwinder but this may change as many people expressed interest in a more broadly available platform. Things that need to be done before it can get further includes adding footbridge, timer and interrupt supports. The pmap module is not completed yet either.

    BIND 9 Doug Barton dougb@FreeBSD.org Jeroen Ruigrok - asmodai@freebsd.org + asmodai@FreeBSD.org

    Now that BIND 8.2.4 is finally imported the time has come to look at getting BIND 9 imported into CURRENT. The current idea is to have it imported alongside BIND 8 so that people can play with either one until all import problems have been taken care of and people have tested it a bit.

    binup Eric Melville eric@FreeBSD.org

    Although gaining a new name, the project has been at a standstill due to both resource availability during the move between BSDi and Wind River, and other commitments of the developers. The project should obtain an official mailing list, as well as return to an active state after the dust settles.

    BSDCon Europe Paul Richards paul@freebsd-services.co.uk Josef Karthauser joe@tao.org.uk

    The conference will take place at the Thistle Hotel, Brighton, UK from 9-11 November 2001.

    The aim of the conference is to provide a focal point for European users and developers of all the BSD derived operating systems. The format will be similar to other conferences, with 2 days of technical sessions over the Saturday and Sunday.

    We'll be finalizing the schedule towards the end of the month and anybody who is interested in doing a talk should contact us ASAP. There are no restrictions on the use of talks; if it's been done before we may still be interested in having it presented to an European audience, and we make no claims to the talks so speakers are free to present the talks again at other conferences.

    We're also still looking for sponsors.

    We had 80 pre-registrations in the first week so we're expecting a good turnout.

    CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs gibbs@FreeBSD.org

    The new CAM transport code is starting to get supported in more HBAs and to get refined so that it does the intended per-protocol support. No progress on doing any SMPng work for CAM has been made yet. This is a fairly high priority.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    Thanks to various outstanding individual efforts, we are now down to just below 2300 open bug-reports. This means that we have fought our way back to the level we had around march 2000.

    Documentation Project Documentation Project doc@FreeBSD.org

    Work continues (in large part sponsored by WRS) on updating the Handbook ready for the second print edition. There has been a flurry of activity in this area recently, and the ToDo list can be seen at

    - - http://www.freebsd.org/docproj/handbook.html + + http://www.FreeBSD.org/docproj/handbook.html

    Dima and others are doing a stellar job of keeping up with the steady flow of incoming PRs relating to the documentation project.

    The Developers' Handbook,

    - http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html + href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html"> + http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html

    is a year old; it contains a wealth of useful content for developers developing on, or for, FreeBSD. As ever, more contributions are always required, not only for the developers' handbook, but for all of the FreeBSD documentation set.

    Fibre Channel Support Matthew Jacob mjacob@feral.com

    The basic design hasn't changed and this project mainly is in the phase of continued hardening and test case development. The next major feature will be to fully integrate into the new CAM TRAN code and to fully support on the fly device addition and removal. The only HBA supported is QLogic at this time. Future support for the QLogic line is planned to have 2300 (2Gb) and IP support before October.

    Hardware Watchpoints in the Kernel Debugger Brian Dean bsd@FreeBSD.org

    Hardware watchpoints are now available for kernel debugging on the IA32 (i386) architecture. One can now set hardware watchpoints using the new ddb command 'hwatch', which is analogous to the existing 'watch' command. Alternatively, if greater flexibility is required, direct access to the debug registers is available using the ddb 'set' command which allows complete control over the processor hardware debug facilities. Hardware watchpoints are very useful in tracking down those elusive memory overwrite bugs in the kernel. Hardware watchpoints can even be used to set a code breakpoint in ROM, which is commonly found in embedded systems.

    ifconfig support for IEEE 802.11 wireless devices Brooks Davis brooks@FreeBSD.org

    Support for configuring IEEE 802.11 wireless devices via ifconfig has been committed to -current and -stable. It contains most of the functionality needed to configure an wireless device. Some missing features are being worked on including integrated support for DHCP so a single entry in /etc/rc.conf can be used to fully configure a wireless device on a DHCP lan and setting the CTS/RTS threshold. Currently the an(4) and wi(4) drivers are supported in -current and -stable with the awi(4) device supported in -current. Further work is needed to support Frequency Hopping devices such as ray(4).

    jailNG Robert Watson rwatson@FreeBSD.org

    jailNG is a from-scratch rewrite of the popular jail(8) service, focusing on improved management functions, as well as more fine-grained configurability. An initial prototype has been written, based on explicitly named and configured jails, and work is proceeding on userland integration. Currently, it's not clear if the timeline for this will be 5.0-RELEASE, or 5.1-RELEASE.

    FreeBSD Java Project - + Greg Lewis glewis@eyesbeyond.com

    The main development in the FreeBSD Java Project over the last month was the release of an initial "Developers Only" patchset for the JDK 1.3.1. Since that release progress had been made towards a much more usable alpha quality patchset which is likely to be turned into a port, as per the current JDK 1.2.2 patchset. This new patchset will feature a number of bugfixes, which essentially get the JDK to a working state for early adopters, and an initial implementation of "native threads" based on FreeBSD's userland pthreads. Unfortunately this implementation isn't fully functional, but is included in the hope of getting more eyeballs on the code (particularly experienced pthread programmers). We'd also like to welcome Fuyuhiko Maruyama-san as a new committer, the usual punishment for too many good patches.

    jpman project Japanese Man Page Project man-jp@jp.FreeBSD.org

    We have been working to provide Japanese version of FreeBSD online manuals, since 1996. Currently, RELENG_4 manuals are based. Translated versions are placed on doc/ja_JP.eucJP/man and provided to users using ports/japanese/man-doc. Also, we discuss about related commands (e.g. ports/japanese/man and ports/japanese/groff).

    Kernel Summit - Usenix 2001 John Baldwin jhb@FreeBSD.org

    The first FreeBSD kernel summit meeting was held June 29-30, 2001 in Boston, MA at the Usenix 2001 Annual Technical Conference. Links to a variety of files are posted on the web site.

    Note: I (jhb) am still working on writing up a general summary of the meeting. When that is completed it will be posted here and mailed to the -hackers mailing list.

    KSE threading the kernel - + Julian Elischer julian@elischer.org

    I'm working on multithreading the kernel. So far I have over 400KB of diffs relative to todays -current (I'm keeping my tree updated with changes as they occur rather than get hit with a big update at the end).

    I have split the proc structure and am changing most of the kernel to pass around a thread identifier instead of a proc structure.

    The following interfaces have been changed so far:

    • device devsw entries
    • vfs calls
    • mutexes
    • events
    • system calls
    • scheduler
    • + a lot of code in between.

    I have still a lot of work to go with a lot of "dumb editing" (s/struct proc \*p/struct thread \*td/) usually I change a few items and then fix everything that breaks when I try compile it. I'd like to check it in on a branch so others can help the editing but haven't worked out the best way to do it yet.

    I have implemented changes to the scheduler so that KSE's are scheduled instead of processes, and threads sleep, letting the KSE pick up a new thread. but it's not anywhere ready yet (heck it doesn't compile yet :-)

    Note that I have not yet updated the document listed above.. everywhere it mentions "ksec" or "KSE-context", the code uses the word "thread". I will update it soon as Jason has sent me the source.

    FreeBSD Monthly Development Status Reports Robert Watson rwatson@FreeBSD.org> Chris Costello chris@FreeBSD.org

    The FreeBSD Monthly Development Status Report aims to keep users and developers up-to-date on the latest goings-on in the FreeBSD project by providing summaries of each project and its status. At the time of this writing, the July 2001 status report is being prepared and is very near release. The FreeBSD Web site now has a Status Reports section, which, when the July 2001 report is released, will be updated to include a link to an HTML-ified version.

    NetBSD rc.d port Doug Barton dougb@FreeBSD.org Sheldon Hearn sheldonh@FreeBSD.org

    The NetBSD rc.d port aims to improve the FreeBSD startup process by porting Luke Mewburn's rc.d work from NetBSD to FreeBSD. This will score FreeBSD startup and shutdown dependencies without losing the traditional and much loved monolithic configuration filesystem.

    Luke Mewburn's USENIX paper and slides on the system as implemented in NetBSD are available here:

    http://groups.yahoo.com/group/FreeBSD-rc/message/3

    Interested parties are urged to study this material before joining the discussion list.

    The intention at this stage is to decide on an approach that will ensure that the differences between the NetBSD rc.d system and the system as ported to FreeBSD will be kept to a minimum. This will probably involve discussions with Luke around those areas of the system that are identified as areas for potential improvement.

    Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

    The goal of this project is the implementation of ATM signalling and other ATM protocols by means of the netgraph(4) framework. This should provide an easily extensible architecture for using ATM on FreeBSD. Currently the full UNI4.0 stack (except for the LIJ capability) has been implemented, including ILMI and a first version of the ATM Forum API for UNI. An implementation of Classical IP over ATM is also available. Drivers have been implemented for the Fore PCA200E and Fore HE-155 cards.

    network device cloning Brooks Davis brooks@FreeBSD.org

    Network device cloning support has been imported from NetBSD. This allows virtual devices to be allocated on demand rather then being statically allocated at compile time. Our implementation differs slightly from that of NetBSD's in that we allow both the creation of specific devices (i.e. gif0) and arbitrary devices instead of just allowing specific devices. Currently, the only device in the tree which has been converted is the gif(4) device which has been converted in both -current and -stable. Work is ongoing to convert all other virtual network devices with work in progress on faith, stf, and vlan interfaces. In general this conversion is accompanied by appropriate modifications to make these devices fully modular.

    Next Generation POSIX threads (NGPT) Arun Sharma arun@sharma.dhs.org

    Porting NGPT (next generation pthreads) to FreeBSD

    NGPT is an effort led by IBM engineers to implement MxN threads (also known as many user threads to one kernel thread mapping) on Linux. I have ported it to FreeBSD to use rfork(2).

    The port is right here:

    - - http://www.freebsd.org/cgi/query-pr.cgi?pr=29239 + + http://www.FreeBSD.org/cgi/query-pr.cgi?pr=29239

    OLDCARD upgrade to support PCI cards - + Warner Losh imp@village.org

    Funded by: Monzoon Networking, LLC

    This month has been a month of conventration and consolidation. Much of the changes from current have been migrating into stable. I've improved power support, suspend/resume interactions, interrupt handling, and ability to work after windows/NEWCARD has run. Interrupt routing continues to be a locking issue for a complete MFC. Current patches are available at the above website. I'm racing to get this done before 4.4 is released.

    Open Runtime Platform (ORP) Arun Sharma arun@sharmas.dhs.org eGroups: ORP orp@egroups.com

    Information on Intel ORP - a BSD licensed Java VM is right here:

    http://www.intel.com/research/mrl/orp/

    A FreeBSD patch has been tested to work with NGPT and submitted to the ORP project. The patch is available here:

    http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz

    There are some issues to be ironed out to make it work with FreeBSD's default (user level) pthread implementation.

    OpenPackages

    OpenPackages intends to create a software packaging system that will allow third-party programs to be installed, without operating system dependent changes, on as many platforms as are feasible. OpenPackages was originally based on code from the BSD ports systems, and has been improved and extended by developers of many heritages.

    The OpenPackages Project is pleased to release the Milestone 2 codebase. This release contains a working package building system and a single test package. OP currently is known to build on certain instances of the following operating systems: FreeBSD, HP/UX, IRIX, Linux (Debian, Red Hat, Suse, Mandrake, TurboLinux, Caldera, etc.), NetBSD, OpenBSD, Solaris

    PAM Mark R V Murray mark@grondar.za

    (First report)

    Large cleanup and extension of FreeBSD PAM modules. All modules are to be documented, consistent in style (style(9) used) and as complete as possible WRT functionality. Mostly done.

    PowerPC Port Benno Rice benno@FreeBSD.org

    We now have the rudiments of device support. We have a nexus driver for OpenFirmware machines, along with support for the Apple UniNorth PCI/AGP host bridge. I'm currently trying to get the USB hardware working so that I can get closer to having a console driver independent of OpenFirmware, then I'll be trying to get the system to get to single-user mode using NFS.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    Work has begun, but nothing has yet been committed. The NCP addresses used by ppp have been abstracted and initial support has been added to the filter set for ipv6 addresses. NCP negotiation hasn't yet been started.

    Porting ppp to hurd & linux Brian Somers brian@Awfulhak.org

    Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed.

    pppoed Brian Somers brian@freebsd-services.com

    Making pppoed function in a production environment. Most of the work is complete and committed. Additional work includes adding a -l option where ``-l label'' is shorthand for ``-e exec ppp -direct label'' and discovering why rogue child processes are being left around.

    PRFW - Hooks within the FreeBSD kernel Evan Sarmiento ems@open-root.org

    PRFW is a set of hooks which I have integrated into the FreeBSD kernel. This allows modules to easily intercept system calls with less overhead. It also supports per-pid restrictions, which means, one process may not be able to use X function in Y manner, but another process may.

    Progress: I was working on this in 4.3-RELEASE, but now I'm merging it into current. I will be submitting a patch to the mailing lists in about a week.

    SCSI Tape Support Matthew Jacob mjacob@feral.com

    This driver is currently not working well under -current and is undergoing some work at this time. No major design or feature changes are planned. There was some notion of adding TapeAlert support, but HP supports that as a binary product via a user library and it was felt that it'd be more politically prudent to leave it alone.

    SMPng Peter Wemm peter@FreeBSD.org John Baldwin jhb@FreeBSD.org

    Development

    In the 'smpng' p4 branch there is code to make the ast() function loop to close the race when an AST is triggered while we are handling previously triggered AST's.

    In the 'jhb_preemption' p4 branch work is being done to make the kernel fully preemptive. It is reportedly stable on UP x86, but SMP x86 locks up, UP alpha has problems during shutdown and can recurse indefinitely until it exhausts its stack.

    Management

    We are using a perforce repository for live development work, which can track multiple separate long-lived works-in-progress and collaborate between multiple developers at the same time on the same change set.

    FreeBSD-current is being imported into p4 hourly, for easy tracking of the moving -current tree.

    I haven't written up a good primer yet, but we're able to open this up to the general developer community. NEWCARD work looks like it will be done here too. Perforce is ideal for tracking this sort of long-lived project without having to resort to passing patches around.

    KSE work is now being checked into a kse p4 branch - thanks Julian!

    KSE work is focusing on getting the main API changes into the base tree well before 5.0.

    SMPng mbuf allocator - + Bosko Milekic bmilekic@FreeBSD.org

    mb_alloc is a specialized allocator for mbufs and mbuf clusters. It offers various important advantages over the old mbuf allocator, particularly for MP machines. Additionally, it is designed with the possibility of important future enhancements in mind.

    The mb_alloc code has been committed to -CURRENT a month ago and appears to be holding up well. Prior to committing it, preliminary performance measurements were done merely to ensure that it is not significantly worse than the old allocator, even with Giant still in place. Results were promising - [http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html] + href="http://people.FreeBSD.org/~bmilekic/code/mb_alloc/results.html"> + [http://people.FreeBSD.org/~bmilekic/code/mb_alloc/results.html] - also see jlemon's results (link at the bottom of accompanying text). Since the commit, Matt Jacob has provided useful feedback and bugfixes. Work is now being done to re-enable mbtypes statistics and make appropriate changes to netstat(1) and systat(1).

    sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org

    The sparc64 port has been committed to the FreeBSD repository. As such further development will occur in cvs, rather than as a separately maintained patch set. Significant progress has been made since the last status report, including; support for kernel debugging with ddb, much more complete pmap support, support for context switching and process creation, and filling out of important machine dependent data structures. Thomas Moestl has shown a strong interest in working on the port and is in the process of implementing support for saving and restoring a process's floating point context. I look forward to working with him and any other developers that happen to fall out of the wood works.

    FreeBSD/sparc64 kernel loader Robert Drehmel robert@ferrari.de

    The sparc64 loader is functional enough to boot an ELF binary from an UFS filesystem using the existent openfirmware library, which has been revised to work flawlessly on 32-bit and 64-bit architectures. Support for netbooting and modules will be implemented next, followed by a better openfirmware mapping strategy.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    This project brings a SYN cache implementation to FreeBSD, in order to make it more robust to DoS attacks. A SYN cookie approach was considered, but ultimately rejected because it does not conform to the TCP protocol. The SYN cache will work with T/TCP, IPV6 and IPSEC, and the size of each cache element is currently is less than 1/5th the size of a normal TCP control block.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org

    It's been a busy month, with a number of relevant news items. Not least important is that NAI Labs was awarded a $1.2M contract from the US Defense Advanced Research Projects Agency (DARPA) to work on a variety of components relevant to the TrustedBSD Project, including support for pluggable security models, and supporting features such as improving the extended attributes implementation, simple crypto support for swap and filesystems, documentation, and much more.

    On the features side, progress continues on Mandatory Access Control, object labeling, and improving the consistency of kernel access control mechanisms--in particular, with regard to inter-process authorization and credential management. Work has begun on porting LOMAC, NAI Labs' Low-Watermark Mandatory Access Control scheme, from Linux to FreeBSD, and it has been re-licensed under a BSD license. We hope to have an initial port complete in time for 5.0-RELEASE later this year.

    diff --git a/en/news/status/report-july-2002-aug-2002.xml b/en/news/status/report-july-2002-aug-2002.xml index e526d12d70..fb53d369a4 100644 --- a/en/news/status/report-july-2002-aug-2002.xml +++ b/en/news/status/report-july-2002-aug-2002.xml @@ -1,1057 +1,1057 @@ - + July - August 2002
    Introduction

    Throughout July and August, the FreeBSD Project has been working on pulling together the last few major pieces of new functionality for FreeBSD 5.0-RELEASE. At this point, the release appears to be on track for late November or early December. Work on fine-grained locking continues, especially in the VFS, as with improved support for threading through the KSE work; features such as GEOM, UFS2, and TrustedBSD MAC are maturing, and the new ia64 and sparc64 hardware ports are approaching production quality. In the next two months, we have a lot to look forward to: additional 5.0 developer preview snapshots, additional locking and threading improvements, and many cleanups on the new supported architectures. Firewire support has been imported into the main tree, and substantial cleanup of the ACPI/legacy PCI code is also in the works. Also, expect the import of new IPsec hardware acceleration support in the near future.

    When new developer previews are posted, please give them a try! While we know that 5.0-RELEASE will be for "early adopters", the more testing we get out of the way now, the less we have to tidy up later. The new features are extremely exciting, and understanding when and how to deploy them properly will be important. In the next two months, among other things, the release engineering team will post updated release schedules, as well as guidance for FreeBSD consumers as to how to decide what releases of FreeBSD will be right for them. Keep an eye out for this, and provide us with feedback.

    Also, for those of you in Europe -- we look forward to seeing you at BSDCon Europe in a couple of months!

    Scott Long, Robert Watson

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    Network interface cloning and modularity Brooks Davis brooks@FreeBSD.org

    Cloning support for ppp(4) and disc(4) interfaces has been committed. A man page for disc has been created and the disc devices now appear as disc# instead of ds#. Some work is still needed on pppd to make it understand cloning though it should work as long as the devices are created beforehand.

    On the API front, management of mandatory interfaces (i.e. lo0) is handled by the generic cloning code so if_clone_destroy has the same API as NetBSD again and <if>_modevent doesn't need to create the necessary devices manually.

    At this point, all pseudo interfaces have been converted to the cloning API or already did their own cloning (sl(4) for example uses it's own mechanism). Some devices such as tun(4) and tap/vmware should probably be converted to use the cloning API instead of their current ad-hoc, devfs based cloning system. This would be a good junior kernel hacker task. Also, the handbook and FAQ could use some general cloning documentation prior to 5.0 release.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating RELENG_4 targeting for 4.7-RELEASE. When port ja-man-1.1j_5 was broken around the end of July, Kumano-san and Mori-san tried to update the port to be based on a newer FreeBSD base system's man commands. But, we decided only to fix the port ja-man-1.1j_5 to be buildable, as the new one was not complete at that time.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code has gotten so far that it beats our current code in some areas while still lacking in others. The goal is for GEOM to be the default in 5.0-RELEASE.

    Currently work on a cryptographic module which should be able to protect a diskpartition from practically any sort of attack is progressing.

    UFS2 - 64bit UFS with native extended attributes Poul-Henning Kamp phk@FreeBSD.org Kirk McKusick mckusick@FreeBSD.org

    The UFS2 filesystem approaches feature completion: Extended attribute functionality have been added, including a new compound modification API and basic testing has been passed.

    French FreeBSD Documentation Project Sebastien Gioria gioria@FreeBSD.org Marc Fonvieille blackend@FreeBSD.org Stephane Legrand stephane@FreeBSD-fr.ORG The French FreeBSD Documentation Project. The FreeBSD Web Server translate in French. - Translation of the Hanbook. + Translation of the Hanbook.

    We've got currently almost 50% of the new handbook translated (all the installation part is translated). Most of the articles are translated too.

    The web site in on the way, see the Web Server. We need now to integrate it on the US CVS tree.

    One of the big job now, is to translate the latest FAQ and the very big project will be the manual pages

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack

    I'm very pleased to announce that another engineering release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20020909.tar.gz

    This release features several major changes and includes support for H4 UART and H2 USB transport layers, Host Controller Interface (HCI), Link Layer Control and Adaptation Protocol (L2CAP) and Bluetooth sockets layer. It also comes with several user space utilities that can be used to configure and test Bluetooth devices. Also there are several man pages.

    Service Discovery Protocol (SDP) is now supported. This release includes SDP daemon, configuration tool and user space library (ported from BlueZ-sdp-0.7).

    RFCOMM is now supported. This release includes rfcommd daemon that provides RFCOMM service via pseudo ttys. Not very useful for legacy application, but it is possible to run PPP over Bluetooth now. This was ported from old BlueZ-rfcommd-1.1 (no longer supported by BlueZ) and still has some bugs in it.

    Next step is to fix current RFCOMM support and work on new in-kernel RFCOMM and BNEP (Bluetooth Network Encapsulation Protocol) implementation. Also user space need more work (better tools, libraries, documentation etc.).

    Netgraph ATM Harti Brandt brandt@fokus.fhg.de Introduction to NgAtm

    Version 1.2 has been released recently. It should compile and work an any recent FreeBSD-current. Support to manipulate SUNI registers has been added to the ATM drivers (to switch between SONET and SDH modes, for example). The ngatmsig package now includes a small and simple call control module that may be used to build a simple ATM switch. The netgraph stuff has been patched to use the official netgraph locking.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    On the API front, fmtmsg(3) was implemented, glob(3) was given support for new flags, ulimit(3) was implemented, and wide character/string support was significantly improved with the addition of 30 new functions (see the project status board for details). Work is progressing on adding the C99 restrict type-qualifier to functions throughout the system. This allows the compiler to make additional optimizations based on the knowledge that a restrict-qualified argument is the only reference to a given object (ie. it doesn't overlap with another argument).

    Several headers have been brought up to conformance with POSIX.1-2001, they include: <fmtmsg.h>, <poll.h>, <sys/mman.h>, and <ulimit.h>. The header <cpio.h> was implemented. The headers <machine/ansi.h> and <machine/types.h> were merged into a single header to help simplify the way variable types are created.

    The sh(1) built-in, command(1), was reimplemented to conform with POSIX. Additionally, several utilities which were previously brought up to conformance were merged into the 4-STABLE branch.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    The GNOME 2 desktop port has reach version 2.0.2rc1 with an expected 2.0.2 release before 4.7-RELEASE. Mozilla 1.1 has been ported, and is resident in the tree with Mozilla 1.0.1. The GNOMENG porting effort is going well. A good deal of ports have been moved to the new infrastructure with the help of Edwin Groothuis. We are now working on smoothing out some of the rough edges, then, once all the work is done, make GNOMENG the default.

    A long-standing annoyance in Nautilus has also been recently corrected. The desktop is no longer cluttered with volume icons, and removable media (such as CDs) should now be handled correctly.

    ATAPI/CAM Status Report Thomas Quinot thomas@FreeBSD.org

    The ATAPI/CAM module allows ATAPI devices (CD-ROM, CD-RW, DVD drives, floppy drives such as Iomega Zip, tape drives) to be accessed through the SCSI subsystem (CAM). ATAPI/CAM has been integrated in -CURRENT. The code should be fairly functional (it has been used by many testers as patches against -STABLE and -CURRENT over the past eight months), but there are pending issues on SMP machines. Testers most welcome.

    A MFC of this feature will probably happen after the end of the 4.7 code freeze.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPSEC), and OpenSSL (through the /dev/crypto device).

    OpenSSL 0.9.7 beta 3 was imported and patched with fixes from OpenBSD's source tree. This permits any user-level application that use -lcrypto to automatically get hardware crypto acceleration. Otherwise the core crypto support is stable and has been in production use on -stable machines for several months.

    Import of this work into the -current tree has started. A publicly available patch against 4.7 will be released once 4.7 ships. Integration of this work into the -stable source tree is planned for 4.8.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    Recent work focused on increasing performance. Support is still limited to IPv4 protocols, with IPv6 support coded but not yet tested.

    Import of this work into the -current tree has started. A publicly available patch against 4.7 will be released once 4.7 ships.

    VM issues in -stable Matthew Dillon dillon@FreeBSD.org VM corruption patch for -stable.

    Work is in progress to MFC a number of bug fixes related to vm_map corruption into -stable. This work is probably too involved to make it into the 4.7 release but is expected to be committed just after the freeze is lifted. The corruption in question typically occurs in large-memory systems under heavy loads and typically panics or KPFs (kernel-page-fault's) the machine in a vm_map related function.

    New SCSI Target Emulator Nate Lawson nate@root.org

    The existing SCSI target code has been rewritten. The kernel driver is much simpler, deferring all functionality to usermode and simply passing CCBs to and from the SIM. The supplied usermode emulates a disk (RBC) with IO going to a backing file. It replaces /sys/cam/scsi/scsi_target* and /usr/share/examples/scsi_target.

    The code is definitely alpha quality and has known problems on -current although it appears to work ok on -stable. See the included README for how to install and test. Feedback is welcome!

    Lottery Scheduler for FreeBSD -STABLE Mário Sérgio Fujikawa Ferreira lioux@FreeBSD.org

    Yet another implementation of Lottery Scheduling devised by Carl Waldspurger et. al. is being developed against FreeBSD -STABLE branch. It is being developed as part of a graduation project in Computer Science at Universidade de Brasília in Brazil. Therefore, other implementations have not yet been verified to avoid plagiarization but will be checked in a later stage of this project searching for better implementation ideas. Currently, part of the necessary scheduling kernel structure has been mapped and work has progressed despite the general lack of kernel documentation. Further outcomes of this project will be a simple documentation of the kernel scheduler structure of -STABLE branch, a port of the Lottery Scheduler to -CURRENT branch and additional implementations of other scheduling disciplines from Carl Waldspurger et. al. Members of the FreeBSD community have been and will continue to be instrumental in both testing and providing feedback for ideas implemented here.

    The FreeBSD Brazilian Portuguese Documentation Project Edson Brandi ebrandi.home@uol.com.br Mário Sérgio Fujikawa Ferreira lioux@FreeBSD.org Ricardo Nascimento Ferreira nightwish@techemail.com Diego Linke gamk@gamk.com.br Jean Milanez Melo jmelo@freebsdbrasil.com.br Patrick Tracanelli eksffa@freebsdbrasil.com.br Alexandre Vasconcelos alexandre@sspj.go.gov.br FUG-BR Grupo de Usuários FreeBSD - Brasil

    The FreeBSD Brazilian Portuguese Documentation Project is merging with a translation group formed by members of the FUG-BR FreeBSD Brazilian user group. The Brazilian Project decided to become an official group under FUG-BR after receiving continued excellent contributions from them. They have managed to complete the translation of the FreeBSD FAQ which is currently undergoing both proofing and SGML"fication" stages. Work is progressing fast: the Handbook has been half translated and articles are under way. The previous Brazilian Project is proud to become part of such a dedicate group. The contacts above represent the current official contacts for the new translation group. We hope to have at least part of this work ready for the FreeBSD 4.7 Release.

    KSE Julian Elischer - julian@freebsd.org + julian@FreeBSD.org Jonathon Mini - mini@freebsd.org + mini@FreeBSD.org Dan Eischen - deischen@freebsd.org + deischen@FreeBSD.org - poor description + poor description

    David Xu and I have been working on cleaning up some of the work done in KSE-III and Jonathon and Dan have been working on the userland interface. The userland library will be committed soon in a prototypical state and a working test program using that interface will hopefully accompany it. I have just committed a rework of the run states for kernel threads that simplifies or solves some problems that were being seen recently.

    Hopefully in the next few weeks we will be able to run threads on separate processors. The basics of Signal support are presently evolving. Archie Cobbs will also be assisting with some of this work. I have a mail alias for all the developers at kse@elischer.org. It is managed by hand at the moment.

    Release Engineering re@FreeBSD.org

    The Release Engineering (RE) Team completed and released FreeBSD 4.6.2. This ``point release'' fixes several important bugs in the ATA subsystem, as well as addressing a number of security issues in the base system that surfaced shortly after FreeBSD 4.6 was released. The release documentation distributed with FreeBSD 4.6.2 contains more details. (Note: Some earlier documents and reports referred to this release as version 4.6.1.) The next release in the 4.X series will be FreeBSD 4.7, which has a scheduled release date of 1 October 2002.

    Concurrently, work is continuing on the 5.0-DP2 developer preview snapshot, an important milestone along the release path of FreeBSD 5.0, which is scheduled for release on 20 November. As 5.0 draws closer, we are focusing more on getting the system stabilized, as opposed to adding new functionality. To help us with this effort, developers should discuss with us any new features planned for -CURRENT, beginning 1 October.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese )

    The project runs as it should be. New security-branch snapshots are available for both 4.5 and 4.6(.2). I've update buildboxes OS to the latest 5-current/4-stable without any errors. Also current problem, less CPU power for the future, is not solved yet -- but situation is not so bad, I hope I'll show a good news in the next report.

    FreeBSD Donations Team Michael Lucas donations@FreeBSD.org

    The Donations team started rolling in the last couple of months. Offers of equipment are coming in, and we are allocating them to FreeBSD committers as quickly as possible. We now have a "Committer Want List" available in our section of the Web site. Several small items, such as network cards, have been routed to people who are willing to write the code to support them. We have a few larger donations (i.e., actual servers) ready to go to developers, once shipping information is straightened out.

    RAIDFrame for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - Project homepage + Project homepage

    Work on RAIDFrame stalled for quite a bit, then it picked up in early summer, then it stalled, and now it's going again. A significant amount of work has been done to make the locking SMPng-friendly and to cut down on kernel stack abuse. I'm happy to say that it's starting to work reliably when used with file- backed 'md' disks. Even more exciting is that it's finally starting to work on real disks, too. A lot of cleanup is still needed, and a few gross hacks still exist, but it might actually be ready for the FreeBSD 5.0 release. Patches for FreeBSD 5-current and 4-stable are available from the website. The 4-stable patches are a year old but still apply and perform well.

    Libh Status Report Antoine Beaupré anarcat@anarcat.ath.cx Alexander Langer - alex@freebsd.org + alex@FreeBSD.org - Project's home + Project's home page

    The primary libh development box, where the CVS repo and development webpage was living, is dead. The server has crashed after a system upgrade and has never came back to life. We had to pull the drives out of it to make proper backups. We will setup another box in place of this one and hope for the best. So right now, the port is broken because the CVS is unaccessible, as the development web page. We're working on it, please bear with us.

    On a brighter note, Max started implementing the changes he proposed to the build system and the TCL API; LibH is switching to SWIG for its TCL bindings, which should simplify the system a lot, and shorten build times. The Hui subsystem is therefore being completely re-written. On my side, I made a few tests in building and running LibH under rhtvision, and it didn't fulfill the promises I thought it would, so I just put aside that idea. Work on libh stalled during July because I completely lost network access for the whole month. So right now, LibH is in a bit of a mess, but we have high hopes of settling everything down to a new release pretty soon, which will make full use of the new SWIG bindings.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    The Security Team continues to be very busy. The security-officer mailing list traffic for the months of June, July, and August consisted of 1,230 messages (over 13 messages a day). This is well over 50% of the freebsd-hackers traffic volume in the same period!

    Since June (the time of our last report), 9 new Security Advisories were published, and one Security Notice was published covering 25 Ports Collection issues.

    FreeBSD 4.6.2-RELEASE was released on August 15th. This marked the first time a point release was created from the security branch. The process went smoothly from the Security Team perspective, despite a schedule slippage due to newly discovered bugs, and a snafu which resulted in 4.6.1-RELEASE being skipped.

    In September, the FreeBSD Security Officer published a new PGP key (ID 0xCA6CDFB2, found on the FTP site and in the Handbook). This aligned the set of those who possess the corresponding private key with the membership of the security-officer alias published on the FreeBSD Security web site. It also worked around an issue with the deprecated PGP key being found corrupted on some public key servers.

    TrustedBSD Mandatory Access Control (MAC) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org

    It's been a busy few months, with a variety of development, documentation, and public relations activities. The MAC Framework, our pluggable kernel access control mechanism for FreeBSD, has matured substantially, and large parts of it were merged to the main FreeBSD tree over July and August.

    A variety of entry point changes were made, including: component names are now passed to VFS namespace VOPs; aggressive caching of MAC labels in vnodes; mmap memory access downgrades on subject relabel; check for access()/eaccess(); checks for vnode read, write, ioctl, pool, permitting revocation post-open() by aware policies; labeling and access control checks for pipe IPC objects, clean up of socket/visibility checks; checks for socket bind, connect, listen, ....; many locking improvements and assertions, especially for vnodes, processes; framework now supports partial label updates on subjects and objects; credential management in 'struct file' improved so that active_cred and file_cred are more carefully distinguished and passed to MAC framework explicitly; accounting system uses cached credentials for write operations now; socreate() can use cached credential to label sockets fixing deferred nfs socket connections and reconnections with TCP; kse interactions with proc1 fixed; IO_NOMACCHECK flag to vn_rdwr() for internal use to avoid redundant or incorrect MAC checks on aio vnode operations; mac_syscall() policy function demux; su no longer changes MAC labels by default; mac_get_pid() to support ps and getpmac -p pid; mmap revocation defaults to "fail stop"; MAC_DEBUG wraps atomic label counters; UFS2 extended attributes supported; initial port of LOMAC to the MAC framework; update all policies for all these changes; merge of KSE III; merge of nmount(); upgrade of ugidfw to speak user and group names; libugidfw; many namespace and naming consistency improvements; module dependencies on MAC framework; large scale merging of MAC functionality to the main FreeBSD tree. KDE interfaces to common management activities.

    Wrote and taught full-day MAC framework tutorial at STOS BSD and Darwin Security Symposium; first draft of MAC framework architecture and API guide. This is now in the Developer's Handbook.

    Next couple of months will bring continued maturity improvements, labeling and protection of more objects; VFS performance improvements; better support for UFS2 EAs and separate EA entries for each policy; improved support for LOMAC; MLS compartments; IPsec security association labeling; improved SEBSD FLASK/TE port; and much more.

    diff --git a/en/news/status/report-june-2001.xml b/en/news/status/report-june-2001.xml index 9642ad92d1..4904ce5fa2 100644 --- a/en/news/status/report-june-2001.xml +++ b/en/news/status/report-june-2001.xml @@ -1,826 +1,826 @@ - + June 2001 - $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.5 2001/09/18 17:48:22 chris Exp $ + $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.6 2003/04/13 16:31:52 hrs Exp $
    Introduction

    One of the benefits of the FreeBSD development model is a focus on centralized design and implementation, in which the operating system is maintained in a central repository, and discussed on centrally maintained lists. This allows for a high level of coordination between authors of various components of the system, and allows policies to be enforced over the entire system, covering issues ranging from architecture to style. However, as the FreeBSD developer community has grown, and the rate of both mailing list traffic and tree modifications has increased, making it difficult even for the most dedicated developer to remain on top of all the work going on in the tree.

    The FreeBSD Monthly Development Status Report attempts to address this problem by providing a vehicle that allows developers to make the broader community aware of their on-going work on FreeBSD, both in and out of the central source repository. This is the first issue, and as such is an experiment. For each project and sub-project, a one paragraph summary is included, indicating progress since the last summary (in this case, simply recent progress, as there have been no prior summaries).

    This status report may be reproduced in whole or in part, as long as the source is clearly identified and appropriate credit given.

    Future Editions

    Assuming there is some positive feedback on this idea, and that future submissions get made such that there is content for future issues, the goal is to release a development status report once a month. As such, the next deadline will be July 31, 2001, with a scheduled publication date in the first week of August. This will put the status report on a schedule in line with the calendar, as well as providing a little over a month until the next deadline, which will include a number of pertinent events, including the Annual USENIX Technical Conference in Boston, MA. Submissions should be e-mailed to:

    robert+freebsd.monthly@cyrus.watson.org

    Many submitters will want to wait until the last week of July so as to provide the most up-to-date status report; however, submissions will be accepted at any time prior to that date.

    -- Robert Watson < rwatson@FreeBSD.org >

    Binary Updater Project Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org - +

    The FreeBSD Binary Updater Project aims to provide a secure mechanism for the distribution of binary updates for FreeBSD. This project is complementary to the Open Packages and libh efforts and there should be very little overlap with those projects. The system uses a client / server mechanism that allows clients to install any known "profile" or release of FreeBSD over the network. Where a specific profile might contain a specific set of FreeBSD software to install, additional packages, and configuration actions that make it more ideal for a specific environment (ie FreeBSD 4.3 Secure Web Server Profile)

    The system can currently be used to install a FreeBSD system or perform the most simple of upgrades but many features are absent. In particular, the client is in its infancy and much work remains to be done. We need additional developers so please get in touch with us at updater@osd.bsdi.com if you are interested in spending some cycles on this.

    Problem Reports Poul-Henning Kamp phk@FreeBSD.org

    Poul-Henning Kamp kicked off a drive to get our GNATS PR database cleaned up so the wheat can be sorted from the chaff. Progress is good, but there is still a lot of work to do. Give a hand if you can. Remember: every unhandled PR is a pissed off contributor or user.

    CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

    I'm in the process of rewriting the CVSROOT/scripts to make them more clean and configurable. A lot of other projects also use these and so it makes sense to make them as easy to use in other environments as possible.

    Status: work in progress. There is now a configuration file, but not all the scripts use it yet.

    DEVFS Poul-Henning Kamp phk@FreeBSD.org

    Work is progressing on implementing true cloning devices in DEVFS. Brian Somers and Poul-Henning Kamp are working to make if_tun the first truly cloning driver in the system. Next will be the pty driver and the bpf driver.

    From July 1st DEVFS will be standard in -current.

    digi driver Brian Somers brian@FreeBSD.org

    Added the digi driver. Initial work was done by John Prince <johnp@knight-trosoft.com>, but all the modular stuff was done by me and initial work on supporting Xe and Xi cards (ala dgb) was done by me. I'm now awaiting an Xe card being sent from joerg@ (almost a donation) so that I can get that side of things working properly.

    Diskcheckd Poul-Henning Kamp phk@FreeBSD.org

    Ben Smithurst has written a "diskcheckd" daemon which will read all sectors on the disks over a configured period. With recent increases in disksizes it is by no means a given that disk read errors will be discovered before they are fatal. This daemon will hopefully result in the drive firmware being able to relocate bad sectors before they become unreadable. This code is now committed to 5.0-CURRENT.

    if_fxp driver Jonathan Lemon jlemon@FreeBSD.org

    In the last month (May-June), the new fxp driver was brought into -stable. This new driver uses the common MII code, so support for new PHYs is easy to add. Support for the new Intel 82562 chips was added. The driver was updated to add VLAN support and a workaround for a bug affecting Intel 815-based boards.

    Java Project Greg Lewis glewis@eyesbeyond.com

    The FreeBSD Java Project has continued its "behind the scenes" work over the last month. Progress was made both technically, with the help of Bill Huey (of Wind River), on a port of JDK 1.3.1 and legally, with Nate Williams continuing negotiations with Sun on a mutually acceptable license to release a binary Java 2 SDK under. The JDK 1.2.2 port has also seen some development, with a new patchset likely to be released soon which includes JPDA and NetBSD support (the latter courtesy of Scott Bartram).

    Kernel Graphics Interface port Nicolas Souchu nsouch@fr.alcove.com

    The Kernel Graphics Interface project has worked for several years to provide a framework for graphic drivers under Linux receiving input from other groups like the UDI project. Currently the KGI core implementation is quite settled, as is the driver coding model as a whole. Work is being done to newbussify KGI and produce a kld, as part of a future redesign of the graphics subsystem in FreeBSD. KGI will be an alternative for graphic card producers that don't accept the XFree86 model of userland graphic adapters and will also provide accelerated support for any other graphic alternative.

    libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org - +

    The libh project is a next generation sysinstall. It is written in C++ using QT for its graphical frontend and tvision for its console support. The menus are scriptable via an embedded tcl interpreter. It has been growing functionality quite a bit lately, including a new disklabel editor. Current work is on installation scripts for CDROM, FTP, ... installs as well as a fully functional standalone disk-partition and label editor. The GUI API was extended a little and many bugs were fixed. There seems to be some interest in i18n work.

    Mount(2) API Poul-Henning Kamp phk@FreeBSD.org

    Maxime Henrion is working on implementing a new and more extensible mount(2) systemcall, mainly to overcome the 32 bits for mountoptions limit, secondary goal to make it possible to mount filesystems from inside the kernel.

    OLDCARD pccard implementation Warner Losh imp@FreeBSD.org

    In the last two months, the OLDCARD pccard implementation was rototilled to within an inch of its life. Many new pci cardbus bridges were added. Power handling was improved. PCI Card cardbus bridges are nearly supported and should be committed in early June to the tree. This will likely be the last major work done on OLDCARD. After pci cards are supported, work will shift to improving NEWCARD.

    PowerPC Port Benno Rice benno@FreeBSD.org

    The PowerPC port is proceeding well. All seems to be working in pmap.c after a number of problems encountered where FreeBSD passes a vm_page_t to a NetBSD-derived function that expects a vm_offset_t. Then after debugging the atomic operations code, I'm now at the point where VM appears to be initialized and it's now hanging while in sys/kern/kern_malloc.c:kmeminit(). Progress continues. =)

    PPP Brian Somers brian@FreeBSD.org

    Developing full MPPE support for Andre Opperman @ Monzoon in Switzerland. Work is now complete and will eventually be brought into -current, but no dates are yet known.

    pseudofs Dag-Erling Smorgrav des@FreeBSD.org

    Pseudofs is a framework for pseudo-filesystems, like procfs and linprocfs. The goal of pseudofs is twofold:

    • eliminate code duplication between (and within) procfs and linprocfs
    • isolate procfs and linprocfs from the complexities of the vfs system to simplify maintenance and further development.

    Pseudofs has reached the point where it is sufficiently functional and stable that linprocfs has been almost fully reimplemented on top of it; the only bit that's missing is the proc/<pid>/mem file.

    The primary to-do item for pseudofs right now is to add support for writeable files (which are required for procfs, and are quite a bit less trivial to handle than read-only files). In addition, pseudofs needs either generic support for raw (non-sbuf'ed, possibly mmap'able) files, or failing that, special-case code to handle proc/<pid>/mem.

    RELNOTESng Bruce A. Mah bmah@FreeBSD.org - +

    RELNOTESng is the name I've given to the rewrite of the *.TXT files that typically accompany a FreeBSD release. The information from these files (which include, among other things, the release notes and the supported hardware list) have been reorganized and converted to SGML. This helps us produce the documentation in various formats, as well as facilitating the maintenance of documentation for multiple architectures. This work was recently committed to -CURRENT, and I intend to MFC it to 4-STABLE before 4.4-RELEASE.

    SMPng Project John Baldwin jhb@FreeBSD.org Jake Burkholder jake@FreeBSD.org SMP Mailing list smp@FreeBSD.org - +

    The SMPng project aims to provide multithreaded support for the FreeBSD kernel. Currently the kernel still runs almost exclusively under the Giant kernel lock. Recently, progress has been made in locking the process group and session structures as well as file descriptors by Seigo Tanimura-san. Alfred Perlstein has also added in a giant lock around the entire virtual memory (VM) subsystem which will eventually be split up into several smaller locks. The locking of the VM subsystem has proved tricky, and some of the current effort is focused on finding and fixing a few remaining bugs in on the alpha architecture.

    SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org - +

    mb_alloc is a new specialized allocator for mbufs and mbuf clusters. Presently, it offers various important advantages over the old (status quo) mbuf allocator, particularly for MP machines. Additionally, it is designed with the possibility of future enhancements in mind.

    Presently in initial review & testing stages, most of the code is already written.

    Sparc64 Port Jake Burkholder jake@FreeBSD.org

    Work has (re)started on a port of FreeBSD to the UltraSPARC architecture, specifically targeting PCI based workstations. Jake Burkholder will be porting the kernel, and Ade Lovett has expressed an interest in working on userland. Recent work on the project includes:

    • built a gnu cross toolchain targeting sparc64
    • obtained remote access to an ultra 5 development machine (thanks to emmy)
    • developed a minimal set of headers and source files to allow the kernel to be compiled and linked
    • implemented a mini-loader which relocates the kernel, maps it into the tlbs and calls it
    • nabbed Benno Rice's openfirmware console driver which allows printf and panic to work

    At this point the kernel can be net-booted and prints the FreeBSD copyright before calling code that is not yet implemented. I am currently working on a design for the pmap module and plan to begin implementation in the next few days.

    TrustedBSD Robert Watson rwatson@FreeBSD.org

    The TrustedBSD Project seeks to improve the security of the FreeBSD operating system by adding new security features, many derived from common trusted operating system requirements. This includes Access Control Lists (ACLs), Fine-grained Event Logging (Audit), Fine-grained Privileges (Capabilities), Mandatory Access Control (MAC), and other architecture features, including file system extended attributes, and improved object labeling.

    Individual feature status reports are documented separately below; in general, basic features (such as EAs, ACLs, and kernel support for Capabilities) will be initially available in 5.0-RELEASE, conditional on specific kernel options. A performance-enhanced version of EAs is currently being targeted at 6.0-RELEASE, along with an integrated capability-aware userland, and MAC support.

    TrustedBSD: ACLs Chris D. Faulhaber jedgar@FreeBSD.org

    Patches are now available to add ACL support to cp(1) and mv(1) along with preliminary support for install(1). Ilmar's i18n patches for getfacl(1) and setfacl(1) need to be updated for the last set of changes and committed. Some other functional improvements are also in the pipeline.

    TrustedBSD Capabilities Thomas Moestl tmm@FreeBSD.org

    The kernel part of the capability implementation is mostly finished; all uses of suser() and suser_xxx() and nearly all comparisons of uid's with 0 have been converted to use the newly introduced cap_check() call. Some details still need clarification. More documentation for this needs to be done.

    POSIX.2c-compatible getfcap and setfcap programs have been written. Experimental capability support in su(1), login(1), install(1) and bsd.prog.mk is being tested.

    Support for capabilities, ACL's, capabilities and MAC labels in tar(1) is being developed; only the capability part is tested right now. Generic support for extended attributes is planned, this will require extensions to the current EA interface, which are written and will probably be committed to -CURRENT in a few weeks. A port of these features to pax(1) is planned.

    TrustedBSD MAC and Object Labeling Robert Watson rwatson@FreeBSD.org

    An initial prototype of a Mandatory Access Control implementation was completed earlier this year, supporting Multi-Level Security, Biba Integrity protection, and a more general jail-based access control model. Based on that implementation, I'm now in the process of improving the FreeBSD security abstractions to simplify both the implementation and integration of MAC support, as well as increase the number of kernel objects protected by both discretionary and mandatory protection schemes. Generic object labeling introduces a structure not dissimilar in properties to the kernel ucred structure, only it is intended to be associated with kernel objects, rather than kernel subjects, permitting the creation of generic security protection routines for objects. This would allow the easy extension of procfs and devfs to support ACLs and MAC, for example. A prototype is underway, with compiling and running code and simple protections now associated with sysctl's.

    diff --git a/en/news/status/report-mar-2003-sep-2003.xml b/en/news/status/report-mar-2003-sep-2003.xml index 6e5d8f7df2..3caa2a7145 100644 --- a/en/news/status/report-mar-2003-sep-2003.xml +++ b/en/news/status/report-mar-2003-sep-2003.xml @@ -1,970 +1,970 @@ - + March-September 2003
    Introduction:

    The FreeBSD Bi-monthly status reports are back! In this edition, we catch up on seven highly productive months and look forward to the end of 2003.

    As always, the FreeBSD development crew has been hard at work. Support for the AMD64 platform quickly sprang up and is nearly complete. KSE has improved greatly since the 5.1 release and will soon become the default threading package in FreeBSD. Many other projects are in the works to improve performance, enhance the user experience, and expand FreeBSD into new areas. Take a look below at the impressive summary of work!

    Scott Long, Robert Watson

    VideoBSD John-Mark Gurney jmg@FreeBSD.org Documentation of VideoBSD

    Still in the planning stage. Working on creating an extensible interface that is usable for both userland and kernel implementations for device drivers. Deciding on how to interface userland implemented device drivers with applications.

    KSE Dan Eischen deischen@FreeBSD.org David Xu davidxu@FreeBSD.org - KSE Project + KSE Project Page

    KSE seems to be working well on x86, amd64, and ia64. The alpha userland bits are done, but a couple of functions are unimplemented in the kernel. For sparc64, the necessary functions are implemented in the kernel, but the userland context switching functions need more attention.

    Since 5.1, efficient scope system threads (no upcalls when they block) have been implemented, and KSE based pthread library can have both POSIX scope process threads and scope system threads. It is also possible that KSE based pthread library can implement pthread both in 1:1 and M:N mode, I know Dan has such Makefile file patch for libkse not yet committed.

    KSE program now can work under ULE scheduler, its efficient should be improved under the new scheduler in future. BSD scheduler is still the best scheduler for current KSE implement.

    FreeBSD/ia64 Marcel Moolenaar marcel@FreeBSD.org Project home page.

    Much has happened since the last bi-monthly report, which was more than half a year ago. FreeBSD 5.0 and FreeBSD 5.1 have been released for example. With FreeBSD 5.2 approaching quickly, we're not going to look back too far when it comes to our achievements. There's too much ahead of us...

    Two milestones have been reached after FreeBSD 5.1. The first is the ability to support both Intel and HP machines with sources in CVS. This due to a whole new driver for serial ports, or UARTs. Unfortunately this still implies that syscons is not configured. That's another task for another time, but keep an eye on KGI/FreeBSD... The second milestone is the completion of KSE support. Both M:N and 1:1 threading is functional on ia64 and the old libc_r library has been obsoleted. Testing has shown that KSE (i.e. M:N) may well become the default threading model. It's looking good.

    The ABI hasn't changed after 5.1 and the expectation is that it won't change much. This means that we can think about becoming a tier 1 platform. This also means we need gdb(1) support. Work on it has been started but the road is bumpy and long. Kernel stability also has improved significantly and we typically have one kernel panic remaining: VM fault on no fault entry. This will be addressed with the long awaited PMAP overhaul (see below).

    Most work for FreeBSD 5.2 will be "sharpening the saw". Get those loose ends tied. This is a slight change of plan made possible by a slip in the release schedule. The 5.2 release is not going to be the start of the -stable branch; it has been moved to 5.3. So, we use the extra time to prepare the ground for 5.3.

    The planned PMAP overhaul will probably be finished after 5.2. This should address all known issues with SMP and fix those last panics. As a side-effect, major performance improvements can be expected. More news about this in the next status reports.

    Disk I/O Poul-Henning Kamp phk@FreeBSD.org

    The following items are in progress in the Disk I/O area: Turn scsi_cd.c into a GEOM driver. (Patch out for review). Turn atapi-cd.c into a GEOM driver. Turn fd.c into a GEOM driver. Move softupdates and snapshot processing from SPECFS to UFS/FFS. Move userland access to device drivers out of vnodes.

    Once these preliminaries are dealt with, scatter/gather and mapped/unmapped support will be added to struct bio/GEOM.

    Binary security updates for FreeBSD Colin Percival cperciva@daemonology.net

    FreeBSD Update is a system for tracking the FreeBSD release (security) branches. In addition to being faster and more convenient than source updates, FreeBSD Update also requires less bandwidth and is more secure than source updates via CVSup. However, FreeBSD Update is limited; it can only update files which were installed from an official RELEASE image and not recompiled locally. Right now I'm publishing binary updates for 4.7-RELEASE and 4.8-RELEASE; since my only available box takes 3.5 hours to buildworld, I don't have enough resources to do any more than that.

    In the near future, I'd like to: Find someone who is willing to donate a faster buildbox; start building updates for other releases (at a minimum, for all "supported" FreeBSD releases); add warnings if a file would have been updated but can't be updated because it was recompiled locally; add code to compare the local system against a list of "valid" MD5 hashes for intrusion detection purposes; and add support for cross-signing, whereby several machines could build updates independently to protect against buildbox compromise.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr http://pf4freebsd.love2party.net PF homepage PF FAQ

    The project started this spring and released version 1.0 with a port installation (security/pf) in may 2003. Version 2.0 is on the doorstep as OpenBSD 3.4 will be released. Due to the porting efforts we were able to reveal some bugs in the OpenBSD code and provided locking for the PFIL_HOOKS, which we utilize. Tarball installation of a loadable kernel module for testing can be found on the project homepage, a patchset is in the making.

    PF was started at OpenBSD as a substitute for ipfilter and provides the same function set. However, in the two years it exists now, it has gained many superior features that no other packet filter has. For a impression take a look at the pf FAQ.

    We hope to be eventually integrated into the base system. Before that we have to resolve some issues with tcpdump and kame.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030908.tar.gz. I have also prepared patch for the FreeBSD source tree. The patch was submitted for review to the committers.

    Fixed few bugs in kernel modules. The ng_hci(4) and ng_l2cap(4) modules were changed to fix issue with Netgraph timeouts. The ng_ubt(4) module was changed to fix compilation issue on -current.

    Improved user-space utilities. Implemented new libsdp(3). Added new sdpcontrol(8) utility. The rfcomm_sppd(1), rfcomm_pppd(8) and obexapp(1) were changed and now can obtain RFCOMM channel via SDP from the server. The hccontorol(8) utility now has four new commands. The hcsecd(8) daemon now saves link keys on the disk.

    I've been recently contacted by few individuals who whould like to port current FreeBSD Bluetooth code to other BSD systems (OpenBSD and NetBSD). The work is slowly progressing towards un-Netgraph'ing current code. In the mean time Netgraph version will be the primary supported version of the code.

    Rescue build infrastructure Gordon Tetlow gordon@FreeBSD.org Tim Kientzle kientzle@FreeBSD.org

    The rescue build infrastructure has been committed. There is one known issue with make using both the '-s' and '-j' flags that appears to be a bug in make. Anyone interested in tracking down should contact us.

    Dynamically Linked Root Support Gordon Tetlow gordon@FreeBSD.org

    Support for a dynamically linked /bin and /sbin has been committed, although it is not turned on by default. Adventurous users can try it out by building /bin and /sbin using the WITH_DYNAMICROOT make flag. More testing is needed to determine if this is going to be default for 5.2-RELEASE. If anyone would like to benchmark worldstones with and without dynamically linked /bin and /sbin, please feel free to do so and submit the results.

    ACPI Status Report Nate Lawson njl@FreeBSD.org

    Work is continuing on updating ACPI with new features as well as bugfixing. A new embedded controller driver was written in July with support for the ACPI 2.0 ECDT as well as more robust polling support. Also, a buffer overflow in the ACPICA resource list handling that caused panics for some users was fixed. Marcel helped get acpidump(8) tested and basically working on ia64.

    Upcoming work includes integrating ACPI notifies with devd(8), committing user-submitted drivers for ASUS and Toshiba hotkeys, Cx processor sleep states (so my laptop doesn't burn my lap), and power resource support for intelligently powering down unused or idle devices.

    Users who have problems with ACPI are encouraged to submit a PR - and email its number to acpi-jp@jp.freebsd.org. Bug reports + and email its number to acpi-jp@jp.FreeBSD.org. Bug reports of panics or crashes have first priority and non-working features or missing devices (except suspend/resume problems) second. Reports of failed suspend/resume should NOT be submitted as PRs at this time due to most of them being a result of incomplete device support that is being addressed. However, feel free to mail them to the list as any information is helpful.

    uart(4) Marcel Moolenaar marcel@FreeBSD.org

    The uart(4) project was born out of the need to have a working serial interface (i.e. an RS-232-C interface) in a legacy-free configuration and after an unsuccessful attempt to convert sio(4). The biggest problem with sio(4) is that it has been intertwined in many ugly ways into the kernel's core. Conversion could not happen without breaking something that invariably affects some group of people negatively. With sio(4) as a good bad example and a strong desire to solve multiple problems at once, the idea of an UART (Universal Asynchronuous Receiver/Transmitter) device that, given its generic name, could handle different flavors of UART hardware started to settle firmly in the authors mind.

    The biggest challenge was of course solving the problem of the low-level console access prior to the initialization of the bus infrastructure and still have a driver that uses the bus access exclusively. Along the way the problem of having an UART function as the keyboard on sparc64 was solved with the introduction of system devices, which also encapsulated the console as a system device.

    The uart(4) driver can be enhanced to support the various UART hardware on pc98 and this is currently being worked on. Keyboard support on sparc64 is underway as well. Plans exist for a rewrite of the remote gdb support that uses a generic interface to allow various drivers, including uart(4), to register itself as a communications channel. And since uart(4) does not support multi- port cards by itself, we likely need to either enhance puc(4) or otherwise introduce other umbrella drivers

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches.

    Since I ported icc to FreeBSD I wanted to build FreeBSD with icc. Now with icc 7.1 (and some patches) it is possible. There are still some bugs, e.g. NFS doesn't work with an icc compiled kernel, IP seems to be fragile, and some advanced optimizations trigger an ICE (Intel is working on it). At the moment I'm waiting for our admins to install icc on the FreeBSD cluster (we got a commercial license from Intel, so we are allowed to distribute binaries which are compiled with icc), after that I will try to convince some people with more knowledge of the IP and NFS parts of the kernel to debug the remaining problems. When the icc compiled kernel seems to work mostly bugfree the userland will get the porting focus. Interested people may try to do a build of the ports tree with icc independently from the status of the porting of the userland... if this happens at the FreeBSD cluster, we would also be allowed to distribute the binaries.

    Benefits include: another set of compiler errors (debugging help), more portable source, and code which is better optimized for a P4 (gcc has some drawbacks in this area)

    KDE FreeBSD Project KDE-FreeBSD Mailinglist kde@FreeBSD.org

    The FreeBSD ports were updated to KDE 3.1.4, another bug- and security-fixes release. With this update, the QT port was updated to version 3.2. Both will be included in FreeBSD 4.9. Significant work was spent to fix KDE on FreeBSD-CURRENT after the removal of the gcc -pthread Option. Automatic package builds from KDE CVS continued to ensure and improve the quality of the upcoming KDE 3.2 release.

    Future: Work is in progress to setup a new server for hosting the KDE-FreeBSD Website, Repository and another KDE CVS mirror. With help from Marcel Moolenaar the project will try to make KDE compile and working on the Intel IA64. And last but not least efforts are being made to fix the currently broken kdesu program.

    WifiBSD Status Report Jon Disnard masta@wifibsd.org www.wifibsd.org

    WifiBSD is a miniture version of FreeBSD for wireless applications. Originally for the Soekris Net45xx line of main-boards, but is now capable of being targeted to any hardware/architecture FreeBSD itself supports. Although not feature complete, WifiBSD is expected to be ready for 5.2-RELEASE. The design goal is to meet, or exceed, the functionality of commercial/consumer 802.11 wireless gear. Features that need attention (to name just a few) are: http interface, consol menu interface, and installation. Volunters are welcome.

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    Work has restarted after a hiatus. Current focus is on getting loadable modules working, NEWBUSing the NetBSD dbdma code, and completing the BMAC ethernet driver.

    There is a huge amount of work to do. Volunteers more than welcome!

    AMD64 Porting Peter Wemm peter@FreeBSD.org

    The last known bug that prevented AMD64 machines completing a full release has been fixed - one single character error that caused ghostscript to crash during rendering diagrams. SMP work is nearing completion and should be committed within the next few days. The SMP code uses the ACPI MADT table based on John Baldwin's work-in-progress there for i386. We need to spend some time on low level optimization because there are several suboptimal places that have been ignored for simplicity, context switching in particular. MTRR support has been committed and XFree86 can use it. cvsup now works but the ezm3 port has not been updated yet. The default data segment size limit is 8GB instead of 512M, and the (primitive) i386 binary emulation support knows how to lower the rlimits for executing 32 bit binaries.

    Notable things missing still: Hardware debug register support needs to be written; gdb is still being done as an external set of patches relative to the not-yet-released FSF gdb tree; DDB does not disassemble properly; DDB cannot do stack traces without -fno-omit-frame-pointer - a stack unwinder is needed; i386 and amd64 linux binary emulation is needed, and the i386 FreeBSD binary emulation still needs work - removing the stackgap code in particular.

    The platform in general is very reliable although a couple of problems have been reported over the last week. One appears to be a stuck interrupt, but all that code has been redone for SMP support.

    bsd.java.mk version 2.0 Ernst De Haan znerd@FreeBSD.org Herve Quiroz herve.quiroz@esil.univ-mrs.fr Project homepage

    The FreeBSD Java community has started an effort to improve the current framework for Java-based ports. The main objective is the automation of JDK/JRE build and run dependency checking.

    The original version was aimed to ease the life of porters. Although it has proved to be useful and reliable to a great extend, we are currently working on a new version. We intend to reach a high degree of flexibility to cope with the recent increase of available JDK/JRE flavors. Furthermore, the new version will be easier to maintain, which means improved reliability, and hopefully more frequent updates.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    The BSD Java Porting Team has recently reached an exciting milestone with the release of the first "Diablo" JDK and JRE courtesy of the FreeBSD Foundation. The release of Diablo Caffe and Diablo Latte 1.3.1 was the first binary release of a native FreeBSD JDK since 1.1.8 and marks an important step forward in FreeBSD Java support.

    The team is continuing development work, with a focus on achieving a compliant JDK 1.4 release in the near future.

    ATAPI/CAM Status Report Thomas Quinot thomas@FreeBSD.org

    With the introduction of ATAng, some users of ATAPI/CAM have experienced various problems. These have been mostly tracked down to issues in the new ATA code, as well as two long-standing problems in portions of the CAM layer that are rarely exercised with "real" SCSI SIMs. This has also been an occasion to cleanup ATAPI/CAM to make it more robust, and to enable DMA for devices accessed through it, resulting in improved performances.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-5.1.tbz

    We have released Japanese translation of 5.1-RELEASE online manual pages on June 10.

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Several months ago, I took it upon myself to to try present the - information contained on the bento + information contained on the bento build cluster to be presented in a more user-friendly fashion; that is, to be browsed by error type, by maintainer, and so forth. An early addition was code to attempt to classify ports PRs by either "existing port" (after assiging the most likely category and portname); "new port"; "framework" (e.g. bsd.port.mk changes); and "unknown". Various columns about the ports PRs were added to the reports.

    The initial intent of this was to make life easier for ports maintainers; however, the "general" reports are also useful to anyone who just wants to, e.g., find out if a particular port is working on their particular architecture and OS combination before downloading it. Those with that general interest should start with the overview of one port.

    kgi4BSD Status Report Nicholas Souchu nsouch@FreeBSD.org Project URL

    A lot of work done since last report: site reworked completly (see new URL), console design with console message in text or graphic modes implemented, implementation of a compatibility layer to compile Linux fbdev drivers with more or less changes in the original driver (experimental).

    Except some memory allocation bugs, X (XGGI based on XFree 3.3.6) is now working with the same driver as the console. A basic terminal has now to be implemented.

    Volonteers are welcome to the project...

    Device_t locking Warner Losh imp@FreeBSD.org

    A number of races have been identified in locking device_t. Most of the races have been identified in making device_t have to do with how drivers are written. Efforts are underway to identify all the races, and to contact the authors of subsystems that can help the drivers. Of special concern is the need for the driver to ensure that all threads are completely out of the driver code before detach() finishes. Of additional concern is making sure that all sleepers are woken up before certain routines are called so that other subsystems can ensure the last condition and leave no dangling references. Locking device_t is relatively straight forward apart from these issues. Towards the end of proper locking, sample strawmen drivers are being used to work out what, exactly proper is. Once these issues are all known and documented in the code, efforts will be made to update relevant documentation in the tree. There are many problems with driver locking that has been done to date, but until we nail down how to write a driver in current, it will be premature to contact specific driver writers with specific concerns.

    Cryptographic Support Sam Leffler sam@FreeBSD.org

    Support for several new crypto devices was added. The SafeNet 1141 is a medium performance part that is not yet available on retail products. The Hifn 7955 and 7956 parts are starting to appear on retail products that should be available by the end of the year. Both devices support AES encryption. Support for public key operations for the SafeNet devices was recently done for OpenBSD and will be backported. Public key support for the Hifn parts is planned.

    A paper about the performance work done on the cryptographic subsystem was presented at the Usenix BSDCon 2003 conference and received the best paper award.

    NetBSD recently imported the cryptographic subsystem.

    Release Engineering Status Scott Long re@FreeBSD.org

    The release of 4.9 is just around the corner and offers Physical Address Extensions (PAE) for x86 along with the same world-class stability and performance that is expected from the 4-STABLE series. As always, don't forget to purchase a copy of the CD set from your favorite FreeBSD vendor.

    FreeBSD 5.1 was released in June and offered vastly improved stability over 5.0 along with a working implementation of Kernel Scheduled Entities, allowing for true multithreading of applications across multiple CPUs. FreeBSD 5.2 will be released by the end of 2003 and will focus on improved network and overall performance.

    Wireless Networking Support Sam Leffler sam@FreeBSD.org

    Numerous bugs have been fixed since the last status report (and of course a few new ones added). Progress on improved security has been slowed by other work. But new features and fixes are coming in from other groups that are now sharing the code. In particular NetBSD recently imported the revised 802.11 layer and the Linux-based MADWIFI project is using it too (albeit in an older form). The MADWIFI users have already contributed features such as fragmentation reassembly of 802.11 frames and improved signal monitoring. Power save polling and an improved rate control algorothm are expected to come in from the NetBSD folks. WPA support is still in the plans; the best estimate is that work on that will start in January.

    Network Subsystem Locking and Performance Sam Leffler sam@FreeBSD.org

    The purpose of this project is to improve performance of the network subsystem. A major part of this work is to complete the locking of the networking subsystem so that it no longer depends on the "Giant lock" for proper operation. Removing the use of Giant will improve performance and permit multiple instances of the network stack to operate concurrently on multiprocessor systems.

    This project started in August. The emphasis has been on locking the "lower half" of the networking code so that packet forwarding through the IPv4 path can operate without the Giant lock as part of the 5.2 release. To this end locking was added to several network interface drivers and much of the "middleware" code in the network was locked (e.g. ipfw, dummynet, then routing table, multicast routing support, etc). Work towards this goal is still ongoing but should be ready for 5.2. A variety of test systems have been running for several months without the Giant lock in the network drivers and IP layer.

    Past the 5.2 release Giant will be removed from the "upper half" of the network subsystem and the socket layer. Once this is done the plan is to measure and improve performance (though some work of this sort is always happening). The ultimate goal is a system that performs at least as well as 4.x for normal use on uniprocessor systems. On multiprocessor systems we expect to see significantly better performance than 4.x due to greater concurrency and reduced latency.

    diff --git a/en/news/status/report-may-2002-june-2002.xml b/en/news/status/report-may-2002-june-2002.xml index 0a10d2f6df..25248f14b7 100644 --- a/en/news/status/report-may-2002-june-2002.xml +++ b/en/news/status/report-may-2002-june-2002.xml @@ -1,1446 +1,1446 @@ - + May - June 2002
    Introduction

    May and June were remarkably busy months for the FreeBSD Project-- FreeBSD developers met in Monterey, CA in June for FreeBSD Developer Summit III to discuss strategy for the FreeBSD 5.0 release later this year, for the USENIX Annual Technical conference and for the FreeBSD BoF. Substantial technical progress was made on FreeBSD 5.0, and FreeBSD 4.6-RELEASE was cut on the RELENG_4 branch in June.

    The remainder of the summer will continue to be busy. Final components and features for 5.0-RELEASE will go into the tree, and the development direction will change from new features to stability, performance, and production-readiness. With additional 5.0 development previews late in the summer, we hope to broaden the tester base for the -CURRENT branch, and start to get early adopters digging out any potential problems in their test environments. I encourage both FreeBSD Developers and FreeBSD Users to give 5.0-DP2 a spin (on a machine without critical data!) and let us know how it goes. The more testing that happens before the release, the less fixing we have to do afterwards!

    Robert Watson

    TCP Hostcache Andre Oppermann oppermann@pipeline.ch

    The current cache for the TCP metrics is embedded directly into the routing table route objects. This is highly inefficient as every route has an empty 56 Byte large metrics structure in it. TCP is the only consumer (except the MTU and Expiry field) of the structure. A full view of the Internet routes (110k routes) has more than 6 Mbyte of unused overhead due to it. The hit rate today is at only approx. 10% in webserver applications. The TCP hostcache will move this entire metrics structure from the routing table to the TCP stack. Every entry is a host entry so a simple hash table is sufficient to keep the entries. Its implementation is much like the TCP Syncache.

    The hostcache is going through testing on our servers and will be ready for committing in September. The results of the TCP metrics measurement will be used to tune the cache.

    IP Routing Table Replacement Andre Oppermann oppermann@pipeline.ch Claudio Jeker jeker@n-r-g.com

    The current Patricia Trie routing table in BSD UNIX is not very efficient and wastes an enormous amount of space for every node (more than 256 bytes) (A full Internet view of 110k routes takes 33 MByte of KVM). Another problem are pointers from and to everywhere in the routing table. This makes replacing the table very hard and also significantly increases the table maintenance burden (for example for some kinds of updates the entire PCB has to be searched linearly). Also this is a heavy burden for SMP locking. The rewrite focuses on untangling the pointer mess, making the routing table replaceable and providing a more IP optimized table (5 MByte for 110k routes). Other new options include policy routing and some structural alignments in the network stack for clarity, simplicity and flexibility.

    The rewritten IP routing table will be ready for committing in October.

    TCP Metrics Measurement Andre Oppermann oppermann@pipeline.ch Olivier Mueller omueller@8304.ch Diploma Thesis of ZHWIN students, look for Olivier Mueller and Daniel Graf

    These students will analyse the tcpdumps of five major Swiss newspaper websites which give a representative overview of the user structure in Switzerland. The nice thing about Switzerland is that is has a very good mix of Modem/ISDN, leased line, Cable, ADSL and 3G/GSM/GPRS users. Every Internet access technology is represented. The goal is to analyze the behavior of all TCP sessions to the monitored sites. Parameters to be analyzed include TCP session RTT, RTT variance, in/outbound BDP, MSS changes, flow control behavior, packet loss, packet retransmit and timing of HTTP traffic to find optimal TCP parameter caching method.

    If you have any other metrics you think is useful please contact me so I can put that into the job description for the Students. The study will be made in September and October.

    NATD rewrite Claudio Jeker jeker@n-r-g.com Andre Oppermann oppermann@pipeline.ch

    The current natd is pretty powerful in translating different kinds of traffic but not very powerful in configuration. This project rewrites natd and parts of libalias to give it a configuration set as powerful and expressive as the ones in ipf (ipnat) and pf. In addition it'll use kqueue and will support aliasing to multiple IP addresses.

    The rewritten natd will be ready for committing in early September.

    FreeBSD/ia64 Peter Wemm peter@FreeBSD.org - IA64 project + IA64 project updates and information.

    IA64 has been progressing slowly. We have access to a prototype 4-way Itaninum2 system from Intel and have managed to get it up and running to the point of being able to access disk and network with SMP enabled. We have a big problem with ACPI2.0 and PCI routing table entries behind pci-pci bridges with no short-term solution in sight. Various WIP items have been committed to CVS, namely more complete support for executing 32bit i386 binaries as well as Marcel Moolenaar's prototype EFI GPT tools.

    Libh Status Report Antoine Beaupre - antoine@usw4.freebsd.org + antoine@usw4.FreeBSD.org Alexander Langer - alex@freebsd.org + alex@FreeBSD.org Nathan Ahlstrom - nra@freebsd.org + nra@FreeBSD.org - - libh + + libh new development web page. - + First snapshots of the diskeditor in action

    Max has been busy cleaning up the user interface dark side, and has come up with a plan to improve the build system (using an automated Makefile dependency generator); the UI design and the TCL glue magic (using Swig). A development page has been created on usw4, publishing a lot of information about the current project status, a Changelog, screenshots, documentation, etc. A new listbox widget has been implemented, making diskeditor look nicer and more usable. The package system backend is being inspected and redesigned to conform to a standard that is itself being re-thought. Indeed, the old sysinstall2.txt text has been SGML-ized and enhanced and now provides a good (although rough) overview of libh package system. This allowed the document to be enhanced with diagrams of how different procedures work. We are therefore getting closer to a real pkgAPI specification document. The package management tools have been slightly enhanced and should be a bit more usable, and we started committing regression test suites in the tree, mostly to test and maintain pkg API conformance.

    So work continues on libh. I plan to take a look at the rhtvision port to see if it would be better to use it for the tvision backend. I'll keep on working on the package system to make it really trustworthy, while Max is continuing his great work on the UI subsystem. I hope to make a new libh alpha release soon. Note that from now on, libh progress will be published on the development page.

    OLDCARD Warner Losh imp@FreeBSD.org

    A major power bug was fixed in oldcard. This caused many problems for people using PCI interrupts having their machines hang on boot. This fix has made it into 4.6.1.

    Cardbus power is now used on all cardbus bridges that support it. This means that we now support 3.3V cards on all cardbus bridges. Before, we only supported them on some of the bridges because every bridge uses different 3.3V power control when programmed through the ExCA registers. Now that we're going through the CardBus bridge's power control register, 3.3V cards work. In fact, for CardBus bridges, the so called X.XV and Y.YV cards will work in those bridges that support them. However, X.XV and Y.YV haven't been defined yet, and no bridges support them (but the bridge interface define it). Obviously this latter part is untested.

    CL-PD6722 support has been augmented slightly. Now it is possible to instruct the driver which type of 3.3V card detection strategy to use. There are three choices: none, do it like the CL-PD6710 does it and do it like the CL-PD6722 does it.

    Preliminary support for the CL-PD6729 on a PCI card using PCI interrupts has been committed. However, it fails for at least one of the cards like this the author has.

    Client drivers can now ask for the manufacturer and model number of the card without parsing the CIS directly.

    Except for fixing bugs and updating pccard.conf entries, no additional work is planned on the OLDCARD system.

    NEWCARD Warner Losh imp@FreeBSD.org

    A devd daemon, to replace pccardd and usbd, has been designed. A few minor bugs have been fixed in NEWCARD. NEWCARD is now the default in -current. There is an experimental pci/cardbus bus code merge available as a branch which will be merged into current as soon as it is stable.

    Status: The ed driver, for non-ne2000 clones, is broken and won't probe. The ata driver won't attach. The sio driver hangs on the first character. The wi driver is known to work well. Cardbus cards are generally known to work well, except for some de based cards, which unfortunately includes the popular Xircom cards. Many systems fail to work because acpi fails to route interrupts correctly for non-root pci bridges.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    Things are going well with the FreeBSD GNOME Project. We have just finished porting the GNOME 2.0 Final development platform and desktop to FreeBSD! We hope to be able to make GNOME 2.0 the default for 5.0-DP2 and 4.7-RELEASE. In the meantime, we're working to port more GNOME 2.0 applications.

    In order to allow GNOME 1.4.1 applications to work with GNOME 2.0, we are revamping the GNOME porting infrastructure. GNOME 1.4.1 based ports are being converted to use the new GNOMENG porting structure. The specifics of this new system will be written up in the GNOME porting guide found on the FreeBSD GNOME project homepage.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    The BSD Java Porting Team has been making slow but steady progress on a number of fronts in the last few months. Unfortunately most of this has occurred behind the scenes, meaning this is a good opportunity to bring the community up to date.

    • Bill Huey has gotten the Java HotSpot Virtual Machine up and running on FreeBSD! While dubbing the code of alpha quality, Bill has been working hard and is able to run major examples such as the Java 2D demo. This code has hit the repository and will soon be available.
    • The port of the 1.4 J2SDK has commenced. The first commits have gone into the tree, although a first patchset is a way off yet.
    • Progress continues with the TCK compliance testing. The current status has the JDK down to 19 compiler failures and 183 runtime failures. As we edge closer to compliance its hoped that example code will be released to allow the community to pull together through the final few bugs.
    • A new patchset for JDK 1.3.1 is imminent. This patchset will include HotSpot for the first time.

    KAME Project SUZUKI Shinsuke core@kame.net KAME Project Web Page IPv6 Showcase at Network+Interop2002 IPv6 Showcase at Network+Interop2002 (detailed, but in Japanase) Pictures of IPv6 Showcase

    I'm afraid KAME Project does not work actively with regard to FreeBSD in these two month, since we are too busy with the demonstration of our IPv6 implementation at Networld+Interop 2002 Tokyo. (Thanks to a great effort, the demonstration was quite successful)

    We are aware of netinet6-related bug reports regarding socket handling, fine-grain locking, ip6fw etc. Regret to say, we could not answer them right now due to the above situation, however we'll discus these issues internally and determine what to do.

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org Call for papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    FreeBSD Release Engineering re@FreeBSD.org

    Over the past few months the FreeBSD Release Engineering Team oversaw a release process that culminated in the release of FreeBSD 4.6 for the i386 and Alpha architectures on June 15. The RE team is currently working concurrently on FreeBSD 4.6.1 and 5.0 DP2. 4.6.1 is a minor point release with an updated SSH and BIND, fixes for some of the reported ata(4) problems, and assorted security enhancements that will be detailed in the release notes. The release engineering activities for 4.6.1 are taking place on the RELENG_4_6 branch in CVS, while the work on 5.0 DP2 is taking place in Perforce so as not to disturb ongoing -CURRENT development. We are still committed to FreeBSD 5.0 on or around November 15, 2002. For more information about upcoming release schedules, please see our website above. The RE team would like to thank Sentex Communications for providing the release builders with access to a fast i386 build machine. Compaq also donated a couple of fast Alpha build machines to the project.

    Fast IPSEC Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPSEC protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPSEC protocols.

    Basic functionality is operational for IPv4 protocols. IPv6 support is coded but not yet tested. Hardware assisted cryptographic operations are working with good performance improvements. Operation with software-based cryptographic calculations appears to be at least as good as the existing implementation. Numerous opportunities for performance improvements have been identified.

    This work is currently being done in the -stable tree. A port to the -current tree is about to start.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    Since the last status report, the following utilities have been brought up to conformance (at least to some degree) with POSIX.1-2001, they include: asa(1), cd(1), compress(1), ctags(1), ls(1), newgrp(1), nice(1), od(1), pathchk(1), renice(1), tabs(1), tr(1), uniq(1), wc(1), and who(1). In addition, development is taking place on bringing the BSD SCCS suite up to date with newer standards.

    On the API front, printf(9) has been given support for the `j' and 'n' flags, waitpid(2) now supports the WCONTINUED option, and an implementation of fstatvfs() and statvfs() has been committed. An implementation of utmpx is in progress, which has an aim to address some of the major problems with the current utmp. Several headers have been brought up to conformance with POSIX.1-2001, they include: <netinet/in.h>, <pwd.h>, <sys/statvfs.h>, and <sys/wait.h>.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPSEC), and OpenSSL (through the /dev/crypto device).

    The software has been available as a patch against the -stable tree for about six months. The core crypto support is tested, including device drivers for the Hifn 7951, and Broadcom 5805, 5820, and 5821 parts. Recent work has concentrated on fixing device driver bugs, fixing support for Hifn 7811 parts, adding support for public key operations, and adding flow-control between the crypto layer and device drivers. Future work includes porting this facility to the -current tree.

    KSE (Kernel schedulable Entity) thread support Julian Elischer julian@FreeBSD.org Dan Eischen deischen@FreeBSD.org Some info here.

    The project took a major step at the beginning of July when Milestone-III was committed. Milestone-III allows a simple test program (available at /usr/src/tools/KSE/ksetest/) to run multiple threads, using kernel support. It does not yet allow the ability to allow these threads to run on different CPUs simultaneously. Milestone IV will be to allow this, however Milestone-III should allow Dan to start (with any interested parties) to start prototyping the userland part of the system. Milestone-III is only currently usable on x86, and does not include some of the requirements for full thread-control, suspension etc. that will be required later.

    Before M-IV is started some small tweaking is likely in the central sources on M-III as we discover issues as we try to get the userland jumpstarted. These will have no effect on non-KSE processes, (i.e. all of them :-) and should not be an issue for other developers.

    A tex/fig->html guru is needed to help maintain the KSE web page (not mentioned above as it is broken).

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    The SMPng project has continued to make steady progress in the past two months. Jeff Roberson completed the switch over to UMA for the general kernel malloc() and free() pushing down Giant appropriately so that callers of malloc() and free() are no longer required to hold Giant. Alan Cox continues to clean up the locking in the VM system pushing down Giant in several of the VM related system calls. Jeffrey Hsu committed locking for TCP/IP protocol control blocks in the network stack. John Baldwin committed the changes to the p_canfoo() API to use thread credentials for subject threads and added appropriate locking for the targer process credentials. Support for adaptive mutexes on SMP systems as well as the new IA32 PAUSE instruction were also committed in May. The kernel tracing facility KTRACE also received an overhaul such that the majority of its work was pushed out into a worker thread allowing trace points to no longer require Giant. Andrew Reiter has also been pushing down Giant in several system calls.

    Bosko continues to work on light-weight interrupt threads for i386. Most of the bugs in the turnstile code have been found and fixed; however, the turnstile and preemption patches have temporarily been put on hold so that more emphasis can be placed on fixing bugs and making -current more stable in preparation for 5.0 release in November. Alan Cox and Andrew Reiter are continuing the work mentioned above. Jeff Roberson is also working on fixing the current vnode locking in VFS. Peter Wemm has also started to tackle TLB issues on SMP in the i386 pmap again as well.

    FreeBSD Security Officer Team Jacques Vidrine nectar@FreeBSD.org - +

    After an outstanding job serving the project as Security Officer for over a year, Kris stepped down in January in order to focus more of his time pursuing his PhD. I offered to attempt to fill the vacant role.

    This is the first report by the SO Team. Notable events since the beginning of 2002 follow.

    28 FreeBSD Security Advisories have been issued, 16 of which were regarding the base system. Of those sixteen, 8 affected only FreeBSD.

    FreeBSD Security Notices were introduced, and four have been issued so far. The Security Notices cover issues that are not regarded as critical enough to warrant a Security Advisory. So far only Ports Collection issues (i.e. vulnerabilities in optional 3rd party packages) have been reported in Security Notices. The first four Security Notices covered 53 individual issues.

    Issues reported to the SO team are now being tracked using a RequestTracker ticket database.

    The SO team has undergone membership changes, as well as some changes in internal organization. The membership and organization has also been made publicly visible on the FreeBSD Security Officer web page.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    For 4.6-RELEASE, we announced the package ja-man-doc-4.6.tgz which is in sync with 4.6-RELEASE base system manual pages except for perl5 pages (jpman project do not maintain them). Continuing section 3 updating has 88% finished.

    FreeBSD/KGI Status Report Nicholas Souchu nsouch@FreeBSD.org Project URL

    Progression is slow, but the effort is maintained. Most of fb over KGI has been written in parallel with a KGI display driver based on fb. DDC/DDC2 is being discussed for Plug & Play monitor support. KGI aims at providing a generic OS independent interface which would take advantage of FreeBSD I2C (iic(4)) infrastructure.

    UFS2 - Extended attribute and large size support for UFS Poul-Henning Kamp phk@FreeBSD.org Kirk Mckusick mckusick@FreeBSD.org

    UFS2 is an extension to the well-known UFS filesystem which using a new inode format adds support for "64bit everywhere" and later for extended attribute support, in addition to the current UFS features: soft-updates and snapshots.

    The basic UFS2 code has been committed and work on the extended attribute interface and vnode operations will continue.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code has gotten so far that it beats our current code in some areas while still lacking in others. The goal is for GEOM to be the default in 5.0-RELEASE.

    Currently work on a cryptographic module which should be able to protect a diskpartition from practically any sort of attack is progressing.

    OpenOffice.org for FreeBSD Martin Blapp mbr@FreeBSD.org OpenOffice.org FreeBSD port Homepage

    The port of openoffice 1.0 has been finished. Most showstopper issues with rtld, libc and our toolchain have been fixed. There is one remaining deadlock in the web-browser code of OO.org. If anybody like to help us with fixing this bug (may be another libc_r bug as it looks like) just mail me! Unfortunately gcc2 support got broken again with the import of gcc2.95.4 in STABLE. Exceptions support seems to be broken again; we get internal compiler errors with c++ exceptions code. You'll have to use gcc31 again.

    Since our package cluster is outdated and can not build OO.org packages anytime soon, I did my own little package cluster and can now offer packages for 4.6R for 16 different languages. They can be found on the project homepage.

    Porting of OpenOffice1.0.1 is on it's way. A beta port and a package have been made available on the project homepage.

    Lightweight Interrupt Scheduling Bosko Milekic bmilekic@FreeBSD.org + href="http://people.FreeBSD.org/~peter/p4db/chb.cgi?FSPC=//depot/projects/interrupt/sys/..."> The interrupt p4 branch

    The lightweight interrupt scheduling code makes scheduling an interrupt on i386 without having to grab the sched_lock possible, and also avoids a full-blown context switch.

    Currently, the code in the p4 branch works, although needs a little bit of cleanup and, most importantly, requires a merge to post-KSE III. Now that stuff seems to have stabilized a bit, I'm waiting to get a little time (and nerve) to do the merge. Also, looking forward for some KSE interface that will allow for "KSE borrowing," which would make this cleaner with regards to KSE and lightweight interrupts. This is a 5.0 feature.

    TIRPC port for BSD sockets Martin Blapp mbr@FreeBSD.org TIRPC for FreeBSD Homepage

    A lot of remaining PR's and Bugs have been closed. All relevant rpc concerning patches have been committed. Thanks go to Alfred and Ian Dowese.

    Jean-Luc Richier <Jean-Luc.Richier@imag.fr> has made a patch available which adds IPv6 support to all remaining rpc servers. See ftp://ftp.imag.fr/pub/ipv6/NFS/NFS_IPV6_FreeBSD5.0.gz and ftp://ftp.imag.fr/pub/ipv6/NFS/0README_NFS_IPV6_FreeBSD5.0 We will check his code and add it to CURRENT ASAP.

    A first commit part from TIRPC99 has been done. I'm working now on porting the remaining parts so when FreeBSD 5.0 gets released, it will be TIRPC99 based. This will happen together with the NetBSD project, as they use the same codebase as we do.

    mb_alloc updates Bosko Milekic bmilekic@FreeBSD.org - Some + Some [Old] mb_alloc stuff

    mb_alloc is getting some updates and a couple of optimizations. A new allocator interface routine should already be committed by the time this report is "published:" m_getcl() allocates an mbuf and a cluster in one shot. This is the result of months (literally) of requests from Alfred and, recently, Luigi - who, coincidentally, is the author of the same [upcoming] routine in -STABLE.

    Other than that, mb_alloc is being shown how to perform multi-mbuf or cluster allocations without dropping the cache lock in between (m_getcl() and m_getm() will use this). Finally, work is being done to optimize ext_buf ref. count allocations and to provide support for jumbo (> 9K) clusters.

    Improving FreeBSD Startup Scripts Doug Barton DougB@FreeBSD.org Mike Makonnen makonnen@pacbell.net Gordon Tetlow gordont@FreeBSD.org The Yahoo! group site for discussion of this project

    We are making excellent progress. There is a fully functioning implementation imported to -current now. We need as many people as possible to rc_ng equal to YES in /etc/rc.conf.

    The next step is to set the default to YES, which we plan to do before DP 2.

    ipfw2 Luigi Rizzo luigi@FreeBSD.org

    In summer 2002 the native FreeBSD firewall has been completely rewritten in a form that uses BPF-like instructions to perform packet matching in a more effective way. The external user interface is completely backward compatible, though you can make use of some newer match patterns (e.g. to handle sparse sets of IP addresses) which can dramatically simplify the writing of ruleset (and speed up their processing). The new firewall, called ipfw2, is much faster and easier to extend than the old one. It has been already included in FreeBSD-CURRENT, and patches for FreeBSD-STABLE are available from the author.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese ) SNAPSHOTs anonftp area on the web Release branch snapshots for FreeBSD/i386

    I spent busy days in last two months, many new topics are emerged from the project. We now support FreeBSD/alpha 5-current distribution by cross-compiling on the x86 PC. Anonymous ftp area is now exported to the yet another web server. Our release branch snapshots are relocated to daemon.jp.FreeBSD.org because of our CPU/network bandwidth problem.

    I'm seriously considering to solve the lack of CPU and network resources for the project's future evolution. Maybe the bandwidth problem can be resolved (several bandwidth offers have been received!), but there is no answer about CPU problems (I have a plan to upgrade our PCs from P3-500MHz to P4 or better). If you have interested in donating PCs to the project, please email me for more detail.

    Userland Regression Tests Juli Mallett jmallett@FreeBSD.org

    Regression tests for many bugs fixed in text manipulation utilities have been added, as well as tests for various non-standard versions of functionality that FreeBSD users should expect. A library of m4 macros for creating the tests themselves has been added.

    Single UNIX Specification conformant SCCS suite Juli Mallett jmallett@FreeBSD.org

    The final version of SCCS distributed by CSRG has been integrated into the projects CVS repository, and worked on extensively to the point where essential functionality works on FreeBSD (and other operating systems). Some standards-related functionality has been implemented

    Zero Copy Sockets status report Ken Merry ken@FreeBSD.org Zero copy patches and information.

    The zero copy sockets code was committed to FreeBSD-current on June 25th, 2002. I'm not planning on doing any more patches, although I will leave the web page up as it contains useful information.

    Many thanks to the folks who have tested and reviewed the code over the years.

    locking up pcb's in the networking stack Jeffrey Hsu hsu@FreeBSD.org - +

    Jennifer Yang's patch was committed June 10 for the BSD Summit. After a few bugs which were reported initially and fixed that same week, networking in -current has been stable, including the parts that were not locked up, like IPv6. Work is on-going to lock up the rest of the stack.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Another engineering snapshot is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20020709.tar.gz. If anyone has Bluetooth hardware and spare time please join in and help me with testing.

    This snapshot includes basic support for USB devices and manual pages. The HCI layer now has support for multiple control hooks. All HCI transport drivers (H4, BT3C and UBT) has been changed to provide consistent interface to the rest of the world. Some userspace utilities have been changed as well.

    Still no support for RFCOMM (Serial port emulation over Bluetooth link) and SDP (Service Discovery Protocol). Several design flaws have been discovered and it might take some time to resolve these issues.

    TrustedBSD MAC Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD main web page

    The TrustedBSD Project has been busy in May and June, developing new features, presenting on the technology at the FreeBSD Developer Summit, and improving the readiness of the MAC branch for integration into the main FreeBSD tree. The migration to dynamic labeling in the TrustedBSD MAC framework is complete, with all policies now making use of dynamic labels in the kernel. This permits policies to associate arbitrary additional security data with a variety of kernel objects at run-time. Implement mac_test, a sanity checking module. Pass labels as well as objects to each policy entry point to reduce knowledge of label storage in the policies. Implement mac_partition, a simple jail-like policy. Adapt the MAC framework for process locking.

    Improve support for sockets: provide a peerlabel maintained for stream sockets (unix domain, tcp), entry points for accept, bind, connect, listen. Improve support for IPv4 and IPv6 by labeling IP fragment reassembly queues, and providing entry points to instrument fragment matching, update, reassembly, etc. Locally disable KAME if_loop mbuf contiguity hack because it drops labels on mbufs: we need to make sure the label is propagated. Label pipes and provide access control for them. Improve vnode labeling: now handle labeling for devfs, pseudofs, procfs. Fix interactions between MAC and ACLs relating to the new VAPPEND flag.

    SELinux policy tools now ported to SEBSD. SEBSD now labels subjects and file system objects. Provide ugidfw, a tool for managing rules for the mac_bsdextended policy.

    Massive diff reduction. KSEIII merged. Main tree integration will begin shortly.

    Updated prototype code may be retrieved from the TrustedBSD CVS trees on cvsup10.FreeBSD.org.

    diff --git a/en/news/status/report-nov-2002-dec-2002.xml b/en/news/status/report-nov-2002-dec-2002.xml index b4af350d9b..a496b74076 100644 --- a/en/news/status/report-nov-2002-dec-2002.xml +++ b/en/news/status/report-nov-2002-dec-2002.xml @@ -1,877 +1,877 @@ - + November-December 2002
    Introduction:

    At long last, FreeBSD 5.0 is here. Along with putting the final polish on the tree, FreeBSD developers somehow found the time to work on other things too. IA64 took some major steps towards working on the Itanium2 platform, an effort was started to convert all drivers to use busdma and ban vtophys(), hardware crypto support and DEVD hit the tree, NewReno was fixed and effort began on locking down the network layer of the kernel. Also high performance, modular scheduler started taking shape and will be a welcome addition to the kernel soon.

    Looking forward, the focus will be on stabilizing and improving the performance of 5.0. The RELENG_5 (aka 5-STABLE) branch will be created once we've reached our goals in this area, so hopefully we will get there quickly. Meanwhile, preparations for the next release from the 4.x series, 4.8, will begin soon. Of course, the best way to get 5.x to stabilize os to install and run it!

    Thanks,

    Scott Long, Robert Watson

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that all kernel modules and few userland tools made it to the FreeBSD source tree. Many thanks to Julian Elischer.

    Unfortunately no big changes since the last report. Some minor problems have been discovered and patches are available on request. I will prepare all the patches and submit them to Julian for review.

    OBEX server and client (based on OpenOBEX library) is almost complete. I'm currently doing interoperability testing. If anyone has hardware and time please contact me. The HCI security daemon has been implemented and tested with Sony Ericsson T68i cell phone and Windows stack. It is now possible to setup secure Bluetooth connections.

    A few people have complained about RFCOMM daemon. These individuals want to use GPRS and Bluetooth enabled cell phone to access Internet. If you have this problem please contact me for possible workaround. My next goal is to get robust RFCOMM implementation to address all these issues.

    TrustedBSD Project: Access Control Lists Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion List trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

    Largely bug-fixing and userland application tweaks; new interfaces were added to manipulate ACLs on extended attributes; bugs were fixed in ls relating to ACL flagging. Patches to teach cp, mv, gzip, bzip, and other apps about ACL preservation are in testing and review. tunefs flags were added to ease configuration of ACLs, especially on UFS2 file systems.

    Possible changes to make use of Linux/Solaris umask semantics are under consideration: right now we implement verbatim POSIX.1e/IRIX merging of the umask, ACL mask, and requested creation mode during file, device, fifo, and directory creation. Solaris and the most recent Linux patches ignore the umask in the context of a default ACL; this requires some rearrangement of umask handling in our VFS, although the results would be quite useful. We're exploring how to do this in a low impact way.

    TrustedBSD Project: MAC Framework Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion List trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

    Framework changes:

    Instrument KLD system calls (module and kld load, unload, stat) Instrument NFSd system call. Instrument swapoff(2). Instrument per-architecture privileged parts of sysarch(). Make use of condition variables to allow callers to wait for the framework to "unbusy" when loading/unloading policies, rather than returning EBUSY. Store mount pointer in devfs_mount structure for use by policies. Improve handling of labels in loopback interface "re-align" packet copy case. Provide full paths on devfs object creations to help policies label them properly (not merged). Experimentation with moving MAC labels into m_tags (not merged). NFS server now uses real ucreds, not hacked up ucreds, meaning we can start laying the groundwork for enforcement on NFS operations. (not merged)

    Policy changes

    LOMAC: mac_lomac replaces lomac (LOMAC now uses the MAC Framework), SEBSD: Improved support for devfs labeling based on SELinux genfs. Handling of hard link checks. Support export of process transition information for login and others using sysctl. Login now prompts for roles. Allow policy reload. TTY labeling. Locking adaptation from Linux. Many, many policy adaptations and fixes. We can now boot in enforcing mode! mac_bsdextended: fix a bug in which VAPPEND wasn't mapped to VWRITE, so opens with the O_APPEND bug failed improperly.

    Userland changes

    setfmac(8) now supports a setfsmac(8) execution mode, which accepts initial labeling specification files. Supports an SELinux compatibility mode so it can accept SELinux label specfiles using the SEBSD module. sendmail(8) now sets user labels as part of the context switch for mail delivery.

    Documentation changes

    Man page updates for MAC command line tools, modules, admin hints, etc. Updates to the FreeBSD Developer's Handbook chapter on MAC policies and entry points. MAC section in FreeBSD Handbook.

    busdma driver conversion project Maxime Henrion mux@FreeBSD.org

    This project has been coming along pretty well. The amd(4) and xl(4) drivers have now been converted to use the busdma API, sparc64 got the bus_dmamap_load_mbuf() and bus_dmamap_load_uio() functions, and the gem(4) and hme(4) drivers have been updated to use bus_dmamap_load_mbuf() instead of bus_dmamap_load().

    A lot more still needs to be done, as shown on the project's page. A fair number of conversions are on their way though, and we can expect a fair number of drivers to be converted soon, thanks to all the developers who are working on this project.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    The POSIX Utility Conformance in FreeBSD list (link above) has been updated to reflect current reality. Not much work remains to complete base utility conformance.

    On the API front, grantpt(), posix_openpt(), unlockpt(), wordexp(), and wordfree() were implemented. The header <wordexp.h> was added.

    There are currently about 40 unassigned tasks on our project's status board ranging from documentation, utilities, to kernel hacking. We would encourage any developers looking for something to work on to check out the status board and see if anything interests them.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPsec), and OpenSSL (through the /dev/crypto device).

    This work will be part of the 5.0 release and has been committed to the -stable source tree for inclusion in the 4.8 release.

    Recent work has focused on improving performance. System statistics are now maintained and an optional profiling facility was added for analyzing performance. Using this facility the overhead for using the crypto API has been significantly reduced.

    The ubsec (Broadcom) driver was changed to significantly improve performance under load. In addition several memory leaks were fixed in the driver and the public key support was enabled for use.

    Upcoming work will focus on load-balancing requests across multiple crypto devices and integrating OpenSSL 0.9.7 which will automatically enable application use of crypto hardware.

    DEVD Warner Losh imp@FreeBSD.org

    Devd has been integrated into FreeBSD 5.0-RELEASE. The integrated code supports a range of configuration options. The config files are fully parsed now and their actions are performed.

    Future work in this area is likely to be limited to improving the devctl interface. /dev/devctl likely will be a cloneable device in future versions. Individual device control via devctl is also planned.

    Donations Team Status Report Michael Lucas donations@FreeBSD.org Donations main page FreeBSD developer wantlist completed donations

    The Donations project expedited several dozen donations during 2002, and was able to place most of what was offered. We still are in dire need of SMP and Sparc systems. You can see information on our needs and donations that have been handled by the team on the donations web page.

    We are relying increasingly upon the developer wantlist to place items offered to the Project, and using the commit statistics to help place items. As such, active committers who ask for what they want beforehand have a decent chance of getting it. Less active committers, and committers who do not ask for what they want, will be lower in our priorities but will not be excluded.

    We are in the process of streamlining the tax deduction process for donations, and hope to have news on that shortly. We are also always working to accelerate and reduce our internal processes, to get the most equipment in the hands of the most people as quickly as possible.

    I especially want to thank David O'Brien and Tom Rhodes for stepping up and making the team far more successful. Also, the FreeBSD Foundation has been quite helpful in handling tax-deductible contributions.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    This work will be part of the 5.0 release. Performance has been improved due to work on the crypto subsystem.

    FFS volume label support Gordon Tetlow gordon@FreeBSD.org - Current patch set. + Current patch set.

    The goal of the project is to use a small amount of space in the FFS superblock to store a volume label of the user's choice. A GEOM module will then expose the volume labels into a namespace in devfs. The idea is to make it easier to manage filesystems across disk swaps and movement from system to system.

    At this point, everything pretty much works. I've submitted parts of the patch to respective subsystem maintainers for review. There are some issues with namespace collision that I haven't addressed yet, but the basic functionality is there

    French FreeBSD Documentation Project Sebastien Gioria gioria@FreeBSD.org Marc Fonvieille blackend@FreeBSD.org Stéphane Legrand stephane@FreeBSD.ORG The French FreeBSD Documentation Project. The FreeBSD Web Server translated in French. - Translation of the hanbook. + Translation of the hanbook. French Daemon News like web site.

    Most of the articles are translated too. Marc is still translating the handbook, 60% is currently translated. Stéphane has began the integration of our French localization web site in the US CVS Tree. Sébastien is still maintaining the Release Notes.

    We launched a new site, www.FreeBSD-fr.info, consisting in a French Daemon News like site. Netasq have donated our new server; we will install it in a new hosting provider in the few next weeks. One of the big job now is the translation of the FAQ, and the big project will be the manual pages.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project + FreeBSD GNOME Project Homepage.

    Since the ports tree has been frozen for most of this reporting period, there have not been too many GNOME updates going into the official CVS tree. However, development has not stopped. GNOME 2.2 is nearing completion, and quite a few FreeBSD users have stepped up to test the GNOME 2.1 port sources from the MarcusCom CVS repository. If anyone else is interested, follow the instructions on the aforementioned cvsweb URL, and checkout the "ports" module.

    The upcoming FreeBSD 5.0-RELEASE will be the first release to have the GNOME 2.0 desktop as the default GNOME desktop choice. During the previously mentioned ports freeze, all the GNOME 2 ports were fixed up so that they build and package on both i386 and Alpha platforms. Alas, the one port that will not make the cut for Alpha is Mozilla. There are still problems with the xpcom code, but work is ongoing to get a working Alpha port.

    Finally, the FreeBSD Mono (an OpenSource C# runtime) port has also received some new life. Mono has been updated to 0.17 (the latest released version), and Juli Mallett has ported gtk-sharp (GTK+ bindings for C#).

    FreeBSD/ia64 Status Peter Wemm peter@FreeBSD.org Marcel Moolenaar marcel@FreeBSD.org - - + +

    The ia64 port is up and running on the new Itanium2 based hp machines thanks to a lot of hard work by Marcel Moolenaar. So far we are running on the hp rx2600 as these were the machines graciously donated by Hewlett-Packard and Intel. We had a prototype Intel Tiger4 system for a while, but we had to return the machine and we do not know if it currently runs. Most of the changes necessary to run these are sitting in the perforce tree and are not in the -current or RELENG_5 cvs tree. As a result, the cvs derived builds (-current and the 5.0-RC series and presumably 5.0-RELEASE) are only usable on obsolete Itanium1 systems.

    Lots of other stability and functionality fixes have been made over the last few months, including initial libc_r support. The OS appears to be stable enough for sustained workloads - it is building packages now, for example. We still do not have gdb support, even for reading core files.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating our Japanese translated manual pages to RELENG_5 based. All existing entries have been updated, but 15 exceptions are not, most of which require massive update. We will also need to add translations which did not exist on RELENG_4.

    KGI/FreeBSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    KGI (Kernel Graphic Interface) is a kernel infrastructure providing user applications with means to access hardware graphic resources (dma, irqs, mmio). KGI is already available under Linux as a separate standalone project. The KGI/FreeBSD project aims at integrating KGI in the FreeBSD kernel.

    KGI/FreeBSD has been recently donated 2 PCI graphic cards (Matrox Millenium II and a coming Mach64) and other have been proposed. Please see the FreeBSD web pages for details. Thanks to donation@ for organizing and promoting donations. Thanks to the donators for their contribution to KGI/FreeBSD.

    KGI/FreeBSD progressed fine the last months. Most of the VM issues for mapping HW resources in user space have been addressed and a first attempt of coding was made. This prototyping raised some API compatibility problems with the current Linux implementation and was discussed heavily on the kgi devel lists. Ask if you're interested in such issues, I'll be pleased to share them.

    Most of coding is now done. Let's start debugging!

    SMP locking for network stack Jeffrey Hsu hsu@FreeBSD.org

    Work is ongoing to continue to lock up the network stack. Recently, the focus has been on the IP stack. The plan there involves a series of inter-related pieces to lock up the ifaddr ref count, the inet list, the ifaddr uses, the ARP code, the routing tree, and the routing entries. We are over 3/5 of the way done down this path.

    In addition to TCP and UDP, the other networking protocols such as raw IP, IPv6, AppleTalk, and XNS need to be locked up. Around 1/4 these remaining protocols have been locked and will be committed after the IP stack is locked.

    The protocol independent socket layer needs to be locked and operating correctly with the protocol dependent locks. This part is mostly done save for much needed testing and code cleanup.

    Finally, a pass will be need to be made to lock up the devices drivers and various statistics counters.

    TCP congestion control Jeffrey Hsu hsu@FreeBSD.org

    This effort fixes some outstanding problems in our TCP stack with regard to congestion control. The first item is to fix our NewReno implementation. Following that, the next urgent correction is to fix a problem involving window updates and dupack counts. When that stabilizes, we will then change the recovery code to make use of SACK information. Eventually, this project will update the BSD stack to add Limited Transmit and other new internet standards and standards-track improvements.

    FreeBSD Package Cluster work Kris Kennaway kris@FreeBSD.org - +

    The 3 FreeBSD package clusters (i386, alpha, sparc64) have been unified to run from the same master machine, instead of using 3 separate masters. This has freed up some machine resources to use as additional client machine, as well as simplifying administrative overheads. Build logs for all 3 architectures - can now be found on the http://bento.freebsd.org webpage. The + can now be found on the http://bento.FreeBSD.org webpage. The sparc64 package cluster now has 3 build machines (an u5 and two u10s), and an ia64 cluster is about to be created.

    Package builds now keep track of how many sequential times a port has failed to build (html summaries are available on the bento website). This allows tracking of ports which have suddenly become broken (e.g. due to a bad upgrade, or due to changes in the FreeBSD source tree), and in the future will be used to send out notifications to port maintainers when their port fails to build 5 times in a row. This feature is currently experimental, and further code changes will be needed to stabilize it.

    Wireless Networking Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to improve the wireless networking support in the system. By the time of this report the 802.11 link layer code should be committed. A version of the wi driver that uses this code should be committed shortly. Conversion of other drivers is planned as are drivers for new devices.

    Support for 802.1x/EAP is the next planned milestone (both as a supplicant and authenticator).

    FreeBSD Release Engineering Scott Long re@FreeBSD.org - Release Engineering + Release Engineering Homepage

    November and December were especially busy for the release engineering team. Scott Long joined the team to help with secretary and communications tasks while Brian Somers bowed out to focus on other projects.

    FreeBSD 5.0-DP2 was released in November after much delay and anticipation, and marked the final milestone needed for 5.0 to become a reality. Shortly after that, we imposed a code freeze on the HEAD branch of CVS and released 5.0-RC1. Creation of the RELENG_5_0 branch came next, followed by the release of 5.0-RC2 from this branch. At this point, enough critical problems still existed that we scheduled an RC3 release for the new year, and pushed the final 5.0-RELEASE date to mid-January. By the time this is published, FreeBSD 5.0-RELEASE should be a reality.

    For the time being, there will not be a RELENG_5 (aka 5-STABLE) branch. FreeBSD 4.x releases will continue, with 4.8 being scheduled for March 2003. Release in the 4.x series will be lead by Murray Stokely, and releases in the 5.x series will be lead by Scott Long. Once HEAD has reached acceptable performance and stability goals, the RELENG_5 branch will be created and HEAD will move towards 6.0 development. We hope to reach this with the 5.1 release this spring.

    SMP aware scheduler Jeff Roberson jeff@FreeBSD.org

    A new scheduler will be available as an optional component along side the current scheduler in the 5.1 release. It has been designed to work well with KSE and SMP. Some ideas have been borrowed from solaris and linux along with many novel approaches. It has O(1) performance with regard to the number of processes in the system. It also has cpu affinity which should provide a speed boost for many applications.

    The scheduler has a few loose ends and lots of tuning before it is production quality although it is quite stable. Please see the post to arch and subsequent discussion for more details.

    diff --git a/en/news/status/report-november-2001.xml b/en/news/status/report-november-2001.xml index ff2e34e623..c4f07c642e 100644 --- a/en/news/status/report-november-2001.xml +++ b/en/news/status/report-november-2001.xml @@ -1,1025 +1,1025 @@ - + November 2001
    Introduction

    This months report covers activity during the second half of October, and the month of November. During these months, substantial work was performed to improve system performance and stability, in particular addressing concerns regarding regressions in network performance for the TCP protocol, and via the introduction of polled network device driver support. Work continues on long-term architectural projects for 5.0, including KSEs, NEWCARD, and TrustedBSD, as well as the cleaning up of long-standing problems in FreeBSD, such as PAM integration. Administrative changes are also documented, including work to redefine and formalize the release engineering process, and the approval of a new portmgr group which will administer the ports collection.

    FreeBSD users and developers are strongly encouraged to attend the USENIX BSD Conference in February of next year; it is expected that this will be a useful forum both for learning about FreeBSD and on-going work, as well as providing an opportunity for developers to work more closely and act as a vehicle for discussion and round-the-clock hacking. More information is available at the USENIX web site.

    Robert Watson

    TCP Performance Improvements Matthew Dillon dillon@FreeBSD.org

    A number of serious TCP bugs effecting throughput snuck into the system over the last few releases and have finally been fixed. TCP performance should be greatly improved for a number of cases, including TCP/NFS.

    Intel Gigabit Driver: wx desupported Matthew Jacob mjacob@feral.com

    The wx driver is desupported and removed from -current. No further support for wx in -stable is planned. Newer and better drivers are now in the tree.

    Fibre Channel Support Matthew Jacob mjacob@feral.com Qlogic ISP Host Adapter Software

    Ongoing bug fixes. Work is underway, to be integrated shortly, that makes the cross platform endian support easier and will prepare the FreeBSD version for eventual sparc64 and PowerPC usage.

    TrustedBSD Audit John Doe trustedbsd-audit@trustedbsd.org TrustedBSD Project Homepage

    Currently, we are exploring a variety of strategies to learn about the implementation and performance issues in order to have a solid design. One of our main goals will be to use a standardized interface to the system, whether it be POSIX.1e, or another of the other standards, because as they say "Standards are great because you have so many to choose from." Hopefully within the next month or so, we will populate the perforce TrustedBSD tree with an agreed upon framework that is ready for serious final work.

    Pluggable Authentication Modules Mark Murray markm@FreeBSD.org Dag-Erling Smørgrav des@FreeBSD.org - +

    On the code side, a number of libpam bugs have been fixed; a new PAM module, pam_self(8) , has been written; and preparations have been made for the transition from /etc/pam.conf to /etc/pam.d .

    On the documentation side, new manual pages have been written for pam_ssh(8) , pam_get_item(3) and pam_set_item(3) , and work has started on a longer article about PAM which is expected to be finished by the end of the year.

    A lot of work still remains to be done to integrate PAM more tightly with the FreeBSD base system—particularly the passwd(1) , chpass(1) etc. utilities—and ports collection.

    Status Report: mb_alloc (-CURRENT mbuf allocator) Bosko Milekic bmilekic@FreeBSD.org Code Dump and Preliminary Results

    Presently re-style(9)ing mbuf code with the help of Bruce (bde). The next larger step is approaching: to better performance, as initially planned, not have reference counters for clusters allocated separately via malloc(9). Rather, use some of the [unused] space at the end of each cluster as a counter; since this space is totally unused and since ref. counter <--> mbuf cluster is a one-to-one relationship, this is most convenient.

    FreeBSD 4.5 Release Engineering Murray Stokely murray@FreeBSD.org - FreeBSD + FreeBSD Release Engineering. FreeBSD 4.5 Release Process / Schedule.

    Release engineering activities for FreeBSD 4.5 have begun. An overview of the entire process has been added to the FreeBSD web site, along with a specific schedule for 4.5. The code freeze is scheduled to start on December 20. The team responsible for responding to MFC requests sent to re@FreeBSD.org for this release is: Murray Stokely, Robert Watson, and John Baldwin. Some of our many goals for this release include closing more installation-related problem reports, being more conservative with our approval of changes during the code freeze, and continuing to document the entire process. For suggestions or questions about FreeBSD 4.5 release activities, please subscribe to the public freebsd-qa@FreeBSD.org mailing list.

    Web site conversion to XML Nik Clayton nik@FreeBSD.org

    Work is (slowly) progressing on converting the web site to use pages marked up in a simple XML schema, and then generating HTML and other output formats using XSLT style sheets. The work so far can be tested by doing "cvs checkout -r XML_XSL_XP www" and then "cd www/en; make index.html". Take a look at index.page in the same directory to see the source XML. The CVS logs for index.page contain detailed instructions explaining how index.page was generated from its earlier form.

    FreeBSD in Bulgarian Peter Pentchev roam@FreeBSD.org

    The FreeBSD in Bulgarian project aims to bring a more comfortable working environment to Bulgarian users of the FreeBSD OS. This includes, but is not limited to, font, keymap and locale support, translation of the FreeBSD documentation into Bulgarian, local user groups and various forms of on-line help channels and discussion forums to help Bulgarians adopt and use FreeBSD.

    Bulgarian locale support has been committed to FreeBSD 5.0-CURRENT (and later merged into 4.x-STABLE on December 10th). A local CVS repository for the translation of the FreeBSD documentation into Bulgarian has been created.

    New mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@qualys.com

    There is now some code ready for the new mount API, which has to be reviewed and tested. If it is adopted, we will probably start converting all the filesystems, as well as other code in the kernel, to make them use it. If you want to play with it, the patch is available at the above URL.

    Network interface cloning and modularity Brooks Davis brooks@FreeBSD.org

    Support for VLAN cloning has been merged from current and will ship with 4.5-RELEASE. Additionally, new rc.conf support for cloning interfaces at boot has been MFD'd. Work is ongoing to MFC stf and faith cloning as well as adding cloning for ppp devices and enhancing VLAN modularity.

    Device Polling Luigi Rizzo luigi@iet.unipi.it Web page with code and detailed description.

    This work uses a mixed interrupt-polling architecture to handle network device drivers, giving the system substantial improvements in terms of stability and robustness to overloads, as well as the ability to control the sharing of CPU between network-related kernel processing and other user/kernel tasks. Last not least, you might even see a moderate (up to 20-30%, machine dependent) performance improvement.

    RELNOTESng Bruce Mah bmah@FreeBSD.org

    I've been working on making the Hardware Notes less i386-centric. This will be especially important for -CURRENT as the ia64 and sparc ports reach maturity; most of this work should be completed in time to be MFC-ed for FreeBSD 4.5-RELEASE. I encourage any interested parties to review the release documentation and send me comments or patches.

    FreeBSD NVIDIA Driver Port Matthew N. Dodd mdodd@FreeBSD.org News and Status. FTP directory.

    The port of the driver is around 90% feature complete. AGP support and "Registry" support via sysctl need to be finished/implemented. The NVIDIA guys are working on a build of the X11 libs and extensions for FreeBSD; once this is done hardware accelerated direct rendering should work. The previous version this driver is no longer available. I'm planning on making a snapshot of my code once I chase out a few more bugs.

    Please note that development is taking place under -CURRENT right now; a port to -STABLE will be available at some later time.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Anonymous FTP

    jp.FreeBSD.org daily SNAPSHOTs project is yet another snapshots server that provides latest 4-stable and 5-current distribution. You also find installable ISO image, live filesystem, HTMLed source code with search engine, and more; please check project webpage for more details.

    UDF Filesystem Scott Long scottl@FreeBSD.org - UDF + UDF Filesystem.

    Modest gains have been made on the UDF filesystem since the last report. Reading of files from DVD-ROM now works (and is fast, according to some reports), and there is preliminary support for reading from CD-RW media. The CD-RW support has only been tested against CD's created with Adaptec/ Roxio DirectCD, and much, much more testing is needed. Once this support is solid, I plan to check it into the tree and start work on making the filesystem writable.

    NEWCARD/OLDCARD Status report Warner Losh imp@FreeBSD.org

    Not much to report. A number of minor bugs in OLDCARD have been corrected. A larger number of machines now work. Additional work on ToPIC support has been committed, but continued lack of a suitable ToPIC machine has left the author unable to do much work. A few stubborn machines still need to be supported (the author has an example of one such machine, so there is hope for it being fixed. Some pci related issues remain for both OLDCARD and NEWCARD.

    NEWCARD work is ramping up, while OLDCARD work is ramping down. A number of things remain to be done for NEWCARD, including suspend/ resume support, generic device arrival/removal daemon and hopefully automatic loading of drivers. A number of current pccard drivers still need to be converted to NEWBUS. Several Chipset issues remain, as does the merging of isa pccard bridge code with the pccbb code.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper + Old concept paper here.

    This project is now finally underway, thanks to DARPA and NAI getting a sponsorship lined up. The infrastructure code and data structures are currently taking form inside a userland simulation harness.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org User and developer information (in Japanese).

    Targeting 4.5-RELEASE, we continued to revising doc/ja_JP.eucJP/man/man[1256789] to catch up with RELENG_4. Section 3 updating has 45% finished.

    LOMAC Status Report Brian Feldman green@FreeBSD.org NAI Labs' LOMAC page

    A FreeBSD -CURRENT snapshot with LOMAC is currently being prepared, with aid of Perforce on the "green_lomac" branch. Very soon there should be a working demonstration installation CD of FreeBSD with LOMAC, including the ability to enable LOMAC in rc.conf with sysinstall, being a legitimate "out-of-the-box" FreeBSD experience. Actual release build is pending debugging issues with program start-up (especially xdm).

    ATA Project Status Report Søren Schmidt sos@FreeBSD.org

    Work is underways to support failing mirror disks better and handle hotswapping in a new replacement disk and have it rebuild automagically.

    Support for the Promise TX4 is now working in my lab, seems they did the PCI-PCI bridging in the not so obvious way.

    Plans are in the works to backport the -current ATA driver to -stable with hotswap and the works. Now that -current is delayed I'm working on ways to give me time to get this done, since I've had lots of requests lately and we really can't let down our customers :).

    SMART support is being worked on, but no timelines yet.

    Although not strictly ATA, Promise has equipped me with a couple SuperTrak sx6000 RAID controllers, they take 6 ATA disks and does RAID0-5 in hardware. I have done a driver (its an I2O device) for both -current and -stable and it works beautifully with hotswap the works. It will enter the tree when it is more mature, and I have an agreement with Promise on how we handle userland control util etc. BTW it seems it can also be used as a normal 6 channel PCI ATA controller, a bit on the expensive side maybe...

    Revised {mode,log}page support for camcontrol Kelly Yancey kbyanc@FreeBSD.org

    Extending camcontrol's page definition file format to include both modepage and logpage definitions; adding support to camcontrol to query and reset log page parameters. Consideration is being made to possibly include support for diagnostic and vital product data pages, but that is outside the current project scope. New page definition file format includes capability to conditionally include page definitions based on SCSI INQUIRY results allowing vendor-specific pages to be described also. Approximately 80% complete.

    FreeBSD C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    Work on the FreeBSD C99 & POSIX Conformance Project is progressing nicely. Since the last status report, two new headers have been added [<stdint.h> and <inttypes.h>], several new functions implemented [atoll(3), imaxabs(3), imaxdiv(3), llabs(3), lldiv(3), strerror_r(3), strtoimax(3), and strtoumax(3)], and changes to assert(3) and printf(3) were made to support C99. More printf(3) changes are in the works to support the remaining C99 and POSIX requirements. Additionally, research was done into our POSIX Utility conformance and a list of tasks was derived from that research.

    Several other interesting events occurred during November and the beginning of December. The project mailing list was moved to the FreeBSD.org domain, and is now available at standards@FreeBSD.org. On December 6, 2001, the IEEE Standards Board approved the Austin Group Specification as IEEE Std 1003.1-2001, thus making the work we're doing ever more important.

    Improving FreeBSD startup scripts Doug Barton Committer DougB@FreeBSD.org Gordon Tetlow Contributor gordont@gnf.org Improving FreeBSD startup scripts Luke Mewburn's papers NetBSD Initialization and Services Control <-- from http://groups.yahoo.com/group/FreeBSD-rc/ -->

    This group is for discussion about the startup scripts in FreeBSD, primarily the scripts in /etc/rc*. Primary focus will be on improvements and importation of NetBSD's excellent work on this topic.

    <-- from Gordon Tetlow's ranting -->

    Due to personal commitments by the folks working on this project we have been unable to spend much time porting the rc.d infrastructure into the FreeBSD boot framework.

    Currently, the system will boot (with a little fudging) just before network utilization. There are patches floating around for this (see the -arch list from September).

    KSEs Julian Elischer julian@FreeBSD.org - My web-page with + My web-page with links - Jason Evans' KSE + Jason Evans' KSE page.

    I have been working behind the scenes on design rather than programming for this last month. I have been working however in the p4 tree to make the system run with the thread structure NOT a part of the proc structure (a prerequisite for threading)

    Ports Manager Team (portmgr) Will Andrews will@FreeBSD.org Ports build cluster

    After a discussion with the Core Team about our status regarding the ports collection, we heard from them that they'd decided to recognize us as the final authority for approving ports committers. We've spent the last few weeks working on our ports build cluster (see the link) and trying to find ways to improve it for the ports development community. We've also handled a few minor issues in the ports collection.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org TrustedBSD Home Page

    The TrustedBSD Project continued focusing development efforts on fine-grained Capabilities and Mandatory Access Control this month. Kernel support for capabilities is essentially complete, and efforts are underway to adapt userland applications to use Capabilities. The login process has been updated to allow users to run with additional privilege based on /etc/capabilities. The MAC implementation work has also been active, with improved support for the labeling of IPC objects, including better integration into the network stack. Both development trees have been updated to work with recent KSE-related developments, as well as exist more happily in a fine-grained SMP kernel. Initial audit-related work appears in a separate entry.

    Development of TrustedBSD source code was moved to the FreeBSD Perforce repository, permitting better source code management. As such, the TrustedBSD development trees will now be available via cvsup.

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    October ended up being a bit busier than November for SMPng. During October, Peter Wemm finally finished the ambitious task of unwinding all the macros in NFS and splitting it up into two halves: client and server. Andrew Reiter also submitted some code to add locks to taskqueues, and the folks working on the TTY subsystem designed the locking strategy they will be using. Per-thread ucred references were also added for user traps and syscalls. Once the necessary locking on the process ucred references is committed, this will allow kernel code to access the credentials of the current thread without needing locks while also ensuring that a thread has constant credentials for the lifetime of a syscall. November only saw a few small bug fixes unfortunately, but December is already shaping up to be a very active month, so next month's report should be a bit more interesting.

    In non-coding news, the website for the SMPng project has moved from its old location to the new location above. Also, I have completed a paper I am presenting for BSDCon regarding the SMPng project. The paper will be available in the conference proceedings and will be available online after the conference as well.

    diff --git a/en/news/status/report-oct-2003-dec-2003.xml b/en/news/status/report-oct-2003-dec-2003.xml index 5e1be71d77..c55f64dbab 100644 --- a/en/news/status/report-oct-2003-dec-2003.xml +++ b/en/news/status/report-oct-2003-dec-2003.xml @@ -1,1361 +1,1361 @@ - + October-December 2003
    Introduction:

    The FreeBSD status reports are back again with the 2003 year-end edition. Many new projects are starting up and gaining momentum, including XFS, MIPS, PowerPC, and networking locking and multithreading. The end of 2003 also saw the release of FreeBSD 4.9, the first stable release to have greater than 4GB support for the ia32 platform. Work on FreeBSD 5.2 also finished up and was released early in January of 2004. Many thanks to all of the people who worked so hard on these releases and made them happen.

    This is the largest status report ever, so read and enjoy!

    Scott Long, Robert Watson

    libarchive, bsdtar Tim Kientzle kientzle@FreeBSD.org - +

    The libarchive library, which reads and writes tar and cpio archives, is about ready to commit to the tree. The bsdtar program, built on libarchive, is also nearing completion and should soon be a worthwhile successor to our aging GNU tar. I plan a gradual transition during which "bsdtar" and "gtar" will coexist in the tree.

    Oddly enough, libarchive and bsdtar are the first fruits of a project to completely rewrite the pkg tools. I've started architecting a libpkg library for handling routine package management and have a prototype pkg_add that is three times faster than the current version.

    Publications Page Update Josef El-Rayes josef@daemon.li Updated Publications Page

    I did a xml/xslt conversion of the html files to make maintaining of the page more comfortable. I removed the cdsets, which might be kept in CVS or some kind of archive for historical reasons. The books got an update, and were categorized in respect to the language they are written in. As soon as I get my access on the cvs repository I will commit the updates. People are encouraged to add local FreeBSD books, I missed, especially in the asian area. Feel free to send me links to books to add.

    DVB-ASI Support Vincent Jardin Vincent.Jardin@6wind.com Home page and source code Computer Modules

    DVB ASI stands for Digital Video Broadcast - Asynchronous Serial Interface. It is the standard defined to send and receive DVB stream from Satellite (DVB-S), Terrestrial link (DVB-T), and TV Cable (DVB-C). This standard was developed in Europe to transport 188-byte MPEG cells and 204-byte MPEG cells. However it can be used to carry IP over DVB too.

    The FreeBSD driver uses the newbus amd the bus-dma API. It means that it could be easily ported to all the BSD flavors (NetBSD, OpenBSD).

    It uses the same API than the Linux DVB ASI support from ComputerModules that is based on the following devices:

    • /dev/asitxN for the transmit stream (only open, write, select, close and ioctl are supported)
    • /dev/asirxN for the receive stream (only open, read, select, close and ioctl are supported)
    It means that software such as Videolan that support DVB-ASI broadcasting could be supported by this driver.

    Special thanks to Tom Thorsteinson from Computer Modules who helped 6WIND to port their driver. It is used by 6WIND in order to provide IPv4, IPv6, Ethernet and our network services over DVB.

    Copyright 2003-2004, 6WIND

    FreeBSD ports monitoring system Mark Linimon linimon_at_lonesome_dot_com FreeBSD ports monitoring system

    Enhancements continue to be made to the system. Several, including improvements to the PR classification algorithm, the ability to more correctly guess when a PR has been updated, and better handling of errors in both port Makefiles and the bento builds, are invisible to end-users. However, the addition of a "repocopy" classification is notable, as is the allowing the wildcard search in "overview of one port" (thanks to edwin@ for the shove in that direction.) Additionally, logic has been added to identify the proposed category/portname of new ports, with the goal being to quickly identify possible duplications of effort. (Some SQL performance was sacrificed to this goal, leading to some pages to load more slowly; this needs to be fixed.)

    The other work has been on an email back-end to allow the occasional sending of email to maintainers. Two functions are currently available: "remind maintainers of their ports that are marked BROKEN", and "remind maintainers of PRs that they may not have seen." A recent run of the former got generally good response, especially as changing some cases of BROKEN to IGNORE (PR ports/61090) had removed almost all the annoying false positives. However, work remains to try to find out why a few allegedly broken ports only fail in certain environments (including the bento cluster).

    The next plan is to use the proposed DEPRECATED Makevar (see ports/59362) to create a new report to allow querying of "ports currently slated to be removed". This report could also be posted to ports@ periodically with minimal work. The author believes that doing this would allow the port deprecation process to be much more visible to the general FreeBSD user community.

    Compile FreeBSD with Intels C compiler (icc) Alexander Leidinger netchild@FreeBSD.org Some patches

    The FreeBSD kernel now builds and runs fine with icc v7 (only GENERIC and a custom kernel tested so far). A review on arch@ revealed no major concerns and some src committers are willing to commit the patches. As icc v8 is out and defines __GNUC__ I want to rework the patches before they get committed so an icc v8 compiled kernel DTRT too.

    A complete build of the ports collection (as of start of December) finished and is under review to determine the reason of build failures. Current icc stats:

    • 1108 failed builds (excluding build failures because of failed dependencies)
    • 3535 successfully build packages (~ 1.7 GB)
    A parallel build with gcc on the same snapshot of the ports collection has:
    • 520 failed builds (excluding build failures because of failed dependencies)
    • 7261 successfully build packages (~ 4.8 GB)

    The above mentioned build of the ports collection was run on a P4 with a icc compiled kernel (optimized for a P4). No kernel panics or other strange behavior was noticed. The ports collection was build with a CPUTYPE of p4 and CFLAGS set to "-Os -pipe -mfpmath=sse -msse2" in the gcc and "-O2" in the icc case. No package is tested for correct run-time behavior so far.

    Porting OpenBSD's pf Max Laier max@love2party.net Pyun YongHyeon yongari@kt-is.co.kr PF homepage PF FAQ

    Much work has been invested into getting release 2.00 stable. It provides the complete OpenBSD 3.4 function set, as well as fine grained locking to work with a giant free network stack.

    pf provides: IPv6 filtering and normalization, "syn-proxy" to protect (web)server against SYN-floods, passive OS detection, fast and modular address tables, source/policy routing, stateful filter and normalization engine, structured rulesets via anchors and many many more. Especially in connection with ALTQ, pf can help to harden against various flood attacks and improve user experience.

    New features from OpenBSD-Current like: state synchronization over wire and enhanced support for cloned interfaces require patches to the kernel. We are trying to resolve this issue and start OpenBSD-Current tracking again as soon as possible.

    Binary security updates for FreeBSD Colin Percival cperciva@daemonology.net

    Thanks to recent donations, I am now building binary security updates for FreeBSD {4.7, 4.8, 4.9, 5.0, 5.1, 5.2}-RELEASE. (Note that FreeBSD 4.7 and 5.0 are no longer officially supported; any advisories which are not reflected in the CVS tree will likewise not result in binary updates.)

    The current version (1.5) of FreeBSD Update will warn about locally modified files and will, by default, leave them untouched; if a "distribution branch", (i.e. crypto, nocrypto, krb4, or krb5) is specified, FreeBSD Update can be forced to "update" files which have been compiled locally.

    The only major issue remaining with FreeBSD Update is the single-point-of-failure of the update building process; I would like to resolve this in the future by having several machines cross-verify and cross-sign, but this will require a significant investment of time, and will probably have to wait until I've finished writing my DPhil thesis.

    SGI XFS port for FreeBSD Alexander Kabaev kan@FreeBSD.org Russell Cattelan cattelan@thebarn.com

    A project was started to revive a stalled effort to port SGI XFS journaling filesystem to FreeBSD. The project is based on Linux development sources from SGI and is currently being kept in a private Perforce repository. The work is progressing slowly due to lack of free time. At the moment we have XFS kernel module which is capable of mounting XFS filesystems read-only, with a panic or two happening infrequently, that need to be isolated and fixed. Semi-working metadata updates with full transaction support are there too, but will probably have to be rewritten to minimize the amount of custom kernel changes required.

    We seek volunteers to help with userland part of the port. Namely, existing xfsprogs port needs to be cleaned up, incompletely ported utilities brought into a working shape. xfs_dump/xfs_restore and as much from xfstests suite as possible need to be ported too. We do not need testers for now, so please to not ask for module sources just yet.

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com

    Not much to report. Bluetooth code was integrated into the FreeBSD source tree. Bluetooth kernel modules appear to be stable. I have received few success stories from the users.

    During last few months the efforts were to make Bluetooth code more user friendly. Bluetooth Service Discovery Procotol daemon sdpd was reimplemented under BSD-style license and committed. The next step is to integrate existing Bluetooth utilities with SDP.

    Thanks to Matt Peterson <matt at peterson dot org> I now have Bluetooth keyboard and mouse for development. I'm currently working on Bluetooth HID profile implementation.

    Dave Sainty <dave at dtsp dot co dot nz> from NetBSD project offered his help in porting Bluetooth stack to NetBSD.

    Network interface naming changes Brooks Davis brooks@FreeBSD.org

    At the end of October, the if_name and if_unit members of struct ifnet were replaced with if_xname from NetBSD and if_dname and if_dunit. These represent the name of the interface and the driver name and instance of the interface respectively. Other then breaking IPFilter for a few weeks due to the userland being on the vendor branch, this change went quite well. A few ports needed minor changes, but otherwise nothing changed from the user perspective.

    The purpose of this change was the lay the groundwork for support for network interface renaming and to allow the implementation of more interesting pseudo interface cloning support. An example of interesting cloning support would be using "ifconfig fxp0.20 create" to create and configure a vlan interface on fxp0 that handled frames marked with the tag 20. Interface renaming is being worked on in Perforce at the moment with a working version expected for review soon. Support for enhanced device cloning is still in the planing stage.

    Kernel Tunables Documentation Project Tom Rhodes trhodes@FreeBSD.org - The + The problem report which kicked this project in action

    FreeBSD has well over a few hundred tunables without documentation. This project aims at designing an automated process to rip all available tunables and generate a manual page based on the selected kernel options. The ideal implementation, however; would gather tunables from the LINT kernels as well. This would provide a default manual page for all supported architectures. A simple tool has been forged from the various off-list and on-list discussions and is waiting review from the -doc team. Anyone interesting in reviewing my current work is requested to get in contact with me.

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project

    We have been updating existing Japanese translations of manual pages to meet the 5.2-RELEASE schedule. Also, 22 new translations were complete during this period.

    FreeBSD MIDI Mathew Kanner matk@FreeBSD.org

    This project aims to update the current MIDI implementation. We are currently looking at removing the current code sometime in February and importing the new version soon after. I'm currently working on a kernel/timidity bridge for those without external hardware.

    The FreeBSD Russian Documentation Project Andrey Zakhvatov andy@FreeBSD.org The FreeBSD Project [Russian]

    The FreeBSD Russian Documentation Project aims to provide FreeBSD Documentation translated to Russian. Already done: FAQ, Porters Handbook, WWW (partially synched with English version), some articles.

    We working at Handbook (and more docs) translation and synchronization with English versions and need more translators (or financial aid to continue our work. If you can help, please, contact us at ru-cvs-committers@FreeBSD.org.ua (or andy@FreeBSD.org).

    KSE Daniel Eischen deischen@FreeBSD.org

    The libkse library will shortly be renamed to libpthread and be made the default thread library. This includes making the GCC -pthread option link to -lpthread instead of libc_r and changing PTHREAD_LIBS to -lpthread. David Xu has been working on GDB support and has it working with the GDB currently in our tree. The next step is to make a libpthread_db and get it working with GDB 6.0 which marcel has imported into the perforce tree.

    Donations Team Michael Lucas donations@FreeBSD.org - FreeBSD Donations Project + FreeBSD Donations Project

    2003 was quite successful for the Donations team. We shepherded over 200 items from donors into the hands of developers. Some high points include: a small cluster for the security team, assorted laptop hardware for our cardbus work, and documentation for our standards group. In the main FreeBSD.org cluster we were able to replace 8 DEC Miata machines with 6 Alpha DS10s (21264). Every committer doing SMP work now has multi-processor testing hardware.

    We have smoothed out the tax deduction process with the FreeBSD Foundation, and can ship donated items directly to the recipients instead of tying up Foundation time handling shipping.

    Current team membership is: Michael Lucas, David O'Brien, and Tom Rhodes. Wilko Bulte has replaced Robert Watson as the Core Team representative.

    ACPI Nate Lawson njl@FreeBSD.org ACPI TODO - ACPI-JP + ACPI-JP Mailing List

    The updated acpi_cpu driver was committed in November. Work is ongoing to finish support for _CST re-evaluation, which makes it possible for laptops based on processors like the Centrino to use varying CPU idle states when on or off AC power. 5.2-RELEASE also went out with support for _CID packages, which fixed mouse probing for Compaq users. Control of CPU idle states and throttling can now be done through rc.conf(5) settings for the /etc/power_profile script, which switches between performance/economy levels when the AC status changes.

    One huge task underway is the cpufreq project, a framework for detecting and controlling various frequency/voltage technologies (SpeedStep, LongRun, ACPI Performance states, etc.) The ACPI performance states driver is working and the framework is being implemented. It requires newbus attachments for CPUs so some ground work needs to go in before the driver can be committed.

    ACPI-CA was updated to 20031203 in early December and with a few patches is reasonably stable. An ACPI debugging how-to has been written and is being DocBooked by trhodes@. Ongoing work on fixing interrupt storms due to various ways of setting up the SCI is being done by jhb@.

    I'd like to welcome Philip Paeps (philip@) to the FreeBSD team. Philip has written an ACPI ASUS driver that will be committed soon and has been very helpful on the mailing lists. We've also had a lot of help from jhb@, marcel@, imp@, and peter@. We're hoping to see the return of takawata@ and iwasaki@, who have been very helpful in the past. If any developers are interested in assisting with ACPI, please see the ACPI TODO and send us an email.

    kgi4BSD Status Report Nicholas Souchu nsouch@FreeBSD.org - +

    Most of the console blocks are in place with nice results (see screenshots on the site). Boot console and virtual terminals are working with 8bit rendering and perfect integration of true graphic drivers in the kernel.

    Now it is time to bring it to end user and a precompiled R5.2 GENERIC kernel is available for this (see the site news). In parallel, after providing a last tarball/patch for R5.2, everything will move to Perforce.

    As always, volunteers are welcome. The task is huge but very exciting.

    FreeBSD/powerpc on PPCBug-based embedded boards Rafal Jaworowski rafal.jaworowski@motorola.com

    The direct objective is to make FreeBSD/powerpc work on Motorola MCP750 and similar (single board computer that is compliant with Compact PCI standard) Based on this work it would be easy to bring it to other embedded systems.

    1. loader(8): it is based on the existing loader for FreeBSD/powerpc port but binding to OpenFirmware was removed and replaced with PPCBug firmware binding. It only supports netbooting for the moment, so disk (compact flash) support needs to be done one day. The loader is the only piece that relies onPPCBug system calls - once the kernel starts it doesn't need firmware support any longer.

    2. kernel: it is now divorced from OpenFirmware dependencies; most of the groundwork finished includes: nexus stuff is sorted out (resources management is ok except interrupts assignment); host to PCI bridge low level routines are finished so configuration of and access to PCI devices works; the only important thing missing is the IRQ management (Raven MPIC part is done, but the board has the second PIC, 8259-compatible that needs to be set up, but here the existing code from x86 arch will be adopted).

    Once the IRQ management is cleared out, most of the devices on board would work straight away since they are pretty standard chips with drivers already implemented in the tree (e.g. if_de).

    At the moment work is on hold (don't have physical access to the device) but will resume when I'm back home (late Feb).

    TrustedBSD Mandatory Access Control (MAC) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD MAC page

    The TrustedBSD Mandatory Access Control (MAC) Framework permits the FreeBSD kernel and userspace access control policies to be adapted at compile-time, boot-time, or run-time. The MAC Framework provides common infrastructure components, such as policy-agnostic labeling, making it possible to easily development and distribute new access control policy modules. Sample modules include Biba, MLS, and Type Enforcement, as well as a variety of system hardening policies.

    TrustedBSD MAC development branch in Perforce integrated to 5.2-RELEASE.

    The TrustedBSD MAC Framework now enforces protections on System V IPC objects and methods. Shared memory, semaphores, and message queues are labeled, and most operations are controlled. The Biba, MLS, Test, and Stub policies have been updated for System V IPC. (Not yet merged)

    The TrustedBSD MAC Framework now enforces protections on POSIX semaphore objects and methods. The Biba, MLS, Test, and Stub policies have been updated. (Not yet merged)

    The TrustedBSD MAC Framework's central kernel implementation previously existed in one large file, src/sys/kern/kern_mac.c. It is now broken out into a series of by-service files in src/sys/security/mac. src/sys/security/mac/mac_internal.h specifies APIs, structures, and variables used internally across the different parts of the framework. System calls and registration still occur in kern_mac.c. This permits more easy maintenance of locally added object types. (Merged)

    Break out mac_policy_list into two different lists, one to hold "static" policy modules -- ones loaded prior to kernel initialization, and that may not be loaded, and one for "dynamic" policy modules -- that are either loaded later in boot, or may be unloaded. Perform less synchronization when using static modules only, reducing overhead for entering the framework when not using dynamic modules. (Merged)

    Introduced a kernel option, MAC_STATIC, which permits only statically registered policy modules to be loaded at boot or compiled into the kernel. When running with MAC_STATIC, no internal synchronization is required in the MAC Framework, lowering the cost of MAC Framework entry points. (Not yet merged)

    Make mac.h userland API definition C++-happy. (Merged)

    Created mac_support.4, a declaration of what kernel and userspace features are (and aren't) supported with MAC. (Not yet merged)

    Stale SEBSD module deleted from MAC branch; SEBSD module will solely be developed in the SEBSD branch from now on. See the TrustedBSD SEBSD report for more detail.

    Use only pointers to 'struct label' in various kernel objects outside the MAC Framework, and use a zone allocator to allocate label storage. This permits label structures to have their size changed more easily without changing the normal kernel ABI. This also lowers the non-MAC memory overhead for base kernel structures. This also simplifies handling and storage of labels in some of the edge cases where labels are exposed outside of the Framework, such as in execve(). Include files outside of the Framework are substantially simplified and now frequently no longer require _label.h. (Merged)

    Giant pushed down into the MAC Framework in a number of MAC related system calls, as it is not required for almost all of the MAC Framework. The exceptions are areas where the Framework interacts with pieces of the kernel still covered by MAC and relies on Giant to protect label storage in those structures. However, even in those cases, we can push Giant in quite a bit past label internalization/externalization/ storage allocation/deallocation. This substantially simplifies file descriptor-based MAC label system calls. (Merged)

    Remove unneeded mpo_destroy methods for Biba, LOMAC, and MLS since they cannot be unloaded. (Merged)

    Biba and MLS now use UMA zones for label allocation, which improves storage efficiency and enhances performance. (Merged)

    Bug fix for mac_prepare_type() to better support arbitrary object label definitions in /etc/mac.conf. (Merged)

    Labels added to 'struct inpcb', which represents TCP and UDP connections at the network layer. These labels cache socket labels at the application layer so that the labels may be accessed without application layer socket locks. When a label is changed on the socket, it is pushed down to the network layer through additional entry points. Biba, MLS policies updated to reflect this change. (Merged)

    SO_PEERLABEL socket option fixed so that peer socket labels may be retrieved. (Merged)

    mac_get_fd() learns to retrieve local socket labels, providing a simpler API than SO_LABEL with getsockopt(). mac_set_fd() learns about local socket labels, providing a simpler API than SO_LABEL with setsockopt(). This also improves the ABI by not embedding a struct label in the socket option arguments, instead using the copyin/copyout routine for labels used for other object types. (Merged)

    Some function names simplified relating to socket options. (Merged)

    Library call mac_get_peer() implemented in terms of getsockopt() with SO_PEERLABEL to improve API/ABI for networked applications that speak MAC. (Merged)

    mac_create_cred() renamed to mac_cred_copy(), similar to other label copying methods, allowing policies to implement all the label copying method with a single function, if desired. This also provides a better semantic match for the crdup() behavior. (Merged)

    Support "id -M", similar to Trusted IRIX. (Not yet merged)

    TCP now uses the inpcb label when responding in timed wait, avoiding reaching up to the socket layer for label information in otherwise network-centric code.

    Numerous bug fixes, including assertion fixes in the MAC test policy relating to execution and relabeling. (Merged)

    TrustedBSD Access Control Lists (ACLs) Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD ACLs page

    TrustedBSD Access Control Lists (ACLs) provide extended discretionary access control support for the UFS and UFS2 file systems on FreeBSD. They implement POSIX.1e ACLs with some extensions, and meet the Common Criteria CAPP requirements. Most ACL-related work is complete, with remaining tasks associated with userspace integration, third party applications, and compatibility

    Prototyped Solaris/Linux semantics for combining ACLs and the umask: if an default ACL mask is defined, substitute that mask for the umask, permitting ACLs to override umasks. (Not merged)

    TrustedBSD "Security-Enhanced BSD" -- FLASK/TE Port Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD SEBSD page

    TrustedBSD "Security-Enhanced BSD" (SEBSD) is a port of NSA's SELinux FLASK security architecture, Type Enforcement (TE) policy engine and language, and sample policy to FreeBSD using the TrustedBSD MAC Framework. SEBSD is available as a loadable policy module for the MAC Framework, along with a set of userspace extensions support security-extended labeling calls. In most cases, existing MAC Framework functions provide the necessary abstractions for SEBSD to plug in without SEBSD-specific changes, but some extensions to the MAC Framework have been required; these changes are developed in the SEBSD development branch, then merged to the MAC branch as they mature, and then to the FreeBSD development tree.

    Unlike other MAC Framework policy modules, the SEBSD module falls under the GPL, as it is derived from NSA's implementation. However, the eventual goal is to support plugging SEBSD into a base FreeBSD install without any modifications to FreeBSD itself.

    TrustedBSD SEBSD development branch in Perforce integrated to 5.2-RELEASE. Other changes in the MAC branch, including restructuring of MAC Framework files also integrated, and a move to zone allocation for labels. See the TrustedBSD MAC Framework report for more detail on these and other MAC changes that also affect the SEBSD work.

    FreeBSD PTY code modified so that the MAC Framework and SEBSD module can create pty's with the label of the process trying to access them. Improves compatibility with the SELinux sample policy. (Not yet merged)

    SEBSD now loads its initial policy in the boot loader rather than using a dummy policy until the root file system is mounted, and then loading it using VFS operations. This avoids initial labeling and access control conditions during the boot.

    security_load_policy() now passes a memory buffer and length to the kernel, permitting the policy reload mechanisms to be shared between the early boot load and late reloads. The kernel SEBSD code now no longer needs to perform direct file I/O relating to reading the policy. checkpolicy now mmap's the policy before making the system call.

    SEBSD now enforces protections on System V IPC objects and methods. Shared memory, semaphores, and message queues are labeled, and most operations are controlled. The sample policy has been updated.

    The TrustedBSD MAC Framework now controls mount, umount, and remount operations. A new MAC system call, mac_get_fs() can be used to query the mountpoint label. lmount() system call allows a mount label to be explicitly specified at mount time. The SEBSD policy module has been updated to reflect this functionality, and sample TE policy has been updated. (Not yet merged)

    SEBSD now enforces protections on POSIX semaphores; the sample policy has been updated to demonstrate how to label and control sempahores. This includes sample rules for PostgreSQL.

    The SEBSD sample policy, policy syntax, and policy tools have been updated to the SELinux code drop from August. Bmake these pieces so we don't need gmake.

    Provide file ioctl() MAC Framework entry point and SEBSD implementation.

    A large number of sample policy tweaks and fixes. The policy has been updated to permit cron to operate properly. It has been updated for FreeBSD 5.2 changes, including dynamically linked root. Teach the sample policy about FreeBSD's sendmail wrapper.

    Adapt sysinstall and install process for SEBSD pieces. Teach sysinstall, newfs, et al, about multilabel file systems, install SEBSD sample policy pieces, build policy. Automatically load the SEBSD module on first boot after install.

    Allow "ls -Z" to print out labels without long format.

    TrustedBSD Audit Robert Watson rwatson@FreeBSD.org TrustedBSD Audit Discussion List trustedbsd-audit@TrustedBSD.org TrustedBSD Audit Page

    The TrustedBSD Project is producing an implementation of CAPP compliant Audit support for use with FreeBSD. Little progress was made on this implementation between October and December other than an update to the existing development tree. However, in January, work began on porting the Darwin Audit implementation to FreeBSD. Details on this work will appear in the next report; more information is available on the TrustedBSD audit discussion list. Perforce messages may be seen on the trustedbsd-cvs mailing list.

    TrustedBSD Documentation Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@TrustedBSD.org TrustedBSD Documentation Page

    The TrustedBSD Project is implementing many new features for the FreeBSD Project. It also provides documentation for users, administrators, and developers.

    mac_support.4 added -- documents TrustedBSD MAC Framework feature compatibility. See also the MAC Framework report.

    FreeBSD security architecture updated and corrections/additions made.

    A variety of documentation updates relating to API changes, including the socket-related API changes in libc/mac(3).

    FreeBSD/MIPS Status Report Juli Mallett jmallett@FreeBSD.org

    TLB support code and PMAP have come along nicely. GCC and related have been kept up to date with the main tree. An evaluation board from Broadcom was donated and initial work on that platform has been occurring. Much old and obsolete code brought from NetBSD for bootstrapping the effort has been cleaned up. The system has been seen to get to the point of trying to initialize filesystems, but there are still bugs even before that milestone.

    AGP 3.0 Support John Baldwin jhb@FreeBSD.org

    Simple support AGP 3.0 including support for AGP 8x mode was added. The support is simple in that it still assumes only one master and one target. The main gain is the ability to use AGP 8x with drm modules that support it.

    Network Subsystem Locking and Performance Sam Leffler sam@FreeBSD.org

    The purpose of this project is to improve performance of the network subsystem. A major part of this work is to complete the locking of the networking subsystem so that it no longer depends on the "Giant lock" for proper operation. Removing the use of Giant will improve performance and permit multiple instances of the network stack to operate concurrently on multiprocessor systems.

    Locking of the network subsystem is largely complete. Network drivers, middleware layers (e.g. ipfw, dummynet, bridge, etc.), the routing tables, IPv4, NFS, and sockets are locked and operating without the use of Giant. Much of this work was included in the 5.2 release, but not enabled by default. The remaining work (mostly locking of the socket layer) will be committed to CVS as soon as we can resolve how to handle "legacy protocols" (i.e. those protocols that are not locked). The code can be obtained now from the Perforce database. A variety of test and production systems have been running this code for several months without any obvious issues.

    Performance analysis and tuning is ongoing. Initial results indicate SMP performance is already better than 4.x systems but UP performance is still lagging (though improved over -current). The removal of Giant from the network subsystem has reduced contention on Giant and highlighted performance bottlenecks in other parts of the system.

    This work was supported by the FreeBSD Foundation.

    Wireless Networking Support Sam Leffler sam@FreeBSD.org

    Work to merge the NetBSD and MADWIFI code bases is almost complete. This brings in new features and improves sharing which will enable future development. Support was added for 802.1x client authentication (using the open1x xsupplicant program) and for shared key authentication (both client and AP) which improves interopability with systems like OS X. The awi driver was updated to use the common 802.11 layer and the Atheros driver received extensive work to support hardware multi-rate retry. Kismet now works with the device-independent radiotap capture format. All of this work is still in Perforce but should be committed to CVS soon.

    Work has begun on full 802.1x and WPA support.

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    Work is progressing on SMPng on several different fronts. Sam Leffler and several other folks have been working on locking the network stack as mentioned elsewhere in this update. Several infrastructure improvements have been made in the past few months as well.

    The low-level interrupt code for the i386 architecture has been redesigned to allow for a runtime selection between different types of interrupt controllers. This work allows the Advanced Programmable Interrupt Controllers (APICs) to be used instead of the AT 8259A PIC without having to compile a separate kernel to do so. It also allows the APIC to be used in a UP kernel as well as on a UP box. Together, all these changes allow an SMP kernel to work on a UP box and thus allowed SMP to be enabled in GENERIC as it already is on all of the other supported architectures. This work also reworked the APIC support to correctly route PCI interrupts when using an APIC to service device interrupts. This work was also used to add SMP support to the amd64 port.

    A turnstile implementation was committed that implemented a queue of threads blocked on a resource along with priority inheritance of blocked threads to the owner of the resource. Turnstiles were then used to replace the thread queue built into each mutex object which shrunk the size of each mutex as well as reduced the use of the sched_lock spin mutex.

    diff --git a/en/news/status/report-sept-2002-oct-2002.xml b/en/news/status/report-sept-2002-oct-2002.xml index 73b039e148..f92e5555f4 100644 --- a/en/news/status/report-sept-2002-oct-2002.xml +++ b/en/news/status/report-sept-2002-oct-2002.xml @@ -1,1021 +1,1021 @@ - + September-October 2002
    Introduction:

    Another busy pair of months at the FreeBSD Project have brought substantial maturity and feature completeness to the fledgeling 5.0-CURRENT branch. And just in time too, because by the time you read the next status report, we hope that you'll have FreeBSD 5.0 running on your desktop! Over the past two months, we've seen an upgrade of sparc64 to Tier 1 (Fully Supported) status, integration of a high quality storage encryption module, the commit of hardware-accelerated IPsec support, the addition of a general-purpose "Device Daemon" to process hardware attach/detach events to replace earlier single-purpose and bus-specific daemons, the commit of RAIDFrame, and the improved maturity of the TrustedBSD work. We've also seen another successful release of the 4.x branch, 4.7-RELEASE, which will continue to be the production supported platform as 5.X is brought in for landing.

    Over the next two months, the FreeBSD Project will be focused almost entirely on making 5.0 a success: improving system stability and performance, as well as increasing the pool of applications that build and run on 5.0. The Release Engineering team will have announced the 5.0 code freeze, and released DP2 by the time you read this. Following DP2 will be a series of Release Candidates (RC's), and then the release itself. If you're interested in getting involved in the testing process, please lend a hand -- a spare box and a copy of the DP and RC ISOs burnt onto CD will make a difference. The normal caveats associated with pre-release versions of operating systems apply! You may also be interested in reading the Early Adopter's guide produced by the Release Engineering team to help determine when a transition from the 4.x branch to the 5.x branch will be appropriate for you and your organization.

    Thanks,

    Robert Watson, Scott Long

    Bluetooth stack for FreeBSD (Netgraph implementation) Maksim Yevmenkin m_evmenkin@yahoo.com Latest snapshot Linux BlueZ stack OpenOBEX

    I'm very pleased to announce that another engineering release is available for download at http://www.geocities.com/m_evmenkin/ngbt-fbsd-20021104.tar.gz

    This release features minor bug fixes and new OpenOBEX library port. The snapshot includes support for H4 UART and H2 USB transport layers, Host Controller Interface (HCI), Link Layer Control and Adaptation Protocol (L2CAP) and Bluetooth sockets layer. It also comes with several user space utilities that can be used to configure and test Bluetooth devices. Also there are several man pages.

    Service Discovery Protocol (SDP) port has been updated to version 0.8. (ported from BlueZ-sdp-0.8). Most of the RFCOMM issues have been resolved and now rfcommd works with Windows (3COM, Xircom and Widcomm) and Linux stacks.

    New supported USB device - EPoX BT-DG02 dongle. Also I have received successful report about Mitsumi USB dongle and C413S Bluetooth enabled cell phone (L2CAP and SDP works, waiting on RFCOMM report).

    I'm currently working on OBEX server (Push and File Transfer profiles) which will be based on OpenOBEX library (included in the snapshot).

    BSDCon 2003 Gregory Shapiro gshapiro@FreeBSD.org BSDCon 2003 Call For Papers

    The BSDCon 2003 Program Committee invites you to contribute original and innovative papers on topics related to BSD-derived systems and the Open Source world. Topics of interest include but are not limited to:

    • Embedded BSD application development and deployment
    • Real world experiences using BSD systems
    • Using BSD in a mixed OS environment
    • Comparison with non-BSD operating systems; technical, practical, licensing (GPL vs. BSD)
    • Tracking open source development on non-BSD systems
    • BSD on the desktop
    • I/O subsystem and device driver development
    • SMP and kernel threads
    • Kernel enhancements
    • Internet and networking services
    • Security
    • Performance analysis and tuning
    • System administration
    • Future of BSD

    Submissions in the form of extended abstracts are due by April 1, 2003. Be sure to review the extended abstract expectations before submitting. Selection will be based on the quality of the written submission and whether the work is of interest to the community.

    We look forward to receiving your submissions!

    C99 & POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List standards@FreeBSD.org

    October 10, 2002 marked the one year anniversary of our project. During that time we have made significant advances in FreeBSD's standards conformance. FreeBSD 5.0-RELEASE will be the showcase for most of our hard work. We hope that our tireless effort has had a positive effect on FreeBSD and software vendors that maintain or are considering porting their software to FreeBSD.

    On the API front, _Exit(3) (an alias for _exit(2)) was added, sysconf(3) was update for POSIX.1-2001, and some of the glob(3) additions were MFC'd. The insque(), lsearch(), and remque() family of functions were reimplemented and moved to libc from libcompat. Several wide character functions were implemented, including all printf() and scanf() variants. Finally, support for wide character format types (%C, %S, %lc, %ls) were added to printf(3).

    Work on utility conformance continued as getconf(1)'s compliance was updated, c99(1) (a new version of c89(1)) was implemented, and cd(1) and command(1) changes were MFC'd.

    Almost 20 headers were brought up to conformance with applicable standards. Not much work remains to fix conformance issues in the remaining standard headers. Work in this area, as well as others, has slowed down in preparation for 5.0-RELEASE.

    DEVD Status Report Warner Losh imp@FreeBSD.org

    DEVD has been integrated into FreeBSD current. It was integrated in an incomplete state. However, it is useful in the state that it is in for doing simple things like running camcontrol rescan when a SCSI pcmcia card is inserted, or running /etc/pccard_ether with an ethernet card is inserted. The more sophisticated regular expression matching is not yet complete. Devd only does actions on device arrival and departure, but does not yet do anything with unknown devices. In addition to listening for device events, there is some desire to have /dev/devctl also allow for some direct control of the device tree.

    Fast IPsec Status Sam Leffler sam@FreeBSD.org

    The main goal of this project is to modify the IPsec protocols to use the kernel-level crypto subsystem imported from OpenBSD (see elsewhere). A secondary goal is to do general performance tuning of the IPsec protocols.

    This work was committed to -current. To configure it for use specify options FAST_IPSEC in your system configuration file. At present support is limited to IPv4.

    GBDE - Geom Based Disk Encryption Poul-Henning Kamp phk@FreeBSD.org

    GBDE has been committed to -current.

    The "Geom Based Disk Encryption" module provides a mechanism for very strong encryption of a GEOM "disk". The algorithm has passed informal review by a couple of seasoned crypto heavy-weights. Any GEOM device can be protected with GBDE, entire physical disks, MBR slices, BSD partitions etc etc. Booting from an encrypted partition is not possible, however.

    The focus of GBDE is to protect a "cold" disk media. (FreeBSD is not equipped well for protecting key material on a running system from being compromised.) For a cold media, the only feasible attack on a GBDE protected media is guessing the pass-phrase.

    Summary of the GBDE multilevel protection scheme: Up to four separate pass-phrases can unlock their own separate copies of the 2048 bit masterkey. The master-keys are protected using AES/256/CBC keyed with a SHA-2 hash derived from the pass-phrase. A salted MD5 hash over the sectoroffset "cherry-picks" which masterkey bytes participate in the MD5 hash which generates the "kkey" for each particular sector. The kkey AES/128/CBC encrypts the PRNG produced single-use key which AES/128/CBC encrypts the actual sector data.

    GBDE has features for master-key destruction and pass-phrase invalidation.

    See gbde(4) and gbde(8) for more details.

    This software was developed for the FreeBSD Project by Poul-Henning Kamp and NAI Labs, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research program.

    GEOM - generalized block storage manipulation Poul-Henning Kamp phk@FreeBSD.org - Old concept paper here. + Old concept paper here.

    The GEOM code is now the default on most (if not all ?) architectures and the few remaining issues in libdisk/sysinstall is being hashed out.

    Although we are far from finished developing GEOM, its current feature set is a significant step forward for FreeBSD, providing not only immediate relief for new architectures (sparc64, ia64 etc) but also because it is designed as SMPng code from the start.

    This software was developed for the FreeBSD Project by Poul-Henning Kamp and NAI Labs, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research program.

    FreeBSD GNOME Project Joe Marcus marcus@FreeBSD.org Maxim Sobolev sobomax@FreeBSD.org Adam Weinberger adamw@FreeBSD.org - FreeBSD GNOME Project Homepage. + FreeBSD GNOME Project Homepage.

    These last two months have seen quite a lot of GNOME activity. GNOME has started releasing development snapshots of the upcoming GNOME 2.2 desktop. FreeBSD porting has begun outside of the main ports tree in the MarcusCom CVS repository. If you are interested in testing the new desktop, follow the instructions on the aforementioned cvsweb URL, and checkout the "ports" module.

    Evolution 1.2 is also close at hand. Ximian has posted its first release candidate, 1.1.90, which has been ported to FreeBSD, and is available from the MarcusCom CVS repo listed above. As soon as Ximian officially releases Evolution 1.2, it will be placed in the FreeBSD ports tree.

    The Mozilla ports have received numerous updates. We are now tracking all three released Mozilla versions. The mozilla-vendor port is tracking the 1.0.x branch, mozilla is tracking 1.1.x, and mozilla-devel is tracking 1.2.x. The mozilla-devel port now has support for anti-aliased fonts as well as a GTK+-2 interface

    Finally, the GNOME team would like to welcome its newest team member, Adam Weinberger. Adam has been submitting patches for both GNOME ports as well as documentation. Currently, he has been active in the GNOME 2.2 porting effort. We are happy to have him.

    Hardware Crypto Support Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to import the OpenBSD kernel-level crypto subsystem. This facility provides kernel- and user-level access to hardware crypto devices for the calculation of cryptographic hashes, ciphers, and public key operations. The main clients of this facility are the kernel RNG (/dev/random), network protocols (e.g. IPsec), and OpenSSL (through the /dev/crypto device).

    This work was committed to the -current tree. To configure it for use specify device crypto in your system configuration file or you can load the crypto module. The /dev/crypto device support is brought in with device cryptodev or by loading the cryptodev module. Two crypto device drivers exist: ubsec for Broadcom-based PCI hardware and hifn for Hifn-based PCI hardware.

    Integration of this work into the -stable source tree should be completed by the time this report is published.

    FreeBSD Java Project Greg Lewis glewis@FreeBSD.org - FreeBSD Java Project + FreeBSD Java Project

    Since the last status report the BSD Java Porting Team has continued to make steady progress. The most exciting news we have is courtesy of our newest team member, Alexey Zelkin of FreeBSD committer fame.

    • Thanks to a lot of hard work, primarily by Alexey, the project is very close to being able to release our first patch set for the 1.4 JDK. Things are reportedly working quite well under -CURRENT, with -STABLE support being only marginally behind (thanks in part to the libc_r MFC by Max Khon).
    • The project has released another patchset for the 1.2.2 JDK, mainly to add support for OpenBSD and for JPDA. Most of the projects energy at the moment is focused on 1.3 and 1.4, however we still hope to back port relevant fixes if appropriate to 1.2.2.
    • Nate Williams has been hard at work behind the scenes migrating us to a new CVS server which has kindly been donated by the FreeBSD Foundation. The Project appreciates the continued support of the Foundation. Please support them so they can continue to support us and other important FreeBSD efforts!

    jpman project Kazuo Horikawa horikawa@FreeBSD.org jpman project package ja-man-doc-4.7.tgz

    For 4.7-RELEASE, we privately published package ja-man-doc-4.7.tgz which consists of man[1256789] entries 10 days after the 4.7-RELEASE release date. Man3 update god no progress, as updating other sections busied us. We decided to suspend man3 update officially, as we need to spend most of our time to catch up with the forthcoming 5.0-RELEASE.

    KDE FreeBSD Project Will Andrews will@FreeBSD.org KDE-FreeBSD Mailinglist kde@FreeBSD.org KDE/FreeBSD Website KDE/FreeBSD Build Server

    The KDE/FreeBSD team has been working on two major goals during the last two months, Maintenance of the KDE 3.0.x ports and Preparing the upcoming KDE 3.1 Release.

    Maintenance KDE 3.0 conducted by Alan Eldrige: September started with the Removal of the KDE 2.x Ports from the FreeBSD-Repository. Later Packages of KDE 3.0.4 were released and the FreeBSD Ports were updated.

    Preparing for KDE 3.1 conducted by Will Andrews: A lot of effort was spent on Improving the Fruitsalad-Build-System. We are now able to create packages directly from the KDE CVS.

    KSE Project Status Julian Elischer - julian@freebsd.org + julian@FreeBSD.org David Xu - davidxu@freebsd.org + davidxu@FreeBSD.org Jonathon Mini - mini@freebsd.org + mini@FreeBSD.org Daniel Eischen - deischen@freebsd.org + deischen@FreeBSD.org KSE Project web page some links

    The KSE code has now all the basic kernel functionality to start being used by the userland. There are still things to be done for testing and familiarization.

    General system utilities have not yet been changed. e.g. ps and top etc. need to know about threads.

    There is quite a lot of code in the kernel that still assumes that there is one thread in a process. Signals are not yet handled in the final manner (though they are delivered to a random thread in the process :-/ ).

    The system calls and datastructures are now however in place. The test program successfully starts several threads that can be scheduled on different processors, and closes them down again. The userland is probably going to be able to do simple scheduling of pthread threads using KSE by the time that this report is published.

    I still need someone to take over the "official" web page since jason left. LaTeX sure isn't my thing.

    LibH Antoine Beaupré anarcat@anarcat.ath.cx Alexander Langer - alex@freebsd.org + alex@FreeBSD.org - + LibH development page

    Not much since the last status report, except that we now have the repo and development web page back online, thanks to the services of John De Boskey who freely provided the necessary hardware and bandwidth to host the project. We have also ported LibH to GCC 3.x, so that it can compile on -CURRENT correctly. This, however, broke tvision, which doesn't compile under GCC 3.x, so we moved to rhtvision but this caused linking problems so we're stuck with no console front end, for now.

    Work on a Hui rewrite and SWIG bindings stalled. Alex was able to come up with a simple patch to make the ports system use LibH's pkg_create script to build libh packages, so we're getting closer to a real pkg_create(1) drop-in replacement. I rewrote the milestone list to show a bit more relevant and encouraging tasks that will be dealt with in order to really push LibH forward.

    FreeBSD/MIPS Juli Mallett jmallett@FreeBSD.org

    A mailing list was created, freebsd-mips, and a Perforce branch was created in //depot/projects/mips. Changes which will be necessary to allow multiple MIPS (and PowerPC) metaports to exist under one architecture port were made, and are being pushed back into the main FreeBSD tree. Some preliminary header work has been done, and porting the ARCBIOS interfaces to the kernel has begun. The toolchain in tree was updated and modified in places to support a FreeBSD/MIPS (Big Endian) target, in the Perforce branch. Some early boot code has proven the GDB MIPS simulator to work, for at least R3000 code, though whether R3000 will be supported has been under discussion. Some initial architectural decisions were also made, to steer current work.

    NEWCARD Status Report Warner Losh imp@FreeBSD.org

    Work on newcard continues. A number of bugs have been fixed in the last few months. You are now able to load and unload drivers (including the bridge) to test changes to pccard and/or cardbus bus code. It is now possible to load a driver that has a pccard attachment and have a previously inserted card probe and attach. This is also true for CardBus. A number of issues remain to be solved before 5.0. However, with the integration of devd into the tree nearly all of old functionality of OLDCARD is now present in NEWCARD (the biggest remaining parts are power control for the sockets, as well as pccardc dumpcis).

    PowerPC Port Peter Grehan grehan@FreeBSD.org

    The PowerPC port has been running diskless on NewWorld G3/G4 machines for a while now. A GEOM module to support Apple Partition Maps is being written. There should be an installable ISO image available in the near future.

    RAIDFrame for FreeBSD Scott Long - scottl@freebsd.org + scottl@FreeBSD.org - Project homepage + Project homepage

    RAIDFrame was imported into FreeBSD-current in late October, a major milestone after 18 months. It is still very experimental and not suitable for production environments. The website contains a lengthy TODO list which I hope to start attending to soon. Still, I encourage everyone to try it out and report bugs back to me.

    Release Engineering re@FreeBSD.org

    The Release Engineering (RE) team completed and released FreeBSD 4.7 on 10 October 2002. This release features updates for a number of contributed software programs in the base system, as well as all of the security and bug fixes from FreeBSD 4.6.2. The next release in the 4.X series will be FreeBSD 4.8, which has a scheduled release date of 1 February 2003.

    Before that time, however, will be the release of FreeBSD 5.0. Thus far, we have not been able to release the 5.0-DP2 developer snapshot due to various stability issues. Thanks to much effort from many of our fellow developers, we believe that most of these have been resolved. The RE team wishes to emphasize that FreeBSD 5.0 will involve new code and features that have not seen widespread testing, and that more conservative users may wish to continue to track the 4.X series for the near-term future. To provide more information on these issues, we have added an Early Adopter's Guide to the release documentation for 5.0.

    Brian Somers has resigned from the RE team due to increased time pressures. We thank him for all of his help with FreeBSD 4.5, 4.6, 4.6.2, and 4.7, and we hope to continue working with him as a fellow developer.

    Scott Long has graciously offered to help improve the communication between the RE team and the rest of the developer community. We greatly appreciate his assistance.

    jp.FreeBSD.org daily SNAPSHOTs project Makoto Matsushita matusita@jp.FreeBSD.org Project Webpage Project Webpage (in Japanese)

    Recent 5-current release procedure troubles prevent the project from releasing a new snapshots. But 5-current FreeBSD/i386 release is back again in late Oct/2002! I have a plan to build daily FreeBSD/sparc64 snapshots for 5-current. Stay tuned...

    FreeBSD/sparc64 Status Report Jake Burkholder jake@FreeBSD.org Thomas Moestl tmm@FreeBSD.org

    A lot has happened recently for the sparc64 port. Sysinstall and make release work and can be used to build installable snapshots. The gdb5.3 port now works, and, thanks to Thomas Moestl, kernel crash dumps are supported which can be analyzed by gdb. These 2 items are the last things considered necessary by the Core team for FreeBSD/sparc64 to be a Tier 1 architecture, which means that 5.0-RELEASE for sparc64 will be officially supported by the release engineering team and by the security officer team.

    Recently Jake Burkholder has been working on alternate installation methods other than bootable iso, including a mini-root filesystem which can be written to the swap partition of an existing machine. Thomas Moestl has been putting some finishing touches on the release process, ensuring that the release documentation can be built properly, and that the port readme files can be generated by the release process.

    An experimental iso built with make release is now available on the freebsd ftp site and mirrors in /pub/FreeBSD/development/sparc64/5.0-20021031-SNAP. It is expected that by the middle of November new 5.0-SNAP releases will be available every few days for download and for ftp install, cpu power and bandwidth permitting.

    TrustedBSD Project Robert Watson rwatson@FreeBSD.org TrustedBSD Discussion Mailing List trustedbsd-discuss@FreeBSD.org TrustedBSD web site

    Most progress on TrustedBSD over the last two months related to improving the maturity of the ACL and MAC implementations, and merging new aspects of those features into the primary FreeBSD CVS Repository for inclusion in FreeBSD 5.0. This included fixes to run better on sparc64, improved tuning of what system objects are mediated, locking fixes and optimizations especially relating to the vnode and pipe implementations, improved support for MAC labeling on symlinks, support for asynchronous process label changes as required in some locking situations, remove use of "temporary labels" and prefer use of object type specific labels reducing redundant and/or confusing label management code in policies, improve avoidance of memory allocation in M_NOWAIT scenarios for socket allocation in the syncache, mediation of link operations, race condition fixes for devfs involving label creation, improve handling of VM events such as mmaping, improve mediation of socket send/receive events (as distinguished from socket transmit/deliver events), support for manipulating EAs on symlinks using new system calls, support for MNT_ACLS and MNT_MULTILABEL flags at mount time, as well as FS_ACLS and FS_MULTILABEL superblock flags to key useful defaults using tunefs, correction of a memory leak in the UFS ACL code, enable UFS ACL support by default in GENERIC, mediation points for file creation, deletion, and rename, support for a mac_execve() execution interface in the style of SELinux's execve_secure() permitting a label transition request as part of the exec operation for policies that support it, more consistent handling of NFS lookups, support for labeling of multicast encapsulated packets, ATM packet labeling, FDDI packet labeling, STF packet labeling, revised label interface that avoids userland parsing of per-policy elements, reducing us to a single instance of parsing and printing for each policy (and further abstracting policy implementation details from the library code).

    Also, change to single-level sockets for Biba and MLS policies, support for partial label updates for Biba and MLS, addition of mac.9 man page, revised user API system calls, implementation of mac_get_pid(), and various other related bits, creation of mac.conf(5) to specify label defaults, checks for various system operations including swapon(), settime(), and sysctl(), reboot(), acct(), introduction of command line utilities for maintaining file and process labels, support for user labels tied to login class, su support for label changes, ifconfig support for interface labels, ps support for process labels, ls support for file labels, ftpd support for login labels, development of the Biba and MLS notions of privilege, and a move to C99 sparse structure initialization, restoring full type checking for policy entry points.

    OSF DCE 1.1 RPC UUIDs Marcel Moolenaar marcel@FreeBSD.org Hiten Pandya hiten@uk.FreeBSD.org

    Universally Unique Identifiers (UUIDs) are 128 bit values that may be generated independently on separate nodes (hosts), which result in globally unique strings. UUIDs are also known as Globally Unique Identifiers (GUIDs). The UUID support for FreeBSD (libc) conforms to the DCE 1.1 RPC specification.

    UUID support has been added to FreeBSD -CURRENT, and will be available in version 5.0. It is being extensively used in GPT partition handling for IA-64 platform. For now, a simple manual page has been provided, which outlines information about the provided uuid routines. Many documentation additions and enhancements to uuidgen(1) are in the pipeline.

    Wireless Networking Status Sam Leffler sam@FreeBSD.org

    The goal of this project is to improve the wireless networking support in the system. The initial work will incorporate the 802.11 link layer done by Atsushi Onoe for NetBSD. This core support code implements the basic 802.11 protocols required for Station and AP operation in BSS, IBSS, and Ad Hoc modes of operation. Wireless device drivers will then be revised to use this common code instead of their private implementations.

    Following this initial stage the wireless networking support will be extended to support functionality needed for workgroup, enterprise, and metropolitan (e.g. mesh) networking environments. This will include full power management support, the 802.1D spanning tree protocol for running multiple AP's in a bridged configuration, QoS support, and enhanced security protocols (LEAP, AES, EAP). Support for new hardware devices is also planned.

    diff --git a/en/news/status/report-september-2001.xml b/en/news/status/report-september-2001.xml index ac158233e5..3716ceb880 100644 --- a/en/news/status/report-september-2001.xml +++ b/en/news/status/report-september-2001.xml @@ -1,944 +1,944 @@ - + September 2001 - $FreeBSD: www/en/news/status/report-september-2001.xml,v 1.1 2001/11/12 22:25:12 chris Exp $ + $FreeBSD: www/en/news/status/report-september-2001.xml,v 1.2 2003/04/13 16:31:52 hrs Exp $
    Introduction

    In the month of September, the FreeBSD Project continued its investment in long-term projects, including continuing work on a fine-grained SMP implementation, support for Kernel Schedulable Entities (KSE) supporting highly efficient threading, and broadening support for modern hardware platforms, including Intel's new IA64 architecture, UltraSparc, and PowerPC. Additional focus was placed on the release process, including work on the release notes infrastructure, support for DVD releases, and work on a binary updating tool.

    Due to the delay in getting the September report out the door, the November status report will also cover October. During the month of November, we look forward to BSDCon Europe, the first such event outside the continental United States. The USENIX conference paper submission deadlines are also in November, and FreeBSD users and developers are encouraged to submit to the general and FREENIX tracks. Please see www.usenix.org for more information.

    PRFW Evan Sarmiento evms@csa.bu.edu

    PRFW provides hooks in the FreeBSD kernel, allowing users to insert their own checks in system calls and various kernel functions. PRFW is nearing 0.5, which will incorporate numerous structural changes such as, much faster per-process hooks, kernel function hooks, plus, a new way of adding hooks which would enable users to reference hooks by a string.

    FreeBSD libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org

    The build process is now creating four different versions of the libs, which include support for TVision, Qt, both or none. I created some first packages from existing ports and installed those libh packages on my system only using libh's tools, including registering all the files in the package database, recording their checksums etc. Patches to the disk editor have been submitted, which include functionality to write the changes in the fdisk part and initial support for a disk label editor. We'll soon have a new committer.

    RELNOTESng Bruce A. Mah bmah@FreeBSD.org - +

    FreeBSD 4.4-RELEASE was the first release of FreeBSD with its new-style release documentation. Both English and Japanese versions of these documents were created. Regularly-built snapshots of -CURRENT and 4-STABLE release documentation are now available on the Web site, but they require a little HTML infrastructure to make them viewer-friendly. I intend to continue updating my snapshot site at the URL above, at least for a little while.

    Call for help: The hardware compatibility lists need to be updated in the areas of the Alpha architecture, USB devices, and PCCARD devices. I'm looking for volunteers to help; interested parties should contact me at the email address above. DocBook experience is not required; familiarity with the hardware above would be very helpful.

    Fibre Channel Support Matthew Jacob mjacob@FreeBSD.org

    Bug fixing and move to -STABLE of 2Gb support.

    Intel Gigabit Ethernet Matthew Jacob mjacob@FreeBSD.org

    Quite a lot of cleanup of this driver. Bug fixes and some performance enhancements. However, this driver is likely to be removed shortly and replaced by one from Intel itself.

    TIRPC Martin Blapp mb@imp.ch

    As you know, in march 2001 the version 2.3 of TIRPC has been committed together with many userland changes. Alfred Perlstein and Ian Dowse have helped me a lot with the porting effort and if I had problems with understanding the code.

    Most bugs are now fixed, some remaining areas to fix are secure RPC (keyserv) and unix domain support. I've patches for these area available. Ian Dowse fixed a lot of outstanding bugs in the rpcbind binary itself. Thank you Ian !

    The plan is now to migrate slowly towards TIRPC 2.8, which is threadsafe for the server- and clientside. One first patch I've made available on my URL. TIRPC 2.8 is licensed under the "Sun Standards License Version 1.0" and we have to add some license lines and the license itself to all modified files.

    A example is timed_clnt_create.diff which can be found on the homepage.

    binup Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org

    The project has gained a mailing list, freebsd-binup@FreeBSD.org - and the source tree has been moved into the projects/ directory in the FreeBSD CVS repository. Current work is focusing on extending the FreeBSD package framework, and the client library should be rewritten and completed by the end of the year.

    TODO: make the projects/ hierarchy into a cvsup distribution and add it to cvs-all. Then update distrib.self.

    Porting ppp to hurd & linux Brian Somers brian@freebsd-services.com

    Status is unchanged since last month. Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed. Many conflicts are expected after the commit of IPv6 support in ppp.

    PPP IPv6 Support Brian Somers brian@freebsd-services.com

    The software has been committed to -current and seems functional. Outstanding issues include dealing with IPV6CP events (linkup & linkdown scripts) and allocating site-local and global addresses (currently, ``iface add'' is the only way to actually use the link). A bug exists in -stable (running the not-yet-MFC'd ppp code) whereby routing entries are disappearing after a time (around 12 or 24 hours). No further details are yet available.

    FreeBSD DVD generation Brian Somers brian@freebsd-services.com

    A two disc set has been mastered and sent for pressing. There are a few surprises with this release - details will be given in the official announcement (at BSDConEurope).

    Netgraph ATM Harti Brandt brandt@fokus.gmd.de

    ATM-Forum LAN-emulation version 2.0 without support for QoS has been implemented and tested. The ILMI daemon has been modularized into a general mini-SNMP daemon, an ILMI module and a not yet finished IPOA (IP over ATM) module.

    jpman project man-jp@jp.FreeBSD.org

    We have finished updating section [125678] manpages to 4.4-RELEASE based, 1 week after 4.4-RELEASE is announced. To finish this update, OKAZAKI Tetsurou has imported Ex/Rv macro support on ja-groff-1.17.2_1. SUZUKI Koichi did most Ex/Rv changes on Japanese manpages. He also find some issues of these macro usage on some original manpages and filed a PR. For post-4.4-RELEASE, now we target 4.5-RELEASE. Section 3 update is also in progress.

    New Mount(2) API Poul-Henning Kamp phk@FreeBSD.org Maxime Henrion mux@qualys.com

    We've made some good progress now, and the new nmount(2) syscall is nearly finished. There is still some work to do to have a working kernel_mount() and to convert all filesystems to use this new API for their VFS_MOUNT() functions.

    FreeBSD/sparc64 port Jake Burkholder - jake@freebsd.org + jake@FreeBSD.org Thomas Moestl - tmm@freebsd.org + tmm@FreeBSD.org

    I am pleased to announce that as of 1 AM Friday October 19th, the sparc64 port boots to single user mode. A few binaries from the base system have been built and verified to work properly. Much of this work is still in review for commit, but will be integrated into the cvs tree as soon as possible. EBus support has been ported from NetBSD, and ISA support has been written. The PCI host bridge code has stabilized, and busdma seems to work correctly now. The sio driver has had EBus support added, and the ATA driver has been modified so that it works on big-endian systems and uses the busdma API. With these changes, a root file system can now be successfully mounted from ATA disks on sparc64, even in DMA mode. The gem driver, which supports Sun GEM and ERI and Apple GMAC and GMAC2 ethernet adaptor, has been ported from NetBSD but has not yet had sufficient testing.

    SYN cache implementation for FreeBSD Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    No new status to report, the code is still waiting to be committed. It is likely that this code will be expanded to include syn cookies as a further fallback mechanism.

    Compressed TCP state Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Development on this project has been slowed, pending the commit of the syncache code, as this builds on part of that work.

    Network SMP locking Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Not much progress has been made this month, with other projects occupying most of my time. However, reviewing all the code and data structures had a side benefit; a hash table for inet addresses has been added. This will significantly speed up interface address lookups in the case where there are a larger number of interface aliases.

    Multiple console support Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Currently, a single device may act as a console at any time, which requires the user to choose the console device at boot time. With the upcoming network console support, it is desirable to allow multiple console devices which behave identically, and to alter consoles while the kernel is running.

    The code is completed, and needs some final polishing to clean up the rough edges. Console output can be sent to both syscons and sio, (as well as the network) and when in ddb, input can be taken from any input source. A small control program allows adding and removing consoles on the fly.

    Network console Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    This project's goal is to add low level network functionality to FreeBSD. The initial target is to make a network console available for remote debugging with ddb or gdb. A secondary target is to utilize the code to perform network crash dumps. The design assumes that the network card and driver are working, but does not rely on other parts of the kernel.

    Initial development has been fairly rapid, and a minimal TCP/IP stack has been written. It is currently possible to telnet to a machine which is at the ddb> prompt and interact with the debugger.

    Network device nodes Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    Network devices now support aliases in the form of /dev/netN, where N is the interface index. Devices may be wired down to a specific index number by entries in /boot/device.hints of either:

    hint.net.<ifindex>.dev="devname" hint.net.<ifindex>.ether="ethernet address"

    Additionally, ifconfig has been updated so that it will accept the alias name when configuring a device.

    Intel Gigabit driver Jonathan Lemon - jlemon@freebsd.org + jlemon@FreeBSD.org

    The gx driver has finally been committed to the tree. The driver provides support for the Intel PRO/1000 cards, both fiber and copper variants. The driver supports VLAN tagging and TCP/IP checksum offload.

    KSE - julian@freebsd.org + julian@FreeBSD.org - + - +

    In the last month, not a lot has happened other than settling in of the big August commit. Largely due to me having a sudden increased workload at work, and a need for increased time to be spent elsewhere. However some design work has proceeded. The API has firmed up somewhat and several people have been reading through what has been done already in order to be able to help in the next phase.

    Milestone 3 will be to have the ability to generate and remove multiple threads/KSEs per process. Milestone 3 will NOT require that doing so will be safe. (especially in SMP systems), i.e. locking issues will not be fully addressed, so while some testing will be possible, it will not be possible to actually run in this mode with any load.

    This will require allocators and destructors for the new structures. Creation of the syscalls. Generation of an accurate written API for the userland crew. Writing of the upcall launch code. Production of a userland test program (not a full thread scheduler). Resolution of some of the more glaring incompatibilities (e.g. the scheduler) in a backwards compatible manner. (i.e. if there are no multi threaded processes on a system it should behave the same as now (and be as reliable)).

    Criteria for knowing when we have reached Milestone 3 is the ability for a simple process on an unloaded system to perform a series of blocking syscalls reliably. e.g. open 2 sockets, and send data on one, after having done a read on another, and then 'respond' in like manner..

    PowerPC Port Benno Rice benno@FreeBSD.org

    There have been a few major successes in the PowerPC port this month. Mark Peek has succeeded in getting the FreeBSD/PowerPC kernel cross compiled on FreeBSD and booting under the PSIM simulator (now in /usr/ports/emulators/psim-freebsd). I have succeeded in getting the FreeBSD loader to load and execute kernels using the OpenFirmware found on Apple Macintosh hardware. Mark is now working on completing some of the startup and pmap code, while I am taking advantage of the simulator to work on some interrupt and device issues.

    FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com - Official FreeBSD Java + Official FreeBSD Java Project site.

    The project has moved forward on JDK 1.3.1 development this month, with the release of two more patchsets. The team is reasonably confident that the latest patchset is a stable release of the core JDK 1.3.1 tools and classes, when the default "green" threads subsystem is used. This is mostly thanks to hard work by Fuyuhiko Maruyama to stabilize and fix the code. Bill Huey has also been progressing with his work on the "native" threads subsystem, although this hasn't yet reached the stability of "green" threads. Another (arguably the) major highlight of the latest patchset was the integration of NetBSD support by Scott Bartram and Alistair Crooks (the latter of NetBSD packages fame). Hopefully OpenBSD support will follow, making it truly a united BSD Java Project.

    Improving FreeBSD startup scripts Doug Barton DougB@FreeBSD.org Gordon Tetlow gordont@gnf.org Improving FreeBSD startup scripts Luke Mewburn's papers NetBSD Initialization and Services Control

    This group is for discussion about the startup scripts in FreeBSD, primarily the scripts in /etc/rc*. Primary focus will be on improvements and importation of NetBSD's excellent work on this topic.

    Alright folks, I finally got off my butt last night and put together a roadmap for the migration to the new rc.d init scripts that were imported from NetBSD a long time ago and just sat in the tree.

    M1 (Patch included)
    Setup infrastructure
    Make rcorder compile
    Hook rc.subr into the distribution (and mergemaster)
    Hook rcorder into the world
    Add toggle in rc.conf to switch between rc_ng and current boot scripts

    M2
    Get FreeBSD to boot with the new boot scripts
    Rewrite the /etc/rc.d scripts to work with FreeBSD

    M3
    Add some FreeBSD specific support into rc.subr

    M4
    Add true dependency checking to the infrastructure so that starting nfsd will start mountd and rpcbind
    add support into rc.subr
    Add dependencies into rc.d scripts

    I'd like a couple of people to take a look at this and then I'll submit a pr for it if there aren't too many objections. I'm expecting M2 to run into quite a bikeshed, but hey, I got my nice shiny asbestos back from the cleaners.

    FreeBSD C99/POSIX Conformance Project Mike Barcroft mike@FreeBSD.org FreeBSD-Standards Mailing List freebsd-standards@bostonradio.org

    The FreeBSD C99/POSIX Conformance Project aims to implement all requirements of the C99 Standard and the latest 1003.1-200x POSIX draft (currently Draft 7). In cases where aspects of the standard cannot be followed, those aspects will be documented in the c99(7) or posix(7) manuals. It is also an aim of this project to implement regression tests to ensure correctness whenever possible.

    Patches that implement the <stdint.h> and <inttypes.h> headers, and modifications to printf(3) have been developed and will be committed shortly. They will allow us to use some of the new types C99 introduces, such as intmax_t and the printf(3) conversion specifier "%j".

    SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

    Some progress has been made on the proc locking this month. Also, a new LOCK_DEBUG macro was defined to allow some locking infrastructure to be more efficient. Kernels now only include the filenames of files calling mutex, sx, or semaphore lock operations if the filenames are needed. Also, mutex operations are no longer inlined if any debugging options are turned on. The ucred API was also overhauled to be more locking friendly. A group has also started investigating the tty subsystem to design and possibly implement a locking strategy.

    diff --git a/en/platforms/ia64/todo.sgml b/en/platforms/ia64/todo.sgml index eb89746343..3f51ec0c5f 100644 --- a/en/platforms/ia64/todo.sgml +++ b/en/platforms/ia64/todo.sgml @@ -1,96 +1,96 @@ - + %includes; ]> &header;
    -
    +
    Search the FreeBSD/ia64 PR database:

    What needs to be done.

    This page tries to be the starting point for people trying to find anything that can be done. The order of the items on this page are not strictly an indication of priority, but it is a good indication. There are in all likelyhood tasks that are not mentioned here, but that should be done nonetheless. A typical example is the maintenance of the ia64 web pages... unfortunately.

    Becoming a tier 1 platform.

    With two releases as a tier 2 platform, it is time to work towards becoming a tier 1 platform. This involves tasks as varied as:

    • Improve the installation process to take into account that there is already a GPT with an EFI partition, including other operating systems. The ability to add a FreeBSD entry to the EFI boot menu is also a nice thing.
    • Port the GNU debugger. It is sorely missed on a development machine and required on tier 1 platforms.
    • Port the X server (ports/x11/XFree86-4-Server). Not really required for tier 1 status, but one cannot truely do without if one wants to use ia64 as a desktop machine.

    Ports and packages,

    A very important task for the success of FreeBSD on ia64 is making sure that users have something to run besides ls(1). Our huge ports collection has been targeting ia32 for the most part, so it is not surprising that there are a lot of ports that do not build or do not work on ia64. Look - here + here for the most up-to-date list of ports that fail to build for some reason or another. Note that if there are ports depending on one or more ports that fail, those are not built and are not counted. A good way to help out here is to work on those ports that have a lot of ports depending on it (see the "Aff." column in the table).

    Sharpening the saw.

    There are plenty functions (especially assembly routines) that have been written to provide the missing functionality without any consideration for speed and/or robustness. Reviewing those functions and replacing them if necessary is a good task that can be done concurrently and independently from other activity and does not necessarily require huge amounts of knowledge and/or experience.

    Core development.

    On top of the high-level things that do not work or do not exist, there is also some rather involved rewriting to be done at the foundation and can potentionally affect all other platforms as well. This includes:

    • Improve UP and SMP stability by revamping the PMAP module. The low-level handling of VM translations needs to be improved. This involves both correctness as well as performance.
    • Basic device drivers such as sio(4) and syscons(4) do not work on ia64 machines that do not have support for legacy devices. This is a rather big issue, because it affects all platforms and may involve rewriting (big) parts of certain subsystems. Clearly a task that needs wholesale support and coordination.
    • Better handling of sparse (physical) memory configurations by not creating VM tables that span the whole address space, but rather cover the memory "chunks" that are present. We are currently forced to ignore memory because of this.
    &footer; diff --git a/en/platforms/mips.sgml b/en/platforms/mips.sgml index f0ba263cb3..8aecf9beab 100644 --- a/en/platforms/mips.sgml +++ b/en/platforms/mips.sgml @@ -1,71 +1,71 @@ - + %includes;]> &header;

    This page contains information about porting FreeBSD to the MIPS.

    General Information

    Frequently Asked Questions

    1. What is the FreeBSD/MIPS project?
    2. What hardware are you targeting?
    3. What is the current status?
    4. How can I acquire FreeBSD/MIPS?
    5. Who should I contact?

    What is the FreeBSD/MIPS project?

    FreeBSD/MIPS is a port of the FreeBSD operating system to computers with MIPS R4K and beyond processors, most notably SGI's MIPS computers.

    What hardware are you targeting?

    At the moment SGI's MIPS computers. Other MIPS platforms such as common embedded boards and non-exotic computers in a similar configuration to those offered by SGI are expected to be targeted later on.

    What is the current status?

    FreeBSD/MIPS is in the early stages of development, see the project status page for information about currently ongoing work.

    How can I acquire FreeBSD/MIPS?

    FreeBSD/MIPS is being developed in FreeBSD's Perforce repository but diffs will be occasionally posted to the mailing list.

    Who should I contact?

    Juli Mallett is the project lead. Contact her if you can contribute code. If you just want to know about the status of this project, check the project status page regularly or join the FreeBSD/MIPS mailing list.

    FreeBSD/MIPS mailing list

    To subscribe to this list, send mail to - or visit mailman interface.

    + or visit mailman interface.

    &footer; diff --git a/en/platforms/ppc.sgml b/en/platforms/ppc.sgml index 0ce09bbc42..45490c61e1 100644 --- a/en/platforms/ppc.sgml +++ b/en/platforms/ppc.sgml @@ -1,123 +1,123 @@ - + %includes;]> &header;

    This page contains information about porting FreeBSD to the PowerPC®.

    General Information

    Latest News

    • 3 July, 2002 : This page has been significantly updated. FreeBSD/PowerPC currently boots almost to the point of reaching single-user mode.

    • An older news list can be found on - Benno's page, + Benno's page, and you can view the bootup log.


    Frequently Asked Questions

    1. What is the FreeBSD/PowerPC project?
    2. What hardware are you targeting?
    3. What is the current status?
    4. How can I acquire FreeBSD/PowerPC?
    5. Who should I contact?

    What is the FreeBSD/PowerPC project?

    FreeBSD/PowerPC is a port of the FreeBSD operating system to computers with the PowerPC processor, most notably recent Macintosh® computers.

    What hardware are you targeting?

    At the moment "New World" (i.e. colourful case) Apple Macintoshes. Other platforms, such as older Power Mac®s and non-Apple computers using Open Firmware, are expected to be targeted later on.

    What is the current status?

    FreeBSD/PowerPC currently is on the verge of booting to single-user mode.

    How can I acquire FreeBSD/PowerPC?

    FreeBSD/PowerPC is mostly in cvs for -CURRENT.

    Who should I contact?

    Benno Rice is the project lead. Contact him if you can contribute code. If you just want to know about the status of this project, check this page regularly or join the FreeBSD/PowerPC mailing list.

    FreeBSD/PowerPC mailing list

    To subscribe to this list, send mail to - or visit mailman interface.

    + or visit mailman interface.

    Documentation, White Papers, Utilities

    Other Links of Interest

    &footer; diff --git a/en/platforms/sparc.sgml b/en/platforms/sparc.sgml index 8a5bc59ee6..c5645668e9 100644 --- a/en/platforms/sparc.sgml +++ b/en/platforms/sparc.sgml @@ -1,137 +1,137 @@ - + %includes; ]> &header;

    Introduction

    This page contains information about the FreeBSD port to Sun Microsystem's UltraSPARC® architecture. UltraSPARC is a - + Tier 1 architecture, and as such is fully supported by the - FreeBSD project. However, the port + FreeBSD project. However, the port is not as mature as the existing i386 or alpha ports. Discussion of the UltraSPARC port takes place on the - freebsd-sparc + freebsd-sparc mailing list.

    Table Of Contents

    Credits

    The follow people have been working either in the spotlights or behind the scenes to get the FreeBSD port off the ground:

    Latest News

    Hardware List

    A summary of supported systems follows. SMP is supported on all supported systems that contain more than 1 processor. For full details please see the - - release notes of the + + release notes of the release you are using.

    • Blade 100
    • Blade 150
    • Enterprise 220R
    • Enterprise 250
    • Enterprise 420R
    • Enterprise 450
    • Fire V100
    • Fire V120
    • Netra™ T1 105
    • Netra T1 AC200/DC200
    • Netra t 1100
    • Netra t 1120
    • Netra t 1125
    • Netra t 1400/1405
    • Netra 120
    • Netra X1
    • SPARCEngine® Ultra Axi
    • SPARCEngine Ultra AXmp
    • Ultra™ 5
    • Ultra 10
    • Ultra 30
    • Ultra 60
    • Ultra 80

    The following systems are supported, but can only be netbooted due to the onboard scsi controller being unsupported. Work is underway to add support for this scsi controller.

    • Enterprise 3500
    • Enterprise 4500
    • Ultra 1E
    • Ultra 2

    The following systems are unsupported.

    • Any system with an UltraSPARC III or greater processor.
    • Ultra 1

    Any system not listed here that does not have an UltraSPARC III or greater processor is expected to work, but may not have been tested. If you have a system that is not listed here please try it, and let - us know about it.

    + us know about it.

    What Needs To Be Done

    • Update this webpage more often.

    Pointer Of Interest

    &footer; diff --git a/en/ports/packages b/en/ports/packages index c9066e8751..852a948d1a 100755 --- a/en/ports/packages +++ b/en/ports/packages @@ -1,24 +1,24 @@ #!/bin/sh # Copyright (c) June 1998 Wolfram Schneider , Berlin. # # packages - create a sorted list of precompiled packages which # are available at the FreeBSD FTP Server. # -# $FreeBSD: www/en/ports/packages,v 1.8 2001/04/25 22:59:57 wosch Exp $ +# $FreeBSD: www/en/ports/packages,v 1.9 2001/07/08 00:20:08 dd Exp $ PATH=/bin:/usr/bin:/usr/local/bin; export PATH release='packages-stable'; -url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/$release/All/" +url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/$release/All/" temp=_lynx$$ if lynx -source "$url" > $temp || ( sleep 300; lynx -source "$url" > $temp ) || ( sleep 300; lynx -source "$url" > $temp ) then perl -ne 'print $1, "\n" if m%href="([^"]+)"%oi' < $temp | perl -npe 's%.*/%%' | sort | grep -v '^\.\.$' rm -f $temp else rm -f $temp exit 1 fi diff --git a/en/ports/portindex b/en/ports/portindex index 0b379daa5d..46b85a7236 100755 --- a/en/ports/portindex +++ b/en/ports/portindex @@ -1,280 +1,280 @@ #!/usr/bin/perl # convert a ports INDEX file to HTML # -# by John Fieber +# by John Fieber # Mon May 13 10:31:58 EST 1996 -# $FreeBSD: www/en/ports/portindex,v 1.49 2003/12/30 11:44:21 osa Exp $ +# $FreeBSD: www/en/ports/portindex,v 1.50 2004/04/01 08:51:24 osa Exp $ ############################################################ # Load local config file. You can override in portindex.conf # the variables for the default web and the ftp server. This # make it easy to maintain a local web mirror and let the # URL point to yourself and not to the standard FreeBSD FTP server. $config = $0 . '.' . 'conf'; do $config if -f $config; # This is the base of where we ftp stuff from if ($ENV{'MASTER_FTP_SERVER'}) { $ftpserver = $ENV{'MASTER_FTP_SERVER'}; } else { $ftpserver = 'ftp://ftp.FreeBSD.org' if !$ftpserver; } $base = "" if !$base; $baseHTTP = $base if !$baseHTTP; $baseFTP = "$ftpserver/pub/FreeBSD/ports/ports"; $baseCVSWEB = 'http://www.FreeBSD.org/cgi/cvsweb.cgi/'; -$urlcgi = 'http://www.freebsd.org/cgi/url.cgi' if !$urlcgi; +$urlcgi = 'http://www.FreeBSD.org/cgi/url.cgi' if !$urlcgi; $packagesURL = "$ftpserver/pub/FreeBSD/ports/i386/packages-stable/All/" if !$packagesURL; # support tar on the fly or gzip'ed tar on the fly $ftparchive = ''; $ftparchive = 'tar' if !defined $ftparchive; # ports download sources script $pds = 'http://www.FreeBSD.org/cgi/pds.cgi'; # better layout and link to the sources if ($urlcgi) { $baseHTTP = $urlcgi . '?' . $baseHTTP; } $today = &getdate; &packages_exist('packages.exists', *packages); &category_description(($ARGV[1] || '.') . '/categories', *category_description); &main; sub getdate { @months = ("January", "February", "March", "April", "May","June", "July", "August", "September", "October", "November", "December"); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; return "Last modified: $mday-$months[$mon]-$year"; } sub header { local ($fh, $htext) = @_; print $fh "\n"; print $fh "$today\">\n"; print $fh "\n"; print $fh "\n"; print $fh "\n"; print $fh "\n"; print $fh "%includes;\n"; print $fh "]>\n"; print $fh "&header;\n"; } sub footer { local ($fh, $ftext) = @_; print $fh "\n$ftext\n"; print $fh "&footer;\n"; print $fh "\n\n"; } sub packages_exist { local($file, *p) = @_; open(P, $file) || do { warn "open $file: $!\n"; warn "Cannot create packages links\n"; return 1; }; while(

    ) { chop; $p{$_} = 1; } close P; return 0; } sub category_description { local($file, *p) = @_; open(P, $file) || do { warn "open $file: $!\n"; warn "Cannot find category description\n"; return 1; }; local($category, $description); while(

    ) { # ignore comments next if /^\s*#/; ($category, $description) = /^\s*"([^"]+)",\s*"([^"]+)/; $p{$category} = $description; } close P; return 0; } sub main { $sep = ":"; open(INDEX, $ARGV[0]); while () { chop; s/&/&/g; s//>/g; # Read a record ($name, $loc, $prefix, $desc, $ldesc, $owner, $cats, $bdep, $rdep, $www) = split('\|'); # Check for double hyphens in the name (--). $name =~ s/--/-/g; # Split the categories into an array @cat = split("[ \t]+", $cats); $catkey{$name} = $cat[0]; local($sourcepath) = $loc; $sourcepath =~ s%/usr/%%; foreach $i (@cat) { $stats{$i}++; # figure out the FTP url $loc =~ s/\/usr\//$baseCVSWEB/; $ldesc =~ s/\/usr\//$baseHTTP/; # The name description and maintainer $data{$i} .= "

    $name "; $data{$i} .= "
    $desc
    Long description"; if ($packages{"$name.tbz"}) { $data{$i} .= qq{ | Package}; } elsif ($packages{"$name.tgz"}) { $data{$i} .= qq{ | Package}; } $data{$i} .= qq{ | Sources}; if ($www ne "") { $data{$i} .= qq{ | Main Web Site}; } $ownerurl = $owner; $ownerurl =~ s/<//g; $data{$i} .= "
    Maintained by: $owner"; # If there are any dependencies, list them if ($bdep ne "" || $rdep ne "") { $data{$i} .= "
    Requires: "; @dep = split(/ /, "$bdep $rdep"); local($last) = ''; foreach $j (sort @dep) { next if $j eq $last; $last = $j; $data{$i} .= " $j,"; } # remove the trailing comma chop $data{$i}; } # If the port is listed in more than one category, throw # in some cross references if ($#cat > 0) { $data{$i} .= "
    Also listed in: "; foreach $j (@cat) { if ($j ne $i) { if ($j eq $cat[0]) { $data{$i} .= " \u$j,"; } else { $data{$i} .= " \u$j,"; } } } # remove the trailing comma chop($data{$i}); } $data{$i} .= "

    \n" } # Add an entry to the master index # workaround for SGML bug, `--' is not allowed in comments local ($sname) = $name; $sname =~ s/--/-=/g; $master[$portnumber] = "$name " . " -- $desc
    \n"; $portnumber++; } open(MOUTF, ">index.sgml"); &header(MOUTF, "FreeBSD Ports"); # print MOUTF "\n"; print MOUTF "&blurb;"; print MOUTF "

    There are currently $portnumber ports in the FreeBSD Ports Collection.
    Download a gzip'd tar file of all $portnumber ports (about 25 megabytes) or browse the following categories:\n"; print MOUTF "

      \n"; @foos = sort(keys %stats); foreach $key (@foos) { # For the master file... print MOUTF "
    • \u$key ($stats{$key})"; if ($category_description{$key}) { print MOUTF " -- " . $category_description{$key}; } # Someone forgot to add a category to the description file # or there is a typo in the category field. else { warn "No description found for category: ``$key''!\n"; warn "Please fix me or send an E-Mail to doc\@FreeBSD.org\a\n"; sleep(3); } print MOUTF "
    • \n"; # Create the category file open(OUTF, ">$key.sgml"); &header(OUTF, "FreeBSD Ports: \u$key"); if ($category_description{$key}) { print OUTF "

      ", $category_description{$key}, "

      \n"; } print OUTF "
      \n"; $d = join("\n", sort(split(/\n/, $data{$key}))); $d =~ s/##([^#]*)##/$catkey{$1}/g; print OUTF $d; print OUTF "
      \n"; &footer(OUTF, "

      Port Categories" . " -- Index"); close(OUTF); } print MOUTF "
    \n"; print MOUTF "\n"; &footer(MOUTF, ""); close(MOUTF); # Create the master index file open(MINDEX, ">master-index.sgml"); &header(MINDEX, "FreeBSD Ports Collection Index"); print MINDEX "

    \n"; print MINDEX sort @master; print MINDEX "

    "; &footer(MINDEX, "Port Categories"); close(MINDEX); close(INDEX); } diff --git a/en/projects/c99/index.sgml b/en/projects/c99/index.sgml index 124501ca06..46a10fa967 100644 --- a/en/projects/c99/index.sgml +++ b/en/projects/c99/index.sgml @@ -1,1998 +1,1998 @@ - + %includes; %developers; "> "> "> "> "> -assert(3)"> -printf(3)"> -scanf(3)"> -strtod(3)"> -printf(9)"> +assert(3)"> +printf(3)"> +scanf(3)"> +strtod(3)"> +printf(9)"> freebsd-standards-subscribe@FreeBSD.org"> freebsd-standards@FreeBSD.org"> ]> FreeBSD C99 & &posix; Conformance Project FreeBSD C99 & POSIX Conformance Project
    Project Goal

    The FreeBSD C99 & &posix; Conformance Project aims to implement all requirements of the ISO 9899:1999 (C99) and IEEE 1003.1-2001 (POSIX) standards. In cases where aspects of these standards cannot be followed, those aspects will be documented in the c99(7) or posix(7) manuals. It is also an aim of this project to implement regression tests to ensure correctness whenever possible.

    Project Plan

    All of the initial development takes place in the 5-CURRENT branch and most changes are merged into the 4-STABLE branch. Since this is a rather large project and is being done on a volunteer basis, there is no set schedule.

    How to Contribute

    The project is always looking for additional contributors. If you wish to participate, the best way to find out what is happening is to subscribe to the freebsd-standards mailing list. If you are working on a specific task relating to the project, you should contact mike@FreeBSD.org with a description of the task so that your task can be listed below.

    Resources and Links Status Board

    - +
    Task Responsible Last Updated Status
    5.x 4.x
    Documentation
    Create stdint(7) manual to document <stdint.h>. &a.mike; 15 September 2002 &status.done; &status.n-a;
    Document flockfile(3), ftrylockfile(3), funlockfile(3). &a.tjr; 22 January 2004 &status.done; &status.n-a;
    Document standards conformity level of the API.   26 March 2002 &status.wip; &status.blank;
    Document thread safety and async-cancel safety.   26 March 2002 &status.wip; &status.blank;
    Create c99(7) and posix(7) manuals.   11 December 2001 &status.new; &status.blank;
    Document in posix(7) that the batch job management utilities are available in the port net/generic-nqs.   11 December 2001 &status.new; &status.blank;
    Document new _SC options in sysconf(3) (PR: 20528). Document new _SC options in sysconf(3) (PR: 20528).   25 November 2002 &status.new; &status.blank;


    Task Responsible Last Updated Status
    5.0 4.x
    Functions and System Calls
    Add __func__ reporting to &man.assert.3;. &a.asmodai; 27 October 2001 &status.done; &status.n-a;
    Implement imaxabs(), imaxdiv(), llabs(), lldiv(). &a.mike; 14 November 2001 &status.done; &status.n-a;
    Implement atoll(), strtoimax(), strtoumax(). &a.fenner; 27 November 2001 &status.done; &status.n-a;
    Implement new length modifiers (hh, j, t, z) and new flag (') in &man.printf.3;. &a.wollman;,
    &a.fenner;
    30 November 2001 &status.done; &status.n-a;
    Implement strerror_r(). &a.wes; 20 December 2001 &status.done; &status.done;
    Implement tgamma() based on Lite1's gamma(). &a.bde; 27 March 2002 &status.done; &status.n-a;
    Implement new length modifiers (hh, j, ll, t, z) in &man.scanf.3;. &a.fenner; 20 April 2002 &status.done; &status.n-a;
    Add WCONTINUED to waitpid(2). &a.mike; 1 June 2002 &status.done; &status.n-a;
    Implement new conversion specifiers (%j and %n) in &man.printf.9;. &a.dd;
    &a.des;
    3 June 2002 &status.done; &status.n-a;
    Implement fstatvfs() and statvfs() (trivial). &a.wollman; 14 June 2002 &status.done; &status.n-a;
    Implement fmtmsg(). &a.mike; 8 August 2002 &status.done; &status.n-a;
    Implement ulimit(). &a.mkm; 8 August 2002 &status.done; &status.n-a;
    Implement C99's _Exit(). &a.wollman; 11 September 2002 &status.done; &status.n-a;
    Add required options for POSIX.1-2001 to glob(). (partial MFC) &a.mikeh; 20 September 2002 &status.done; &status.done;
    Update sysconf(3) for POSIX.1-2001. &a.wollman; 18 September 2002 &status.done; &status.n-a;
    Restore insque(), lsearch(), remque() from libcompat. &a.robert; 16 November 2002 &status.done; &status.n-a;
    Implement fpclassify(). &a.das;,
    &a.mike;
    8 February 2003 &status.done; &status.n-a;
    Implement isfinite(), isinf(), isnan(), isnormal(). &a.das; 17 February 2003 &status.done; &status.n-a;
    Implement isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(). &a.das; 17 February 2003 &status.done; &status.n-a;
    Implement signbit(). &a.mike; 17 February 2003 &status.done; &status.n-a;
    Implement sockatmark(). &a.fenner; 23 December 2002 &status.done; &status.new;
    Implement wordexp() and wordfree(). &a.tjr; 31 December 2002 &status.done; &status.new;
    Implement grantpt(), posix_openpt(), ptsname(), unlockpt(). &a.ryany; 4 February 2003 &status.done; &status.new;
    Add floating-point support for the (') modifier in &man.printf.3; &a.das; 22 January 2004 &status.done; &status.blank;
    Add new conversion specifiers (%a and %A) to &man.printf.3;. &a.das; 22 January 2004 &status.done; &status.n-a;
    Transition to vendor (Netlib) source for strtod.c. &a.das; 22 January 2004 &status.done; &status.n-a;
    Import Netlib's gdtoa (strtof, strtold, etc.). &a.das; 22 January 2004 &status.done; &status.n-a;
    Implement C99 macros fpclassify(), isfinite(), isinf(), isnan(), isnormal(), signbit(). &a.mike;,
    &a.das;
    22 January 2004 &status.done; &status.n-a;
    Implement C99 macros isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), isunordered(). &a.mike;,
    &a.das;
    22 January 2004 &status.done; &status.n-a;
    Implement new hex floating-point format types (%a/%A) in &man.scanf.3;. &a.das; 22 January 2004 &status.done; &status.n-a;
    Implement getgrgid_r(), getgrnam_r(). &a.wes; 20 December 2001 &status.wip; &status.blank;
    Implement new functions that appear in <complex.h>. &a.markm; 6 February 2002 &status.wip; &status.blank;
    Implement waitid(2). &a.mike; 27 May 2002 &status.wip; &status.blank;
    Implement the utmpx family of functions. &a.robert; 28 June 2002 &status.wip; &status.blank;
    Implement ftw() and nftw() in terms of fts(). &a.mkm; 16 August 2002 &status.wip; &status.blank;
    Add restrict type-qualifier to functions that require it. &a.robert; 16 August 2002 &status.wip; &status.blank;
    Implement iconv(), iconv_close(), iconv_open(). &a.tjr; 8 October 2002 &status.wip; &status.blank;
    Implement getpwnam_r(), getpwuid_r(). &a.leimy2k; 8 February 2003 &status.wip; &status.blank;
    Update fmtcheck(3) to recognize new printf(3) flags.   16 October 2002 &status.wip; &status.n-a;
    Implement new functions that appear in <fenv.h>. &a.das; 03 February 2004 &status.new; &status.blank;
    Make non thread-safe functions thread-safe.   22 October 2001 &status.new; &status.blank;
    Make functions async-cancel safe.   22 October 2001 &status.new; &status.blank;
    Implement C99 rounding functions lrint(), lrintf(), lrintl(), llrint(), llrintf(), llrintl().   30 July 2002 &status.new; &status.blank;
    Implement posix_madvise(), posix_mem_offset(), posix_typed_mem_get_info(), posix_typed_mem_open(), posix_memalign().   23 August 2002 &status.new; &status.blank;
    Obtain a64l(), l64a(), and l64a_r() (extention) from NetBSD.   9 September 2002 &status.new; &status.blank;
    Decide whether to implement legacy functions: ecvt(), fcvt(), gcvt().   9 September 2002 &status.new; &status.blank;
    Add SIG_HOLD support to signal(3)/sigaction(2).   13 October 2002 &status.new; &status.blank;
    Implement RTS functions sigqueue(), sigtimedwait(), sigwaitinfo().   13 October 2002 &status.new; &status.blank;


    Task Responsible Last Updated Status
    5.0 4.x
    Headers
    Fix prototypes and hide non-conforming portions of header <arpa/inet.h>. &a.mike; 19 February 2002 &status.done; &status.n-a;
    Implement the <stdint.h> and <inttypes.h> headers. &a.mike; 1 March 2002 &status.done; &status.n-a;
    Add exposure control primitives to <sys/cdefs.h> (originally developed by &a.wollman). &a.mike; 1 April 2002 &status.done; &status.n-a;
    Implement <sys/_types> to store shared MI types. &a.mike; 1 April 2002 &status.done; &status.n-a;
    Implement header <strings.h>, and work out compatibility issues with header <string.h>. &a.mike; 4 April 2002 &status.done; &status.n-a;
    Hide non-conforming portions, add missing types to <sys/un.h>. &a.mike; 19 April 2002 &status.done; &status.n-a;
    Remove pollution and add missing macros to <netinet/in.h> and <netinet6/in6.h>. &a.mike; 23 May 2002 &status.done; &status.n-a;
    Hide non-conforming portions of <sys/wait.h>. &a.mike; 3 June 2002 &status.done; &status.n-a;
    Hide non-conforming portions of <pwd.h>. &a.mike; 9 June 2002 &status.done; &status.n-a;
    Create <sys/statvfs.h> based on POSIX spec. &a.wollman; 14 June 2002 &status.done; &status.n-a;
    Add nfds_t and resolve other issues in <poll.h> (actually <sys/poll.h>). &a.mike; 8 July 2002 &status.done; &status.n-a;
    Implement the XSI header, <cpio.h>. &a.mike; 1 August 2002 &status.done; &status.n-a;
    Implement <fmtmsg.h>. &a.mike; 8 August 2002 &status.done; &status.n-a;
    Implement <ulimit.h>. &a.mkm; 8 August 2002 &status.done; &status.n-a;
    Merge <machine/ansi.h> and <machine/types> into a new common header <machine/_types.h>. &a.bde;,
    &a.mike;
    23 August 2002 &status.done; &status.n-a;
    Fix namespaces, add missing types in <sys/mman.h>. &a.mike; 29 August 2002 &status.done; &status.n-a;
    Fix namespace issues in <ctype.h>. &a.mike; 9 September 2002 &status.done; &status.n-a;
    Fix namespace issues in <dlfcn.h>. &a.wollman;,
    &a.mike;
    11 September 2002 &status.done; &status.n-a;
    Fix namespace issues in <fcntl.h>. &a.mike; 18 September 2002 &status.done; &status.n-a;
    Fix namespace issues in <fnmatch.h>. &a.mike; 18 September 2002 &status.done; &status.n-a;
    Fix namespace issues in <grp.h>. &a.mike; 18 September 2002 &status.done; &status.n-a;
    Fix namespace issues in <langinfo.h>. &a.mike; 18 September 2002 &status.done; &status.n-a;
    Add va_copy() macro to <stdarg.h> (actually <machine/stdarg.h>). &a.mike; 20 September 2002 &status.done; &status.n-a;
    Fix namespaces issues in <stdlib.h>. &a.wollman; 21 September 2002 &status.done; &status.n-a;
    Add new pathname, system variable, and POSIX option constants to <unistd.h>. &a.wollman; 21 September 2002 &status.done; &status.n-a;
    Merge two conflicting math.h headers into a single header. &a.bde; 2 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <net/if.h>. &a.mike; 2 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <netinet/tcp.h>. &a.mike; 2 October 2002 &status.done; &status.n-a;
    Add size_t, fix regoff_t in <regex.h>. &a.mike; 2 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <sched.h> (actually <posix4/sched.h>). &a.mike; 5 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <semaphore.h> (actually <posix4/semaphore.h>). &a.mike; 5 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <setjmp.h> (actually <machine/setjmp.h>). &a.mike; 5 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <stdio.h>. &a.wollman; 7 October 2002 &status.done; &status.n-a;
    Add missing members to struct lconv in <locale.h>. &a.tjr; 9 October 2002 &status.done; &status.n-a;
    Fix namespace issues, add missing types in <sys/socket.h>. &a.mike; 13 October 2002 &status.done; &status.n-a;
    Fix namespace issues, add missing types in <sys/uio.h>. &a.mike; 13 October 2002 &status.done; &status.n-a;
    Fix namespace issues in <signal.h> (also <sys/signal.h> and <machine/signal.h>). &a.mike; 13 October 2002 &status.done; &status.n-a;
    Eliminate <sys/_posix.h>. &a.mike; 16 October 2002 &status.done; &status.n-a;
    Implement the header <wordexp.h>. &a.tjr; 31 December 2002 &status.done; &status.new;
    Add missing constants FLT_EVAL_METHOD, DECIMAL_DIG to <float.h> (actually <machine/float.h>). &a.mike;,
    &a.das;
    22 January 2004 &status.done; &status.n-a;
    Implement new types and prototypes in header <complex.h>. &a.markm; 6 February 2002 &status.wip; &status.blank;
    Hide non-conforming portions, add missing types to <sys/types.h>. &a.mike; 1 April 2002 &status.wip; &status.blank;
    Reduce namespace pollution and add missing typedefs in <unistd.h> &a.mike; 25 March 2002 &status.wip; &status.blank;
    Implement <utmpx.h> to eventually replace <utmp.h>. &a.robert; 28 June 2002 &status.wip; &status.blank;
    Implement <ftw.h>. &a.mkm; 16 August 2002 &status.wip; &status.blank;
    Add missing errnos to <errno.h> (actually <sys/errno.h>). &a.mike; 11 September 2002 &status.wip; &status.blank;
    Implement the header <iconv.h>. &a.tjr; 7 October 2002 &status.wip; &status.blank;
    Evaluate missing features of <math.h>. &a.ryany; 23 December 2002 &status.wip; &status.blank;
    Hide non-conforming portions, add missing types to <sys/stat.h>. &a.mike; 27 February 2003 &status.wip; &status.blank;
    Implement the header <fenv.h>. &a.das; 03 February 2004 &status.new; &status.blank;
    Fix sizes of members in glob_t, add restrict type-qualifiers in <glob.h>.   20 September 2002 &status.new; &status.blank;
    Decide whether to remove const type-qualifiers in <libgen.h>.   20 September 2002 &status.new; &status.blank;
    Add missing constants in <limits.h>.   20 September 2002 &status.new; &status.blank;
    Fix sizes of members in datum, add missing types, fix namespace issues in <ndbm.h>.   2 October 2002 &status.new; &status.blank;
    Fix size of si_addrlen in struct addrinfo, add missing types, fix namespace issues in <netdb.h>.   2 October 2002 &status.new; &status.blank;
    Evaluate missing features of <pthread.h>.   2 October 2002 &status.new; &status.blank;
    Add missing members to struct sigevent, fix type of ss_sp in struct sigstack, add SIGEV_THREAD constant, add ucontext_t and mcontext_t in <sys/signal.h>.   13 October 2002 &status.new; &status.blank;
    Fix types for members of struct ipc_perm in <sys/ipc.h>.   16 October 2002 &status.new; &status.blank;
    Implement <tgmath.h>.   23 December 2002 &status.new; &status.blank;


    + implementation (reference). + implementation (reference).
    Task Responsible Last Updated Status
    5.0 4.x
    Miscellaneous
    Obtain a copy of Proc. ACM SIGPLAN '90 (required for &man.printf.3; %'f). &a.fenner; 9 November 2001 &status.done; &status.n-a;
    Upgrade system compiler to GCC 3.1. &a.obrien; 15 May 2002 &status.done; &status.n-a;
    Add regression test for each function.   17 November 2001 &status.new; &status.blank;
    Merge sys/posix4/* into regular kernel hierachy, and remove sys/posix4.   21 September 2002 &status.new; &status.blank;
    Open an Aardvark on how to deal with no newline on the last line of a file in diff(1).   25 November 2002 &status.new; &status.blank;
    Globally rename the `lint' macro to something in the implementation namespace so it can safely modify the - implementation (reference).   25 November 2002 &status.new; &status.blank;
    Globally rename the `LOCORE' macro to something in the implementation namespace so it can safely modify the - implementation (reference).   25 November 2002 &status.new; &status.blank;


    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
    Task Responsible Last Updated Status
    5.0 4.x
    Utility Conformance
    Add -o option and base64 decoding to the uudecode utility. &a.jmallett; 26 March 2002 &status.done; &status.done;
    Add -m option and base64 encoding to the uuencode utility. &a.jmallett; 26 March 2002 &status.done; &status.done;
    Require atleast one file argument in paste(1). (PR: 36074) Require atleast one file argument in paste(1). (PR: 36074) &a.tjr; 1 April 2002 &status.done; &status.done;
    Add the -i option to the patch utility. &a.jmallett; 9 April 2002 &status.done; &status.done;
    Add -r and -t options to the at utility. &a.joe.halpin; 16 April 2002 &status.done; &status.n-a;
    Add the -f and -p options to the pr utility. (PR: 36243) Add the -f and -p options to the pr utility. (PR: 36243) &a.tjr; 16 April 2002 &status.done; &status.done;
    Add the -s option to the m4 utility. (PR: 36075) Add the -s option to the m4 utility. (PR: 36075) &a.tjr; 24 April 2002 &status.done; &status.done;
    Make printf(1) utility conform to POSIX.2 (1992). (PR: 35616) Make printf(1) utility conform to POSIX.2 (1992). (PR: 35616) &a.tjr; 2 May 2002 &status.done; &status.done;
    Correct output stream and exit status of the mesg(1) utility. &a.tjr; 6 May 2002 &status.done; &status.n-a;
    Implement the asa utility. (PR: 36130) Implement the asa utility. (PR: 36130) &a.tjr; 15 May 2002 &status.done; &status.n-a;
    Add the tabs utility. (PR: 36126) Add the tabs utility. (PR: 36126) &a.tjr; 20 May 2002 &status.done; &status.n-a;
    Restore sccs utility from CVS attic. &a.jmallett; 22 May 2002 &status.done; &status.n-a;
    Make expr(1) conform to POSIX.1-2001. &a.wollman; 22 May 2002 &status.done; &status.n-a;
    Add the newgrp utility. (PR: 36190) Add the newgrp utility. (PR: 36190) &a.tjr; 28 May 2002 &status.done; &status.n-a;
    Fix ctags(1)'s -t option; fix ordering with -x. &a.tjr; 2 June 2002 &status.done; &status.n-a;
    Add -L option to the pwd utility. &a.tjr; 20 June 2002 &status.done; &status.done;
    Fix exit status of the env(1) utility. &a.tjr; 20 June 2002 &status.done; &status.done;
    Add the -b and -s option to the fold utility. (PR: 36245) Add the -b and -s option to the fold utility. (PR: 36245) &a.tjr; 20 June 2002 &status.done; &status.done;
    Add -I and -L options to the xargs utility. &a.jmallett; 20 June 2002 &status.done; &status.done;
    Implement the csplit utility. (PR: 36191) Implement the csplit utility. (PR: 36191) &a.tjr; 20 June 2002 &status.done; &status.n-a;
    Fix exit status of the nice(1) utility. &a.tjr; 20 June 2002 &status.done; &status.done;
    Add -n option to the nice utility. &a.pavalos; 20 June 2002 &status.done; &status.done;
    Add -n option and resolve other issues in the renice utility. (PR: 36950) Add -n option and resolve other issues in the renice utility. (PR: 36950) &a.pavalos;,
    &a.maxim;
    20 June 2002 &status.done; &status.done;
    Add -t option to unexpand(1) utility. (PR: 35621) Add -t option to unexpand(1) utility. (PR: 35621) &a.tjr; 20 June 2002 &status.done; &status.done;
    Make the uniq(1) utility accept `-' as a stdin specifier. &a.tjr; 28 June 2002 &status.done; &status.done;
    Improve join(1)'s POSIX.1-2001 conformance. (PR: 36072) Improve join(1)'s POSIX.1-2001 conformance. (PR: 36072) &a.tjr; 28 June 2002 &status.done; &status.done;
    Add -C option to the tr utility. &a.tjr; 28 June 2002 &status.done; &status.n-a;
    Implement the -m, -p, and -x options in the ls utility. &a.mkm; 8 July 2002 &status.done; &status.done;
    Reimplement the who utility. (PR: 36128) Reimplement the who utility. (PR: 36128) &a.tjr; 14 July 2002 &status.done; &status.done;
    Fix exit status, stdout/stderr confusion, and add `-' stdin support to the compress(1) utility. &a.tjr; 17 July 2002 &status.done; &status.done;
    Add the -s, -A, -j, -N, and -t options to the od utility. (PR: 36783) Add the -s, -A, -j, -N, and -t options to the od utility. (PR: 36783) &a.tjr; 24 July 2002 &status.done; &status.done;
    Add -a option to the split utility. &a.tjr; 30 July 2002 &status.done; &status.done;
    Add -m option to the wc utility. &a.tjr; 29 August 2002 &status.done; &status.done;
    Add -L and -P options to the cd utility (shell built-in). &a.tjr; 7 October 2002 &status.done; &status.done;
    Reimplement command(1) (shell built-in). &a.tjr; 7 October 2002 &status.done; &status.done;
    Add the c99 utility (similar to c89). (PR: 36087) Add the c99 utility (similar to c89). (PR: 36087) &a.tjr; 8 October 2002 &status.done; &status.n-a;
    Update getconf(1) for POSIX.1-2001. &a.wollman; 12 November 2002 &status.done; &status.done;
    Add the pathchk utility. &a.tjr; 12 November 2002 &status.done; &status.done;
    Document the -n option in the echo utility as being implementation-defined. &a.schweikh; 8 May 2003 &status.done; &status.done;
    Add missing options to the mailx utility. &a.mikeh; 22 December 2001 &status.wip; &status.blank;
    Add missing components to the jobs utility. &a.mkm; 5 March 2002 &status.wip; &status.blank;
    Work out conflicting -t option in the df utility. &a.tjr; 22 April 2002 &status.wip; &status.blank;
    Add unimplemented features to the sh utility. &a.tjr; 20 May 2002 &status.wip; &status.blank;
    Implement the -m, -w, and -t options in the lp utility. &a.gad; 23 May 2002 &status.wip; &status.blank;
    Implement/import the SCCS development utilities: admin, delta, get, prs, rmdel, sact, unget, val &a.jmallett; 23 May 2002 &status.wip; &status.blank;
    Investigate adopting some of the POSIX options in the ps utility. &a.jmallett; 6 June 2002 &status.wip; &status.blank;
    Add missing options and resolve conflicting options in the nm utility. &a.robert; 2 August 2002 &status.wip; &status.blank;
    Implement the iconv utility. &a.tjr; 9 October 2002 &status.wip; &status.blank;
    Implement the locale and localedef utilities. &a.phantom; 16 October 2002 &status.wip; &status.blank;
    Add -C and -T options to the ar utility.   30 November 2001 &status.new; &status.blank;
    Investigate importing the cflow utility from the ports collection.   30 November 2001 &status.new; &status.blank;
    Add -p, -v, and -V options to the command utility (shell built-in).   30 November 2001 &status.new; &status.blank;
    Bring the cp utility up to conformance.   30 November 2001 &status.new; &status.blank;
    Implement the cxref utility.   30 November 2001 &status.new; &status.blank;
    Add the -d, -h, and -M options and fix conflicting -i option in the file utility.   30 November 2001 &status.new; &status.blank;
    Bring the make utility up to conformance.   30 November 2001 &status.new; &status.blank;
    Add -p option the more utility.   30 November 2001 &status.new; &status.blank;
    Add the qsub utility.   30 November 2001 &status.new; &status.blank;
    Make printf(1) utility conform to SUSv3.   23 April 2002 &status.new; &status.blank;
    Implement the fuser utility. (PR: 36076) Implement the fuser utility. (PR: 36076)   4 February 2003 &status.new; &status.blank;


    Task Responsible Last Updated Status
    5.0 4.x
    Wide Character/String Support
    Implement basic support for wide character I/O: getwc(), fgetwc(), getwchar(), putwc(), fputwc(), putwchar(), ungetwc(), fwide(). &a.tjr; 16 August 2002 &status.done; &status.n-a;
    Add stubs for reentrant wc handling functions btowc(), mbrlen(), mbrtowc(), mbsrtowcs(), wcrtomb(), wcsrtombs(), wctob(), wctype(). &a.tjr; 23 August 2002 &status.done; &status.n-a;
    Add stubs for reentrant wc handling functions iswalnum(), iswalpha(), iswcntrl(), iswctype(), iswdigit(), iswgraph(), iswlower(), iswprint(), iswpunct(), iswspace(), iswupper(), iswxdigit(). &a.tjr; 23 August 2002 &status.done; &status.n-a;
    Implement wcwidth(). &a.keichii; 23 August 2002 &status.done; &status.n-a;
    Implement wcswidth(). &a.ache; 23 August 2002 &status.done; &status.n-a;
    Implement wcstok(). &a.tjr; 9 September 2002 &status.done; &status.n-a;
    Implement wcstod(), wcstol(), wcstoul(). &a.tjr; 15 September 2002 &status.done; &status.n-a;
    Implement wcsftime(). &a.tjr; 15 September 2002 &status.done; &status.n-a;
    Implement fwprintf(), swprintf(), vfwprintf(), vswprintf(), vwprintf(), wprintf(). &a.tjr; 23 September 2002 &status.done; &status.n-a;
    Implement fwscanf(), swscanf(), vfwscanf(), vswscanf(), vwscanf(), wscanf(). &a.tjr; 23 September 2002 &status.done; &status.n-a;
    Implement wcstoimax(), wcstoll(), wcstoumax(), wcstoull(). &a.tjr; 23 September 2002 &status.done; &status.n-a;
    Implement wide character format types (%C, %S, %lc, %ls) in &man.printf.3;. &a.tjr; 16 October 2002 &status.done; &status.n-a;
    Implement wcscoll(), wcsxfrm(). &a.tjr; 7 October 2002 &status.wip; &status.blank;
    Implement wide character format types (%C, %S, %lc, %ls) in &man.scanf.3;. &a.tjr; 18 September 2002 &status.new; &status.blank;


    Legend
    &status.new; Not yet started
    &status.blocked; Blocked awaiting completion of another task
    &status.wip; Work in progress
    &status.done; Task completed
    &status.n-a; Not planned

    News

    The remainder of this page is structured as a reverse-chronological log.

    31 December 2002 13 December 2002 9 October 2002 16 August 2002 1 August 2002
    • The Open Group has generously donated several copies of the Authorized Guide to Single &unix; Specification, Version 3, books and CD-ROMs to the project. We are greatly appreciative of their gift.

    22 May 2002 3 March 2002 30 January 2002
    • The Open Group has announced the completion of SUSv3 and POSIX.1-2001 and the availability of a free, online version of the specification.

    14 December 2001 6 December 2001
    • The IEEE Standards Board has approved the Austin Group Specification as IEEE Std 1003.1.

    28 November 2001
    • The project mailing list has been moved from freebsd-standards@bostonradio.org to &a.standards;.

    19 October 2001
    • A status report on the current state of the project has been produced.

    10 October 2001
    • This web page was created.

    The original layout for this web page was borrowed from the FreeBSD SMPng Project. BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.

    &footer; diff --git a/en/projects/gnats4/index.sgml b/en/projects/gnats4/index.sgml index 1af3c2ae6c..60a0d944a8 100644 --- a/en/projects/gnats4/index.sgml +++ b/en/projects/gnats4/index.sgml @@ -1,316 +1,316 @@ - - + + %includes; %developers; "> "> "> "> "> freebsd-bugbusters-subscribe@FreeBSD.org"> freebsd-bugbusters@FreeBSD.org"> ]> &title; Project Goal

    The aim of this project is to get the FreeBSD bug tracking system upgraded from GNATS3 to GNATS4 with the minimum outage, disruption and breakage.

    This turns out to be reasonably easy, as long as the interdependencies on the FreeBSD project's machines are understood. The main aim of this page is to provide a place for documentation of these dependencies, along with the steps required for a successful upgrade and the order in which they should be taken. A secondary aim is to assure interested parties that work on this is ongoing, but is non-trivial.

    Project Plan

    Initially, development is being done on the bugmeister's local machine, but pertinent patches will be made available at &projectbase; as they are deemed ready.

    How to Contribute

    The vast majority of the work involved will require direct access to the FreeBSD cluster of machines, with elevated privileges. However, there are some patches that need to be written, so check the table below to see what still needs to be done. If you have specific queries or patches to contribute, then please contact bugmeister@FreeBSD.org with details of how you can help.

    If you notice that a task is missing from the list, then please do get in touch with the Bugmeister and let me know!

    Resources and Links Status Board

    These tasks need to be completed before the upgrade can be started.

    Task Responsible Last Updated Status Notes
    Patch the databases/gnats4 port for WANT_FREEFALL_CFG. &a.ceri; 14 January 2004 &status.done; Patches
    Commit the database/gnats4 patches. &a.eik; 29 January 2004 &status.done; At least one month for shakeout will be given.
    Produce patches for www/en/cgi/query-pr.cgi and www/en/cgi/query-pr-summary.cgi to work with GNATS 4. &a.ceri; 16 February 2004 &status.wip;  
    Produce configuration files for the new database. &a.ceri; 14 January 2004 &status.done;  
    Set a date! &a.ceri;   &status.blocked; Blocked on the CGI patches
    Create /c/gnats/README.GNATS4 on freefall &a.ceri;   &status.blocked; This is intended to notify users who cvsup the gnats database that an upgrade is forthcoming. Should be created one month before the upgrade happens. Blocked on setting of the date.
    Arrange resource from admins@, or root access to freefall, www and hub. &a.ceri;   &status.new;  


    These tasks list the steps that must be taken during the upgrade itself.

    Task Machines Notes
    Pre-build databases/gnats4. freefall, hub and www. freefall must have WANT_FREEFALL_CFG defined in /etc/make.conf.
    Stop mail coming into the gnats account. hub It's desirable to have incoming mail written to a temporary file while the upgrade is in progress so that submissions can be re-queued once it's complete.
    Comment out all the jobs in the gnats crontab. freefall  
    Chmod 000 /c/gnats/gnats-adm/locks to stop further edits. freefall  
    Make a backup of /c/gnats. freefall  
    Commit the cgi patches. N/A  
    pkg_delete the gnats3 port freefall  
    Install the gnats4 port, install the new config freefall  
    Submit test PRs with queue-pr. Make test edits, etc. freefall  
    pkg_delete the gnats3 port hub  
    Install the gnats4 port hub  
    Queue a test PR on hub, and force file it on freefall hub, freefall  
    pkg_delete the gnats3 port www  
    Install the gnats4 port www  
    Re-enable email submission hub  
    Re-enable cronjobs freefall  
    Re-queue backed up submissions freefall  


    Legend
    &status.new; Not yet started
    &status.blocked; Blocked awaiting completion of another task
    &status.wip; Work in progress
    &status.done; Task completed
    &status.n-a; Not planned

    The original layout for this web page was borrowed from the FreeBSD C99 Project.

    &footer; diff --git a/en/projects/newbies.sgml b/en/projects/newbies.sgml index ff85b04dc5..1b663e8f2e 100644 --- a/en/projects/newbies.sgml +++ b/en/projects/newbies.sgml @@ -1,259 +1,259 @@ - + %includes; ]> &header;

    The following resources are some of those which FreeBSD newbies have found most helpful when learning to use FreeBSD. Please send corrections and additions to FreeBSD-Newbies@FreeBSD.org.

    Using the FreeBSD web site

    This web site is the main source of up to date information about FreeBSD. Newbies have found the following pages particularly helpful:

    • Search the Handbook and FAQ, or the whole web site, or the archives of the FreeBSD-Questions mailing list.

    • The Documentation page has links to the Handbook and FAQ, tutorials, information about contributing to the Documentation Project, documents in languages other than English, and much more.

    • Support page contains a wealth of information about FreeBSD, including mailing lists, user groups, web and FTP sites, release information, and links to some sources of &unix; information.

    Learning about FreeBSD

    • If you haven't installed yet, look for the latest mainstream release. (See the Handbook for why you should not be tempted by any of the other branches.) Before you begin, carefully read the installation instructions, as well as each one of the *.TXT files in the FTP directory or on the installation CD. They are there because they contain information that you will need. Also pick up the latest errata file from the web site, in case it has been updated.

      If you decide to download FreeBSD, check whether these illustrated and expanded download instructions for a previous version are still available before you begin. That should make the whole process a lot clearer.

    • A number of short articles and tutorials are available. The short tutorial, For People New to Both FreeBSD and Unix, is popular with absolute beginners. You don't have to know much about anything to enjoy this one. It can also be downloaded in postscript or RTF format for printing.

    • The first thing many people need to set up is ppp, and there is a lot of documentation to help. You might start with at least those parts of the Handbook that are relevant to your needs, and explore the ppp page for links to the other valuable information and the latest updates.

    • The Complete FreeBSD by Greg Lehey, published by O'Reilly. This book assumes minimal UNIX experience and takes the beginner step by step through each stage from installation to everything you need to know to set up and run a FreeBSD system. You also get to understand what you're doing and why.

    • The FreeBSD Handbook and Frequently Asked Questions (FAQ) are the main documents for FreeBSD. Essential reading, they contain a lot of material for newbies as well as some pretty advanced stuff. Don't worry if you can't understand the advanced sections. The handbook contains the installation instructions and also provides lists of books and on line resources, and the FAQ has a troubleshooting section.

    • Join the FreeBSD-Questions mailing list to see the questions you were too afraid to ask, and their answers. Subscribe by filling out the following form: - http://lists.freebsd.org/mailman/listinfo/freebsd-questions. + http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions. You can look up old questions and answers via the search page.

    • The main newsgroup for FreeBSD is comp.unix.bsd.freebsd.misc. You might want to keep an eye on comp.unix.bsd.freebsd.announce as well.

    • Man pages are good for reference but not always the best introduction for a novice. The more you work with man pages the more familiar they become. Some are very good for newbies, so always check them out. The ppp man page, for example, is more like a tutorial.

    Learning about &unix;

    Many of the problems we have as newbies come from being unfamiliar with the UNIX commands needed to fix our FreeBSD problems. Without a UNIX background you'll be faced with two things to learn at once. Fortunately a lot of resources are available to make this easier.

    • There are many easy books, such as the "Dummies" guides, in any large book shop. If you want something really easy, take a look at what is available and pick one that seems to speak your language. Pretty soon you will want to move on to a book that gives more coverage.

    • One book mentioned frequently by newbies is UNIX for the Impatient by Paul W. Abrahams and Bruce R. Larson, published by Addison-Wesley. It is intended both as a book for learning UNIX and a reference, and includes an introduction to UNIX concepts and handy chapter on using the X Window System.

    • Another popular book is UNIX Power Tools by Jerry Peek, Tim O'Reilly and Mike Loukides, published by O'Reilly and Associates. It is organised as a series of short articles each of which solves a problem, and these articles are cross-referenced to other articles with related material. Though not specifically aimed at newbies, the design makes it ideal for a newbie with a burning question or the odd few minutes to browse. More elementary material is near the front of the book, but there are short easy articles throughout.

    • A UNIX Introductory Course from Ohio State University is available online in HTML, postscript and Acrobat PDF formats.

    • UNIXhelp for Users is another introductory guide which is available in HTML at a mirror site near you, or can be installed on your own system.

    • UNIX questions are dealt with in the newsgroup comp.unix.questions and the associated Frequently Asked Questions. You can also get a copy of the FAQ from the RMIT FTP site. Newbies are likely to be most interested in sections 1 and 2 initially.

    • Another interesting newsgroup is comp.unix.user-friendly which also has a FAQ. Although this newsgroup is for discussing user-friendliness, it can contain some good information for newbies. The FAQ is also available by FTP.

    • Many other web sites hold lists of UNIX tutorials and reference material. One of the best places to start looking is the UNIX page at Yahoo!.

    Learning about the X Window System

    The X Window System is used with a number of operating systems, including FreeBSD. The documentation for X can be found at The XFree86 Project, Inc. Beware, much of this documentation is reference material which is likely to be difficult for newcomers to digest.

    • For basic information about installing, configuring and using the X Window System, three of the books mentioned above have sections dealing with X at beginner level: The FreeBSD Handbook, The Complete FreeBSD, and UNIX for the Impatient.

    • There is an easy and informative section on using the X Window System in the Linux Users' Guide. Interesting material will be found elsewhere in that document too, but remember that Linux does not always work exactly the same as FreeBSD.

    • Before you can get X running exactly the way you like, you will need to choose a window manager. Visit the Window Managers for X page and follow the link to the introduction to find out about window managers, then return and read "The Basics". Then go back and compare the different types that are available. (Bonus: there's another beginners guide to UNIX there too.) Most if not all of these window managers are available to install from the FreeBSD ports collection.

    Helping other people

    Everyone has something to contribute to the FreeBSD community, even newbies! Some are busy working with the new advocacy group and some have become involved with the Documentation Project as reviewers. Other FreeBSD newbies might have particular skills and experiences to share, either computer related or not, or just want to meet new newbies and make them feel welcome. There's always people around who help others simply because they like to. Write to FreeBSD Newbies for more information.

    Friends who run FreeBSD are a great resource. No book can replace chatting on the phone or across a pizza with someone who has the same interests, enjoys similar accomplishments, and faces the same challenges. If you don't have many friends who use FreeBSD, consider using your old FreeBSD CDs to create some more :-)

    User groups are good places to meet other FreeBSD users. If there's not one nearby, maybe you could start one.

    Before talking to real humans about your new skills, you might want to check the Pronunciation Guide and the Jargon File :-)

    On line we have the FreeBSD-Newbies mailing list for non-technical discussions about matters of interest to newbies. Another mailing list, FreeBSD-Questions, answers our questions about using FreeBSD.

    &footer; diff --git a/en/projects/projects.sgml b/en/projects/projects.sgml index 1fcc2846de..043344cae5 100644 --- a/en/projects/projects.sgml +++ b/en/projects/projects.sgml @@ -1,518 +1,518 @@ - + %includes; ]> &header;

    In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions. Follow the links below to learn more about these exciting projects.

    If you feel that a project is missing, please send the URL and a short description (3-10 lines) to www@FreeBSD.org.

    In addition, some of these projects regularly submit status reports, which can be viewed on the status reports page.

    Documentation

    • FreeBSD Documentation Project The FreeBSD Documentation Project is a group of people who maintain and write the documentation (such as the Handbook and FAQ) for the FreeBSD project. If you want to help with the documentation project, subscribe to the freebsd-doc@FreeBSD.ORG mailing list and participate.
    • FreeBSD Resources for Newbies is a list of resources to help those new to FreeBSD and &unix; in general. There is also a freebsd-newbies@FreeBSD.ORG mailing list.
    • FreeBSD Security How-To FreeBSD is a very secure operating system. Since source code is freely available, the OS is constantly going through the review and audit. While FreeBSD comes very secure OOB (Out-Of-Box), there are many features that can make it more secure for those of you who are "paranoid". This How-To will go over some steps which will help you increase overall security of your machine.
    • -
    • +
    • RELEASE/SNAP finder for FreeBSD FTP servers. A resource that would allow anyone to find a FTP server that contains particular releases and SNAP of FreeBSD. The database is updated daily at 3am Melbourne time (10 hours ahead of UTC).
    • The FreeBSD Diary is a collection of how-to entries aimed at UNIX novices. The aim is to provide a set of step-by-step guides to installing and configuring various ports.
    • A Comprehensive Guide to FreeBSD - an attempt at a more readable, "book-like" tutorial explaining the FreeBSD Operating System. Intended for people new to both FreeBSD and UNIX. Currently a work in progress.
    • FreeBSD How-To's for the Lazy and Hopeless is another somewhat more light-hearted attempt to provide more readable "how-to" style information on setting up and configuring FreeBSD.
    • The Linux+FreeBSD mini-HOWTO describes how to use Linux and FreeBSD on the same system. It introduces FreeBSD and discusses how the two operating systems can cooperate, e.g. by sharing swap space.
    • Install Preview for FreeBSD 2.2.7 This is a guide illustrating the FreeBSD install program for those new to unix and/or FreeBSD.
    • The FreeBSD Developers Handbook
    • The FreeBSD Cook Book Ok, you got FreeBSD installed, now what? Here are some suggested solutions to common problems you can implement with the knowledge you now have. This document is styled after the electronics cook books with some recipes for some common types of installations. Each "recipe" has some recommended minimum hardware, specific software to use, and most important the configuration information required to get the system running correctly.
    • The FreeBSD Corporate Networker's Guide This Web site serves as a supplement to The FreeBSD Corporate Networker's Guide, with the principal goal of enhancing its usefulness. While books like fictional novels can be used and enjoyed for hundreds of years after initial publication, technical manuals like the Networker's Guide are obsoleted in a few years by changes in the product they are written for.

    Applications

    • &java; on FreeBSD This contains information on where to obtain the latest &jdk; for FreeBSD, how to install and run it, and a list of java software that you may find interesting. Please note that the JDK is unsupported on versions of FreeBSD prior to 2.2.
    • GNOME on FreeBSD This contains information on where to obtain the latest GNOME for FreeBSD, how to install and run it, latest project news and updates, FAQ covering FreeBSD-specific GNOME issues, application porting guidelines and much more.
    • KDE on FreeBSD This contains links to the latest KDE releases for FreeBSD, as well as documentation and tutorials about how to install and run KDE on FreeBSD. Project news and a FreeBSD-specific FAQ are also available.
    • MultiMedia A resource of links to information and software pertaining to the world of multimedia in the UNIX world.
    • FreeBSD Ports Collection The FreeBSD Ports Collection provides an easy way to compile and install a wide range of applications with a minimum amount of effort. A list of current ports is available along with a search mechanism to see if a specific application exists in the Ports Collection.
    • FreeBSD Ports distfiles survey is a list which checks the Ports Collection for unfetchable distfiles and provides a summary for each port.
    • FreshPorts provides the most up-to-date list of ports and port changes. Add your favourite ports to your watch list and receive email notification of any changes.
    • Bento is a server which checks the Ports Collection and keeps package building logs and error logs for each port.

    Networking

    • ALTQ: bandwidth management for applications
    • KAME Project, a free IPv6/IPsec stack for BSD
    • Point to Point Protocol (PPP)
    • Secure MobileIP via IP
    • SYSLOG-SECURE: In August 2001 a standard of syslog was made: RFC3164. This to describe some extensions tot syslog to add security. The project I started in 2002 is to adapt RFC3164 to FreeBSD version of syslog, and to add some security extensions. At least syslog-sign. Both libc and syslogd will be modified. And optional some tools to verify/manage the security will made. All help is welcome. Send an email to albert@ons-huis.net for info.

    File system

      -
    • HFS and HFS +
    • HFS and HFS Plus in FreeBSD. This project is aimed at integrating HFS support from Darwin into FreeBSD.
    • Arla is a free AFS client implementation. The main goal is to make a fully functional client with all capabilities of normal AFS. Other planned and implemented things are all the normal management tools and a server.
    • Coda is a distributed filesystem. Among its features are disconnected operation, good security model, server replication and persistent client side caching.
    • cryptfs encrypts file names and data pages using Blowfish.
    • Elephant: The File System that Never Forgets
    • Journaling versus Soft Updates: Asynchronous Meta-data Protection in File Systems
    • Mode locking
    • Make the namei interface reflexive
    • NFS client and server locking
    • The Design and Implementation of a DCD Device Driver for Unix
    • NTFS Driver for FreeBSD This driver allows Windows® NTFS partitions to be mounted by FreeBSD. Currently NTFS partitions can only be accessed in read-only mode, but plans are in the works for read/write access.
    • Rio (RAM I/O): The Rio project is investigating how to implement and use reliable memory. Reliable memory enables dramatic improvements in reliability and performance.
    • Soft Updates: A Solution to the Metadata Update Problem in File Systems
    • TCFS is a Transparent Cryptographic File System that is a suitable solution to the problem of privacy for distributed filesystem. By a deeper integration between the encryption service and the filesystem, it results in a complete transparency of use to the user applications. Files are stored in encrypted form and are decrypted before they are read. The encryption/decryption process takes place on the client machine and thus the encryption/decryption key never travels on the network.
    • Tertiary Disk is a storage system architecture to create large disk storage systems that avoid the disadvantages of custom built disk arrays. The name comes from twin goals: to have the cost per megabyte and capacity of tape libraries and the performance of magnetic disks. We use commodity, off the shelf components to develop a scalable, low cost, terabyte capacity disk system. Our target is to build a complete storage system with about 30-50% extra to the cost of the raw disk. Tertiary Disk uses PCs connected by a switched network to host a large number of disks. Our prototype consists of 20 200MHz PC PCs, which host 370 8GB disks. The PCs are connected through a 100Mbps Ethernet switch.
    • Vinum is a logical volume manager modeled after the VERITAS volume manager™. However, it is not a clone of Veritas, and attempts to solve a number of problems more elegantly than Veritas. It also offers features that Veritas does not have.
    • The PathConvert project is to develop utilities which make conversion between absolute path name and relative path name. It brings benefits mainly to the users of NFS and WWW.
    • WAFS is a simple filesystem designed to act as a logging service for kernel subsystems. Reads and writes are keyed by log-sequence number (LSN). All writes to WAFS are sequential. Kernel subsystems can use this LSN service to enforce write-ahead logging and guarantee consistency.

    Kernel, security

    • Drawbridge is a firewall package that was developed at Texas A&M University and was designed with a large academic environment in mind. It's greatest strength is the ability to perform high speed packet filtering for a larger number of individual hosts within an intranetwork.
    • Kernel Scheduler Entities: A project to enhance the threading support on FreeBSD, using a threading system similar in design to Scheduler Activations.
    • Lottery Scheduling Kernel: This work is based on Waldspurger's lottery scheduling algorithm, which implements proportional-share resource management. The primary advantages are that users have strict control over the relative execution rates of their processes, and users are load-insulated from each other, preventing one user from dominating the CPU.
    • Working LDAP for FreeBSD
    • Symmetric MultiProcessor Support Documentation and other information about taking advantage of multiple processors under FreeBSD.
    • A validation suite for testing for kernel memory leaks
    • SPY allows you to monitor and/or selectively block syscalls on your system. It could be used either as a safety monitoring device, policy enforcement, or debugging tool.
    • TrustedBSD provides a set of trusted operating system extensions to the FreeBSD operating system. This includes features such as fine-grained privileges (capabilities), Access Control Lists, and Mandatory Access Control. These features are being integrated back into the base FreeBSD distribution, as well as being ported to other BSD-derived systems.

    Device drivers

    • BSD Driver Database Just because you don't have the time to write the driver yourself doesn't mean you can't still help. The idea behind the BSD Driver Database is to help individuals with hardware that needs supporting get in touch with driver developers with the knowledge to write the support for the hardware. This is a list of drivers currently under development that could stand to gain from time or resources you may have to offer.
    • busdma and SMPng driver conversion: busdma provides a portable abstraction to the Direct Memory Access (DMA) hardware primitives used by many high performance device drivers. By using this abstraction, device driver authors avoid adding platform-specific DMA management code, improving the portability of drivers between hardware architectures. This page also tracks the progress of drivers towards being SMPng-safe.
    • A New Device Framework for FreeBSD
    • BSD ATM: implementation of ATM internetworking under 4.4BSD: New computer applications in areas such as multimedia, imaging, and distributed computing demand high levels of performance from computer networks. ATM-based networking solutions provide one possible alternative to meeting these performance needs. However, the complexity of ATM over traditional networks such as Ethernet has proven to be a barrier to its being used. In this paper we present the design and implementation of BSD ATM, a light-weight and efficient ATM software layer for BSD-based operating systems that requires minimal changes to the operating system. BSD ATM can be used both for IP-based networking traffic and for ``native'' ATM traffic.
    • High-precision timekeeping with FreeBSD How to create a NTP stratum 1 server with state of the art performance.
    • Home Automation with FreeBSD such as appliance controllers, infra-red controllers, automated telephone systems, and more.
    • CAM: New SCSI layer for FreeBSD Details about what the new CAM SCSI layer is, and how it works.
    • The FreeBSD Token-Ring Project Information, files, patches, and documentation about adding Token Ring support to FreeBSD.
    • FreeBSD USB driver development The NetBSD USB stack has been ported to FreeBSD. Together with them we have started developing the drivers for many devices using the USB bus. Have a look on the webpage if you want to join the effort or you want to have a look on the devices that are being supported.
    • Setting up PnP (Plug-and-Play) and the AWE64, AWE32, or SB32 soundcards with FreeBSD.
    • A mailing list exists for further development of Scott Mitchell's Xircom CEM ethernet driver. Send subscribe freebsd-xircom to majordomo@lovett.com to join.
    • Mike Smith's list of supported RAID cards and their respective information.

    Architecture

    • Porting FreeBSD to Alpha systems Contains information on the FreeBSD Alpha port such as the status, mailing list information, the hardware used, and other Alpha projects.
    • Porting FreeBSD to IA-64 systems This project is responsible for porting FreeBSD to the IA-64 architecture. Direct any questions specific to this project to the freebsd-ia64@FreeBSD.org mailing list.
    • Porting FreeBSD to PowerPC® systems. Contains information on the FreeBSD PPC port, such as mailing list information and so on.
    • Porting FreeBSD to SPARC® systems Contains information on the FreeBSD SPARC port including a FAQ, some early boot code, information on SPARC processors and motherboards, and other SPARC projects.
    • The SysVR4 Emulation page describes an SysVR4 emulator for FreeBSD. It is currently capable of running (or walking, in some cases) a wide-ish variety of SysV executables taken from Solaris™/x86 2.5.1 and 2.6 systems. I have reason to believe that it will also run SCO UnixWare and SCO OpenServer binaries.
    • The OSKit The OSKit is a framework and a set of 31 component libraries oriented to operating systems, together with extensive documentation. By providing in a modular way not only most of the infrastructure "grunge" needed by an OS, but also many higher-level components, the OSKit's goal is to lower the barrier to entry to OS R&D and to lower its costs. The OSKit makes it vastly easier to create a new OS, port an existing OS to the x86 (or in the future, to other architectures supported by the OSkit), or enhance an OS to support a wider range of devices, filesystem formats, executable formats, or network services. The OSKit also works well for constructing OS-related programs, such as boot loaders or OS-level servers atop a microkernel.
    • Small and embedded FreeBSD (PicoBSD) PicoBSD is a one floppy version of FreeBSD which in its different variations allows you to have secure dial-up access, small diskless router, or even a dial-in server. All of this on only one standard 1.44MB floppy disk. It runs on a minimum 386SX CPU with 8MB of RAM, and no hard drive is required!

    Misc

    • GLOBAL is a common source code tag system that works the same way across diverse environments. Currently, it supports the shell command line, the nvi editor, web browser, the emacs editor, and the elvis editor, and the supported languages are C, Yacc, and Java.
    • PAO: Mobile Computing page, laptops running FreeBSD 2.2.X and 3.X Laptop users looking for PC Card (aka PCMCIA) support under FreeBSD 2.2.X and 3.X should look at the PAO project for laptop support (FreeBSD 4.X and higher are provided with laptop support).
    • -
    • FreeBSD source code tour. +
    • FreeBSD source code tour. A hypertext cross referenced presentation of the FreeBSD kernel source code. The versions indexed are -CURRENT and RELENG_4.
    • Enteruser: A Replacement for Adduser
    • FreeBSD libh Project. Libh is a wrapper that allows tcl scripts to run in a sort of sandbox and interface to other libraries. Some of the stock libraries that come with libh that can be called from the Tcl scripts include a generic user interface library, which uses Turbo Vision for its console backend, and Qt for its X11 backend. Libh also includes a new package system that uses Zip archives and various per-package scripts among other things. It also includes the beginnings of a new sysinstall.
    • Binary Updater. FreeBSD Update is a system for automatically building, distributing, fetching, and applying binary security updates for FreeBSD. This makes it possible to easily track the FreeBSD security branches without the need for fetching the source tree and recompiling (except on the machine building the updates, of course). Updates are cryptographically signed; they are also distributed as binary diffs using a binary diff tool, which dramatically reduces the bandwidth used.
    • The FreeBSD C99 & &posix; Conformance Project aims to implement all requirements of the ISO 9899:1999 (C99) and IEEE 1003.1-2001 (POSIX) standards.
    • CVSweb is a WWW interface for CVS repositories with which you can browse a file hierarchy on your browser to view each file's revision history in a very handy manner.
    • The FreeBSD Laptops Compatibility List is a comprehensive database of laptops and PCMCIA cards that work with FreeBSD. This site contains detailed information about known hardware and software issues.
    • The FreeBSD Tinderbox continuously builds the active branches of the FreeBSD source tree to detect build problems. When a tinderbox build fails it sends an email to the appropriate mailing list, so that the build can be fixed as fast as possible. The Tinderbox source code is maintained in the FreeBSD CVS repository in the directory src/tools/tools/tinderbox.
    • The FreeBSD GNATS Upgrade pages detail the tasks, timeline and implementation involved in upgrading the FreeBSD bug tracking system from GNATS 3 to GNATS 4.
    &footer; diff --git a/en/prstats/index.sgml b/en/prstats/index.sgml index fb5f352e08..fe19cbf736 100644 --- a/en/prstats/index.sgml +++ b/en/prstats/index.sgml @@ -1,68 +1,68 @@ + %includes; ]> &header;

    Go fix/close a PR!

    It's easy, all you have to do is to follow this link to the GNATS database, find a PR, figure out what needs done and do it.

    If you are a committer, you can use the edit-pr command to close PRs.

    If you are not a committer, you should submit a followup containing the text :

    This PR can be closed

    on a line of its own, that will make it easier for a committer to deal with it later.


    Previous 30 days

    Graph of last 30 days

    Previous year

    Graph of last year

    Project lifetime

    Graph over project lifetime
    -

    These graphs are generated by a couple of Tcl Scripts. +

    These graphs are generated by a couple of Tcl Scripts.

    For additional summaries of the PR database, see the following charts and + href="http://people.FreeBSD.org/~bsd/prstats/">charts and reports.

    &footer; diff --git a/en/relnotes.sgml b/en/relnotes.sgml index 6c487197d9..121e75d639 100644 --- a/en/relnotes.sgml +++ b/en/relnotes.sgml @@ -1,133 +1,133 @@ + %includes; ]> &header;

    Each distribution of FreeBSD includes several documentation files describing the particular distribution (RELEASE, SNAPSHOTs, etc.). These files typically include:

    • README: General introduction.
    • Release Notes: Information about changes from the previous release of FreeBSD.
    • Hardware Notes: A list of hardware devices known to work with FreeBSD.
    • Installation Instructions: A brief guide to installing FreeBSD.
    • Errata: Late-breaking news, including corrections, security advisories, and potential problems found after each release.

    Of the files listed above, the release notes, hardware notes, and installation instructions are customized for each architecture supported by FreeBSD.

    RELEASE versions of FreeBSD

    The release documentation for each -RELEASE version of FreeBSD (for example, &rel.current;-RELEASE) can be found on the releases page of the FreeBSD Web site, as well as its mirrors.

    These files (usually in both HTML and text forms) can be found in the top-level directory of each distribution (whether on CDROM, an FTP site, or the install floppy disks).

    Snapshot versions of FreeBSD

    The release documentation files for snapshots can generally be found in the top-level directory of each snapshot.

    Documentation for -CURRENT and -STABLE

    Automatically-generated HTML versions of the release documentation for FreeBSD -CURRENT and FreeBSD -STABLE are available on the FreeBSD Web site. These documents are continually changing; the versions on the Web site are rebuilt at the same time that the rest of the Web site is updated.

    The following documentation files are available for FreeBSD -CURRENT:

    The following documentation files are available for FreeBSD 4-STABLE:

    Other Sites

    Single-file HTML, PDF, and text renderings of the release documentation for FreeBSD -CURRENT, -STABLE, and recent -RELEASE versions can be found at the Release + href="http://people.FreeBSD.org/~bmah/relnotes/">Release Documentation Snapshot Site. The renderings on this page are updated at irregular, but frequent intervals.

    &footer; diff --git a/en/search/atoz.pl b/en/search/atoz.pl index 1f4b3990ce..702c53d7d0 100644 --- a/en/search/atoz.pl +++ b/en/search/atoz.pl @@ -1,50 +1,50 @@ #!/usr/bin/perl # Copyright (c) May 1997 Wolfram Schneider , Berlin. # # atoz - create automatically an `A-Z Index' from a pre-sorted database # (sort -uf) with the format `|' # -# $FreeBSD$ +# $FreeBSD: www/en/search/atoz.pl,v 1.5 1999/09/06 07:02:57 peter Exp $ if ($ARGV[0] eq '-u' && $#ARGV > 0) { $urlprefix = $ARGV[1]; shift; shift; # prefix for relative URLs } elsif ($ARGV[0] =~ /^-/) { die "usage: $0 [-u urlprefix] files ...\n" } $top = 'ruebezahl'; # HTML tag name for `go to top of page' $hr = "
    \n\n"; $h2 = 'H2'; $table = 1; # use table output for alphabet sub eol { "\n\n" } $firstold = ''; @az = (); @list = (); while(<>) { chop; next if /^\s*#/ || /^\s*$/; # ignore comments $first = substr($_, 0, 1); $first =~ y/a-z/A-Z/; if ($firstold ne $first) { # a new alphabet character push(@az, $first); push(@list, &eol) if $#az > 0; # close previous list push(@list, qq{<$h2>$first\n
      \n}); } $firstold = $first; ($title, $url) = split('\|', $_); $url =~ s/^\s+//; $url =~ s/\s+$//; $url = $urlprefix . $url unless ($url =~ m%^/% || $url =~ /^(news|mailto|ftp|http|telnet):/oi); push(@list, qq{
    • $title\n}); } push(@list, &eol); # close last list # Output header, list, and copyright print qq{\n}; print qq{\n} if $table; foreach (@az) { if ($table) { print qq{\n}; } else { print qq{$_\n}; } } print "
      $_
      \n" if $table; print $hr; print @list; -#print qq{\n}; +#print qq{\n}; diff --git a/en/search/search.sgml b/en/search/search.sgml index 3153100e63..4a84f4f460 100644 --- a/en/search/search.sgml +++ b/en/search/search.sgml @@ -1,581 +1,581 @@ - + %includes; ]> &header;

      FreeBSD Search Services


      Web pages (including FAQ and Handbook)

      Search for:

      Note: Use the operators AND or NOT to limit your search. Look here for more hints.


      Limit the number of results to


      Mailing list archives

      The mailing list archive indexes are now updated weekly!

      An alternative way to read the mailing lists archives is to use the -Mailman/Pipermail +Mailman/Pipermail list archive (note that this archive only carries messages from March 2003 onward).

      The mailing lists (as well as many others) have also been archived by GeoCrawler.

      Search for:

      Note: Use the operators AND or NOT to limit your search. Look here for more hints.


      Limit the number of results to sort by Search

      In archive(s):

      Note: Searching more than three or four archives at once may yield inaccurate results.

      General Archives

      Advocacy FreeBSD Evangelism
      Announce Important events / milestones
      Chat Random topics (sometimes) related to FreeBSD
      Jobs FreeBSD related job announcements and resumes
      Newbies New FreeBSD users activities and discussion
      Questions General questions
      Security Notifications Announcements regarding FreeBSD security issues (including, e.g., CERT notices)
      User-Groups A forum for FreeBSD user groups

      System Use and Administration

      Bugs Reports and discussion of bugs
      Cluster Discussions related to using FreeBSD in clustered environments
      Hardware Discussions concerning hardware as it relates to FreeBSD
      ISP Discussions for ISPs using FreeBSD
      Performance Discussions of the performance of FreeBSD under high load or extreme conditions
      Security FreeBSD computer security issues (DES, Kerberos, etc.)
      Stable Discussion of the FreeBSD-stable branch of the development tree

      Developer

      Afs Porting and using AFS (the Andrew File System) from CMU/Transarc
      Alpha Porting FreeBSD to the DEC Alpha
      AMD64 Porting FreeBSD to the AMD64
      Arch Architecture and design discussions
      ARM Porting FreeBSD to the StrongArm
      ATM Using ATM networking with FreeBSD
      Audit Source code audit project
      Binup Design and development of the binary update system
      Bugbusters Coordination of the Problem Report handling effort
      Commit (all) All Changes made to all FreeBSD source trees
      Commit (doc) Changes made to the FreeBSD documents source tree
      Commit (ports) Changes made to the FreeBSD ports source tree
      Commit (projects) Changes made to the FreeBSD projects source tree
      Commit (src) Changes made to the FreeBSD main source tree
      Config Development of FreeBSD installation and configuration tools
      Current Use of FreeBSD-current sources
      CVSweb Technical discussions about use, development and maintenance of FreeBSD-CVSweb
      Database Discussing database use and development under FreeBSD
      Doc Discussions concerning documentation
      Emulation Emulating other systems on FreeBSD
      Firewire Design and implementation of a Firewire (aka IEEE 1394 aka iLink) subsystem for FreeBSD
      Fs Discussions concerning FreeBSD filesystems
      GEOM GEOM-specific discussions and implementations
      Gnome Discussions concerning the FreeBSD GNOME project
      Hackers General technical discussions
      I18n FreeBSD Internationalization
      i386 i386-specific issues for FreeBSD
      ia32 FreeBSD on the IA32 platform
      ia64 Porting FreeBSD to Intel's upcoming IA64 systems
      ipfw Technical discussion concerning the redesign of the IP firewall code
      ISDN Development of ISDN support for FreeBSD
      &java; JDK porting and application development
      libh The second generation installation and package system
      MIPS Porting FreeBSD to MIPS
      Multimedia Discussions about FreeBSD as a multimedia platform
      Mobile Using FreeBSD in a mobile environment
      Mozilla Porting mozilla to FreeBSD
      Net Networking discussion and TCP/IP source code
      New Bus Technical discussions on Bus Architecture
      OpenOffice Discussions concerning the FreeBSD OpenOffice and StarOffice ports
      Perl Maintenance of a number of perl-related ports
      Platforms Cross-platform FreeBSD issues (non-Intel FreeBSD ports)
      Policy FreeBSD core team policy decisions.
      Ports Bugs Bug reports concerning FreeBSD's ports collection
      Ports Discussions concerning FreeBSD's ports collection
      PPC Porting FreeBSD to the PowerPC
      QA Discussion of quality assurance issues
      Realtime Development of realtime extensions to FreeBSD
      SCSI Discussions about FreeBSD's SCSI support
      Small Using FreeBSD in embedded applications
      SMP FreeBSD on multi-processor platforms
      SPARC64 Porting FreeBSD to the SPARC64
      Standards FreeBSD Conformance to the C99 and the &posix; standards
      Threads Discussion about threading models in FreeBSD, including KSE and others
      Tokenring Support Token Ring in FreeBSD
      X11 Maintenance and support of X11 on FreeBSD

      Limited lists

      Hubs People running mirror sites (infrastructural support)
      Install Installation system development
      WWW Web site maintainers

      &footer; diff --git a/en/search/web.atoz b/en/search/web.atoz index ab992e2f25..38e3ffb900 100644 --- a/en/search/web.atoz +++ b/en/search/web.atoz @@ -1,492 +1,492 @@ # # `A-Z Index' for http://www.FreeBSD.org # # With the format `|'. # Empty lines or comments are ignored. # -# $FreeBSD: www/en/search/web.atoz,v 1.69 2003/12/16 22:16:10 ceri Exp $ +# $FreeBSD: www/en/search/web.atoz,v 1.70 2004/01/12 20:47:08 ceri Exp $ # platforms/alpha.sgml Alpha|&base;/platforms/alpha.html Compaq Alpha|&base;/platforms/alpha.html DEC Alpha|&base;/platforms/alpha.html DIGITAL Alpha|&base;/platforms/alpha.html FreeBSD/alpha|&base;/platforms/alpha.html HP Alpha|&base;/platforms/alpha.html # platforms/amd64.sgml AMD64|&base;/platforms/amd64.html Athlon64|&base;/platforms/amd64.html FreeBSD/amd64|&base;/platforms/amd64.html Opteron|&base;/platforms/amd64.html x86-64|&base;/platforms/amd64.html # ../internal/about.sgml Usage statistics for this server|../internal/about.html Statistics for this server|../internal/about.html WWW statistics for this server|../internal/about.html Fieber, John|../internal/about.html Apache http server|../internal/about.html http server|../internal/about.html WWW server www.FreeBSD.ORG|../internal/about.html -hub.freebsd.org|../internal/about.html +hub.FreeBSD.org|../internal/about.html BSDi, network connection|../internal/about.html Network connection, BSDi|../internal/about.html # ../applications.sgml Hittinger, Mark|../applications.html WinNet Communications|../applications.html Netscape Navigator|../applications.html Java, Netscape Navigator|../applications.html Internet services|../applications.html X Windows workstation|../applications.html Networking|../applications.html Software development|../applications.html Net surfing|../applications.html Education and research|../applications.html # ../auditors.sgml Security, Auditors|../auditors.html Auditors|../auditors.html # projects/busdma/index.sgml busdma and SMPng driver conversion project|&base;/projects/busdma/index.html SMPng driver conversion|&base;/projects/busdma/index.html # projects/c99/index.sgml C99 & POSIX Conformance Project|&base;/projects/c99/index.html POSIX Conformance|&base;/projects/c99/index.html # ../gallery/cgallery.sgml Gallery, Commercial|../gallery/cgallery.html Commercial, Gallery|../gallery/cgallery.html # releng/charter.sgml Charter, Release Engineering Team|&base;/releng/charter.html Release Engineering Team Charter|&base;/releng/charter.html # ../commercial/commercial.sgml Commercial Vendors|../commercial/commercial.html Vendors, commercial|../commercial/commercial.html Commercial Vendors, Consulting|../commercial/consulting.html Consulting, Commercial Vendors|../commercial/consulting.html Commercial Vendors, Hardware|../commercial/hardware.html Hardware, Commercial Vendors|../commercial/hardware.html Commercial Vendors, Software|../commercial/software.html Software, Commercial Vendors|../commercial/software.html Commercial Vendors, Miscellaneous|../commercial/misc.html Miscellaneous, Commercial Vendors|../commercial/misc.html # donations/index.sgml Charter, Donations Liaison|&base;/donations/index.html#charter Donations Liaison Charter|&base;/donations/index.html#charter Donations|&base;/donations/index.html # daemon.sgml BSD Daemon|../copyright/daemon.html Daemon, BSD|../copyright/daemon.html Nemeth, Evi|../copyright/daemon.html Lassiter, John|../copyright/daemon.html Hosokawa, Tatsumi|../copyright/daemon.html McKusick, Marshall Kirk|../copyright/daemon.html # internal/doceng.sgml Charter, Doceng Team|&base;/internal/doceng.html Doceng Team Charter|&base;/internal/doceng.html Documentation Project, doceng|&base;/internal/doceng.html # docproj.sgml Documentation Project|../docproj/docproj.html Project, Documentation|../docproj/docproj.html Goals, documentation|../docproj/docproj.html FAQ, Documentation Project|../docproj/docproj.html Handbook, Documentation Project|../docproj/docproj.html Contributing, Documentation Project|../docproj/docproj.html Submitting corrections, Documentation Project|../docproj/docproj.html Submitting new material, Documentation Project|../docproj/docproj.html SGML, Documentation Project|../docproj/docproj.html Linuxdoc, Documentation Project|../docproj/docproj.html Docbook, Documentation Project|../docproj/docproj.html Guidelines, Documentation Project|../docproj/docproj.html # docs.sgml Documentation|../docs.html Handbook|../docs.html Japanese Handbook|../docs.html#handbook Handbook, Japanese|../docs.html#handbook Frequently Asked Questions (FAQ)|../docs.html#faq FAQ|../docs.html#faq Books|../docs.html#books Manual Pages|../docs.html#man 4.4BSD Documents|../docs.html#44doc BSD Documents|../docs.html#44doc Documents, 4.4BSD|../docs.html#44doc Schneider, Wolfram|../docs.html#man Info Documents|../docs.html#info GNU Info Documents|../docs.html#info Source Code|../docs.html#source Toomey, Warren|../docs.html#source # events/events.xsl Events|&base;/events/events.html Past Events|&base;/events/events.html#past Upcoming Events|&base;/events/events.html#upcoming # features.sgml Features|../features.html 4.4BSD, A complete operating system|../features.html Berkeley, University of California|../features.html UCB|../features.html Computer Systems Research Group|../features.html CSRG|../features.html Merged virtual memory and filesystem buffer cache|../features.html virtual memory|../features.html buffer cache|../features.html Compatibility, SCO|../features.html Compatibility, Linux|../features.html Compatibility, NetBSD|../features.html Compatibility, BSDI|../features.html SCO, Compatibility|../features.html Linux, Compatibility|../features.html NetBSD, Compatibility|../features.html BSDI, Compatibility|../features.html # gallery.sgml Gallery, FreeBSD|../gallery/gallery.html Powered by FreeBSD logo|../gallery/gallery.html logo, Powered by FreeBSD|../gallery/gallery.html Tao, Brian|../gallery/gallery.html McKusick, Marshall Kirk|../gallery/gallery.html # platforms/ia64/index.sgml FreeBSD/ia64|&base;/platforms/ia64/index.html IA-64|&base;/platforms/ia64/index.html Itanium|&base;/platforms/ia64/index.html # internet.sgml Internet|../internet.html TCP/IP protocols|../internet.html NFS|../internet.html NIS|../internet.html SNMP|../internet.html FTP|../internet.html DNS/BIND|../internet.html PPP|../internet.html SLIP|../internet.html MBONE|../internet.html SAMBA|../internet.html PCNFS|../internet.html Appletalk|../internet.html Novell|../internet.html TCP extensions|../internet.html RFC-1323|../internet.html RFC-1644|../internet.html networking|../internet.html FTP Server ftp.FreeBSD.ORG, configuration|../internet.html Yahoo|../internet.html High performance and security|../internet.html Encryption software|../internet.html secure shells|../internet.html Kerberos|../internet.html end-to-end encryption|../internet.html secure RPC facilities|../internet.html O'Brien, Michael|../internet.html SunExpert|../internet.html # kse/index.sgml KSE|&base;/kse/index.html Threads, KSE|&base;/kse/index.html POSIX threads|&base;/kse/index.html # license.sgml Copyright|../copyright/license.html License|../copyright/license.html # mailto.sgml Contact us|../mailto.html Questions about this WWW server|../mailto.html Questions about the contents of this WWW server|../mailto.html Questions about FreeBSD|../mailto.html # platforms/mips.sgml FreeBSD/MIPS|&base;/platforms/mips.html MIPS, FreeBSD|&base;/platforms/mips.html SGI MIPS, FreeBSD|&base;/platforms/mips.html # mirror.sgml Mirroring the FreeBSD Web Pages|../internal/mirror.html rsync|../internal/mirror.html # newsflash.sgml News flash|../news/newsflash.html Press releases, News|../news/newsflash.html Daemon News|http://www.daemonnews.org/ #Changes at the FreeBSD Web Server|../news/webchanges.html #Webchanges at the FreeBSD Web Server|../news/webchanges.html # npgallery.sgml Non-profit organizations, Gallery|../gallery/npgallery.html Gallery, Non-profit organizations|../gallery/npgallery.html # npgallery.sgml Personal sites, Gallery|../gallery/pgallery.html Gallery, Personal sites|../gallery/pgallery.html # platforms/pc98.sgml FreeBSD/pc98|&base;/platforms/pc98.html NEC PC-98x1|&base;/platforms/pc98.html PC-98|&base;/platforms/pc98.html # ports/index.sgml Ports Collection|../ports/index.html # platforms/ppc.sgml FreeBSD/PowerPC|&base;/platforms/ppc.html FreeBSD/ppc|&base;/platforms/ppc.html PowerPC|&base;/platforms/ppc.html # press.sgml Press, in the|../news/press.html Press Releases, Official|../news/pressreleases.html # publish.sgml Related Publications|../publish.html Publications, Related|../publish.html Covers, Publications|../publish.html Daemon, Covers|../publish.html CDROM, Covers|../publish.html#cdroms Books, Covers|../publish.html#books Magazines, Covers|../publish.html#magazines # releases/index.sgml Recent announcements about FreeBSD Releases|../releases/index.html Current Releases|../releases/index.html#current Future Releases|../releases/index.html#future Past Releases|../releases/index.html#past Release Information|&base;/releases/index.html Releases, current|../releases/index.html#current Releases, future|../releases/index.html#future Releases, past|../releases/index.html#past 1.0 FreeBSD|../releases/index.html#past 1.1 FreeBSD|../releases/index.html#past 1.1.5 FreeBSD|../releases/index.html#past 1.1.5.1 FreeBSD|../releases/index.html#past 2.0 FreeBSD|../releases/index.html#past 2.0.5 FreeBSD|../releases/index.html#past 2.1 FreeBSD|../releases/index.html#past 2.1.5 FreeBSD|../releases/index.html#past 2.1.6 FreeBSD|../releases/index.html#past 2.1.7 FreeBSD|../releases/index.html#past 2.2 FreeBSD|../releases/index.html#past 2.2.1 FreeBSD|../releases/index.html#past 2.2.2 FreeBSD|../releases/index.html#past 2.2.5 FreeBSD|../releases/index.html#past 2.2.6 FreeBSD|../releases/index.html#past 2.2.7 FreeBSD|../releases/index.html#past 2.2.8 FreeBSD|../releases/index.html#past 3.0 FreeBSD|../releases/index.html#past 3.1 FreeBSD|../releases/index.html#past 3.2 FreeBSD|../releases/index.html#past 3.3 FreeBSD|../releases/index.html#past 3.4 FreeBSD|../releases/index.html#past 4.0 FreeBSD|../releases/index.html#past 4.1 FreeBSD|../releases/index.html#past 4.2 FreeBSD|../releases/index.html#past 4.3 FreeBSD|../releases/index.html#past 4.4 FreeBSD|../releases/index.html#past 4.5 FreeBSD|../releases/index.html#past 4.6 FreeBSD|../releases/index.html#past 4.7 FreeBSD|../releases/index.html#past 4.8 FreeBSD|../releases/index.html#past 4.9 FreeBSD|../releases/index.html#current 5.0 FreeBSD|../releases/index.html#past 5.1 FreeBSD|../releases/index.html#past 5.2 FreeBSD|../releases/index.html#current # releng/index.sgml Code-Freeze Status|&base;/releng/index.html#freeze Release Engineering Information|&base;/releng/index.html Upcoming Release Schedule|&base;/releng/index.html#schedule # relnotes.sgml Release Documentation|&base;/relnotes.html # search.sgml Search Services|search.html Web pages, search|search.html#web Search, Web pages|search.html#web Mailing list archives, search|search.html#mailinglists Search, Mailing list archives|search.html#mailinglists Ports Changes, Search|search.html Search, Ports Changes|search.html Message-ID, Search|search.html Search, Message-ID|search.html Usenet News, Search|search.html Newsgroups, Search|search.html Search, Usenet News|search.html Cross reference of the FreeBSD kernel|search.html XR, Cross reference of the FreeBSD kernel|search.html Kernel, Cross reference|search.html # searchhints.sgml Searching Hints|searchhints.html # security/security.sgml Security Guide|../security/security.html # send-pr.sgml Submit a FreeBSD problem report|../send-pr.html Bug report, submit|../send-pr.html # smp/index.sgml Symmetric MultiProcessing (SMP)|&base;/smp/index.html SMP|&base;/smp/index.html # platforms/sparc.sgml FreeBSD/sparc64|&base;/platforms/sparc.html Sparc64|&base;/platforms/sparc.html Sparc|&base;/platforms/sparc.html UltraSparc|&base;/platforms/sparc.html # news/status/status.sgml Bi-monthly status reports|&base;/news/status/status.html FreeBSD Status Reports|&base;/news/status/status.html Status Reports|&base;/news/status/status.html # support.sgml Support|../support.html Mailing lists|../support.html#mailing-list non-English mailing lists|../support.html#mailing-list Mailing lists, German|../support.html#mailing-list Mailing lists, Czech|../support.html#mailing-list Mailing lists, Polish|../support.html#mailing-list Mailing lists, Portuguese|../support.html#mailing-list Mailing lists, Japanese|../support.html#mailing-list Mailing lists, Hungarian|../support.html#mailing-list Mailing lists, Itilian|../support.html#mailing-list Mailing lists, Russian|../support.html#mailing-list Mailing lists, French|../support.html#mailing-list Mailing lists, Indonesian|../support.html#mailing-list Mailing lists, Korean|../support.html#mailing-list Mailing lists, Netherlands|../support.html#mailing-list Mailing lists, Spanish|../support.html#mailing-list German mailing lists|../support.html#mailing-list Czech mailing lists|../support.html#mailing-list Polish mailing lists|../support.html#mailing-list Portuguese mailing lists|../support.html#mailing-list Japanese mailing lists|../support.html#mailing-list Hungarian mailing lists|../support.html#mailing-list Russian mailing lists|../support.html#mailing-list French mailing lists|../support.html#mailing-list Indonesian mailing lists|../support.html#mailing-list Korean mailing lists|../support.html#mailing-list Spanish mailing lists|../support.html#mailing-list German web pages|../support.html#web Czech web pages|../support.html#web Chinese web pages|../support.html#web Portuguese web pages|../support.html#web Hungarian web pages|../support.html#web Japanese web pages|../support.html#web Slovakian web pages|../support.html#web Russian web pages|../support.html#web Indonesian web pages|../support.html#web Korean web pages|../support.html#web Polish web pages|../support.html#web Spanish web pages|../support.html#web Newsgroups|../support.html#newsgroups Web Resources, mirrors|../support.html#web GNATS Problem Report Database|../support.html#gnats Bug reports, view|../support.html#gnats CVS Repository|../support.html#cvs CTM|../support.html#cvs CVSup|../support.html#cvs anoncvs|../support.html#anoncvs User Groups|../support.html#user General UNIX Information|../support.html#general X Window System|../support.html#xwin Hardware, support|../support.html#hardware # copyright/trademarks.sgml Trademark legend|&base;/copyright/trademarks.html # /projects/ Multimedia|../projects/projects.html#multimedia Home Automation|../projects/projects.html#homeauto Automation, Home|../projects/projects.html#homeauto Java|../java/index.html GNOME|../gnome/index.html PicoBSD|http://www.FreeBSD.org/~picobsd single floppy FreeBSD|http://www.FreeBSD.org/~picobsd Related Operating System Projects|../projects/projects.html#related Operating System, related projects|../projects/projects.html#related DEVFS|../projects/projects.html#devfs soft update code|../projects/projects.html#softupdate Newbies Project|../projects/newbies.html Hardening Project|../projects/projects.html#hardening secure environment|../projects/projects.html#hardening KAME Project|../projects/projects.html#kame IPv6/IPsec stack for BSD|../projects/projects.html#kame Token-Ring Project|../projects/projects.html#tokenring i4b|../projects/projects.html#isdn ISDN|../projects/projects.html#isdn ISDN4BSD|../projects/projects.html#isdn USB|../projects/projects.html#usb Drawbridge|../projects/projects.html#drawbridge secure MobileIP via IPSec|../projects/projects.html#smn MobileIP via IPSec|../projects/projects.html#smn IPSec|../projects/projects.html#kame SMN|../projects/projects.html#smn High-precision timekeeping|../projects/projects.html#timekeeping timekeeping, High-precision|../projects/projects.html#timekeeping ALTQ|../projects/projects.html#altq bandwidth management|../projects/projects.html#altq Alternate Queueing|../projects/projects.html#altq vinum|../projects/projects.html#vinum logical volume manager|../projects/projects.html#vinum volume manager, logical|../projects/projects.html#vinum ATM, BSD|../projects/projects.html#atm BSD ATM|../projects/projects.html#atm PAO|../projects/projects.html#pao Mobile Computing|../projects/projects.html#pao laptop|../projects/projects.html#pao Point to Point Protocol (PPP)|../projects/projects.html#ppp GLOBAL common source code tag system|../projects/projects.html#global Voice Answering Machine|../projects/projects.html#vam Answering Machine, Voice|../projects/projects.html#vam Retail Outlets for FreeBSD|../projects/projects.html#retail CAM|../projects/projects.html#cam Tinderbox|&base;/projects/projects.html#tinderbox -Security Advisories|ftp://ftp.freebsd.org/pub/FreeBSD/CERT/index.html -Advisories, security|ftp://ftp.freebsd.org/pub/FreeBSD/CERT/index.html -SA|ftp://ftp.freebsd.org/pub/FreeBSD/CERT/index.html +Security Advisories|ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/index.html +Advisories, security|ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/index.html +SA|ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/index.html # where.sgml Getting FreeBSD|../where.html Installing FreeBSD|../where.html#install Distribution Sites|../where.html#distribution Applications and Utility Software|../where.html#apps Commercial software|../where.html # y2kbug.html y2k|&base;/y2kbug.html Year 2000 bug|&base;/y2kbug.html Millennium bug|&base;/y2kbug.html 2000, year bug|&base;/y2kbug.html # news/ BSD Real-Quick (TM) Newsletter|http://www.daemonnews.org/newsletter/ Real-Quick (TM) Newsletter|http://www.daemonnews.org/newsletter/ Newsletter, BSD Real-Quick|http://www.daemonnews.org/newsletter/ -Release Usage Statistic|http://www.freebsd.org/statistic/release_usage/images/ -Statistic, Release Usage|http://www.freebsd.org/statistic/release_usage/images/ +Release Usage Statistic|http://www.FreeBSD.org/statistic/release_usage/images/ +Statistic, Release Usage|http://www.FreeBSD.org/statistic/release_usage/images/ # who's who Project Staff|../doc/en_US.ISO8859-1/articles/contributors/staff-who.html Staff, Project|../doc/en_US.ISO8859-1/articles/contributors/staff-who.html Who's Who|../doc/en_US.ISO8859-1/articles/contributors/staff-who.html Officers, Project|../doc/en_US.ISO8859-1/articles/contributors/staff-who.html diff --git a/en/security/security.sgml b/en/security/security.sgml index dd39e3c44c..499bb97eba 100644 --- a/en/security/security.sgml +++ b/en/security/security.sgml @@ -1,606 +1,606 @@ - + %includes; ]> - + &header;

      Introduction

      This web page is designed to assist both new and experienced users in the area of FreeBSD security. FreeBSD takes security very seriously and is constantly working on making the OS as secure as possible.

      Here you will find additional information, or links to information, on how to protect your system against various types of attack, on whom to contact if you find a security-related bug, and so on. There is also a section on the various ways that the systems programmer can become more security conscious so that he is less likely to introduce vulnerabilities.

      Table of Contents

      The FreeBSD Security Officer and the Security Officer Team

      To better coordinate information exchange with others in the security community, FreeBSD has a focal point for security-related communications: the FreeBSD Security Officer.

      If you need to contact the FreeBSD Project about a possible security issue, you should therefore send mail to the Security Officer with a description of what you have found and the type of vulnerability it represents.

      In order that the FreeBSD Project may respond to vulnerability reports in a timely manner, there are four members of the Security Officer mail alias: the Security Officer, the Deputy Security Officer, and two Core Team members. Therefore, messages sent to the <security-officer@FreeBSD.org> mail alias are currently delivered to:

      Jacques Vidrine <nectar@FreeBSD.org> Security Officer
      Chris Faulhaber <jedgar@FreeBSD.org> Deputy Security Officer
      Robert Watson <rwatson@FreeBSD.org> FreeBSD Core Team member, Release Engineering liaison,
      TrustedBSD Project liaison, system security architecture expert
      Warner Losh <imp@FreeBSD.org> FreeBSD Core Team liaison, Security Officer Emeritus

      The Security Officer is supported by the FreeBSD Security Team <security-team@FreeBSD.org>, a small group of committers vetted by the Security Officer.

      Please use the Security Officer PGP key to encrypt your messages to the Security Officer when appropriate.

      Information handling policies

      As a general policy, the FreeBSD Security Officer favors full disclosure of vulnerability information after a reasonable delay to permit safe analysis and correction of a vulnerability, as well as appropriate testing of the correction, and appropriate coordination with other affected parties.

      The Security Officer will notify one or more of the FreeBSD Cluster Admins of vulnerabilities that put the FreeBSD Project's resources under immediate danger.

      The Security Officer may bring additional FreeBSD developers or outside developers into discussion of a submitted security vulnerability if their expertise is required to fully understand or correct the problem. Appropriate discretion will be exercised to minimize unnecessary distribution of information about the submitted vulnerability, and any experts brought in will act in accordance of Security Officer policies. In the past, experts have been brought in based on extensive experience with highly complex components of the operating system, including FFS, the VM system, and the network stack.

      If a FreeBSD release process is underway, the FreeBSD Release Engineer may also be notified that a vulnerability exists, and its severity, so that informed decisions may be made regarding the release cycle and any serious security bugs present in software associated with an up-coming release. If requested, the Security Officer will not share information regarding the nature of the vulnerability with the Release Engineer, limiting information flow to existence and severity.

      The FreeBSD Security Officer has close working relationships with a number of other organizations, including third-party vendors that share code with FreeBSD (the OpenBSD and NetBSD projects, Apple, and other vendors deriving software from FreeBSD, as well as the Linux vendor security list), as well as organizations that track vulnerabilities and security incidents, such as CERT. Frequently vulnerabilities may extend beyond the scope of the FreeBSD implementation, and (perhaps less frequently) may have broad implications for the global networking community. Under such circumstances, the Security Officer may wish to disclose vulnerability information to these other organizations: if you do not wish the Security Officer to do this, please indicate so explicitly in any submissions.

      Submitters should be careful to explicitly document any special information handling requirements.

      If the submitter of a vulnerability is interested in a coordinated disclosure process with the submitter and/or other vendors, this should be indicated explicitly in any submissions. In the absence of explicit requests, the FreeBSD Security Officer will select a disclosure schedule that reflects both a desire for timely disclosure and appropriate testing of any solutions. Submitters should be aware that if the vulnerability is being actively discussed in public forums (such as bugtraq), and actively exploited, the Security Officer may choose not to follow a proposed disclosure timeline in order to provide maximum protection for the user community.

      Submitters should be aware that the FreeBSD Project is an open source project, and source revision control information for every change made to the FreeBSD source tree is publicly accessible. If a disclosure schedule is provided, it should take into account both the official release of advisory, patch, and update information, as well as initial inclusion of fixes in the FreeBSD source tree. There is necessarily a lag between the inclusion of fixes in the tree and the generation and releases of advisories, patches, and binary updates, as the source control system is used to generate them.

      Submissions may be protected using PGP. If desired, responses will also be protected using PGP.

      FreeBSD Security Advisories

      The FreeBSD Security Officer provides security advisories for several branches of FreeBSD development. These are the -STABLE Branches and the Security Branches. (Advisories are not issued for the -CURRENT Branch.)

      • There is usually only a single -STABLE branch, although during the transition from one major development line to another (such as from FreeBSD 4.x to 5.x), there is a time span in which there are two -STABLE branches. The -STABLE branch tags have names like RELENG_4. The corresponding builds have names like FreeBSD 4.6-STABLE.

      • Each FreeBSD Release has an associated Security Branch. The Security Branch tags have names like RELENG_4_6. The corresponding builds have names like FreeBSD 4.6-RELEASE-p7.

      Issues affecting the FreeBSD Ports Collection are covered -in the FreeBSD VuXML +in the FreeBSD VuXML document.

      Each branch is supported by the Security Officer for a limited time only, and is designated as one of `Early adopter', `Normal', or `Extended'. The designation is used as a guideline for determining the lifetime of the branch as follows.

      Early adopter
      Releases which are published from the -CURRENT branch will be supported by the Security Officer for a minimum of 6 months after the release.
      Normal
      Releases which are published from the -STABLE branch will be supported by the Security Officer for a minimum of 12 months after the release.
      Extended
      Selected releases will be supported by the Security Officer for a minimum of 24 months after the release.

      The current designation and estimated lifetimes of the currently supported branches are given below. The Estimated EoL (end-of-life) column gives the earliest date on which that branch is likely to be dropped. Please note that these dates may be extended into the future, but only extenuating circumstances would lead to a branch's support being dropped earlier than the date listed.

      Branch Release Type Estimated EoL
      RELENG_4 n/a n/a March 31, 2005
      RELENG_4_8 4.8-RELEASE Extended March 31, 2005
      RELENG_5_2 5.2.1-RELEASE Early adopter December 31, 2004
      RELENG_4_9 4.9-RELEASE Normal October 31, 2004

      Older releases are not maintained and users are strongly encouraged to upgrade to one of the supported releases mentioned above.

      Like all development efforts, security fixes are first brought into the FreeBSD-current branch. After a couple of days and some testing, the fix is retrofitted into the supported FreeBSD-stable branch(es) and an advisory is then sent out.

      Some statistics about advisories released during 2002:

      • 44 advisories of varying severity were issued for the base system.
      • 12 advisories described vulnerabilities found only in FreeBSD. The remaining 32 were problems shared with at least one other OS (often due to shared code).
      • 6 security notices were issued, covering a total of 95 issues in optional third party applications included in the Ports Collection.

      Advisories are sent to the following FreeBSD mailing lists:

      • FreeBSD-security-notifications@FreeBSD.org
      • FreeBSD-security@FreeBSD.org
      • FreeBSD-announce@FreeBSD.org

      Advisories are always signed using the FreeBSD Security Officer PGP key and are archived, along with their associated patches, at our FTP CERT repository. At the time of this writing, the following advisories are currently available (note that this list may be a few days out of date - for the very latest advisories please check the FTP site):

      &advisories.html.inc;

      FreeBSD Security Mailing Lists Information

      If you are administering or using any number of FreeBSD systems, you should probably be subscribed to one or more of the following lists:

      - + - +
      freebsd-securityfreebsd-security General security related discussion
      freebsd-security-notificationsfreebsd-security-notifications Security notifications (low-volume moderated list)

      Secure Programming Guidelines

      • Never trust any source of input, i.e. command line arguments, environment variables, configuration files, incoming TCP/UDP/ICMP packets, hostname lookups, function arguments, etc. If the length of or contents of the data received is at all subject to outside control, then the program or function should watch for this when copying it around. Specific security issues to watch for in this are:

        • strcpy() and sprintf() calls from unbounded data. Use strncpy and snprintf() when the length is known (or implement some other form of bounds-checking when the length is unknown). In fact, never ever use gets() or sprintf(), period. If you do - we will send evil dwarfs after you.

        • If you have to check the user input so it does not contain bad characters of some sort, do NOT check for those bad characters. Instead simply verify that it consists ONLY of those characters that you do allow. In general concept is: disallow anything that is not explicitly allowed.

        • Read man pages for strncpy() and strncat() calls. Be sure to understand how they work!!! While strncpy() might not append a terminating \0, strncat() on the other hand adds the \0.

        • Watch for strvis() and getenv() abuse. With strvis() it is easy to get the destination string wrong, and getenv() can return strings much longer then the program might expect. These two functions are one of the key ways an attack is often made on a program, causing it to overwrite stack or variables by setting its environment variables to unexpected values. If your program reads environment variables, be paranoid. Be very paranoid!

        • Ever time you use open() or stat() call - ask yourself: "What if it is a symbolic link?"

        • Make sure to use mkstemp() instead of mktemp(), tempnam(), etc. Also make sure to look for races in /tmp in general, being aware that there are very few things which can be atomic in /tmp:
          • Creating a directory. This will either succeed or fail.
          • Opening a file O_CREAT | O_EXCL
          If you use mkstemp() the above cases will be properly handled for you. Hence all temp files should use mkstemp() to guarantee there is not race condition and that the permissions are correct.

        • If an attacker can force packets to go/come from another arbitrary system then that attacker has complete control over the data that we get and NONE of it should be trusted.

        • Never trust a configuration file is correctly formatted or that it was generated by the appropriate utility. Don't trust user input such as terminal names or language strings to be free of '/' or '../../../' if there is any chance that they can be used in a path name. Don't trust ANY paths supplied by the user when you are running setuid root.

        • Look for holes or weaknesses in how data is stored. All temp files should have 600 permission in order to be protected from prying eyes.

        • Do not just grep for the usual suspects in programs which run with elevated privileges. Look line by line for possible overflows in these cases since there are a lot more ways to cause buffer overflows than by abusing strcpy() and friends.

        • Just because you drop privileges somewhere, it does not mean that no exploit is possible. The attacker may put the necessary code on the stack to regain the privileges before executing /bin/sh.

      • Do uid management. Do drop privileges as soon as possible, and really do drop them. Switching between euid and uid is NOT enough. Use setuid() when you can.

      • Never display configuration file contents on errors. A line number and perhaps position count is enough. This is true for all libs and for any suid/sgid program.

      • Tips for those reviewing existing code for security problems:

        • If you are unsure of your security fixes, send them to a reviewer with whom you already have arrangements for a second glance over your code. Don't commit code you are not sure about since breaking something in the name of a security fix is rather embarrassing.

        • Those without CVS commit privileges should make sure that a reviewer with such privileges is among the last to review the changes. That person will both review and incorporate the final version you would like to have go into the tree.

        • When sending changes around for review, always use context or unidiff format diffs - this way diffs can be easily fed to patch(1). Do not simply send the whole files. Diffs are much easier to read and apply to local sources (especially those in which multiple, simultaneous changes may be taking place). All changes should be relative to the -current branch of development.

        • Always directly test your changes (e.g. build and run the affected sources) before sending them to a reviewer. Nobody likes being sent obviously broken stuff for review, and it just makes it appear as though the submitter didn't even really look at what he was submitting (which is also hardly confidence building). If you need accounts on a machine with a specific version which you don't have available - just ask. The project has resources available for exactly such purposes.

        • Note for committers: do not forget to retrofit -current patches into the -stable branch as appropriate.

        • Do not needlessly rewrite code to suit your style/tastes - it only makes the reviewer's job needlessly more difficult. Do so only if there are clear reasons for it.

      • Look out for programs doing complex things with signal handlers. Many routines in the various libraries are not sufficiently reentrant to make this safe.

      • Pay special attention to realloc() usage - more often then not the function is not used correctly.

      • When using fixed size buffers, use sizeof() to prevent lossage when a buffer size is changed but the code which uses it isn't. For example:
                 char buf[1024];
                 struct foo { ... };
                 ...
         BAD:
                 xxx(buf, 1024)
                 xxx(yyy, sizeof(struct foo))
         GOOD:
                 xxx(buf, sizeof(buf))
                 xxx(yyy, sizeof(yyy))
         
        Be careful though with sizeof of pointers when you really want the size of where it points to!

      • Every time you see "char foo[###]", check every usage of foo to make sure that it can't be overflowed. If you can't avoid overflow (and cases of this have been seen), then at least malloc the buffer so that one can't walk on the stack.

      • Always close file descriptors as soon as you can - this makes it more likely that the stdio buffer contents will be discarded. In library routines, always set any file descriptors that you open to close-on-exec.

      A useful auditing tool is the its4 port, located in /usr/ports/security/its4/. This is an automated C code auditor which highlights potential trouble-spots in the code. It is a useful first-pass tool, but should not be relied upon as being authoritative, and a complete audit should include human examination of the entire code.

      For more information on secure programming techniques and resources, see the How to Write Secure Code resource center.

      FreeBSD Security Tips and Tricks

      There are several steps one must take to secure a FreeBSD system, or in fact any &unix; system:

      • Disabling potentially dangerous software

        A lot of software has to be run as a special privileged user to make use of specific resources, by making the executable set-uid. An example is UUCP or PPP software that makes use of a serial port, or sendmail which has to write in the mail spool and bind to a privileged network port. When you are not using UUCP, it is of little use to have software on your system and it may be wise to disable it. Of course, this requires good knowledge of what can be thrown away and what not, as well as good indication whether or not you will want the functionality in the future.

        Also some utilities you may find not useful enough to have around pose a possible security risk, like swapinfo. If you remove the set-uid bit for the executable (via 'chmod ug-s filename' command) you can always keep on using swapinfo when you're root. It is however not a good idea to strip so many sbits that you have to be root all the time.

        Not only remove programs that you don't use, also remove services you don't want or need to provide. This can be done by editing the /etc/inetd.conf and /etc/rc.conf files and turning off all services you don't use.

      • Fixing software which has security bugs (or how to stay one step ahead of crackers)

        Make sure you are subscribed to various FreeBSD Security mailing lists so you get updates on security bugs and fixes. Apply the fixes immediately.

      • Backups - repair your system if a security breach does occur

        Always have backups and a clean version of the operating system (e.g. on CD-Rom). Make sure your backups do not contain corrupted data or data modified by attackers.

      • Install software to watch the state of the system

        Programs like the tcp wrappers and tripwire (both in packages/ports) can help you to monitor activity on your system. This makes it easier to detect break-ins. Also read outputs of the /etc/security scripts which are run daily and mailed to the root account.

      • Educating the people who work on the system

        Users should know what they are doing. They should be told to never give out their password to anyone and to also use hard-to-guess passwords. Let them understand that the security of the system/network is partly in their hands.

      There is also a FreeBSD Security How-To available which provides some advanced tips on how to improve security of your system. You can find it at http://www.FreeBSD.org/~jkb/howto.html.

      Security is an ongoing process. Make sure you are following the latest developments in the security arena.

      What to do when you detect a security compromise

      • Determine the level of the security breach
        What privileges did the attacker get? Did the attacker manage to get root access? Did the attacker only manage to get user level access?
      • Determine if the state of system (kernel or userland) has been tampered with
        What software has been tampered with? Was new kernel installed? Were any of the system binaries (such as telnetd, login, etc) modified? If you believe an attacker could have done any tampering with an OS, you may want to re-install the operating system from a safe medium.
      • Find out how the break-in was done
        Did the break-in occur via a well-known security bug? If that is the case, make sure to install the correct patches. Was the break-in successful due to a misconfiguration? Was the break-in result of a new bug? If you believe the break-in occurred via a new bug, you should warn the FreeBSD Security Officer.
      • Fix the security hole
        Install new software or apply patches to the old one in order to fix the problems. Disable any compromised accounts.
      • Other resources
        CERT also offers detailed information on what steps to take in case of a system compromise.

      Other Related Security Information

      &footer diff --git a/en/smp/index.sgml b/en/smp/index.sgml index d8b08a3902..a2c3bf130a 100644 --- a/en/smp/index.sgml +++ b/en/smp/index.sgml @@ -1,2104 +1,2104 @@ - + %includes; Done"> In progress"> Stalled"> Not Started"> Resolved"> Unresolved"> %developers; ]> &header;

      Contents

      Project Goal

      The FreeBSD SMP project, often referred to as SMPng (SMP next generation), is focused on implementing fine-grained SMP support for the FreeBSD kernel. It debuted in 5.0-RELEASE in January of 2003. Due to FreeBSD's history, this is much like trying to fit a square peg into a round hole, and as such, the intermediate results aren't pretty in many ways. We are specifically not attempting to rewrite the kernel from scratch, nor are we on a crusade to fix all the architectural nits currently present in the kernel. This is a pragmatic project rather than a theoretical one.

      Project Plan

      This web page contains information related to the effort to improve SMP support in FreeBSD. In general, this project uses what it can from the BSD/OS 5.0 development kernel, and re-implements what cannot be directly used due to divergence in the code bases.

      As with any free software project, a detailed schedule is not possible. We expect to have significant performance and stability issues that need to be worked through over the first several months of the project, though every effort will be made to keep -current running as well as possible.

      The task list below is not intended to be complete, but does represent a set of relevant and/or important components of the overall work. The "Responsible" field identifies a developer who has expressed willingness to be responsible for completing the identified task; this doesn't preclude others working on it, but suggests that coordination with the responsible party might be appropriate so as to avoid unnecessary duplication of work, and to maximize forward progress. If beginning work on a new area of substantial size, or one that appears unclaimed, it may be worth dropping an e-mail to the FreeBSD SMP mailing list to see if any progress has been made.

      The definition of the date field varies depending on the status of a task. For completed tasks, it refers to the date completed or reported completed. For in-progress tasks, it refers to the date of the last update of the entry. For stalled tasks, it refers to the date that the task was declared stalled. For new tasks, it refers to the date the task was added to the list.

      Locking down of individual device drivers is tracked at the busdma and SMPng driver conversion webpage.

      Tasks are sorted first by status, then by date.

      Resources and Links

      Subsystems and Staffing

      This is an incomplete list of high-level kernel subsystems and current, active staff working on SMP architecture and stability.

      Subsystem Status Last updated Staffing
      Newbus &status.wip; 5 October 2003 &a.imp;
      VM &status.wip; 4 October 2003 &a.alc;
      Buffer cache &status.wip; 4 October 2003 &a.jeff;, &a.phk;
      VFS &status.wip; 4 October 2003 &a.jeff;
      Processes and thread operations &status.wip; 5 May 2003 &a.jhb;
      Scheduler &status.wip; 5 February 2003 &a.jhb;
      GEOM &status.done; 5 February 2003 &a.phk;
      File descriptors &status.done; 5 February 2003 &a.alfred;, &a.tanimura;
      TTY subsystem &status.new;
      Pipe IPC &status.done; 4 October 2003 &a.alfred;
      Socket structures and system calls &status.wip; 4 October 2003 &a.tanimura;, &a.hsu;, &a.sam;
      IPv4, IPv6 &status.wip; 4 October 2003 &a.hsu;, &a.jennifer;, &a.sam;, &a.rwatson;
      Network stack infrastructure &status.wip; 4 October 2003 &a.hsu;, &a.sam;

      Tasks

      Following is an incomplete list of general tasks.

      Task Responsible Last updated Status
      Convert the giant lock from spinning to blocking, add the scheduler lock, add per-CPU idle processes. &a.dillon; 25 June 2000 &status.done;
      Port the BSD/OS locking primitives (i386). &a.jake; 3 July 2000 &status.done;
      Implement heavy-weight interrupt threads (i386). &a.grog; 3 August 2000 &status.done;
      Rewrite the low level interrupt code (i386 UP). &a.grog; 3 August 2000 &status.done;
      Demonstrated reasonable stability (self-hosted buildworld) (i386 UP). -smp developers 12 August 2000 &status.done;
      Port the BSD/OS locking primitives (alpha). &a.dfr; 24 August 2000 &status.done;
      Stub out (disable) spl()s. &a.grog; 30 August 2000 &status.done;
      Port the BSD/OS ktr code. &a.grog;, &a.jhb; 30 August 2000 &status.done;
      Rewrite the low level interrupt code (i386 SMP). &a.jhb; 1 September 2000 &status.done;
      Demonstrated reasonable stability (self-hosted buildworld) (i386 SMP). -smp developers 6 September 2000 &status.done;
      Demonstrated reasonable stability (self-hosted buildworld) (alpha). -smp developers 6 September 2000 &status.done;
      Make malloc and friends thread-safe. &a.jasone; 10 September 2000 &status.done;
      Implement msleep(), make tsleep() an msleep() wrapper. &a.jake; 11 September 2000 &status.done;
      Make fxp driver thread-safe. &a.cp; 17 September 2000 &status.done;
      Make mbuf's thread-safe. &a.bmilekic; 29 September 2000 &status.done;
      Lock manager re-work. &a.jasone; 3 October 2000 &status.done;
      Implement heavy-weight interrupt threads (alpha). &a.jhb;, &a.dfr; 5 October 2000 &status.done;
      Rewrite the low level interrupt code (alpha). &a.dfr;, &a.jhb; 5 October 2000 &status.done;
      Process accounting. &a.tegge;, &a.jhb; 5 October 2000 &status.done;
      Make ethernet drivers thread-safe. &a.wpaul; 15 October 2000 &status.done;
      Make the mutex headers mostly machine-independent. &a.jhb; 20 October 2000 &status.done;
      Rename SMP_DEBUG to MUTEX_DEBUG. &a.jhb; 20 October 2000 &status.done;
      Give each soft interrupt its own thread. &a.cp; 25 October 2000 &status.done;
      Make sf_bufs (sendfile(2)) thread-safe. &a.bmilekic; 5 November 2000 &status.done;
      Make the witness code work correctly. &a.jhb; 18 November 2000 &status.done;
      Split the ktr-specific code out of db_interface.c. &a.jhb; 15 December 2000 &status.done;
      Convert the sio driver to using a spin mutex. &a.jhb; 18 December 2000 &status.done;
      Implement condition variables. &a.jake;, &a.jasone; 15 January 2001 &status.done;
      Add a flag to mtx_init() (MTX_RECURSE) that denotes whether a mutex is allowed to recurse. &a.bmilekic; 19 January 2001 &status.done;
      Make the zone allocator thread-safe. &a.des; 21 January 2001 &status.done;
      Convert simplelocks to mutexes. &a.jasone; 24 January 2001 &status.done;
      Make kernel preemptive with respect to interrupts. &a.jake; 31 January 2001 &status.done;
      Cleanup of mutex API. &a.bmilekic; 8 February 2001 &status.done;
      Remove COM_LOCK. &a.markm; 11 February 2001 &status.done;
      Merge various scheduling classes into one run queue. Modify scheduler to support preemptable kernel. &a.jake; 11 February 2001 &status.done;
      Make priority propagation work correctly. &a.jake; 11 February 2001 &status.done;
      Make most of the interrupt thread code MI and shared between hardware and software interrupts. &a.jhb; 18 February 2001 &status.done;
      Add protection to struct jail and jail-related functionality. &a.rwatson; 20 February 2001 &status.done;
      Implement sx (shared/exclusive) locks. &a.jasone; 5 March 2001 &status.done;
      Generalize/improve witness to handle more complex locking primitives (mtx, sx). &a.jhb; 28 March 2001 &status.done;
      Convert the allproc and proctree locks from lockmgr locks to sx locks. &a.jhb; 28 March 2001 &status.done;
      Make mbuf system use condition variables instead of msleep()/wakeup(). &a.bmilekic; 2 April 2001 &status.done;
      Remove <sys/mutex.h> includes from other kernel headers such as <vm/vm_zone.h>, <sys/resourcevar.h>, <sys/ucred.h>, and <sys/mbuf.h>. &a.markm; 15 May 2001 &status.done;
      Cleanup the various mp_machdep.c's, unify various SMP API's such as IPI delivery, etc. &a.jhb; 15 May 2001 &status.done;
      Make most of the forward_* and forwarded_* functions MI. &a.jhb; 15 May 2001 &status.done;
      Complete the MD support for SMP on the Alpha platform. &a.gallatin;, &a.dfr;, &a.jhb; 15 May 2001 &status.done;
      Convert select() to use condition variables. &a.tanimura; 15 May 2001 &status.done;
      Add a "giant" lock around the VM subsystem. &a.alfred; 13 June 2001 &status.done;
      Introduce a modified slab allocator for the mbuf subsystem. &a.bmilekic; 21 June 2001 &status.done;
      Add a witness_assert() function to handle lock assertions. &a.jhb; 27 June 2001 &status.done;
      Extend sx locks to support try lock operations. &a.jhb; 27 June 2001 &status.done;
      Document KTR. &a.jhb; 28 June 2001 &status.done;
      Make fork_return, fork_exit, ast, and userret MI. &a.jhb; 29 June 2001 &status.done;
      Make sched_lock's savecrit a per-process property saved and restored in mi_switch and initialized in fork_exit. &a.jhb; 30 June 2001 &status.done;
      Make ast() loop. &a.jhb; 10 August 2001 &status.done;
      Add upgrade/downgrade sx lock operations. Alexander Kabaev, &a.jasone; 13 August 2001 &status.done;
      Implement semaphores. &a.jasone; 14 August 2001 &status.done;
      Add support for upgrade/downgrades in witness. &a.jhb; 23 August 2001 &status.done;
      Make most of cpu_wait() and cpu_exit() MI. &a.peter; 9 September 2001 &status.done;
      Split NFS into client and server. &a.peter; 18 Oct 2001 &status.done;
      Lock taskqueues. &a.arr;, &a.jhb; 25 October 2001 &status.done;
      Add a per-thread ucred reference. &a.jhb; 25 October 2001 &status.done;
      Make most of the per-CPU stuff MI. &a.jhb; 11 December 2001 &status.done;
      Make critical section saved state per-thread instead of per-lock so that interlocking spin locks work properly. &a.jhb; 17 December 2001 &status.done;
      Replace the APIC-specific imen_mtx with a MI-named icu_lock to protect interrupt controllers and associated data within the kernel for both i386 and alpha. &a.jhb; 20 December 2001 &status.done;
      Use the per-thread critical section nesting level in the mutex and interrupt thread code to automatically determine when to not preempt. This makes the MTX_NOSWITCH, SWI_SWITCH, and SWI_NOSWITCH flags obsolete as the kernel will be able to figure out the proper behavior on its own. &a.jhb; 5 January 2002 &status.done;
      Lock struct filedesc and struct file. &a.tanimura;, &a.alfred; 12 January 2002 &status.done;
      Lock struct pgrp, struct session, and struct sigio. &a.tanimura; 23 February 2002 &status.done;
      Lock pipe implementation, but not sigio/fown, VM interactions &a.alfred; 27 February 2002 &status.done;
      Move to explicit reference counting for soft vnode references. &a.phk; 8 March 2002 &status.done;
      Initialize mutex pools early enough that sx locks can be used for VM. &a.green; 14 March 2002 &status.done;
      Place a global lock (sellock) around selinfo structures to fix a variety of lock order reversals, and make select() MP-safe. &a.alfred;, &a.davidc; 14 March 2002 &status.done;
      Push down Giant on read, write, pread, pwrite system calls, acquiring Giant in the per-subsystem fileop layer for sockets, VFS, etc. &a.alfred; 15 March 2002 &status.done;
      Lock down kernel module structures. &a.arr; 18 March 2002 &status.done;
      Lock down kernel linker globals. &a.arr; 18 March 2002 &status.done;
      Rewrite kernel memory allocator to be a slab allocator that uses per-cpu caches. &a.jeff; 21 March 2002 &status.done;
      Replace incorrect use of MD critical section API to disable interrupts with a specific interrupt disable API. &a.imp;, &a.dfr;, &a.benno;, &a.jhb; 21 March 2002 &status.done;
      Lock down access to the shared p_args "process arguments" structure through appropriate protection of that structure and references to it. &a.mini; 31 March 2002 &status.done;
      Move from flags/tsleep lock to sx locks to protect sysctl tree from updates during sysctl operations. &a.mini; 1 April 2002 &status.done;
      Create/port userland tool to manage KTR event dumps. &a.jake; 1 April 2002 &status.done;
      Create MTX_SYSINIT and SX_SYSINIT macros that allow for initializing locks that are subsystem independent. &a.arr; 2 April 2002 &status.done;
      Lock down the global securelevel variable. &a.arr; 2 April 2002 &status.done;
      Make grow_stack() MI. Possibly even a macro or inline. &a.alc; 6 April 2002 &status.done;
      Lock use of p_fd, which otherwise can result in corrupted p_fd panics during heavy operation. Start with a global, and move to per-proc locking. &a.alfred;, &a.tanimura; 8 April 2002 &status.done;
      Lock struct pargs. &a.mini; 9 April 2002 &status.done;
      Make {o,}sigreturn() MPSAFE. &a.alc; 11 April 2002 &status.done;
      Rewrite kernel memory allocator so that Giant is not required for malloc() or free(). &a.jeff; 2 May 2002 &status.done;
      Replace complex shared/exclusive locking scheme in the VM system with a purely exclusive lockmgr locking scheme, simplifying locking and removing potential livelock/deadlock scenarios. &a.green;, &a.alc; 3 May 2002 &status.done;
      Push down Giant into readv/writev system calls in style of read/write/pread/pwrite once malloc no longer requires Giant in the handling of iovec structures for uio. &a.alc; 9 May 2002 &status.done;
      Push down Giant in mprotect(), minherit(), and madvise() so that it is no longer acquired and released directly. &a.alc; 18 May 2002 &status.done;
      Update suser() and p_can*() APIs to accept threads instead of processes. &a.jhb; 18 May 2002 &status.done;
      Broadly transition to td_ucred from p_ucred once KSE dependencies are in place. &a.jhb; 18 May 2002 &status.done;
      Add a witness_sleep() check to uma_zalloc() to catch code calling malloc() or uma_zalloc() while holding non-sleepable locks. &a.jhb; 20 May 2002 &status.done;
      Optimize UP support by changing spin locks to only perform critical section enter and exits. &a.jhb; 21 May 2002 &status.done;
      Make sleep mutexes spin if the current lock holder is executing on another CPU. &a.jhb; 21 May 2002 &status.done;
      Add support for the IA32 pause instruction to spin loops in locks. &a.jhb; 21 May 2002 &status.done;
      Make KTRACE write into tracefiles asynchronously. &a.jhb; 7 June 2002 &status.done;
      Remove Giant from jail(2). &a.arr; 25 June 2002 &status.done;
      Remove Giant from modnext(2), modfnext(2), modstat(2),and modfind(2). &a.arr; 25 June 2002 &status.done;
      Fix synchronization of TLB flushes and invlpg() on x86 SMP. &a.peter; 12 July 2002 &status.done;
      Make cpu_coredump MI. &a.peter; 7 September 2002 &status.done;
      Add a subsystem lock to the accounting code. &a.arr; 11 September 2002 &status.done;
      Fix SIGXPU and other #if 0'd things in mi_switch(). &a.jhb; 30 September 2002 &status.done;
      Lock down TrustedBSD MAC implementation. &a.rwatson; 11 November 2002 &status.done;
      Lock eventhandlers. &a.msmith;, &a.mini;, &a.jhb; 11 March 2003 &status.done;
      Fix PHOLD() so that it blocks to guarantee PS_INMEM. &a.jhb; 22 April 2003 &status.done;
      Fix various procfs_machdep.c to not use sched_lock. &a.jhb; 22 April 2003 &status.done;
      Lock all references to process credentials and remove Giant from process credential-related system calls. &a.jhb; 1 May 2003 &status.done;
      Merge the procsig and sigacts structures, move the new sigacts structure out of the U-area and add appropriate locking. &a.jhb; 13 May 2003 &status.done;
      Remove Giant from the kill() and killpg() system calls. &a.jhb; 13 May 2003 &status.done;
      Enhance the mutex pool implementation to allow creation and use of multiple, dynamically allocated pools with adjustable pool sizes and mutex options. &a.truckman; 16 July 2003 &status.done;
      Create mutex profiling tool for the kernel so as to measure contention and behavior of kernel mutexes. &a.eivind;, &a.des; 31 March 2002 &status.done;
      Lock pipe implementation: VM optimizations.   4 October 2003 &status.done;
      Reimplement i386 interrupt and SMP code so that SMP kernels work on UP boxes and SMP can be enabled in GENERIC. &a.jhb; 3 November 2003 &status.done;
      Implement generic turnstiles to use when blocking on non-sleepable locks. &a.jhb; 11 November 2003 &status.done;
      Split witness_lock() into witness_checkorder() and witness_lock(). witness_checkorder() would be called before acquiring a lock to increase the changes of detecting and warning about a reversal prior to deadlocking. witness_lock() would simply update witness' internal state to note that a lock has been acquired. &a.jhb; 24 January 2004 &status.done;
      Lock per-process resource limits. &a.mtm;, &a.jhb; 4 February 2004 &status.done;
      Implement a sleep queue abstraction to be used by both msleep() and condition variables. This new abstraction should use a hash table of sleep queues with a spin lock on each sleep queue chain similar to turnstile chain locks to make sched_lock finger grained. &a.jhb; 27 February 2004 &status.done;
      Lock struct proc. &a.jhb; 20 February 2001 &status.wip;
      Make the kernel fully preemptive. &a.jhb; 7 September 2001 &status.wip;
      Lock down the tty subsystem. Dick Garner, Jeremy Scofield, &a.tmm; 2 April 2002 &status.wip;
      Fix clock locking to be the same on all platforms. &a.jhb; 16 November 2001 &status.wip;
      Lock pipe implementation: sigio/fown-related evil &a.alfred; 27 February 2002 &status.wip;
      Make use of process locking and process reference counting to protect debugging interfaces (and procfs). &a.jhb; 27 February 2002 &status.wip;
      Make use of process locking to protect process monitoring sysctls, including those employed by 'ps' and related tools. &a.jhb; 27 February 2002 &status.wip;
      Lock down newbus infrastructure to support driver fine-graining. &a.imp; 28 February 2002 &status.wip;
      Remove the MP safe syscall flag from the syscall table and add explicit mtx_lock/unlock's of Giant to all syscalls. &a.dillon;, &a.mux; 28 February 2002 &status.wip;
      SMPng architecture document. &a.jhb;, &a.rwatson; 28 February 2002 &status.wip;
      Move to shared lock for VOP_GETATTR() to reduce blocking during frequent lightweight VFS operations. Modify namei() to provide a LOOKUP_SHARED flag to indicate when the lock required may be shared instead of exclusive. &a.jeff; 11 March 2002 &status.wip;
      Lock sysctl hierarchy and access methods. &a.mini; 9 April 2002 &status.wip;
      Document existing vm_map locking and verify it's correctness. &a.alc; 18 May 2002 &status.wip;
      Document existing vm_object locking and verify it's correctness. &a.alc; 4 May 2002 &status.wip;
      Lock down linker_file_t structures in the kernel linker. &a.arr; 19 June 2002 &status.wip;
      Lock down the SysV IPC code. &a.alfred; 13 August 2002 &status.wip;
      Review locking strategy and correctness of VFS operations and fix up various failure modes associated with enabling VFS locking assertions. &a.jeff; 10 December 2002 &status.wip;
      Document in-vnode locking strategy, clean it up, remove interlock, switch to sx locks. &a.jeff; 10 December 2002 &status.wip;
      Implement lazy interrupt thread switching (context stealing) on i386. &a.bmilekic;, &a.kan; 10 December 2002 &status.wip;
      Implement lazy interrupt thread switching (context stealing) on sparc64. &a.jake; 10 December 2002 &status.wip;
      Switch from using lockmgr in VM to using a mutex or exclusive sxlock. Push down Giant on all VM except for vm_object/VFS and vm_page/pmap components. &a.alc; 10 December 2002 &status.wip;
      Modify device driver API to permit drivers to more easily split "in interrupt context" and "in interrupt thread" code so as to acknowledge interrupts faster. This will permit lower latency in interrupt handling. &a.peter; 4 October 2003 &status.wip;
      Create mechanism in cdevsw structure to protect thread-unsafe drivers. &a.jhb; 15 May 2001 &status.stalled;
      Make printf() safe to call in almost any situation to avoid deadlocks. &a.cp; 15 May 2001 &status.stalled;
      Add locking to NFS.   15 May 2001 &status.new;
      Remove priority argument from tsleep(), msleep(), cv_*wait*().   12 January 2001 &status.new;
      Reimplement kqueue using condition variables. &a.jlemon; 15 March 2001 &status.new;
      Conditionalize atomic ops in the SMP code that are used for debugging statistics. &a.peter; 15 March 2001 &status.new;
      Add a new witness check for exiting processes to verify that an exiting process holds no locks. &a.jhb; 13 June 2001 &status.new;
      Specify priorities for condition variables, semaphores, and sx locks.   7 September 2001 &status.new;
      Axe schedcpu() in favor of event driven priority updates as much as possible.   7 September 2001 &status.new;
      Fix *hold (e.g. crhold) to return reference to object.   7 September 2001 &status.new;
      Add witness checking for lockmgr locks.   7 September 2001 &status.new;
      Add ICU spin locks on ia64.   4 January 2002 &status.new;
      Fast-path push-down of Giant for VOP_READ() and VOP_WRITE().   25 February 2002 &status.new;
      Lock contention measurement tool to measure heat of various locks, including Giant, and permit more directed performance and locking strategy optimization.   25 February 2002 &status.new;
      Push the grabbing of Giant into Linux i386 ABI system calls.   25 February 2002 &status.new;
      Push the grabbing of Giant into Linux AXP ABI system calls.   25 February 2002 &status.new;
      Push the grabbing of Giant into SVR4 i386 ABI system calls.   25 February 2002 &status.new;
      Push the grabbing of Giant into OSF/1 AXP ABI system calls.   25 February 2002 &status.new;
      Push the grabbing of Giant into IBCS i386 ABI system calls.   25 February 2002 &status.new;
      Expand mutex profiling tool to also profile sx locks. &a.eivind;, &a.des; 1 April 2002 &status.new;
      Implement atomic_fetchadd() for int's and long's with acq and rel versions.   23 May 2002 &status.new;
      Implement a simple reference count API using atomic operations and use this to replace locks that just protect a reference count.   23 May 2002 &status.new;
      Add a witness_sleep() check to copyin/out() and s/fuword(). &a.jhb; 7 June 2002 &status.new;

      This table lists the todo subtasks for multithreading the network stack.

      Task Responsible Last updated Status
      Protect network interface queues. &a.jlemon; 24 November 2000 &status.done;
      Lock up IP. &a.jennifer;, &a.hsu; 10 June 2002 &status.done;
      Lock up TCP. &a.jennifer;, &a.hsu; 10 June 2002 &status.done;
      Lock up UDP. &a.jennifer;, &a.hsu; 10 June 2002 &status.done;
      Lock ifaddr reference counts. &a.hsu; 18 December 2002 &status.done;
      Lock up ifnet list. &a.hsu; 21 December 2002 &status.done;
      Lock radix trees. &a.hsu; 23 December 2002 &status.done;
      Lock up ARP. &a.hsu; 16 January 2003 &status.done;
      Lock up raw IP. &a.sam; 4 October 2003 &status.done;
      Lock divert sockets. &a.sam; 4 October 2003 &status.done;
      Lock ipfw2. &a.sam; 4 October 2003 &status.done;
      Lock DUMMYNET. &a.sam; 4 October 2003 &status.done;
      Lock ethernet bridge. &a.sam; 4 October 2003 &status.done;
      Lock IP fragment queues. &a.rwatson; 4 October 2003 &status.done;
      Lock routing entries. &a.sam; 4 October 2003 &status.done;
      Lock FAST_IPSEC. &a.sam; 4 October 2003 &status.done;
      Permit parallel entry into isr processing. &a.rwatson;, &a.sam; 11 October 2003 &status.done;
      Lock if_disc "discard interface". &a.rwatson; 9 March 2004 &status.done;
      Lock if_faith "IPv6-to-IPv4 TCP relay interface. " &a.sam;, &a.rwatson; 9 March 2004 &status.done;
      Lock if_gif "generic tunnel interface". &a.rwatson; 9 March 2004 &status.done;
      Review ECN tunnel support (ip_ecn.c). &a.rwatson; 9 March 2004 &status.done;
      Lock up syncache. &a.hsu;, &a.sam; 10 November 2003 &status.wip;
      Lock &unix; domain protocols. &a.hsu;, &a.sam 4 October 2003 &status.wip;
      Lock IPv6. &a.sam;, &a.rwatson;, &a.ume; 11 October 2003 &status.wip;
      Lock socket layer. &a.tanimura;, &a.sam 10 October 2003 &status.wip;
      Permit IP forwarding path to run Giant-free. &a.sam; 10 October 2003 &status.wip;
      Lock interface cloning meta-data. &a.brooks; 9 March 2004 &status.wip;
      Lock in_gif "generic tunnel interface" per-softc variables. &a.rwatson; 9 March 2004 &status.wip;
      Lock struct ifnet.   19 January 2001 &status.new;
      Lock IPv4 and IPv6 interface address lists.   9 March 2004 &status.new;
      Reduce contention upon locking a socket buffer by replacing tsleep() and wakeup() with a condvar. &a.tanimura; 21 April 2002 &status.new;
      Lock consumers of BSD compress (bsd_comp.c) code to protect compression state.   9 March 2004 &status.new;
      IP encapsulation subroutines (ip_encap.c). &a.rwatson; 9 March 2004 &status.new;
      Lock if_ef "ethernet frame" driver.   9 March 2004 &status.new;
      Lock TCP timed code.   9 March 2004 &status.new;

      Known Issues

      Issue Last updated Status
      Idle processor time is not charged to the idle processes. 20 September 2000 &status.resolved;
      microuptime creeps backwards. 4 October 2000 &status.resolved;
      microuptime() went backwards 4 October 2000 &status.resolved;
      Process accounting is not accurate (the more CPUs, the closer to correct it is). 5 October 2000 &status.resolved;
      M_DEVBUF is probably the wrong memory pool for interrupt stuff and we should think about creating a new malloc pool for that stuff. 9 February 2001 &status.resolved;
      PC card eject panics due to a race condition in the interrupt thread code. 15 March 2001 &status.resolved;
      SMP x86 boxes are seeing NCPU * 100 clk interrupts and NCPU * 128 rtc interrupts. 15 May 2001 &status.resolved;
      Witness will infinitely recurse when it acquires Giant after sleeping with a sleepable lock. 27 June 2001 &status.resolved;
      Serial gdb does not work if boot_ddb and boot_gdb options are specified. 14 July 2002 &status.resolved;
      Serial gdb does not work at 115200 baud. 14 July 2002 &status.resolved;
      Serial gdb never regains control once 'cont' has been entered. 14 July 2002 &status.resolved;
      Profiling is broken. 20 February 2001 &status.unresolved;
      jail_sysvipc_allowed is checked in an unsafe manner in the SYSV IPC syscalls. 5 March 2002 &status.unresolved;

      News

      The remainder of this page is structured as a reverse-chronological log.

      30 October 2003
      • &a.grog; submitted a FreeBSD SMPng paper to the Asian Enterprise Open Source Conference in Singapore. The paper presents a historical view of SMPng development through 2001, but omits discussion of more recent progress on the SMPng project, such as substantial performance enhancements resulting from extensive lock pushdown in the storage subsystem, VM subsystem, and major IPC subsystems.

      13 January 2002 15 May 2001
      • &a.grog; has made his USENIX paper available, which he will present in Boston at the end of June.

      22 March 2001 5 March 2001 24 January 2001 12 January 2001 11 October 2000
      • &a.jhb; and &a.cp; came up with a preliminary list of rules that should be followed when working on kernel synchronization.

      8 September 2000
      • Here's a copy of an article + href="http://people.FreeBSD.org/~jasone/smp/smp_article">article sent to BSDtoday and linked at Daemon News.

      6 September 2000
      • The SMP code has been committed. All further work is being done in cvs rather than with patches.

      • An updated patch + href="http://people.FreeBSD.org/~jasone/smp/smpng_patch_9.7">patch is available for download. This patch is probably what will actually get committed.

      5 September 2000
      • An updated patch + href="http://people.FreeBSD.org/~jasone/smp/smpng_patch_9.1">patch is available for download. This patch makes rtc a fast interrupt, uses locked instructions for mutexes in MP kernels, and corrects mtx_*() linkage within modules.

      1 September 2000
      • The code is working for the most part now on i386 (UP and MP). Some additional coding is still necessary for the alpha, which is being done now.

      30 August 2000
      • Updated patches for i386 and alpha are available here.

        + "http://people.FreeBSD.org/~jasone/smp/smpng_patch8.6">here.

      12 August 2000
      • Updated patches for i386 are available here. + "http://www.FreeBSD.org/~jhb/patches/smpng.patch6">here. Process accounting still doesn't work correctly, but a number of other improvements have been made.

      3 August 2000
      • Patches with functional heavy-weight threads for the i386 platform are available here. + "http://people.FreeBSD.org/~grog/patches4.gz">here. There are a couple of minor issues with this patch set. Specifically, process accounting doesn't work correctly.

      6 July 2000
      • Sheldon Hearn has prepared a mutex(9) man page based on the BSD/OS one, which is available here.

        + "http://people.FreeBSD.org/~jake/mutex.9">here.

      5 July 2000
      • &a.jake; put an updated patch here.

        + "http://people.FreeBSD.org/~jake/smpng.diff">here.

      3 July 2000
      • &a.jake; has the BSD/OS lock code working now, and has incorporated the pertinent portions of &a.dillon;'s patches (idle processes, some of the schedlock changes, etc.). His patch set is available here.

        + "http://people.FreeBSD.org/~jake/smpng2.tar">here.

      26 June 2000
      • &a.cp; has provided the PostScript versions of his presentation slides for the first day and second day of the SMP meeting.

      25 June 2000 19 June 2000 &footer; diff --git a/en/support.sgml b/en/support.sgml index d98d279a09..050d5b3611 100644 --- a/en/support.sgml +++ b/en/support.sgml @@ -1,1103 +1,1103 @@ + %includes; ]> &header;

      Mailing lists

      Mailing lists are the primary support channel for FreeBSD users, with numerous mailing lists covering different topic areas. When in doubt about what list to post a question to, post to freebsd-questions@FreeBSD.ORG. To get an up to the minute view of the mailing lists available or to subscribe to a mailing list, use FreeBSD.org's Mailman web + href="http://lists.FreeBSD.org/mailman/listinfo">Mailman web interface. All mailman lists are available in a digest format and have threaded archives available. See the individual list's web page for details.

      Mailing list archives

      You can search or browse the mailing list archives at www.FreeBSD.org. It is also possible to - browse + browse the mailing lists via Mailman webinterface.

      Non-English Mailing lists

      Several non-English mailing lists are also available:

      If you create other FreeBSD mailing lists, let us know about them.

      Newsgroups

      There are a few FreeBSD specific newsgroups, along with numerous other newsgroups on topics of interest to FreeBSD users, though the mailing lists remain the most reliable way to get in touch with the FreeBSD developers. For miscellaneous FreeBSD discussion, see comp.unix.bsd.freebsd.misc. For important announcements, see comp.unix.bsd.freebsd.announce.

      The BSD Usenet News Searcher have archives of all BSD-related Usenet newsgroups from June 1992 onwards.

      IRC

      While #freebsd channels exist on various IRC networks, the FreeBSD project does not control them or endorse IRC as a support medium. You may be ignored, insulted, or kicked out if you ask questions on any channel in IRC, though you may have slightly better luck in channels named #freebsdhelp where such exist. If you want to try these or any other channels on IRC, it is nonetheless at your own risk and any complaints about conduct on those channels should not be directed to the FreeBSD project. See also the FAQ entry for more information.

      Web Resources

      Problem Report Database

      Current FreeBSD problem reports are tracked using the GNATS database.

      A FreeBSD problem report (PR) is not necessarily a bug with FreeBSD itself. In some cases it may be reporting a mistake in the documentation (which could be a simple typo). In other cases it may be a 'wishlist' item that the submitter would like to see incorporated in to FreeBSD. In many cases a PR contains a port which has been prepared for inclusion in the FreeBSD Ports and Packages collection.

      Problem reports start 'open', and are closed as the issue they report is resolved. In addition, each PR is assigned a unique tracking ID to ensure that it is not lost. Many FreeBSD changes include the tracking ID of the PR that prompted the change.

      Problem reports may also be submitted to the development team using the send-pr(1) command on a FreeBSD system, or by sending an email message to freebsd-bugs@FreeBSD.ORG. Please note that send-pr is preferred since messages sent to the mailing list are not tracked as official problem reports, and may get lost in the noise!

      Before submitting a problem report, you might find it useful to read the Writing FreeBSD Problem Reports article. This article describes when you should submit a problem report, what you are expected to include in one, and what the best way to submit your problem report is. Some useful background information is also contained in the Problem Report Handling Guidelines article.

      CVS Repository

      CVS (the Concurrent Version System) is the tool we use for keeping our sources under control. Every change (with accompanying log message explaining its purpose) from FreeBSD 2.0 to the present is stored here. It can be easily viewed from the web interface mentioned below. To obtain a complete copy of the FreeBSD CVS repository or any of the development branches inside it, you may choose any one of following options:

      • cvsup if you are looking for on-demand, low overhead access using a custom utility (written in Modula-3 no less).
      • anoncvs if you are looking for on-demand access that has higher overhead than cvsup (in terms of wall time and bytes transferred) but is easier to use for checking out small pieces of the tree and requires nothing more than the cvs tools already bundled with FreeBSD.
      • CTM if you are looking for very low overhead, batch-mode access (basically, patches through email).
      • The web interface if you are looking to simply browse the repository in search of a specific change or file revision.
      • Finally, if you have got bandwidth to burn or you prefer / are forced to use FTP, you can simply mirror the CVS repository from ftp.FreeBSD.org.

      Mirrors of the CVS Repository cgi script are available in - Germany, + Germany, Japan, Portugal, San Marino, Spain, USA/California and Ukraine.

      User Groups

      FreeBSD's widespread popularity has spawned a number of user groups around the world. If you know of a FreeBSD user group not listed here, let us know about it.

      Australia

      Europe

      • Aachen, Germany The Aachener BSD Stammtisch is meeting infrequently to discuss BSD and related matters over a glass of beer. Meetings are coordinated through our mailing list.

      • Austria The BSD User Group Austria (BUGAT) is a german-language oriented user group. Visit our server for more information.

      • Berlin, Germany BSD Berlin is a new formed BSD user group in Berlin, Germany. There are no regular meetings yet, please contact Danny Koenig for more information.

      • Denmark BSD-DK. The Danish BSD user group. Promotion and support of BSD derived Operating Systems in Denmark. Mailing lists, lectures and workshops. Send mail subscription requests to bsd-dk-request@bsd-dk.dk.

      • Duisburg, Germany The Cosmo-Project is a user group with a difference. Instead of just meeting, they actively develop projects such as robots. Most users use FreeBSD, but it is not a specifically FreeBSD-related group.

      • France The French FreeBSD UG. Please follow the link for details.

      • Frankfurt, Germany FrankfurtBSD is a user group for the Rhein-Main area. We are currently looking for new members. As soon as we have grown larger, we would like to meet monthly and maintain minor projects.

      • Hamburg, Germany The BSDHH (BSD User Group Hamburg) meets on the first Wednesday of the month at 7.00pm in the Chinese restaurant Lotosblüte, Löwenstraße 22 in Hamburg-Eppendorf. Most members are FreeBSD users, although users of all BSD flavors are welcome.

      • Ireland The BUGI (BSD User Group Ireland) is currently a rather grandiose term for a mailing list and super-minimal web page. All BSD users and enthusiasts are welcome.

      • Italia The GUFI (Gruppo Utenti FreeBSD Italia) is an "italian powered" FreeBSD User Group. It is intended to help Italian FreeBSD users to find support and articles on/about FreeBSD in the Italian language. Please follow this link to know more about us.

      • Köln (Cologne), Germany The CBUG (Cologne BSD Usergroup) caters to BSD users in the Köln area. At the moment, there are no regular meetings. Please check the website for news.

      • Latvia To learn more about the BSD user group Latvia, please visit our site and our forums.

      • Lublin, Poland The Lublin BSD Users Group. Please follow the link for details.

      • Lund, Sweden The Lund Linux User Group (LFUG) has nearly 50 members and covers FreeBSD and Solaris in addition to Linux. To join, contact Omar Dedovic

      • Manchester, UK The Manchester BSD Users Group meets reasonably often in the Lass O'Gowrie, on Charles Street, Manchester. Contact Sam Smith for more information.

      • Mannheim, Germany The UUGRN eV (Unix Users Group Rhein-Neckar eV) provides a regional forum for users of all Unix flavors, with a stress on Linux and BSD. Meetings are held on the second Thursday of each month at the "Hafenschenke" in Mannheim and the fourth Wednesday of each month at the "Vater Rhein" in Heidelberg.

      • München (Munich), Germany The BIM (Berkeley In Munich) group caters for users of BSD-based systems in Oberbayern.

      • The Netherlands. The Dutch FreeBSD User Group (NLFUG) has had its first meeting on oct 2, 1999. On this day 30 years before that, the second IMP was installed in Doug Englebart's lab at SRI. This, as you all know, was the start of something that grew to be the Internet (thanks to Edwin Kremer for bringing this under our attention).

      • Norway The Norwegian BSD User Group (NOBUG) is a usergroup for BSD users and enthusiasts in Norway. Meetings are currently held in Oslo and Bergen. Visit our website for more information. There is also a UNIX User Group (NUUG) with more regular meetings, sometimes even with a BSD subject.

      • Amadora, Portugal The Portuguese *BSD Users Group is a user group for Portuguese users of BSD operating systems. Contact Rui Pereira ptbsd@yahoo.com for more information.

      • Regensburg, Germany The Unix and Linux User Group is a general Unix users group for anyone in Regensburg (Bavaria, Germany). We meet on every first Monday of the month in the Pub ``Filmbühne'' in Regensburg. Visit the web site or send a message to m.suess@2use.org.

      • Romania The ROFUG (Romanian FreeBSD Users Group/Free Unix Group) is a user group for the Romanian users of FreeBSD and open-source in general, promoting and supporting FreeBSD and open source usage. To join the mailing lists, send an email to listar@rofug.ro with subscribe rofug and/or subscribe rofug-announce in the body of the message.
      • Sweden The BSD Users Sweden (BUS) maintains a mailing list. To join, send mail to majordomo@stacken.kth.se with subscribe bus in the message.

      • Switzerland The Swiss BSD User Group (SwissBUG) caters for users of BSD-based systems in Switzerland.
      • Ukraine The Ukrainian FreeBSD User Group (UAFUG) is Russian/Ukrainian languages oriented user group for the Ukrainian users of BSD-derivatives, promoting and supporting BSD flavours and open source usage. The UAFUG has had its first meeting on 2 June 2002 and meets every 2-3 weeks. We also provide an open forum for all BSD-related things in the Russian and Ukrainian languages (though we can read/write in English as well). To join the mailing list send a message to majordomo@FreeBSDDiary.org.ua with subscribe freebsd in the body of the message. Check the link above for more information.
      • United Kingdom The FreeBSD UKUG (FreeBSD UK User's Group) exists for the benefit of FreeBSD users in the United Kingdom. Please follow the link for details.

      • Yugoslavia The Yugoslavia BSD Users Group provides an open forum for all things BSD-related in the Serbian language. To join the mailing list, send an email to majordomo@bsd.org.yu with subscribe bsdyu in the body of the message.

      North America

      • Ames, Iowa The Ames Free-Unix Group aims to promote the use of Free Unix. We meet on the campus of Iowa State University once a month and hold a presentation with an open question and answer session afterwards. You can join our mailing list by sending a blank email to aafugit-subscribe@aafugit.org.

      • Berkeley, CA The Berkeley Unix User Group is a general Unix users group for anyone in the San Francisco Bay Area. We meet on a weekly basis in downtown Berkeley. Visit the web site or send a message to buug-request@weak.org with subscribe in the body.

      • Chicago IL The Chicago FreeBSD Users Group (ChiFUG).

      • The Connecticut Free Unix user's Group (CFUG) is devoted to free Unix, but has resources for almost all Unixen. Their area of operation is Connecticut and Western Massachusetts. More information can be found at http://www.cfug.org.

      • The Houston TX Houston FreeBSD Users Group was formed March 1999. Our goal is to promote and educate Houston area computer users on FreeBSD Unix. We meet on the third Saturday of the month. The group operates a mailing list at http://www.houfug.org/mailman/listinfo/hou-freebsd Visit our website at http://www.houfug.org for more information.

      • Indianapolis IN Free Unix for Indianapolis is a non-profit organization dedicated to encouraging the use of Free Unix variants in and around Indianapolis. Essentially, we are a bunch of geeks who share a common passion: Unix. Visit the web site or send a message to info@fufin.org for additional information.

      • Kansas KULUA (Kansas Unix & Linux Users Association) is a Free Unix user group based in Lawrence, Kansas, but with users throughout eastern Kansas and western Missouri. We have about 120 members and meet biweekly. Visit the web site or email kulua@kulua.org for more information.

      • Kansas Wichita Area FreeBSD Users Group (WAFUG) is a free users group provided to anyone in the Wichita area for support with FreeBSD and other Unix and Unix-like operating systems. We meet twice a month, usually in a restaraunt where you can smoke or drink if you like. Please send us Email for more information or to find out how to get free shell account, www or ftp space on our system.

      • Los Angeles CA The Yahoo Club group is a foundation for a Los Angeles based BSD user group.

      • Minneapolis/St. Paul, MN TCBUG: The Twin Cities BSD User Group meets once a month to discuss issues important to the BSD community. The website carries our major announcements, while you are encouraged to join the mailing list tcbug@tcbug.org to keep up with general group discussion. Look at the site, join the mailing list, come to a meeting. We look forward to learning from you and with you about BSD UNIX.

      • New Mexico The NMLUG in Albuquerque meets once a month and supports both BSD and Linux users. To join the mailing list, send a message to majordomo@swcp.com with subscribe nmlug in the body.

      • New Orleans LA The New Orleans *BSD User Group meets twice a month. Contact Konrad Rzeszutek for more details. A web page will be posted soon.

      • New York NY NYCBUG (New York City *BSD User Group) meet the first Wednesday of the month. Mailing lists are available at http://lists.nycbug.org/.

      • Northern Arizona Yavapai Free Unix Users Group is now forming for *BSD/Linux, etc., users in Northern Arizona. Please contact Russell Carter ( rcarter@consys.com) for details.

      • Orlando, FL BUGO (BSD Users Group of Orlando) is a group based in Orlando, FL that aims to bring a friendly forum to all Unix users in the central Florida area, and hopefully beyond. See the BUGO web page for further details.

      • Pennsylvania The Western Pennsylvania Linux Users Group (WPLUG) has a strong and growing community of BSD users that it supports. See our home page (http://www.wplug.org) for information on regular meetings and join the mailing lists.

      • Phoenix AZ The Phoenix BSD Users group is fully open for business. Anyone from the Phoenix area please feel free to join in http://bsd.phoenix.az.us.

      • Portland, OR The Portland (Oregon) FreeBSD Users group meets on the third Thursday of each month. Mail The Portland FreeBSD Users group.

      • Reno NV The RUUG (Reno Unix Users Group) meets monthly in Reno Nevada and discusses the use of FreeBSD and Linux. Contact Eric Blood or Todd Crenshaw for more information.

      • Research Triangle, NC The Triangle Area BSD Users Group is a users group for BSD users in the Research Triangle Park area of North Carolina, including the surrounding metropolitan areas of Raleigh, Durham, and Chapel Hill. People interested in this group may subscribe to the mailing list by sending a message to majordomo@tribug.org with subscribe tribug-members in the body.

      • Rhode Island The Rhode Island Free Unix Group supports every form of Unix that can be obtained freely. They can be contacted at: http://users.tmok.com/~rifug or by e-mail at: rifug@entropy.tmok.com

      • Seattle, WA The Seattle BSD Users Group (SeaBUG) meets occasionally. View our website for more details and for information on how to join our mailing list.
      • St. Louis, MO The St. Louis BSD User Group (STLBSD) has just formed on July 20, 2000 to promote BSD operating systems in the St. Louis area. We have strong ties to the 10 year old St. Louis Unix Users Group (SLUUG) and expect to be a positive force within our community. Our membership is open to anyone interested in learning more about BSD, several mailing lists are available through our website.

      • San Diego, California San Diego BSD Users Group for users of FreeBSD, OpenBSD and NetBSD. The meeting is first Thursday of every month at Boll Weevil off Clairemont Mesa Blvd., near the intersection with Ruffin Road. More information can be found here

      • North San Francisco Bay Area The BABUG (Bay Area BSD Users Group) has monthly meetings, alternating between San Francisco and Berkeley. Those interested in attending should visit the web site or send mail to the BABUG Web Master

      • Silicon Valley, CA The SVBUG (Silicon Valley BSD User Group), a forum for BSD and BSD embedded systems, meets on the First Thursday of the month. Meetings are held at the Carl's Jr. on First Street and Trimble Road in San Jose, California. For details on event or what is going on visit the website or send a message to webmaster@svbug.com.

      • Southern Illinois *BSD Group The Southern Illinois *BSD Group is a meeting place for BSD users to experiment with networks and provide help with installs. Emphasis is on FreeBSD and its KDE and Gnome desktops.

      • East Texas The Unix Users of Deep East Texas is dedicated to all things Unix. This group is open to users of all flavors of Unix. We meet on the last Saturday of the month at the Angelina County Court House. See the web page for details, or send email to admin@uudet.org.

      • The Tampa Florida users group is now being formed. Interested parties can join the mailing list by sending mail to bsd-tug-request@bangheadhere.org with subscribe in the body.

      • Greater Toronto Area, Ontario: The GTABUG usergroup welcomes all BSD users. Monthly meetings give attendees a chance to share ideas, discussion, and information. Installathons and other events help preach the good news of BSD to the community. Come drop by for a meeting!

      • Tucson AZ TFUG: Tucson Free Unix Group, Arizona.

      • Utah The Greater Utah BSD Users Group (GUBUG), formerly known as SLLUG-BUG, and affiliated with the Salt Lake Linux Users Group, is based in Salt Lake City, Utah. We welcome users of FreeBSD, OpenBSD, NetBSD, or even Unix or Linux.

      • Vancouver, BC The VanBUG (Vancouver BSD Users Group) is a group of volunteers who are passionate about FreeBSD, NetBSD, and OpenBSD. Their current goal is to raise awareness and also provide local assistance as much as we can.

      • Washington DC (DC Metropolitan Area) FreeBSD User Group. Please contact Richard Cramer, Sytex Access Ltd. at 703-425-2515, or preferred, email at rcramer@sytex.net to be put on a member distribution list.

      • Wichita, Kansas: A new FreeBSD users group has been created in Wichita, Ks. We are fairly new and working on our site, but we wanted to get it up as soon as we had it available. We do not currently meet. Visit our site http://wafug.dynip.com or E-mail the group organizer (ben177@yahoo.com) for more information!

      • Windsor, Ontario The Windsor Unix Users Group (Windsor, Ontario, Canada) covers BSD, Solaris, SCO, and others. This is not specifically a FreeBSD user group, but we do already have members running FreeBSD. The group operates a mailing list (wuug-list@unixpower.org). More information can be found at http://www.wuug.org/.

      • Wisconsin FreeBSD-Milwaukee Wisconsin meets occasionally and has a mailing list: freebsd-mke-l@ns.sol.net. send mail to freebsd-mke-l-request@ns.sol.net to subscribe.

      Rest of the world

      • China The China FreeBSD User Group (CNFUG) was formed May 2003. It publishes the CNFUG Journal (A FreeBSD Technical Journal in Simplified Chinese) monthly. In addition, we offer a BSD UNIX Support Forum, IRC and several mailing lists in Chinese.
      • Colombia Visit http://www.bsdcolombia.org for the FreeBSD User Group Colombia.

      • Ibaraki, Japan The Daibou East *BSD Users Group (DEBUG) is now forming for *BSD users in Tsukuba area.

      • Indonesia The Jogja FreeBSD Users' Group is based in Yogyakarta City, Indonesia. Send email to 22961476@students.ukdw.ac.id for more information.

      • Israel The Israeli *BSD Users Group has a mailing list for general discussion of *BSD operating systems for Israeli users, which includes topics such as setting up and working with Hebrew in BSD and setting up Internet connections with ISPs. The Israeli *BSD mailing list promotes the use of *BSD throughout the country, and acts as an information center for all *BSD users. Mailing list posts can be sent to bsd-il@libagent.org. Visit http://www.libagent.org/mailman/listinfo/bsd-il to subscribe.

      • Kansai, Japan The Kansai *BSD User's Group, K*BUG (in Japanese), was established on November 13, 1999. It is expected to promote communication of any of the BSD variants' users. Some of its activities are to hold friendly parties of the members, and to hold seminars covering wide variety of topics. Please mail here ( kbug-admin@kbug.gr.jp ).

      • Malaysia The MyBSD Malaysia Project is a Kuala Lumpur based usergroup for BSD users and open-source in general, promoting and supporting FreeBSD, OpenBSD, NetBSD and open source usage. We meet once a month, usually at Universiti Malaya or Restaurant Bahadur Shah. One of our projects is to develop a Unix file manager. Visit our website or contact info@MyBSD.org.my for more information.

      • Malaysia/2 - The BSD Malaysia web pages aim + The BSD Malaysia web pages aim to be a central site for users of *BSD UNIX variants (including FreeBSD, NetBSD, and OpenBSD). BSD support forums, technical BSD-related articles, and recent news items are published online. Both English and Malaysian can be used as the language on this site.

      • Mexico - FreeBSD Mexico is a spanish oriented + FreeBSD Mexico is a spanish oriented user group not only for people in Mexico but also in other spanish speaking countries. Please contact Alejandro Acosta for more information.

      • New Zealand The New Zealand FreeBSD User's group is located in Wellington. No meetings have been scheduled yet.

      • Niigata, Japan The Echigo BSD Users Group (EBUG) is the users group for BSD users around Echigo (aka Niigata). For more information on our events and mailing lists, please check the EBUG web site.

      • Brazil The FUG-BR (Brazilian FreeBSD User Group) is a Portuguese language oriented user group intended to help Brazilian FreeBSD users to find support and articles on and about FreeBSD in the Portuguese language. We keeps some projects such as the "FreeBSD LiveCD". Currently the group has 600 members and our maillist has an average traffic of 80 messages per day. To join FUG-BR mailing list, visit http://www2.fugspbr.org/mailman/listinfo/fugspbr.

      FreeBSD Development Projects

      In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions.

      FreeBSD Security Guide

      Security resources available to FreeBSD users: PGP Key for Security Officers, advisories, patches and mailing lists.

      Commercial Consulting Services

      Whether you are just starting out with FreeBSD, or need to complete a large project, a consultant or two might be your answer.

      General &unix; Information

      The X Window System

      • The XFree86™ Project provides users of a variety of Intel based UNIX systems, including FreeBSD, with an excellent X Window system.
      • The NVIDIA®/FreeBSD FAQ provides a collection of frequently asked questions and tips regarding the NVIDIA® FreeBSD graphics drivers.
      • The WINE project is working to provide the ability to run Microsoft Windows® software on Intel based UNIX systems such as FreeBSD, NetBSD and Linux.

      Hardware

      Related Operating System Projects

      • NetBSD is another free 4.4BSD-Lite based operating system which runs on several different architectures.
      • OpenBSD is another 4.4BSD derivative with focus on security.
      • Linux is another free UNIX like system.
      • Darwin is the free system that forms the core of Apple's Mac OS X system.
      • Lites is a 4.4 BSD Lite based server and emulation library that provides free UNIX functionality to a Mach based system.
      • The GNU HURD project is another effort to develop a free UNIX like operating system.
      • DragonFly BSD is based on FreeBSD 4.X but has a different set of development goals than FreeBSD 5.X.
      &footer; diff --git a/en/usergroups.sgml b/en/usergroups.sgml index d98d279a09..050d5b3611 100644 --- a/en/usergroups.sgml +++ b/en/usergroups.sgml @@ -1,1103 +1,1103 @@ + %includes; ]> &header;

      Mailing lists

      Mailing lists are the primary support channel for FreeBSD users, with numerous mailing lists covering different topic areas. When in doubt about what list to post a question to, post to freebsd-questions@FreeBSD.ORG. To get an up to the minute view of the mailing lists available or to subscribe to a mailing list, use FreeBSD.org's Mailman web + href="http://lists.FreeBSD.org/mailman/listinfo">Mailman web interface. All mailman lists are available in a digest format and have threaded archives available. See the individual list's web page for details.

      Mailing list archives

      You can search or browse the mailing list archives at www.FreeBSD.org. It is also possible to - browse + browse the mailing lists via Mailman webinterface.

      Non-English Mailing lists

      Several non-English mailing lists are also available:

      If you create other FreeBSD mailing lists, let us know about them.

      Newsgroups

      There are a few FreeBSD specific newsgroups, along with numerous other newsgroups on topics of interest to FreeBSD users, though the mailing lists remain the most reliable way to get in touch with the FreeBSD developers. For miscellaneous FreeBSD discussion, see comp.unix.bsd.freebsd.misc. For important announcements, see comp.unix.bsd.freebsd.announce.

      The BSD Usenet News Searcher have archives of all BSD-related Usenet newsgroups from June 1992 onwards.

      IRC

      While #freebsd channels exist on various IRC networks, the FreeBSD project does not control them or endorse IRC as a support medium. You may be ignored, insulted, or kicked out if you ask questions on any channel in IRC, though you may have slightly better luck in channels named #freebsdhelp where such exist. If you want to try these or any other channels on IRC, it is nonetheless at your own risk and any complaints about conduct on those channels should not be directed to the FreeBSD project. See also the FAQ entry for more information.

      Web Resources

      Problem Report Database

      Current FreeBSD problem reports are tracked using the GNATS database.

      A FreeBSD problem report (PR) is not necessarily a bug with FreeBSD itself. In some cases it may be reporting a mistake in the documentation (which could be a simple typo). In other cases it may be a 'wishlist' item that the submitter would like to see incorporated in to FreeBSD. In many cases a PR contains a port which has been prepared for inclusion in the FreeBSD Ports and Packages collection.

      Problem reports start 'open', and are closed as the issue they report is resolved. In addition, each PR is assigned a unique tracking ID to ensure that it is not lost. Many FreeBSD changes include the tracking ID of the PR that prompted the change.

      Problem reports may also be submitted to the development team using the send-pr(1) command on a FreeBSD system, or by sending an email message to freebsd-bugs@FreeBSD.ORG. Please note that send-pr is preferred since messages sent to the mailing list are not tracked as official problem reports, and may get lost in the noise!

      Before submitting a problem report, you might find it useful to read the Writing FreeBSD Problem Reports article. This article describes when you should submit a problem report, what you are expected to include in one, and what the best way to submit your problem report is. Some useful background information is also contained in the Problem Report Handling Guidelines article.

      CVS Repository

      CVS (the Concurrent Version System) is the tool we use for keeping our sources under control. Every change (with accompanying log message explaining its purpose) from FreeBSD 2.0 to the present is stored here. It can be easily viewed from the web interface mentioned below. To obtain a complete copy of the FreeBSD CVS repository or any of the development branches inside it, you may choose any one of following options:

      • cvsup if you are looking for on-demand, low overhead access using a custom utility (written in Modula-3 no less).
      • anoncvs if you are looking for on-demand access that has higher overhead than cvsup (in terms of wall time and bytes transferred) but is easier to use for checking out small pieces of the tree and requires nothing more than the cvs tools already bundled with FreeBSD.
      • CTM if you are looking for very low overhead, batch-mode access (basically, patches through email).
      • The web interface if you are looking to simply browse the repository in search of a specific change or file revision.
      • Finally, if you have got bandwidth to burn or you prefer / are forced to use FTP, you can simply mirror the CVS repository from ftp.FreeBSD.org.

      Mirrors of the CVS Repository cgi script are available in - Germany, + Germany, Japan, Portugal, San Marino, Spain, USA/California and Ukraine.

      User Groups

      FreeBSD's widespread popularity has spawned a number of user groups around the world. If you know of a FreeBSD user group not listed here, let us know about it.

      Australia

      Europe

      • Aachen, Germany The Aachener BSD Stammtisch is meeting infrequently to discuss BSD and related matters over a glass of beer. Meetings are coordinated through our mailing list.

      • Austria The BSD User Group Austria (BUGAT) is a german-language oriented user group. Visit our server for more information.

      • Berlin, Germany BSD Berlin is a new formed BSD user group in Berlin, Germany. There are no regular meetings yet, please contact Danny Koenig for more information.

      • Denmark BSD-DK. The Danish BSD user group. Promotion and support of BSD derived Operating Systems in Denmark. Mailing lists, lectures and workshops. Send mail subscription requests to bsd-dk-request@bsd-dk.dk.

      • Duisburg, Germany The Cosmo-Project is a user group with a difference. Instead of just meeting, they actively develop projects such as robots. Most users use FreeBSD, but it is not a specifically FreeBSD-related group.

      • France The French FreeBSD UG. Please follow the link for details.

      • Frankfurt, Germany FrankfurtBSD is a user group for the Rhein-Main area. We are currently looking for new members. As soon as we have grown larger, we would like to meet monthly and maintain minor projects.

      • Hamburg, Germany The BSDHH (BSD User Group Hamburg) meets on the first Wednesday of the month at 7.00pm in the Chinese restaurant Lotosblüte, Löwenstraße 22 in Hamburg-Eppendorf. Most members are FreeBSD users, although users of all BSD flavors are welcome.

      • Ireland The BUGI (BSD User Group Ireland) is currently a rather grandiose term for a mailing list and super-minimal web page. All BSD users and enthusiasts are welcome.

      • Italia The GUFI (Gruppo Utenti FreeBSD Italia) is an "italian powered" FreeBSD User Group. It is intended to help Italian FreeBSD users to find support and articles on/about FreeBSD in the Italian language. Please follow this link to know more about us.

      • Köln (Cologne), Germany The CBUG (Cologne BSD Usergroup) caters to BSD users in the Köln area. At the moment, there are no regular meetings. Please check the website for news.

      • Latvia To learn more about the BSD user group Latvia, please visit our site and our forums.

      • Lublin, Poland The Lublin BSD Users Group. Please follow the link for details.

      • Lund, Sweden The Lund Linux User Group (LFUG) has nearly 50 members and covers FreeBSD and Solaris in addition to Linux. To join, contact Omar Dedovic

      • Manchester, UK The Manchester BSD Users Group meets reasonably often in the Lass O'Gowrie, on Charles Street, Manchester. Contact Sam Smith for more information.

      • Mannheim, Germany The UUGRN eV (Unix Users Group Rhein-Neckar eV) provides a regional forum for users of all Unix flavors, with a stress on Linux and BSD. Meetings are held on the second Thursday of each month at the "Hafenschenke" in Mannheim and the fourth Wednesday of each month at the "Vater Rhein" in Heidelberg.

      • München (Munich), Germany The BIM (Berkeley In Munich) group caters for users of BSD-based systems in Oberbayern.

      • The Netherlands. The Dutch FreeBSD User Group (NLFUG) has had its first meeting on oct 2, 1999. On this day 30 years before that, the second IMP was installed in Doug Englebart's lab at SRI. This, as you all know, was the start of something that grew to be the Internet (thanks to Edwin Kremer for bringing this under our attention).

      • Norway The Norwegian BSD User Group (NOBUG) is a usergroup for BSD users and enthusiasts in Norway. Meetings are currently held in Oslo and Bergen. Visit our website for more information. There is also a UNIX User Group (NUUG) with more regular meetings, sometimes even with a BSD subject.

      • Amadora, Portugal The Portuguese *BSD Users Group is a user group for Portuguese users of BSD operating systems. Contact Rui Pereira ptbsd@yahoo.com for more information.

      • Regensburg, Germany The Unix and Linux User Group is a general Unix users group for anyone in Regensburg (Bavaria, Germany). We meet on every first Monday of the month in the Pub ``Filmbühne'' in Regensburg. Visit the web site or send a message to m.suess@2use.org.

      • Romania The ROFUG (Romanian FreeBSD Users Group/Free Unix Group) is a user group for the Romanian users of FreeBSD and open-source in general, promoting and supporting FreeBSD and open source usage. To join the mailing lists, send an email to listar@rofug.ro with subscribe rofug and/or subscribe rofug-announce in the body of the message.
      • Sweden The BSD Users Sweden (BUS) maintains a mailing list. To join, send mail to majordomo@stacken.kth.se with subscribe bus in the message.

      • Switzerland The Swiss BSD User Group (SwissBUG) caters for users of BSD-based systems in Switzerland.
      • Ukraine The Ukrainian FreeBSD User Group (UAFUG) is Russian/Ukrainian languages oriented user group for the Ukrainian users of BSD-derivatives, promoting and supporting BSD flavours and open source usage. The UAFUG has had its first meeting on 2 June 2002 and meets every 2-3 weeks. We also provide an open forum for all BSD-related things in the Russian and Ukrainian languages (though we can read/write in English as well). To join the mailing list send a message to majordomo@FreeBSDDiary.org.ua with subscribe freebsd in the body of the message. Check the link above for more information.
      • United Kingdom The FreeBSD UKUG (FreeBSD UK User's Group) exists for the benefit of FreeBSD users in the United Kingdom. Please follow the link for details.

      • Yugoslavia The Yugoslavia BSD Users Group provides an open forum for all things BSD-related in the Serbian language. To join the mailing list, send an email to majordomo@bsd.org.yu with subscribe bsdyu in the body of the message.

      North America

      • Ames, Iowa The Ames Free-Unix Group aims to promote the use of Free Unix. We meet on the campus of Iowa State University once a month and hold a presentation with an open question and answer session afterwards. You can join our mailing list by sending a blank email to aafugit-subscribe@aafugit.org.

      • Berkeley, CA The Berkeley Unix User Group is a general Unix users group for anyone in the San Francisco Bay Area. We meet on a weekly basis in downtown Berkeley. Visit the web site or send a message to buug-request@weak.org with subscribe in the body.

      • Chicago IL The Chicago FreeBSD Users Group (ChiFUG).

      • The Connecticut Free Unix user's Group (CFUG) is devoted to free Unix, but has resources for almost all Unixen. Their area of operation is Connecticut and Western Massachusetts. More information can be found at http://www.cfug.org.

      • The Houston TX Houston FreeBSD Users Group was formed March 1999. Our goal is to promote and educate Houston area computer users on FreeBSD Unix. We meet on the third Saturday of the month. The group operates a mailing list at http://www.houfug.org/mailman/listinfo/hou-freebsd Visit our website at http://www.houfug.org for more information.

      • Indianapolis IN Free Unix for Indianapolis is a non-profit organization dedicated to encouraging the use of Free Unix variants in and around Indianapolis. Essentially, we are a bunch of geeks who share a common passion: Unix. Visit the web site or send a message to info@fufin.org for additional information.

      • Kansas KULUA (Kansas Unix & Linux Users Association) is a Free Unix user group based in Lawrence, Kansas, but with users throughout eastern Kansas and western Missouri. We have about 120 members and meet biweekly. Visit the web site or email kulua@kulua.org for more information.

      • Kansas Wichita Area FreeBSD Users Group (WAFUG) is a free users group provided to anyone in the Wichita area for support with FreeBSD and other Unix and Unix-like operating systems. We meet twice a month, usually in a restaraunt where you can smoke or drink if you like. Please send us Email for more information or to find out how to get free shell account, www or ftp space on our system.

      • Los Angeles CA The Yahoo Club group is a foundation for a Los Angeles based BSD user group.

      • Minneapolis/St. Paul, MN TCBUG: The Twin Cities BSD User Group meets once a month to discuss issues important to the BSD community. The website carries our major announcements, while you are encouraged to join the mailing list tcbug@tcbug.org to keep up with general group discussion. Look at the site, join the mailing list, come to a meeting. We look forward to learning from you and with you about BSD UNIX.

      • New Mexico The NMLUG in Albuquerque meets once a month and supports both BSD and Linux users. To join the mailing list, send a message to majordomo@swcp.com with subscribe nmlug in the body.

      • New Orleans LA The New Orleans *BSD User Group meets twice a month. Contact Konrad Rzeszutek for more details. A web page will be posted soon.

      • New York NY NYCBUG (New York City *BSD User Group) meet the first Wednesday of the month. Mailing lists are available at http://lists.nycbug.org/.

      • Northern Arizona Yavapai Free Unix Users Group is now forming for *BSD/Linux, etc., users in Northern Arizona. Please contact Russell Carter ( rcarter@consys.com) for details.

      • Orlando, FL BUGO (BSD Users Group of Orlando) is a group based in Orlando, FL that aims to bring a friendly forum to all Unix users in the central Florida area, and hopefully beyond. See the BUGO web page for further details.

      • Pennsylvania The Western Pennsylvania Linux Users Group (WPLUG) has a strong and growing community of BSD users that it supports. See our home page (http://www.wplug.org) for information on regular meetings and join the mailing lists.

      • Phoenix AZ The Phoenix BSD Users group is fully open for business. Anyone from the Phoenix area please feel free to join in http://bsd.phoenix.az.us.

      • Portland, OR The Portland (Oregon) FreeBSD Users group meets on the third Thursday of each month. Mail The Portland FreeBSD Users group.

      • Reno NV The RUUG (Reno Unix Users Group) meets monthly in Reno Nevada and discusses the use of FreeBSD and Linux. Contact Eric Blood or Todd Crenshaw for more information.

      • Research Triangle, NC The Triangle Area BSD Users Group is a users group for BSD users in the Research Triangle Park area of North Carolina, including the surrounding metropolitan areas of Raleigh, Durham, and Chapel Hill. People interested in this group may subscribe to the mailing list by sending a message to majordomo@tribug.org with subscribe tribug-members in the body.

      • Rhode Island The Rhode Island Free Unix Group supports every form of Unix that can be obtained freely. They can be contacted at: http://users.tmok.com/~rifug or by e-mail at: rifug@entropy.tmok.com

      • Seattle, WA The Seattle BSD Users Group (SeaBUG) meets occasionally. View our website for more details and for information on how to join our mailing list.
      • St. Louis, MO The St. Louis BSD User Group (STLBSD) has just formed on July 20, 2000 to promote BSD operating systems in the St. Louis area. We have strong ties to the 10 year old St. Louis Unix Users Group (SLUUG) and expect to be a positive force within our community. Our membership is open to anyone interested in learning more about BSD, several mailing lists are available through our website.

      • San Diego, California San Diego BSD Users Group for users of FreeBSD, OpenBSD and NetBSD. The meeting is first Thursday of every month at Boll Weevil off Clairemont Mesa Blvd., near the intersection with Ruffin Road. More information can be found here

      • North San Francisco Bay Area The BABUG (Bay Area BSD Users Group) has monthly meetings, alternating between San Francisco and Berkeley. Those interested in attending should visit the web site or send mail to the BABUG Web Master

      • Silicon Valley, CA The SVBUG (Silicon Valley BSD User Group), a forum for BSD and BSD embedded systems, meets on the First Thursday of the month. Meetings are held at the Carl's Jr. on First Street and Trimble Road in San Jose, California. For details on event or what is going on visit the website or send a message to webmaster@svbug.com.

      • Southern Illinois *BSD Group The Southern Illinois *BSD Group is a meeting place for BSD users to experiment with networks and provide help with installs. Emphasis is on FreeBSD and its KDE and Gnome desktops.

      • East Texas The Unix Users of Deep East Texas is dedicated to all things Unix. This group is open to users of all flavors of Unix. We meet on the last Saturday of the month at the Angelina County Court House. See the web page for details, or send email to admin@uudet.org.

      • The Tampa Florida users group is now being formed. Interested parties can join the mailing list by sending mail to bsd-tug-request@bangheadhere.org with subscribe in the body.

      • Greater Toronto Area, Ontario: The GTABUG usergroup welcomes all BSD users. Monthly meetings give attendees a chance to share ideas, discussion, and information. Installathons and other events help preach the good news of BSD to the community. Come drop by for a meeting!

      • Tucson AZ TFUG: Tucson Free Unix Group, Arizona.

      • Utah The Greater Utah BSD Users Group (GUBUG), formerly known as SLLUG-BUG, and affiliated with the Salt Lake Linux Users Group, is based in Salt Lake City, Utah. We welcome users of FreeBSD, OpenBSD, NetBSD, or even Unix or Linux.

      • Vancouver, BC The VanBUG (Vancouver BSD Users Group) is a group of volunteers who are passionate about FreeBSD, NetBSD, and OpenBSD. Their current goal is to raise awareness and also provide local assistance as much as we can.

      • Washington DC (DC Metropolitan Area) FreeBSD User Group. Please contact Richard Cramer, Sytex Access Ltd. at 703-425-2515, or preferred, email at rcramer@sytex.net to be put on a member distribution list.

      • Wichita, Kansas: A new FreeBSD users group has been created in Wichita, Ks. We are fairly new and working on our site, but we wanted to get it up as soon as we had it available. We do not currently meet. Visit our site http://wafug.dynip.com or E-mail the group organizer (ben177@yahoo.com) for more information!

      • Windsor, Ontario The Windsor Unix Users Group (Windsor, Ontario, Canada) covers BSD, Solaris, SCO, and others. This is not specifically a FreeBSD user group, but we do already have members running FreeBSD. The group operates a mailing list (wuug-list@unixpower.org). More information can be found at http://www.wuug.org/.

      • Wisconsin FreeBSD-Milwaukee Wisconsin meets occasionally and has a mailing list: freebsd-mke-l@ns.sol.net. send mail to freebsd-mke-l-request@ns.sol.net to subscribe.

      Rest of the world

      • China The China FreeBSD User Group (CNFUG) was formed May 2003. It publishes the CNFUG Journal (A FreeBSD Technical Journal in Simplified Chinese) monthly. In addition, we offer a BSD UNIX Support Forum, IRC and several mailing lists in Chinese.
      • Colombia Visit http://www.bsdcolombia.org for the FreeBSD User Group Colombia.

      • Ibaraki, Japan The Daibou East *BSD Users Group (DEBUG) is now forming for *BSD users in Tsukuba area.

      • Indonesia The Jogja FreeBSD Users' Group is based in Yogyakarta City, Indonesia. Send email to 22961476@students.ukdw.ac.id for more information.

      • Israel The Israeli *BSD Users Group has a mailing list for general discussion of *BSD operating systems for Israeli users, which includes topics such as setting up and working with Hebrew in BSD and setting up Internet connections with ISPs. The Israeli *BSD mailing list promotes the use of *BSD throughout the country, and acts as an information center for all *BSD users. Mailing list posts can be sent to bsd-il@libagent.org. Visit http://www.libagent.org/mailman/listinfo/bsd-il to subscribe.

      • Kansai, Japan The Kansai *BSD User's Group, K*BUG (in Japanese), was established on November 13, 1999. It is expected to promote communication of any of the BSD variants' users. Some of its activities are to hold friendly parties of the members, and to hold seminars covering wide variety of topics. Please mail here ( kbug-admin@kbug.gr.jp ).

      • Malaysia The MyBSD Malaysia Project is a Kuala Lumpur based usergroup for BSD users and open-source in general, promoting and supporting FreeBSD, OpenBSD, NetBSD and open source usage. We meet once a month, usually at Universiti Malaya or Restaurant Bahadur Shah. One of our projects is to develop a Unix file manager. Visit our website or contact info@MyBSD.org.my for more information.

      • Malaysia/2 - The BSD Malaysia web pages aim + The BSD Malaysia web pages aim to be a central site for users of *BSD UNIX variants (including FreeBSD, NetBSD, and OpenBSD). BSD support forums, technical BSD-related articles, and recent news items are published online. Both English and Malaysian can be used as the language on this site.

      • Mexico - FreeBSD Mexico is a spanish oriented + FreeBSD Mexico is a spanish oriented user group not only for people in Mexico but also in other spanish speaking countries. Please contact Alejandro Acosta for more information.

      • New Zealand The New Zealand FreeBSD User's group is located in Wellington. No meetings have been scheduled yet.

      • Niigata, Japan The Echigo BSD Users Group (EBUG) is the users group for BSD users around Echigo (aka Niigata). For more information on our events and mailing lists, please check the EBUG web site.

      • Brazil The FUG-BR (Brazilian FreeBSD User Group) is a Portuguese language oriented user group intended to help Brazilian FreeBSD users to find support and articles on and about FreeBSD in the Portuguese language. We keeps some projects such as the "FreeBSD LiveCD". Currently the group has 600 members and our maillist has an average traffic of 80 messages per day. To join FUG-BR mailing list, visit http://www2.fugspbr.org/mailman/listinfo/fugspbr.

      FreeBSD Development Projects

      In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions.

      FreeBSD Security Guide

      Security resources available to FreeBSD users: PGP Key for Security Officers, advisories, patches and mailing lists.

      Commercial Consulting Services

      Whether you are just starting out with FreeBSD, or need to complete a large project, a consultant or two might be your answer.

      General &unix; Information

      The X Window System

      • The XFree86™ Project provides users of a variety of Intel based UNIX systems, including FreeBSD, with an excellent X Window system.
      • The NVIDIA®/FreeBSD FAQ provides a collection of frequently asked questions and tips regarding the NVIDIA® FreeBSD graphics drivers.
      • The WINE project is working to provide the ability to run Microsoft Windows® software on Intel based UNIX systems such as FreeBSD, NetBSD and Linux.

      Hardware

      Related Operating System Projects

      • NetBSD is another free 4.4BSD-Lite based operating system which runs on several different architectures.
      • OpenBSD is another 4.4BSD derivative with focus on security.
      • Linux is another free UNIX like system.
      • Darwin is the free system that forms the core of Apple's Mac OS X system.
      • Lites is a 4.4 BSD Lite based server and emulation library that provides free UNIX functionality to a Mach based system.
      • The GNU HURD project is another effort to develop a free UNIX like operating system.
      • DragonFly BSD is based on FreeBSD 4.X but has a different set of development goals than FreeBSD 5.X.
      &footer;