Introduction of Unix operating system
UNIX is an operating system which first developed in the 1960s, and has been under constant development ever since. By operating system, we mean the suite of programs which make the computer work. It is a stable, multiuser, multitasking system for servers, desktops and laptops.
The kernel of UNIX is the hub of the operating system: it allocates time and memory to programs and handles the filestore and communications in response to system calls.
As an illustration of the way that the shell and the kernel work together, suppose a user types rm myfile. The shell searches the filestore for the file containing the program rm, and then requests the kernel, through system calls, to execute the program rm on myfile.
The Unix Interprocess Communication You can fork off new processes all day and have them deal with individual chunks of a problem in parallel. Of course, its easiest if the processes don't have to communicate with one another while they're running and can just sit there doing their own thing.
However, when you start fork()'ing processes, you immediately start to think of the neat multi-user things you could do if the processes could talk to each other easily. So you try making a global array and then fork()'ing to see if it is shared.
Soon, of course, you find that the child process has its own copy of the array and the parent is oblivious to whatever changes the child makes to it.
The Advanced 4.4BSD Interprocerss Communication Tutorial One of the most important additions to UNIX in 4.2BSD was interprocess communication. These facilities
were the result of more than two years of discussion and research. The facilities provided in 4.2BSD incorporated
many of the ideas from current research, while trying to maintain the UNIX philosophy of simplicity
and conciseness. The 4.3BSD release of Berkeley UNIX improved upon some of the IPC facilities
while providing an upward- compatible interface. 4.4BSD adds support for ISO protocols and IP multicasting.
The BSD interprocess communication facilities have become a defacto standard for UNIX.
UNIX has previously been very weak in the area of interprocess communication. Prior to the 4BSD
facilities, the only standard mechanism which allowed two processes to communicate were pipes. Unfortunately, pipes are very restrictive in that the
two communicating processes must be related through a common ancestor. Further, the semantics of pipes
makes them almost impossible to maintain in a distributed environment.
The Unix System Manager's Manual
Redirects TCP connections from one IP address and port to another. rinetd is a single-process server which handles any number of connections to the address/port pairs specified in the file /etc/rinetd.conf. Since rinetd runs as a single process using nonblocking I/O, it is able to redirect a large number of connections without a severe impact on the machine. This makes it practical to run TCP services on machines inside an IP masquerading firewall. rinetd does not redirect FTP, because FTP requires more than one socket.