The NUIX System: Making Computers Easier to Use-UNIX让电脑更易使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The NUIX System: Making Computers Easier to Use-UNIX让电脑更易使用相关的知识,希望对你有一定的参考价值。

The NUIX System: Making Computers Easier to Use

1982

Bell Laboratories

 

Host

Back in 1969, a Couple of Computer Scientist here at Bell Laboratories, start to develop some programs they needed for their own use. What Ken Thompson and Dennis Ritchie started developing then has evolved into the UNIX Operating system which by now is widely used not only in the Bell systems but in other places around the world. In the next few minutes, we are going to tell you about a few of problems that UNIX is useful for and we are going to talk some about Operating System in general and UNIX operating system in particular to show you how UNIX help people to solve problems. 

 

John R. Mashey

If you particular look at Bell Laboratories but at high technology industry in general, There is tremendous need for better techniques and tools to make our work more productive. We just simply can not write all the software that needs to be written. In fact a good analogy is that a number years ago when telephone calls were switched not by computers but by human being operators, People predicted that sooner or later the entire population of the United States would have to be telephone operators to switch all of the calls that need to be switched. We heave the same problem in programing productivity today, now keeping large amounts of software working and keeping it working in the face of change simply takes a lot of people. The Bell System we have many millions of lines of software, We have thousands of many computers, we have hundreds of very large of computers, and there is a lot of software that need to be kept working, there is all different sorts of software, there are the switching that switches your telephone calls, there is the administrative software that administers process, and there is for instance the billing software how many systems do you know give you a bill for something that cost as little as 10 or 20 cents. There is a lot of software. So we need lots of techniques and tools to make this more productive.

 

Host

The programs which tell the computer how to switch a telephone calls or compute pay roll or play an electronic game are called application software. There is another type of software that the program controls the resources of computer itself, the memory of the computer, the processing element, and the terminal that connected to the computer. This latter type of software is called an operating system. Another way of saying what an operating system is that it is a collection of programs which make intricate hardware of computer see simple and more comprehensible from the point of view of applications programmer, so the applications programmer can create software more easily.

 

Ken Thompson

We are trying to make computing as simple as possible. At late 1960s Dennis Ritchie and I realized that the then current operating systems were much too complex, we attended to reverse this trend by building a small simple operating system on the a mini computer.

 

Dennis M. Ritchie

What we want to preserve was not just a good programming environment which do programming but a system around which the community can form, fellowship we know from experience that the essence of communal  computing is supplied by remote access time sharing systems is not just type program into a terminal instead of the key punch, but to encourage close communication.

 

Host

Unix start out of two man’s effort, and by now it is used all over bell labs. We have close to 20,000 of computer terminal in this company, roughly one per employee, and most of them are used to communicating with the UNIX operating system. One of the main reasons that the UNIX is popular around here is because it provide graceful facilities to decomposing complex computing tasks into simple sub tasks.

 

Dennis M. Ritchie

The NUIX operating system is basically make out of three parts, the kernel, or operating system proper is the part that manage the control of machine and supervisor the scheduling of the all of user programs, the shell, or which is the name we give to the command interpreter, looks after the communication between the user and the system itself. The third part which is actually the largest is varies of Utilities programs which performs the specific tasks like editing a file or sorting a bunch of numbers or making a plot etc. All the other programs that are not provided directly as part of operating system kernel.

 

Brain W. Kernighan (大佬直接上手调用一些小的程序检查文本错误)

On of the things about UNIX is the ability that we have to create complicated program by building them out of a simpler program rater than writing from the scratch we can always construct by gluing together existing program almost like building blocks. Let me show you an example of how that will work by writing a program without actually writing a program to find spelling mistakes one of things that UNIX have been use for a long time as document preparation helping create letters and papers and books and so on. So, let me write this spelling mistakes program, I am not going to do the whole document because we do not have one. So, let me print a single sentence. The sentence comes from a paper that John Masssey and I wrote. (i: p sentence At Bell Laborotories UNIX systems privide more timesharing ports than all other systems combined) If you look carefully and you can see there is actually couple of spelling mistakes in it. So, suppose that we want to use the computer to find this spelling mistakes instead of doing by hand, basically what we want do is to take each of the words in that sentence and compare them against dictionary. To compare against the dictionary which is sort of one word per line is certainly going to be easier to convert this sentence to one word per line. So, let me run a program called makewords program that already exist which take an input from sentence (i: makewords sentence > words) and will dump the output into something that I will simply call words. Words is a file just like sentence. Look at that. And there it is. All of the words one word per line. And now I want to compare those to dictionary to make some progress but clear it is not done yet. Because, for example, my dictionary does not have the word Bell or the word Laboratories with capital letter at the beginning, it only has them in lower cases, so if I do a blind search, I will not get right answer. So next thing I want to do is to convert words into lower case, let me just run the program called lowercase on words and dump the output in this case something I will call lcwords, it is just file name, let go here. (i:lowercase words > lcwords) and let us look at that one. And see how we did. And sure enough, the bell and laboratories are all in lower case. So we getting warmer. We could compare this word one at a time against the dictionary, the dictionary is alphabet order, and it would be more efficient if we only go one path through my lcwords and one path through the dictionary rather than sort of poking randomly dictionary. So let me sort my lcwords, so I will say sort lcwords and I will put that one into sortedwords, and let us see how that word, and sure enough they are sorted into alphabet order, other than sorting there is something else, you will noticed that the systems appears twice there and that seems kind of silly, and now the single sentence is really does not matter, but the big document will be very nice to get ride of all the duplicate. So let me run another program which exist on the UNIX called unique, and I will say unique for the sortedwords, and into the uniquewords, and let us see what we got here, sure enough the word systems that duplicate word has gone away. And now we are almost at the point that we want to do finally is compare the list of words I have here with the dictionary, and print the words that in my list, that not in the dictionary, to do that with a program called mismatch, simply say mismatch uniquewords dict. There is two sources of the input, mismatch will simply print all of the words in the uniquewords but not in dict words. And , this one takes a little longer, because the dict is actually quite a size. But sure enough, we got laboratories and we got privide which have 2 spelling mistakes. That talks to you that this is actually quite reasonable way to spot spelling mistakes. Alphabetically we got a couple of other thing, we got a timesharing and we got the word unix, and this tell you why it is the perfect way to look for spelling mistakes. Timesharing is a fine example, jargon, the word means that something that everybody can computing and probably mean nothing at all the people that who already know the computer business. And UNIX’s example of proper name and is not likely being the dictionary ever. So what do we do when we get this list of words, what we do is that we fix this spelling mistake and sentence and that is done. And we take the words without mistakes but there were useful jargon like timesharing or useful proper name like UNIX and we use it in a proved dictionary, so not only your will re found this spelling mistakes but we are also able to do the job better by taking that output and in hand of dictionary that we used to find first mistakes, so the next time we do it we will never see this words again, and so I think the what we have seen here is the way that the program get developed in the UNIX very often is not by somebody sitting down and saying “I am going to this complicated job like creating a program to find spelling mistakes”, what I am going to do instead is to try to break the big job into the little pieces to see if I can do a part here and do a part there and do a part somewhere else and then stick them together, to get the job done. The other thing that sort of comes with the UNIX is that there already very large collection of useful programs, little tools kinds of building blocks, that means that you do not need to build your own building blocks, you can use the one that already there. And I think this is one of the reason that why UNIX is very productive system for most of us. Because the sub building blocks is already there and you can glue things together very very quickly in the way that I have showed you here. And that way get your job done in a hurry. And that in a sense is what productivity is.

 

Catherine Ann Brooks

One of the strength of the UNIX systems is it’s file system, let me give you an oversimple example, UNIX file system is like a file cabinet, in a file cabinet there are folders and within the folders there are letters, sheets of paper and on this letters and sheets of paper are words and characters, similarly in the UNIX file system there are directories, err there have tags on them, and within directories you can find other directories or files and this allows you to be able to retrieve a file very simply through this kind of indexing system. Files in the UNIX system are formatless, that means they are simply a string of characters or bytes. Any format imposed on that data is done by the programmer rather than by the Operating system. This makes programming is very easy for programmers. Let me contract with other operating systems where at file creation time a programmer must specify what information will be in file, how big the file will be etcetera. And once that is done, programmer is locked into it. Having locked into that kind of file then later it becomes impossible to put another kind of data in that file. The analogy is to trying to put a legal size document into a letter size file it simply will not fit. UNIX system, you do not have the problem, because data in file is formatless and data can be easily move back and forth between files.

 

Ken Thompson

Formatless file in which the data consist solely of a stream of bytes and interpret by the operating system, simplify like because it means that any program can process any file. When you combine this with the concept of pipeline of streaming processing, and makes UNIX is extremely powerful program to all.

 

Brain W. Kernighan

I Think the notion of pipeline is the fundamental contribution of the UNIX. The notion that you can take a bunch of programs to a more programs to stick together end to end, so the data simply flow from the one on the left to the one on the right, and the system itself looks after all the connections, all the synchronization, making sure the data goes from the one into another. The program itself do not know anything about the connection. For their concern is just talking to the terminal.

 

Lorinda L. Cherry (使用pipeline 的概念,将小程序组装成可用工具)

What Brain showed to you earlier was rather than write a special program to find spelling mistakes, it is possible with UNIX to couple together already existing programs and end up with the program basically find the spelling errors. He did that by writing by using one program on his sentence and then putting that out, putting into a temporary file and running vary program on the temporary files. It is possible using UNIX streaming processing or pipeline to eliminate the use of the temporary files, and let the system put the data from one program into the next so called pipeline, let me show you how that works with brain’s same example. I will use the same program on the same text file, so I first run make words on my text file and I run that through lowercase and run that through sort and run that to unique and run that to mismatch and at the end of the pipeline, I am search spelling errors, now it is also possible since you got tired of typing all the commands on one line, to put the sequence commands in a file and run only that file and the system will then interpret what is inside that file, what you want to run, so I have the same sequence in a file called check and I can run the check on my text and again I will get out my spelling errors. Now let me show you another example I have a desk calculator program, I am goanna run the output of the desk calculator through program called number which turns number into English, and then I am going to run that through program called speak which turns the reading English to spoken English. And now we have a taking calculator, so if I say 8 -3 for example, it tells me the 5.($ dc|number|speank) Now I can put this in a file, put this pipeline in a file, and name tack_calc. Now we will rise 2 the 100 power… Now person use this program does not need to know that it is more than one program running, and all of this things make our life much easier, you do not have to keep typing same things over and over again.

 

John R. Mashey

And that is import for several reasons, the first one is that I as a single programmer can not a set of commands I would have to type, but now I can get it just by typing something fairly short, I show one command what really done is quite a few commands. The second things is because it looks the same as the existing commands found on the system, it is very easy for other people to use.

 

Alfred V. Aho

We have seen a great deal of Darwinism in the development of spread of UNIX. Initially people in the computer science at research center pull programs and commands that were useful for there own needs, but a number of other people discover that they were useful for there own needs as well. As a consequence, this programs has spread rapidly through the laboratories.

 

John R. Mashey

What this all means is that this is more lavages for everybody, that this is sort of the continuation of progress in the computing field, in which way have gone to higher and higher level languages.

 

Brain W. Kernighan

And what is happen with UNIX is that over the years we have developed an increasing family that family of useful programs is getting bigger and bigger and bigger and of course people who have used it for a long time have a whole bunch of members of this family at their fingertips so that they can really get things done very quickly. And I think that really make UNIX as productive as it is.   

 

Host

People have use the UNIX utilities to build all sorts of valuable applications, and all of this they are all part of the NUIX family programs, some of this applications turn out to have usefulness way beyond the Bell systems. For example a program which we called the writer’s workbench, were originally designed for the use of their own people here, but by now used by the people in a lot of other places as well.

 

Nina Macdonald

Document stuff. (这段省略)

 

Host

Computing is going to be more and more get involved in people’s life as the years go by. So Computer technology is going to have to evolved to be easier for people to use. Unix is certainly not the end of the road in this regard, but I think it’s a good step of longways.

 


 

视频是1982年贝尔实验室的访谈短片,在网络上应该容易找到视频;

本以为翻出来这一段23分钟的视频是一件非常简单的事情,没想到呀,占用了一整天的时间;

还好坚持搞定了,后面随便对照了一个带字幕的版本,差不多95%的内容听写的是正确的;

2020年4月19日 21:54:55 

By Charle Jiang

-The END-


以上是关于The NUIX System: Making Computers Easier to Use-UNIX让电脑更易使用的主要内容,如果未能解决你的问题,请参考以下文章

Making the Grade POJ - 3666

[poj3666]Making the Grade

POJ3666 Making the Grade

POJ 3666 Making the Grade DP

线性DP POJ3666 Making the Grade

[POJ 3666] Making the Grade