Every UNIX computer that runs TCP/IP has a technique for incorporating the basic transport and IP datagram services into its operating system. This chapter discusses two files that are fundamental to the basic configuration of TCP/IP on UNIX systems: the kernel configuration file and the inetd.conf file. Because these files are so basic to network configuration, they usually come from the manufacturer preconfigured to run TCP/IP.
We'll examine the contents of these files and the role they play in linking TCP/IP and UNIX. With this information, you should be able to modify these files for your own custom configurations.
Kernel configuration is not really a network administration task - rather, it is a basic part of UNIX system administration, whether or not the computer is connected to a network. But TCP/IP networking, like other system functions, is integrated into the kernel.
There are two very different approaches to kernel configuration. Some systems are designed to eliminate the need to configure the kernel yourself, while others encourage you to do your own kernel configuration. Solaris 2.5.1 is an example of the former. The system comes with a generic kernel that supports all basic system services. When a Solaris system boots, it detects any new hardware added to the system. Dynamically loadable modules are used to add new features to the system. The configuration is defined in the /etc/system file, but this file is not directly edited by the system administrator. When a new software package is added to the system, the script that installs that package makes any changes it requires to the /etc/system file.
Linux is an example of the latter philosophy: its documentation encourages you to create your own configuration. In this text we concentrate on Linux and on FreeBSD, systems that allow you to build your own custom kernel.  Throughout this chapter, we provide examples of kernel configuration statements using these two UNIX systems. While kernel configuration involves all aspects of system configuration, we include only statements that directly affect TCP/IP configuration.
 The kernel configuration process of other BSD systems, such as SunOS 4.1.3, is similar to the FreeBSD example.
Both of the UNIX systems used in the examples come with a kernel configuration file preconfigured for TCP/IP. During the initial installation, you may need to select a preconfigured kernel that includes network support, but you probably won't need to modify the kernel configuration for networking. The kernel configuration file is normally changed only when you wish to:
Produce a smaller, more efficient kernel by removing unneeded items
Add a new device
Modify a system parameter
While there is rarely any need to modify the kernel network statements, it is useful to understand what these statements do. Looking into the kernel configuration file shows how UNIX is tied to the hardware and software of the network.
CAUTION: The procedures and files used for kernel configuration vary dramatically depending on UNIX implementation. These variations make it essential that you refer to your system documentation before trying to configure the kernel on your system. Only your system documentation can provide you with the accurate, detailed instructions required to successfully complete this task.