1 / 23

NordU / Usenix February 14, 2003

NordU / Usenix February 14, 2003. FreeBSD 5.0 Murray Stokely FreeBSD Mall, Inc. murray@FreeBSD .org. Outline (1/2). FreeBSD Development Model Branches and Releases. Project Organization. Release Process Overview FreeBSD 5.0 Initial Plans Progress New Technologies in 5.0.

selma
Download Presentation

NordU / Usenix February 14, 2003

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NordU / Usenix February 14, 2003 FreeBSD 5.0 Murray Stokely FreeBSD Mall, Inc. murray@FreeBSD.org

  2. Outline (1/2) • FreeBSD Development Model • Branches and Releases. • Project Organization. • Release Process Overview • FreeBSD 5.0 • Initial Plans • Progress • New Technologies in 5.0

  3. Outline (2/2) • FreeBSD 5.0 • New Architectures in 5.0 • Organizational Changes • Conclusion / Q & A

  4. FreeBSD Development Model • FreeBSD development continues along two parallel branches; FreeBSD-CURRENT and FreeBSD-STABLE. • FreeBSD-CURRENT is the main trunk of our CVS repository. All new development should happen here. • FreeBSD-STABLE is the branch from which major releases are made. Changes enter this branch at a different pace, and with the general assumption that they have been well tested by our user community running -CURRENT.

  5. FreeBSD Development Model

  6. FreeBSD Development Model • Thousands of developers around the world contribute code to FreeBSD. • Only the "committers" have write access to the CVS repository • 324 total committers in FreeBSD (includes source, documentation, and ports committers). • 212 active committers to src/ in the last 12 months. • 160 active committers to src/sys in the last 12 months. (active is loosely defined as making a single commit.)

  7. FreeBSD Development Model • Users and external developers should submit bug fixes, enhancements, or problem reports with GNATS. • Online submission forms, send-pr command installed by default on FreeBSD systems, etc..

  8. Release Process Overview • "Stable" releases are made from the -STABLE development branch at approximately 4 month intervals. • Major new versions (3.0, 4.0, 5.0, etc..) are released at much longer intervals when the main goals for that release have been realized. • 3.0 - October 1998 • 4.0 - March 2000 • 5.0 - January 2003 • Minor point releases (e.g. 4.8) are still released even after the next major new version (5.0) is available.

  9. Committees / Groups • A number of committees with special responsibilities have been created within the FreeBSD Project to ensure that the project continues to move in a positive direction. • The FreeBSD Core Team is a group of 9 developers elected by the committers for 2 year terms. • The FreeBSD Release Engineering Team is a small group of developers responsible for managing the release process. • The Architecture Review Board is a group of senior developers appointed by core to arbitrate technical debates, ensure the sanctity of our development branch, and evaluate the merits of large new code or design proposals.

  10. Release Engineering Team • The RE team has the following responsibilities : • Maintaining release schedules. • Coordinating with the package-building and security-officer teams to provide a useful assortment of third party packages and to ensure that all known vulnerabilities are patched. • Reviewing MFC requests from developers during the code freeze and granting approval for changes to the release branches. • Interacting with the web-team, and public relations people to set the right expectations for upcoming releases.

  11. 5.0 - Initial Plans • Initial planning for FreeBSD 5.0 coincided with the merger of Walnut Creek CDROM and BSDI. • An ambitious re-design of the SMP implementation for BSD/OS was underway, and a developer meeting was setup to share this design with FreeBSD developers. • Original goals were to implement fine-grained locking, interrupt threads, etc.. • For a more detailed view of the early stage of 5.0 Development, see the notes from the original BSDI SMP meeting and the various presentations and papers that John Baldwin and other developers have written since that time: • http://www.freebsd.org/projects/smp

  12. The Road to 5.0 • FreeBSD 5.0-SNAPshots. • Formalization of Release Engineering Procedures. • Developer Meetings at Usenix in Boston, Usenix in Monterey, and BSDCon in San Francisco. • FreeBSD Developer Preview #1 - CDs published for widespread testing. • Weekly RE telecons. • FreeBSD Developer Preview #2 - CDs published for widespread testing. • FreeBSD 5.0 Todo List. Weekly mailing to developers@ of must have features, highly desirable features, etc..

  13. FreeBSD 5.0 "SMPng" Project • One of the main goals of SMPng ("SMP Next Generation") is to allow more processes to run in kernel, without the need for spin locks that can dramatically reduce the efficiency of multiple processors. Interrupt handlers now have contexts associated with them that allow them to be blocked, which reduces the need to lock out interrupts. • A robust framework is in place, but more locking and optimization needs to be done. See mutex(9), lockmgr(9), and the Developer's Handbook. • Many subsystems need to be taken out under the "Giant" kernel lock and locked properly with mutexes. This work is underway and 5.1 and 5.2 should yield significantly better multiprocessor performance over 5.0.

  14. New Technologies in 5.0 (1/5) • The FreeBSD kernel now supports Kernel-Scheduled Entities (KSEs), which provides suport for multiple threads of execution per process similar to Scheduler Activations. At this point, the kernel changes have been implemented, but the new pthreads library has is not complete. • Support for FireWire and Bluetooth adapters and peripheral devices has been added. • A device filesystem, devfs(5), is now enabled by default to provide greater flexibility for system administrators. Devfs(8) and rulesets provide a mechanism for policy configuration.

  15. New Technologies in 5.0 (2/5) • Mandatory Access Controls (Subject of yesterday's talk) • Provides a framework for kernel extensions to augment the native security policy. • Supports userland secure environment enhancements. • Allows security policies to be loaded in as kernel modules. • UFS2 • The inode has been expanded to 256 bytes to make space for 64-bit block-pointers. • A file-creation time field has been added. • A native extended attributes implementation has been added.

  16. New Technologies in 5.0 (3/5) • GEOM - modular disk I/O transformation framework. (See Poul-Henning Kamp's talk at 15:20 today) • A new devd(8) userland daemon has been added to monitor the device tree and run arbitrary commands when devices are added or removed to the system. This program is a generalization of some of the functionality of pccardd(8). • PAM authentication has been added throughout the system. • The system compiler has been updated to GCC 3.2.1 (released version). • Perl has been removed from the base system (but is still usually installed by default as a package)

  17. New Technologies in 5.0 (4/5) • In kernel cryptographic framework imported from OpenBSD. Adds support for hardware crypto-cards. • Lomac(4), a low-watermark mandatory access control security facility, has been added as an optional kernel module. • The random(4) device has been rewritten to use the Yarrow algorithm. It harvests entropy from a variety of interrupt sources, including the console devices, Ethernet and point-to-point network interfaces, and mass-storage devices. • SoftUpdates, filesystem snapshots, and background fsck have been added to FFS.

  18. New Technologies in 5.0 (5/5) • A number of utilities and libraries have been enhanced to improve their conformance with the Single UNIX Specification (SUSv3) and IEEE Std 1003.1-2001 ("POSIX.1"). • A third floppy image is now created for users installing via floppy or over the network. This third image, drivers.flp, contains loadable kernel modules for devices that didn't fit on either of the first two floppies.

  19. New Architectures in 5.0 More 64-bit platforms • FreeBSD 5.0 supports i386, alpha, pc98, sparc64, and IA64. • FreeBSD/sparc64 is rapidly becoming (or is already) the 64-bit FreeBSD platform of choice. • The FreeBSD Core Team has recently clarified the stance on upcoming platfoms by introducing the notion of supported tiers. • Tier 1 platforms are fully supported, such as i386, PC98, and Alpha. • Tier 2 platforms are usable ports with the relevant code checked into CVS, such as Sparc64 and IA64. These platforms may not use the standard FreeBSD installation program, sysinstall. • Tier 3 platforms are not fully supported.

  20. New Architectures & New Solutions • The release engineering team created a sub-group for each architecture so that the build aspects of the RE responsibilities may be delegated to architecture-specific re teams (re-sparc64, re-ia64, etc.). • Automated tinderbox scripts have been setup to alert developers when changes break the build on a specific architecture. • The cross-building infrastructure has dramatically improved, so that developers may cross-build "world" or entire releases to ensure that a given change will not break the build on alternate architectures.

  21. Caveat • FreeBSD 5.0 introduces a number of significant new features to FreeBSD. It should not be considered for most production servers or conservative sites. • The Release Engineering Team has created a "5.0-Early Adopter's Guide" to assist administrators in determining when 5.X will be ready for their site.

  22. Upcoming Releases • FreeBSD 4.8 • Some of the more stable new technologies in 5.0 have been backported for 4.8. This release is a much better candidate for most servers than 5.0 currently is. 5.0 is for early adopters. FreeBSD 4.8 is scheduled for a March 15 release (code freeze starts in 24 hours). • FreeBSD 5.1 • FreeBSD 5.1 will see performance and stability improvements over 5.0. Current release estimate is for Spring 2003. http://www.FreeBSD.org/releng has more scheduling details. • FreeBSD 4.9? 4.10? - More 4.X releases may still be on the horizon.

  23. Additional Information • FreeBSD 5.0 Early Adopters Guide http://www.FreeBSD.org/releases/5.0R/early-adopter • FreeBSD 5.0 Release Notes http://www.FreeBSD.org/releases/5.0R/relnotes.html • FreeBSD 4.8 Release Schedule http://www.FreeBSD.org/releases/4.8R/schedule.html • Release Engineering Website http://www.FreeBSD.org/releng

More Related