1 of 13

BSD's Role in the Early

Internet

Mike Karels

October 25, 2023

2 of 13

What is BSD?

  • BSD: Berkeley Software Distribution
    • 2.*BSD: PDP-11 UNIX add-ons (csh, vi), then full systems
    • 3BSD, 4.*BSD: VAX UNIX systems with many additions including virtual memory, then networking
      • Developed and supported by Computer Systems Research Group (CSRG) at the University of California, Berkeley
      • "Berkeley UNIX"

3 of 13

4.2BSD

  • 4.2BSD built on 4.1BSD and added:
    • First widely-available TCP/IP implementation
      • Based on implementation done under contract at BBN
      • Integrated and enhanced by Berkeley
    • Socket interface to networking
    • User-level networking support, e.g. gethostbyname()
    • Networking utilities: rlogin/rsh/rcp/telnet/ftp
    • Ran on VAX; required UNIX source code license

September 1983

4 of 13

Mike and BSD

  • Worked on 2.9BSD for PDP-11 as graduate student in Molecular Biology
  • Started as Principal Programmer at CSRG in July, 1983; 4.2BSD released in September
  • Replaced Bill Joy, Sam Leffler
  • Suddenly was maintainer/developer of most common TCP/IP implementation

5 of 13

BSD and Internet development

  • 4.2BSD test release (4.1c) had limited distribution
  • 4.2BSD was widely used in Universities, research organizations
    • ARPANET, later also MILNET
    • Local Ethernet networks
  • 4.2BSD was basis for commercial systems (Sun, DEC, many others)
  • TCP/IP implementation was basic
    • Bug fixes
    • New/additional algorithms needed

6 of 13

New Algorithms

  • My first algorithm addition: Nagel algorithm
  • Goal: collect periodic input (e.g. keystrokes) during round-trip time
  • Helpful with slow links (ARPANET was 56 Kbps, John Nagel had slower)
  • Implementation: in existing 3-line test, remove middle line

Q

Nagel Algorithm

7 of 13

Congestion collapse of ARPANET

  • ARPANET used 56 Kbps links, packet switching, small computers as IMPs (nodes)
  • With increasing use, links and buffers became saturated
    • Round trip times highly variable, up to 45 seconds or more
    • Typical connections retransmitted frequently, overran the net
  • Improvements in round-trip timing, basic retransmission code
  • Slow start opened the window gradually, avoiding "blast and lose"
  • Congestion avoidance helped to avoid opening window too much
  • Published in SIGCOMM 88
  • Later: Fast Retransmit, which recovers from lost packets more quickly

Q

New algorithms by Van Jacobson

8 of 13

Other BSD influences on Internet

  • Domain Name System (DNS)
    • BSD's BIND (Berkeley Internet Name Domain suite)
      • Second major DNS implementation, most widely used for some time
      • Integrated into base system (named server and C library resolver)
  • Internet standards: IETF Host Requirements RFCs
  • POSIX API standards: socket interface

9 of 13

BSD and Open Source

  • Previous features were in 4.3BSD (1986), 4.3-Tahoe (1988)
    • Required UNIX source license
  • CSRG received requests for partial releases of networking code
  • Net/1 (1989): vertical slice of networking code through system
    • Clients, servers, library code, TCP/IP, network drivers
    • BSD license, new copyright notice
  • Net/2 (1991): nearly complete system; a few kernel files missing
  • [small lawsuit intervenes]
  • 4.4BSD-Lite(1994), 4.4BSD-Lite2 (1995): final releases from Berkeley

10 of 13

BSD to the present

  • Many BSD derivatives continue:
    • FreeBSD
    • NetBSD
    • OpenBSD
    • Dragonfly BSD
    • Darwin (Apple, in MacOS)

11 of 13

BSDi

  • Founded by BSD developers (including me)
  • Sold commercial version of BSD for x86 and others (initially BSD/386, then BSD/OS)
  • Started with Net/2; filled in missing pieces, added drivers
  • Advertised availability; "1-800-ITS-UNIX" phone number
  • Lawsuit filed by USL (AT&T) against BSDi, later against UC Berkeley as well
  • Lawsuit settled; BSD/386 1.0 is released
  • Used in firewalls, routers, web sites

Berkeley Software Design, Inc.

12 of 13

Questions?

13 of 13

Mike and BSD

  • 2BSD (UC Berkeley Molecular Biology)
    • Sixth Edition, 2.8BSD, 2.9BSD
  • 4BSD, Net/* (UC Berkeley CSRG)
    • 4.2BSD, 4.3BSD, 4.3BSD-Tahoe, 4.3BSD-Reno
    • Net/1, Net/2
  • BSD/386 aka BSD/OS (Berkeley Software Design, BSDi)
  • Sidewinder firewall (Secure Computing, McAfee, Intel Security, Intel, Forcepoint)
  • FreeBSD