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 ?