[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TCP Realism



James did not say the Linux stack is BSD based--it is not.  He said the MS
stacks were BSD based, which I have also read.

Now, if the Linux stack is closer to SysV, that would be a neat trick,
because SysV did not provide a TCP/IP protocol implementation--you had to
buy one from a third party.  R. Stevens' UNIX Network Programming states
Stevens was using Wollongong WIN/TCP.  (SysV did supply the Transport Layer
Interface, and STREAMS (a layered driver system licensed from a 3rd party),
but the transport layer must be supplied.)  

Yes, _Linux_ is more like SysV, in a variety of ways (signals, filesystem
layout, init scripts), but Linux TCP/IP internals aren't, surely, one of the
ways.  Linux didn't even support STREAMS until Caldera ported Novell's
STREAMS-based fileserver code!)

Now, modern SysV UNIXen all support TCP/IP, but the implementations vary,
and some are surely themselves based on BSD, since it did supply a full
implementation of the protocols, was the reference implemenation, and source
was available.  (Eg, Digital (Ultrix), HP (Apollo), and Sun (SunOS through
4.1) were all selling BSD-based UNIXen, and transitioned in the late 1980s
to the SysV source base.)  Oddly, SysV was mainly relevant on Intel (AT&T,
Xenix, SCO, Microport, ...) and Motorola (AUX) machines before that, if I'm
not mistaken.

Linux has recently been cited as an almost unique example of a ground-up
implementation from spec, and I actually think that applies even to the
original Linux stack, which was credited in the Linux starup code to the
Swansea Univ. Computing society, which probably means Alan Cox--who
certainly wrote much of the current implementation.  

Quibbling aside, TCP/IP implementations out there reflect two facts:

1. Most borrow BSD code, under some license, at some time.  
2. All implementations need to interoperate with one another, which
originally means with BSD

Yet, whatever its proximate ancestor, Windows sockets are certainly
different than Berkeley sockets--Win16 simply does not look or work like
UNIX--and the stack internals surely reflect this (although I don't know
jack about the details).

There was in 1993-4 very little about Linux's TCP implementation to attract
Microsoft's attention.  I ran many webservers on Linux in 1994, but most
ISPs on Intel were using BSDI or FreeBSD.  Any dork porting a stack to
Windows would have used BSD code, not Linux code, notwithstanding the
license.

Matt


-----Original Message-----
From: Brett Glass [mailto:brett@lariat.org]
Sent: Monday, January 04, 1999 3:43 AM
To: James LewisMoss
Cc: Multiple recipients of list AM-INFO
Subject: Re: Not "Satanism;" realism.


At 02:56 PM 1/2/99 -0500, James LewisMoss wrote:
 
>Actually if i remember correctly both early Linux (it's mostly been
>rewritten now) and MS NT/Win95/Win3.1 TCP/IP stacks are all BSD based.

If the Linux TCP/IP stack is BSD-based, then the developers have violated
the license by failing to reproduce it in the source.

As for the Microsoft stack: it's not BSD-based. It's much closer to
SysV. 

--Brett