freebsd-dev/etc
Ed Schouten bc093719ca Integrate the new MPSAFE TTY layer to the FreeBSD operating system.
The last half year I've been working on a replacement TTY layer for the
FreeBSD kernel. The new TTY layer was designed to improve the following:

- Improved driver model:

  The old TTY layer has a driver model that is not abstract enough to
  make it friendly to use. A good example is the output path, where the
  device drivers directly access the output buffers. This means that an
  in-kernel PPP implementation must always convert network buffers into
  TTY buffers.

  If a PPP implementation would be built on top of the new TTY layer
  (still needs a hooks layer, though), it would allow the PPP
  implementation to directly hand the data to the TTY driver.

- Improved hotplugging:

  With the old TTY layer, it isn't entirely safe to destroy TTY's from
  the system. This implementation has a two-step destructing design,
  where the driver first abandons the TTY. After all threads have left
  the TTY, the TTY layer calls a routine in the driver, which can be
  used to free resources (unit numbers, etc).

  The pts(4) driver also implements this feature, which means
  posix_openpt() will now return PTY's that are created on the fly.

- Improved performance:

  One of the major improvements is the per-TTY mutex, which is expected
  to improve scalability when compared to the old Giant locking.
  Another change is the unbuffered copying to userspace, which is both
  used on TTY device nodes and PTY masters.

Upgrading should be quite straightforward. Unlike previous versions,
existing kernel configuration files do not need to be changed, except
when they reference device drivers that are listed in UPDATING.

Obtained from:		//depot/projects/mpsafetty/...
Approved by:		philip (ex-mentor)
Discussed:		on the lists, at BSDCan, at the DevSummit
Sponsored by:		Snow B.V., the Netherlands
dcons(4) fixed by:	kan
2008-08-20 08:31:58 +00:00
..
bluetooth
defaults Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
etc.amd64 Make uart(4) the default serial port driver on i386 and amd64. 2008-07-13 07:20:14 +00:00
etc.arm Bump up the number of ttys supported by pty(4) to 512 by making use of 2007-11-19 20:49:42 +00:00
etc.i386 Make uart(4) the default serial port driver on i386 and amd64. 2008-07-13 07:20:14 +00:00
etc.ia64 Bump up the number of ttys supported by pty(4) to 512 by making use of 2007-11-19 20:49:42 +00:00
etc.mips Mips ttys file. Copied from i386 version with removal of the vga 2008-05-05 05:35:47 +00:00
etc.powerpc Bump up the number of ttys supported by pty(4) to 512 by making use of 2007-11-19 20:49:42 +00:00
etc.sparc64 Bump up the number of ttys supported by pty(4) to 512 by making use of 2007-11-19 20:49:42 +00:00
gss Fix conflicts after heimdal-1.1 import and add build infrastructure. Import 2008-05-07 13:53:12 +00:00
mail Use better examples (and comment them out for safety). 2008-02-17 05:22:08 +00:00
mtree Remove an empty directory that is already in ObsoleteFiles.inc from 2008-07-28 17:42:37 +00:00
namedb Strongly discourage the use of the query-source option, and explain why. 2008-07-12 10:00:36 +00:00
pam.d Add PAM support to cron(8). Now cron(8) will skip commands scheduled 2007-06-17 17:25:53 +00:00
periodic Improve periodic/security/550.ipfwlimit a bit: 2008-08-10 18:11:24 +00:00
ppp With uart(4) default, change /dev/cuad# to /dev/cuau# so that 2008-07-19 20:00:18 +00:00
rc.d Rename the RCng 'kernel' script to 'kernel_symlink'. 2008-08-20 03:02:06 +00:00
root Remove more vestiges of /usr/X11R6, but leave mtree for portmgr. 2007-05-29 06:37:58 +00:00
sendmail Fix quoting for the dnsbl example -- m4 misparses quoted strings with 2008-02-17 05:38:29 +00:00
amd.map Switch default proto to TCP. 2006-11-06 01:42:11 +00:00
apmd.conf
auth.conf
crontab
csh.cshrc
csh.login
csh.logout
ddb.conf Use the new command file feature of ddb(8) to support setting ddb(4) 2008-03-05 18:32:58 +00:00
devd.conf Add the missing support for Asus Eee PC in acpi_asus(4). 2008-06-27 12:04:36 +00:00
devfs.conf
dhclient.conf
disktab
fbtab
freebsd-update.conf Add /usr/share/man/whatis, /var/db/locate.database, and /var/log to the 2008-08-08 10:36:16 +00:00
ftpusers
gettytab
group Create group ftp by default. This is gid 14 as this is the historical 2007-06-11 18:36:39 +00:00
hosts
hosts.allow
hosts.equiv
hosts.lpd
inetd.conf Remove reference to the old ftp-proxy implementation, 2007-07-05 09:46:53 +00:00
libalias.conf
login.access
login.conf Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
mac.conf
Makefile Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and 2008-05-26 10:40:09 +00:00
man.alias
master.passwd
minfree
motd
netconfig
netstart Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and 2008-05-26 10:40:09 +00:00
network.subr Implement a "quiet" mode for rc.d/netif, which only outputs 2008-06-23 20:50:11 +00:00
networks
newsyslog.conf Remove the C flag from slip.log. The current slip userbase does not 2008-03-27 03:30:14 +00:00
nls.alias
nscd.conf
nsmb.conf
nsswitch.conf
opieaccess
pccard_ether Implement a "quiet" mode for rc.d/netif, which only outputs 2008-06-23 20:50:11 +00:00
pf.os
phones
portsnap.conf Add support for specifying which INDEX files to build via portsnap.conf. 2008-05-17 16:26:27 +00:00
printcap
profile
protocols Update /etc/protocols with IANA list updated 2007-02-12 2007-05-20 03:55:22 +00:00
rc Remove pointless informational message. 2008-06-23 04:18:22 +00:00
rc.bsdextended
rc.firewall Allow the network addresses and interface names for the "client" and 2008-08-15 19:20:59 +00:00
rc.firewall6 o Correct an info about "Firewalls and Internet Security" book: name, 2008-01-12 19:02:09 +00:00
rc.initdiskless Add support for /conf/T/M/remount_optional. 2008-05-15 11:00:23 +00:00
rc.resume Change the module example to kldload since this is the resume side. 2008-07-21 22:55:40 +00:00
rc.sendmail
rc.shutdown
rc.subr Move the diagnostic output when the rc.subr(8) glue automatically starts a 2008-06-23 05:09:09 +00:00
rc.suspend With uart(4) default, change sio# to uart# so that 2008-07-19 20:12:33 +00:00
regdomain.xml 802.11 regulatory definitions used by ifconfig 2008-04-20 20:37:02 +00:00
remote Remove sioX as an alias for uartX. It is believed to be 2008-07-21 22:38:00 +00:00
rpc
services Use the udp protocol in favor of the nonexistant upd protocol in the 2007-09-21 01:26:00 +00:00
shells
snmpd.config o Fix a comment: refer to the write community name by the OID not by 2006-12-31 11:19:48 +00:00
sysctl.conf
syslog.conf
termcap.small