Tuesday, October 25, 2011

World of Computer Science on Dennis Ritchie




Dennis Ritchie is a computer scientist most well-known for his work with Kenneth Thompson in creating UNIX, a computer operating system. Ritchie also went on to develop the high-level and enormously popular computer programming language C. For their work on the UNIX operating system, Ritchie and Thompson were awarded the prestigious Turing Award by the Association for Computer Machinery (ACM) in 1983.


Dennis MacAlistair Ritchie was born in Bronxville, New York, on September 9, 1941, and grew up in New Jersey, where his father, Alistair Ritchie, worked as a switching systems engineer for Bell Laboratories. His mother, Jean McGee Ritchie, was a homemaker. Ritchie went to Harvard University, where he received his B.S. in Physics in 1963. However, a lecture he attended on the operation of Harvard's computer system, a Univac I, led him to develop an interest in computing in the early 1960s. Thereafter, Ritchie spent a considerable amount of time at the nearby Massachusetts Institute of Technology (MIT), where many scientists were developing computer systems and software. In 1967 Ritchie began working for Bell Laboratories. Ritchie's job increased his association with the programming world, and in the late 1960s he began working with the Computer Science Research Department at Bell. It was here that he met Kenneth Thompson. Ritchie's lifestyle at Bell was that of a typical computer guru: he was devoted to his work. He showed up to his cluttered office in Murray Hill, New Jersey, around noon every day, worked until seven in the evening, and then went home to work some more. His computer system at home was connected on a dedicated private line to a system at Bell Labs, and he often worked at home until three in the morning. Even in the early 1990s, after he became a manager at Bell Labs, his work habits did not change substantially. "It still tends to be sort of late, but not quite that late," Ritchie told Patrick Moore in an interview. "It depends on what meetings and so forth I have."

When Ritchie and Thompson began working for Bell Labs, the company was involved in a major initiative with General Electric and MIT to develop a multi-user, time-sharing operating system called Multics. This system would replace the old one, which was based on batch programming. In a system based on batch programming, the programmers had no opportunity to interact with the computer system directly. Instead, they would write the program on a deck or batch of cards, which were then input into a mainframe computer by an operator. In other words, since the system was centered around a mainframe, and cards were manually fed into machines to relate instructions or generate responses, the programmers had no contact with the program once it had been activated. Multics, or the multiplexed information and computing service, would enable several programmers to work on a system simultaneously while the computer itself would be capable of processing multiple sets of information. Although programmers from three institutions were working on Multics, Bell Labs decided that the development costs were too high and the possibility of launching a usable system in the near future too low. Therefore, the company pulled out of the project. Ritchie and Thompson, who had been working on the Multics project, were suddenly thrown back into the batch programming environment. In light of the advanced techniques and expertise they had acquired while working on the Multics project, this was a major setback for them and they found it extremely difficult to adapt.

Thus it was in 1969 that Thompson began working on what would become the UNIX operating system. Ritchie soon joined the project and together they set out to find a useful alternate to Multics. However, working with a more advanced system was not the only motivation in developing UNIX. A major factor in their efforts to develop a multi-user, multi-tasking system was the communication and information-sharing it facilitated between programmers. As Ritchie said in his article titled "The Evolution of the UNIX Time-sharing System," "What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication."

In 1969 Thompson found a little-used PDP-7, an old computer manufactured by the Digital Equipment Corporation (DEC). To make the PDP-7 efficiently run the computer programs that they created, Ritchie, Thompson, and others began to develop an operating system. Among other things, an operating system enables a user to copy, delete, edit, and print data files; to move data from a disk to the screen or to a printer; to manage the movement of data from disk storage to memory storage; and so on. Without operating systems, computers are very difficult and time-consuming for experts to run.

It was clear, however, that the PDP-7 was too primitive for what Ritchie and Thompson wanted to do, so they persuaded Bell Labs to purchase a PDP-11, a far more advanced computer at the time. To justify their acquisition of the PDP-11 to the management of Bell Labs, Ritchie and Thompson said that they would use the PDP-11 to develop a word-processing system for the secretaries in the patent department. With the new PDP-11, Ritchie and Thompson could refine their operating system even more. Soon, other departments in Bell Labs began to find UNIX useful. The system was used and refined within the company for some time before it was announced to the outside world in 1973 during a symposium on Operating Systems Principles hosted by International Business Machines (IBM).

One of the most important characteristics of UNIX was its portability. Making UNIX portable meant that it could be run with relatively few modifications on different computer systems. Most operating systems are developed around specific hardware configurations, that is, specific microprocessor chips, memory sizes, and input and output devices (e.g., printers, keyboards, screens, etc.). To transfer an operating system from one hardware environment to another--for example, from a microcomputer to a mainframe computer--required so many internal changes to the programming that, in effect, the whole operating system had to be rewritten. Ritchie circumvented this problem by rewriting UNIX in such a way that it was largely machine independent. The resulting portability made UNIX easier to use in a variety of computer and organizational environments, saving time, money, and energy for its users.

To help make UNIX portable, Ritchie created a new programming language, called C, in 1972. C used features of low-level languages or machine languages (i.e., languages that allow programmers to move bits of data between the components inside microprocessor chips) and features of high-level languages (i.e., languages that have more complex data manipulating functions such as looping, branching, and subroutines). High-level languages are easier to learn than low-level languages because they are closer to everyday English. However, because C combined functions of both high- and low-level languages and was very flexible, it was not for beginners. C was very portable because, while it used a relatively small syntax and instruction set, it was also highly structured and modular. Therefore, it was easy to adapt it to different computers, and programmers could copy preexisting blocks of C functions into their programs. These blocks, which were stored on disks in various libraries and could be accessed by using C programs, allowed programmers to create their own programs without having to reinvent the wheel. Because C had features of low-level programming languages, it ran very quickly and efficiently compared to other high-level languages, and it took up relatively little computer time.

Interestingly, because of federal antitrust regulations, Bell Labs, which is owned by American Telephone & Telegraph (AT&T), could not copyright C or UNIX after AT&T was broken up into smaller corporations. Thus, C was used at many college and university computing centers, and each year thousands of new college graduates arrived in the marketplace with a lot of experience with C. In the mid and late 1980s, C became one of the most popular programming languages in the world. The speed at which C worked made it a valuable tool for companies that developed software commercially. C was also popular because it was written for UNIX, which, by the early 1990s, was shipped out on over $20 billion of new computer systems a year, making it one of the most commonly used operating systems in the world.

At the end of 1990, Ritchie became the head of the Computing Techniques Research Department at Bell Labs, contributing applications and managing the development of distributed operating systems. He has received several awards for his contributions to computer programming, including the ACM Turing award in 1983, which he shared with Thompson.

courtesy : http://www.bookrags.com/biography/dennis-ritchie-wcs/

No comments:

Post a Comment