From owner-freebsd-net@FreeBSD.ORG Fri May 30 11:53:24 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 247AB37B401 for ; Fri, 30 May 2003 11:53:23 -0700 (PDT) Received: from web14206.mail.yahoo.com (web14206.mail.yahoo.com [216.136.173.70]) by mx1.FreeBSD.org (Postfix) with SMTP id 6DA8F43F75 for ; Fri, 30 May 2003 11:53:23 -0700 (PDT) (envelope-from neelnatu@yahoo.com) Message-ID: <20030530185323.78273.qmail@web14206.mail.yahoo.com> Received: from [208.2.250.35] by web14206.mail.yahoo.com via HTTP; Fri, 30 May 2003 11:53:23 PDT Date: Fri, 30 May 2003 11:53:23 -0700 (PDT) From: Neelkanth Natu To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Alpine4Linux X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 18:53:24 -0000 Hi all, Alpine4Linux is a userlevel FreeBSD 4.8 networking stack running on top of a stock Linux kernel. It is an implementation of an idea that I came across in a paper[1] by David Ely, Stefan Savage and David Wetherall. Alpine4Linux consists of a userland server program that runs the FreeBSD kernel code as well as the unmodified networking stack. Client programs use the Alpine stack by setting the LD_PRELOAD environment variable to link to libraries, that intercept socket related system calls. These intercepted system calls are routed to the Alpine server over a TCP connection established on the loopback interface. Alpine4Linux goes great lengths to ensure that its behavior is identical to that of a FreeBSD kernel as far as networking is concerned. Thus, in addition to the unmodified FreeBSD stack. Alpine4Linux also has unmodified socket layer code, file descriptor code, tsleep and wakeup for e.g. It also has a rich client-side library that supports almost all socket functions as well as functions like fork() that are commonly used by server programs. I have tested stock Linux programs like telnet, nmap, ifconfig, vsftpd-1.1.3 etc. against the Alpine stack. I have only compiled it on a Redhat 8.x Linux box, so if someone manages to run it on another Linux distribution/kernel please let me know. You can find more information at: http://www.vzavenue.net/~neelnatu/alpine4linux Hopefully someone finds use for this. thanks Neel [1] Alpine: A user-level infrastructure for network protocol development David Ely, Stefan Savage, David Wetherall http://alpine.cs.washington.edu/ __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com