Introduction

Linux is considered as the programmer's paradise. For a computer science student it gives the opportunity to explore the internals of an Operating System.This project deals the networking side of linux.

To connect two computers we usually need hardwares like ethernet cards, connecting cables etc and a software called network driver to drive all this componets together. Our project connects two computers through serial port. The connecting cable uses just three pins of the serial port. We developed a network driver for this purpose.

TCP/IP protocol, which is used for networking is organised as protocol layers. It has got five layers. The first layer deals with all the application programs. The second layer deals with the connection between the systems(connection oriented or connectionless). The third layer deals with the addressing. The fourth layer is called data link layer. The last layer deals with the physical connection. This layering structure helps us to implement any of these layers without affecting the implementation of the other layers. Our project modifies data link layer and physical layer.

Device drivers take on a special role in the Linux kernel. They are distinct "black boxes" that make a particular piece of hardware respond to a well-defined internal programming interface; they hide completely the details of how the device works. User activities are performed by means of a set of standardized calls that are independent of the specific driver; mapping those calls to device-specific operations that act on real hardware is then the role of the device driver. This programming interface is such that drivers can be built separately from the rest of the kernel, and "plugged in" at runtime when needed. This modularity makes Linux drivers easy to write, to the point that there are now hundreds of them available.

By default each COM port is attached to a chip called UART (Universal Asynchreonous Receiver Transmitter) which is used to perform serial to parallel or parallel to serial conversion of data and transmission of data. This UART is programmed for sending the data over the serial lines.

This project implements Serial Line IP protocol at the data link layer of the TCP/IP protocol stack. This is achieved by writing a special type of driver called network driver and inserting it in to the kernel. When the new network driver is inserted in to the kernel, it replaces the traditional TCP/IP Data link layer and the physical layer. The network driver is used to control the UART chip. UART will act as the new physical layer. Nine pin D connector is used to connect the COM ports of the computers.