Subject: Re: usenix slides
To: www-changes <www-changes@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: www-changes
Date: 06/19/2002 12:56:20
On Jun 19, 6:53pm, keihan@sergei.cc (Mattias Karlsson) wrote:
-- Subject: Re: usenix slides
| Yeah, that'd be nice :)
There you go.
christos
%deffont "standard" xfont "helvetica-medium-r", tfont "arial.ttf", tmfont "wadalab-gothic.ttf"
%deffont "thick" xfont "helvetica-bold-r", tfont "arialbd.ttf", tmfont "wadalab-gothic.ttf"
%deffont "typewriter" xfont "courier-medium-r", tfont "courbd.ttf", tmfont "wadalab-gothic.ttf"
%%
%default 1 leftfill, size 2, fore "white", back "black", font "thick"
%default 2 size 7, vgap 10, prefix " "
%default 3 size 2, bar "gray70", vgap 10
%default 4 size 5, fore "white", vgap 30, prefix " ", font "standard"
%%
%tab 1 size 6, vgap 60, prefix " ", icon box "green" 50
%tab 2 size 5, vgap 60, prefix " ", icon arc "cyan" 50
%tab 3 size 4, vgap 60, prefix " ", icon delta3 "white" 40
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%font "standard", fore "white", back "black"
%center
%size 7, font "thick"
The NetBSD project
%%newimage -xscrzoom 30 "NetBSD-smaller.jpg"
%size 4, font "standard"
Christos Zoulas, NetBSD Core Luke Mewburn, NetBSD Core
%font "typewriter"
<christos@netbsd.org> <lukem@netbsd.org>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Outline
What is NetBSD?
Structure of NetBSD Project
Status
Recent improvements
Future Directions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
What is NetBSD?
One of 3 major open-source BSD projects
NetBSD, FreeBSD, OpenBSD
Goals
Architecturally clean
Highly portable
Highly interoperable
State-of-the-art security
BSD license
Working on NetBSD 1.6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: Architecturally clean
Well designed
Complete
Stable
Fast
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: Highly portable (1/2)
Flexible endianness and word size:
Endian: big, little
Word size: ILP32, LP64
All combinations are supported
Some CPU families can be either endian (e.g, mipseb, mipsel, sh3el, sh3eb)
64 bit CPUs can run the 32 bit binaries of the same CPU family
Most applications on a given CPU family run on other architectures in same family
Subsystems are designed with a high level of abstraction
UVM pmap interface
wscons console driver
MI floating point emulation
Driver layer abstractions
Architecture specific
Bus specific (machine independent)
Device specific (machine independent)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: Highly portable (2/2)
16 CPU families, 44 architectures (ports):
%size 4, prefix " "
%font "typewriter"
%fore "grey66"
alpha alpha
%fore "white"
arm26 arm26
arm32 arm32 cats dnard hpcarm netwinder
%fore "grey66"
i386 i386
x86_64 x86_64
%fore "white"
m68000 sun2
m68k amiga atari cesfic hp300 luna68k mac68k
mvme68k news68k next68k sun3 x68k
%fore "grey66"
mipseb mipsco newsmips sgimips
mipsel algor arc cobalt hpcmips pmax
%fore "white"
pc532 pc532
%fore "grey66"
powerpc amigappc bebox macppc ofppc prep sandpoint
walnut
%fore "white"
sh3eb evbsh3 mmeye
sh3el dreamcast evbsh3 hpcsh
%fore "grey66"
sparc sparc sparc64
sparc64 sparc64
%fore "white"
vax vax
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: Highly interoperable
Binary compatible
FreeBSD, HP/UX, IBCS2, Linux, OSF/1, SVR4, SunOS, Ultrix, Win32
Source compatibility
POSIX.1, POSIX.2, XPG/SUS (Single Unix Specification), BSD
File systems
FFS, ISO CD9660, EXT2FS, MS-DOS (FAT), AmigaDOS, NTFS
Networking
TCP/IP (including IPv6), AppleTalk, SMB (CIFS)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: State-of-the-art security
Services default to secure setting
Insecure services disabled by default
IPsec
Eliminate set_id kmem grovellers by providing kernel APIs
Audit kernel and userland code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Goal: BSD license
Majority of system is a BSD-style license, with other licenses "sandboxed" to allow removal
Allows third parties to release NetBSD derived products without releasing the source
Try to standardize on "The NetBSD Foundation" BSD-style copyright to minimize third-party vendor integration hassles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Structure of NetBSD Project
Approximately 200 Developers
Management via Board and Core
Port maintainers
Security officers
Release engineers (releng)
Internal System Administrators
Website maintainers
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Status
Project re-organization
Project growth
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Project re-organization
In the process of clarifying the structure, role and assignment of Board and Core
New by-laws have been accepted by core; to be released to and ratified by the NetBSD developer community
US non-profit organization tax status - 501(c)3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Project growth
Year Release M_ARCH MACHINE #lines kernel Developers
---- ------- ------- ------- ------ ------ ----------
1997 1.2 7 13 4407k 1478k 73
1998 1.3 8 15 6154k 2171k 105
1999 1.3.3 6 11 6167k 2222k 134
2000 1.4.1 9 16 7505k 3113k 183
2001 1.5 10 20 9923k 4751k 223
now current 16 44 15362k 5052k 252
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Recent improvements
Platforms
Performance
Devices
Miscellaneous kernel
Networking
Security
Userland
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Platforms
New platforms
algor Algorithmics MIPS evaluation boards
dreamcast Sega Dreamcast game console
hpcarm StrongARM based PDAs
hpcsh SH3 based PDAs
sandpoint Motorola MPC8240 reference platform
sun2 Sun 2 workstation
walnut IBM PPC405GP reference platform
x86-64 AMD's 64 bit x86 PC architecture
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Platforms: improved machine support (1/n)
alpha
AlphaLinux emulation
LKMs work
amiga
Use MI wdc (IDE) controller
PCMCIA
arm26
Randomize statclock periods
arm32
New bootloader
Split out cats, dnard, and netwinder into separate ports
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Platforms: improved machine support (2/n)
hp300, news68k, sun3
Migration to ELF
i386
New systems: MCA bus machines, including improved MCA bus detection via BIOS
16 partitions per disk (up from 8)
Booting off a RAIDframe RAID1 mirror
DIAGNOSTIC off by default
macppc
Honor RTC_OFFSET
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Platforms: improved machine support (3/n)
mvme68k
New systems: MVME-162-LX, MVME-172, MVME-177 boards
Migration to ELF
powerpc
LinuxPPC emulation
sparc
New systems: sun4/400
sparc64
Solaris/SPARC emulation (32 and 64 bit)
LKMs work
vax
New systems: MicroVAX 3100m9x, 4000/10x, 4000/[4567]00
ELF shared libraries
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Performance enhancements
Multi-platform Symmetric Multi-Processing
Working:
Alpha, VAX
i386 (On branch)
Spins up CPUs, needs more help:
PowerPC, SPARC, UltraSPARC
Still needs stability and scalability improvements
High performance user threads, via scheduler activation support in the kernel (On branch)
Virtual Memory (VM) improvements
Unified Buffer Cache
Round-robin page coloring
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Devices (1/n)
Audio
Avance Logic ALS100 (sb)
Cirrus Logic CS4281 (clct)
ESS Technology Maestro-2/2e AC97 PCI (esm)
Intel ICH integrated AC'97 (auich)
NeoMagic 256 AC'97 (neo)
Yamaha DS-1 PCI (yds)
OKI MSM6258 ADPCM voice synthesizer on x68k (vs)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Devices (2/n)
Disk
IBM ESDI DASD storage devices on MCA (ed)
Initio INIC-940/950 based PCI SCSI (iha)
Qlogic FAS408 ncr53c9x (esp)
SCSI & IDE RAID cards
3Ware Escalade IDE RAID (twe)
EISA & PCI Compaq Array Controllers (cac)
I2O cards; Adaptec 2100/3100, ... (iop)
Mylex DAC960 RAID (mlx)
Symbios/NCR 53C710 SCSI (osiop)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Devices (3/n)
Networking
3Com 3c529 MCA (ep)
3Com EtherLink/MC (3c523) MCA (elmc)
Aironet 4500/4800, Cisco 340/350 wireless (an)
DE-422 EISA (le)
DMC-11/DMR-11 DDCMP interface (dmc)
Interlan NI1010 (il)
NE2000 on MCA (ne)
NatSem DP83820 Gigabit Ethernet (gsip)
WD WD80x3 on MCA (wd)
SKNET Personal/MC2+ MCA (le)
arm26 i-cubed EtherLan (eh)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Devices (4/n)
USB
MCT USB-RS232 (umct)
Prolific PL-2303 serial (uplcom)
SCSI-over-USB scanners (usscanner)
USB midi (umidi)
USB scanners (uscanner)
usbhidaction(1): perform actions when USB HID items change
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Miscellaneous kernel
Customizable magic console key sequence to enter debugger/ROM monitor
Emulation layers can load as an LKM
OpenFirmware interface (/dev/openfirm)
Watchdog timer framework
kgdb support in wscons via CTRL-ALT-ESC
poll(2) support added to tty line-disciplines
LFS can now load as an LKM
Rework SCSI subsystem ("scsipi" branch)
Cleaner interfaces between layers
Better error recovery
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Networking (1/n)
ISDN (from the ISDN4BSD project)
802.1Q virtual LANs (VLANs)
Hardware-assisted IPv4/TCP/UDP checksums
racoon(8): KAME IKE daemon for IPsec key negotiation (pkgsrc)
Enhanced /etc/ifconfig.xxN syntax
ipfilter now only works on IPsec wire-format packets
Alternate queuing (ALTQ)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Networking (2/n)
802.11 wireless networking
Improved wireless encryption (WEP)
wi defaults to BSS (base station) instead of ad-hoc
Optional RFC1948 - cryptographic hash for TCP ISS generation
Add PFIL_HOOKS filtering points to network interfaces
Eliminate splimp()
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Security
Configurable password encryption scheme via passwd.conf(5)
rnd(4) random number device is now required to run ssh et al
Fixed kernel problems related to:
trap delivery
architecture specific issues (e.g, i386 LDT)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Userland (1/n)
Native port of the Sun JVM (in progress)
Third-party in-tree packages updated
amd, BIND, bzip2, cvs, dhcpd, file, groff, named, ntpd, nvi, openssh, openssl, postfix, ppp, routed, sendmail, xfree86
New system administration tool - sushi
Maximum number of ptys is now tunable on demand
Improved support for parallel make(1) jobs in recursive source builds
Curses Development Kit (libcdk)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Userland (2/n)
Internationalization
Multibyte LC_CTYPE locale support (from the Citrus XPG4DL project)
X11
Update to XFree86 4.1.1
Support XDM-AUTHENTICATION-1
PCI video cards on NetBSD/Alpha
HPC X11 support
libc improvements:
getprogname(3)
getopt_long(3)
fmtcheck(3)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Program enhancements (1/n)
arp(8): -d -a deletes all entries
disklabel(8): improved interactive mode
dump(8): -e (eject tape automatically on tape change), improve support for file systems not in fstab
fdisk(8): display extended partitions
fsck(8): don't fsck partitions mounted read-write
ftp(1): add FEAT and OPTS, mreget
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Program enhancements (2/n)
ftpd(8): 'advertize', 'maxfilesize', 'sanenames', -e emailaddr, -P dataport, -q/-Q (do/don't use pidfiles), -u/-U (do/don't log to utmp), -w/-W (do/don't log to wtmp), -X (syslog wu-ftpd style xferlogs)
ifconfig(8): -A (list up interfaces only) now the default
ktrace(1): -s (synchronized writes)
mbrlabel(8): don't modify disklabel unless requested
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Program enhancements (3/n)
ndbootd(8): Sun Network Disk (ND) Protocol boot server
newsyslog(8): logs can be rotated at specific times, create log file on request
nfsstat(1): show percentages in output
rc(8): when "stop"ping a service poll until service dies, global watchdog timer for rc.shutdown(8)
savecore(8): use the formatted panic string if available
sort(1): switch from GNU to BSD
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Packages
bzip2 support
consolidate package build information to save time and space
better xpkgwedge support
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Release Schedule
1.5.1 (available "now")
Bug & security fixes, new drivers
1.6 (end of year)
SMP on alpha, i386, sparc, sparc64, vax
Scheduler activations (kernel assisted user threads)
{get,set}context(2) support
kernel queues (kqueue(2), kevent(2))
faster pipe(2)
Improved installation tools
Pkg-ized base system
gcc 2.95 integration
ELF migration on remaining platforms
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Future directions (1/n)
More crypto/security work
Hardware crypto cards
More removal of set_id
Crypto file system
Improved wscons and X11 support on all platforms
More CPU architectures
IA-64, m88k, PA-RISC, POWER, ...
Improve support for embedded environments, including MMU-less systems
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Future directions (2/n)
Performance enhancements
Improve responsiveness by reducing interrupt latencies
Kernel and library profiling
Multi-lingual improvements
console driver
getopt(3) wide char to close PR 13
Kernel linker for enhanced LKM support
"Doors" for faster localhost RPC
Dynamic support in nsswitch
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Contact details...
ftp://ftp.netbsd.org/pub/NetBSD/
http://www.netbsd.org/
AnonCVS from anoncvs.netbsd.org
http://cvsweb.netbsd.org
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Comments ?