The Internet's Formative Years: 1972 1975 Briefly, I turn away from the on-going development of UNIX and C because, between 1972 and 1975, advances were being made in other areas. These advances would have strong bearing on how and why UNIX was chosen as the Internet's operating system. The year was 1972. ARPANET had some 40 hosts. (In today's terms, that is smaller than many local area networks, or LANs.) It was in that year that Ray Tomlinson, a member of Bolt, Beranek, and Newman, Inc., forever changed Internet communication. Tomlinson created electronic mail. Tomlinson's invention was probably the single most important computer innovation of the decade. Email allowed simple, efficient, and inexpensive communication. This naturally led to an open exchange of ideas and interstate collaboration between folks researching different technologies. Because many recipients could be added to an email message, these ideas were more rapidly implemented. From that point on, the Net was alive. Another key invention emerged in 1974: Vinton Cerf and Robert Khan invented the Transmission Control Protocol (TCP). This protocol was a new means of moving data across the Network bit by bit and then later assembling these fragments at the other end. Note TCP is the primary protocol used on the Internet today. It was developed in the early 1970s and was ultimately integrated into Berkeley Software Distribution UNIX. It has since become an Internet standard. Today, almost all computers connected to the Internet run some form of TCP. By 1975, ARPANET was a fully functional network. The groundwork had been done, and it was time for the U.S. government to claim its prize. In that year, control of ARPANET was given to an organization then known as the United States Defense Communications Agency. (This organization would later become the Defense Information Systems Agency.) What remained was to choose the official operating system for ARPANET. The final choice was UNIX. The reasons that UNIX was chosen over other operating systems were complex. In the next section, I discuss those reasons at length. UNIX Comes of Age Between 1974 and 1980, UNIX source code was distributed to universities throughout the country. This, more than any other thing, contributed to the success of UNIX. First, the research and academic communities took an immediate liking to UNIX. Hence, it was used in many educational exercises. This had a direct effect on the commercial world. As explained by Mike Loukides, an editor for O'Reilly & Associates and a UNIX guru: Schools were turning out loads of very competent computer users (and systems programmers) who already knew UNIX. You could therefore "buy" a ready-made programming staff. You didn't have to train them on the intricacies of some unknown operating system. Also, the source was free to universities and therefore, UNIX was open for development by students. This openness quickly led to UNIX being ported to other machines, which only increased the UNIX user base. Note Because UNIX source is widely known and available, more flaws in the system security structure are also known. This is in sharp contrast to proprietary systems. Proprietary software manufacturers refuse to disclose their source except to very select recipients, leaving many questions about their security as yet unanswered. UNIX continued to gain popularity and in 1978, AT&T decided to commercialize the operating system and demand licensing fees (after all, they had obviously created a winning product). This caused a major shift in the computing community. As a result, in a stunning move to establish creative independence, the University of California at Berkeley created its own version of UNIX. The Berkeley distribution was extremely influential, being the basis for many modern forms of commercial UNIX. So,in brief,UNIX was chosen for several reasons,including the following: UNIX was a developing standard. UNIX was an open system. UNIX source code was publicly available for scrutiny. UNIX had powerful networking features. UNIX and the Internet Evolve Together Once UNIX was chosen as the Internet's operating system, advances in UNIX were incorporated into the Internet's design. Thus, from 1975 onward, UNIX and the Internet evolved together. And, along that road, many large software and hardware manufacturers released their own versions of UNIX. The most popular versions are listed in Table B.1. Table B.1. Commercial Versions of UNIX and Their Manufacturers | UNIX Version | Software Company | SunOS & Solaris | Sun Microsystems | HP-UX | Hewlett-Packard | AIX | IBM | Digital UNIX | Compaq | Linux | Open Source Multiple Distributors | Many of these UNIX flavors run on high-performance machines called workstations. Workstations differ from PC machines in several ways. First, workstations contain superior hardware and are therefore more expensive. This is due in part to the limited number of workstations built. In contrast, PCs are mass produced, and manufacturers constantly look for ways to cut costs. A consumer buying a new PC motherboard therefore has a much greater chance of receiving faulty hardware. Moreover, workstations are typically more technologically advanced than PCs. For example, onboard sound, Ethernet, and SCSI were standard features of workstations in 1989. In fact, onboard ISDN was integrated not long after ISDN was developed. Linux is an interesting version of UNIX. It was designed to run on PC hardware and is freely available. This combination, plus the reliability of Linux, has made it an important platform for Internet servers. Note Technological advantages of workstations aren't always immediately apparent, either. Often, the power of a workstation is under the hood, obscured from view. For example, many workstations have extremely high throughput, which translates to blinding speeds over network connections and superb graphics performance. In fact, SGI and Sun now make machines that have absurd throughput, measuring hundreds of gigabytes per second. High-end performance comes at a terrific price. In the past, workstations would set you back five, or even six, figures. Naturally, for average users, these machines are cost prohibitive. In contrast, PC hardware and software are cheap, easily obtainable, simple to configure, and widely distributed. However, over the past few years, workstations have dropped greatly in price and now are just slightly more expensive than PCs. However, we are only concerned with UNIX as it relates to the Internet. As you might guess, that relationship is strong. Because the U.S. government's Internet development was implemented on the UNIX platform, UNIX contains the very building blocks of the Net. No other operating system had ever been so expressly designed for use with the Internet. Let's have a brief look at UNIX before continuing. The Basic Characteristics of UNIX Modern UNIX runs on disparate hardware, including IBM-compatibles and Macintoshes. Installation differs little from installation of other operating systems. Most vendors provide CD-ROM media. On workstations, installation is performed by booting from a CD-ROM. You are usually given a series of options and the remainder of the installation is automatic. On other hardware platforms, a boot disk that loads a small installation routine into memory generally accompanies the CD-ROM. Starting a UNIX system is also similar to booting other systems. The boot routine takes quick diagnostics of all existing hardware devices, checks the memory, and starts vital system processes. In UNIX, some common system processes started at boot and include the following: Electronic mail services General network services Logging and system administration services After the system boots, a login prompt appears. Here, you provide your username and password. When login is complete, you are dropped into a shell environment. Note A shell is an environment in which commands can be typed and executed. A shell interpreter then translates those commands to machine language for processing. In MSDOS, for example, the shell is COMMAND.COM. The user interfaces with the shell by typing commands (for example, the command DIR to list directories). In this respect, at least in appearance, basic UNIX marginally resembles MS-DOS. All commands are entered using the shell. Output of commands appears on the monitor unless you specify otherwise. Navigation of directories is accomplished in a similar fashion to navigation of a DOS system. DOS users can easily navigate a UNIX system using the conversion information in Table B.2. The UNIX commands listed here operate identically or very similarly to their DOS counterparts. Table B.2. Command Conversion Table: UNIX to DOS | DOS Command | UNIX Equivalent | cd \ <directory> | cd /<directory> | dir | ls -l | dir \ directory | ls /directory | dir /w | ls | chkdsk drive | fsck drive/partition | copy filename1 filename2 | cp filenme1 filename2 | edit filename | vi filename | fc filename1 filename2 | diff filename1 filename2 | find text_string | grep text_string | format drive | format drive/partition | mem/c|more | more /proc/meminfo | move filenme1 filename2 | mv filename1 filename2 | sort filename | sort filename | type filename|more | more filename | help <command> | man <command> | To learn more about basic UNIX commands, go to http://www.geek-girl.com/Unixhelp/. This archive is a comprehensive collection of information about UNIX. Or for good printed documentation, I recommend UNIX Unleashed (ISBN 0-672-31411-8), a title that provides many helpful tips and tricks on using this popular operating system. What Kinds of Applications Run on UNIX? UNIX runs many different applications. Some are high-performance programs used in scientific research and artificial intelligence. However, not all UNIX applications are so specialized. Popular, commercial applications also run in UNIX, including Adobe PhotoShop, Corel WordPerfect, and other products commonly associated with PCs. In all, modern UNIX is like any other platform. Window systems tend to come with suites of applications integrated into the package. These include file managers, text editors, mail tools, clocks, calendars, calculators, and the usual fare. A rich collection of multimedia software can be used with UNIX, including movie players, audio CD utilities, recording facilities for digital sound, two-way camera systems, multimedia mail, and other fun things. Basically, just about anything you can think of has been written for UNIX. UNIX in Relation to Internet Security UNIX security is a complex field. It has been said that UNIX is at odds with itself, because the same advantages that make UNIX a superb server platform also make it vulnerable to attack. UNIX was designed as the ultimate networked operating system, providing you with the ability to execute almost any application remotely and transparently. (For example, UNIX enables you to perform tasks on one machine from another, even though those boxes are located thousands of miles apart.) As such, by default, UNIX remote services will accept connections from anywhere in the world. Moreover, UNIX is an open system, and its code is publicly available. So, just as researchers can look at UNIX code and find weaknesses so can computer criminals, crackers, and other malcontents. However, UNIX is a mature operating system and over the years, many advances have been made in UNIX security. Some of these advances (many of which were implemented early in the operating system's history) include the following: Encrypted passwords Strong file and directory-access control System-level authentication procedures Sophisticated logging facilities UNIX is therefore used in many environments that demand security. Hundreds of programs are available to tune up the security of a UNIX system. Many of these tools are freely available on the Internet. Such tools can be classified into three basic categories: Security-audit tools System-logging tools Intrusion-detection tools Encryption tools Security-audit tools are programs that automatically detect holes within systems. These check for known vulnerabilities and common misconfigurations that can lead to security breaches. Such tools are designed for wide-scale network auditing and, therefore, can be used to check many machines on a given network (thousands, if you want). These tools are advantageous because they automate base-line security assessments. However, these tools are also liabilities, because they provide powerful capabilities to crackers who can obtain them just as easily. System-logging tools record the activities of users and system messages. These logs are recorded to plain text files or files that automatically organize themselves into one or more database formats. Logging tools are a staple resource in any UNIX security toolbox. Often, the logs generated by such utilities form the basis of evidence to build a case against a cracker. However, deep logging of the system can be costly in terms of disk space and bandwidth. Intrusion-detection tools are programs that automatically detect patterns that suggest an intrusion is under way. In some respects, intrusion detection tools can be viewed as intelligent logging utilities. The difference is that the logs are generated, analyzed, and acted upon in real-time. Lastly, encryption tools allow data to be encrypted. The data might be encrypted on the hard drive so others can not read it. Data being sent across the Internet can also be encrypted, so that people cannot intercept and read the transmission. Despite these superb tools, however, UNIX security is difficult to achieve. UNIX is a large and complicated operating system and hiring true UNIX security experts can be costly. For although these people aren't particularly rare, most of them already occupy key positions in firms throughout the nation. As a result, consulting in this area has become a lucrative business. |