UNIX: Making Computers Easier To Use -- AT&T Archives film from 1982, Bell Laboratories

AT&T Tech Channel
27 Jan 201423:39

Summary

TLDRThis video script discusses the development of the UNIX operating system, which began in 1969 at Bell Labs by Ken Thompson and Dennis Ritchie. It highlights UNIX's simplicity, productivity, and ability to solve complex computing problems by breaking them into smaller tasks. The script explains the core components of UNIX: the kernel, shell, and utility programs. Examples include using UNIX for document preparation, spell-checking, and creating pipelines to streamline processes. The video emphasizes UNIX's impact on programming, file management, and its ability to foster a collaborative computing environment.

Takeaways

  • 💻 UNIX was developed in 1969 by Ken Thompson and Dennis Ritchie at Bell Labs to simplify complex operating systems.
  • 🛠 UNIX helps make computing tasks easier by decomposing complex tasks into simpler subtasks, improving productivity.
  • 🔧 The UNIX operating system consists of three main parts: the kernel, the shell (command interpreter), and utility programs.
  • 🔍 UNIX allows users to create programs by combining existing ones, like building blocks, without starting from scratch.
  • 📂 UNIX's file system is versatile, allowing users to store and retrieve files in a formatless manner, making it easier for programmers.
  • 🚀 Pipelining in UNIX enables the seamless connection of multiple programs, allowing data to flow efficiently between them.
  • 👥 UNIX was designed not only as a powerful tool but also as a communal system where users could collaborate and share solutions.
  • 📝 UNIX utilities like spelling checkers and writing aids have expanded beyond Bell Labs, contributing to various applications like document preparation.
  • 📈 The modularity of UNIX allows rapid development of new applications by leveraging pre-existing, debugged components.
  • 🔗 UNIX’s strength lies in its flexibility and efficiency, making it a highly productive system for a wide range of computing tasks.

Q & A

  • Who were the primary developers of the UNIX operating system?

    -Ken Thompson and Dennis Ritchie were the primary developers of the UNIX operating system, which they began developing at Bell Labs in 1969.

  • What was the initial motivation behind the development of UNIX?

    -Thompson and Ritchie developed UNIX because they found existing operating systems to be too complex, and they wanted to create a simpler, more efficient system that provided a better programming environment.

  • How does the UNIX operating system improve programming productivity?

    -UNIX enhances productivity by providing a simple operating system with reusable tools, allowing users to build complex programs by combining smaller programs, rather than writing everything from scratch.

  • What are the three main components of the UNIX operating system?

    -The three main components are: the kernel, which manages the computer's hardware; the shell, which interprets user commands; and the utility programs, which perform specific tasks like editing or sorting.

  • How does the UNIX file system structure compare to a file cabinet?

    -The UNIX file system is similar to a file cabinet, where directories are like folders and files are like sheets of paper. This hierarchical structure allows for efficient file organization and retrieval.

  • What is 'pipelining' in UNIX, and why is it important?

    -Pipelining in UNIX allows multiple programs to be connected so that the output of one program becomes the input of the next, simplifying data processing. It enables efficient stream processing without the need for temporary files.

  • How does UNIX handle file data differently from other operating systems?

    -UNIX treats files as 'formless,' meaning they are just streams of bytes. This allows any program to process any file, making data handling more flexible compared to other systems where file formats are rigidly defined during creation.

  • What is the benefit of using existing utility programs in UNIX?

    -Using existing utility programs in UNIX allows users to build new functionality quickly by combining smaller, pre-existing tools, saving time and avoiding the need to develop everything from scratch.

  • What kind of software did the UNIX team at Bell Labs initially create, and how did it evolve?

    -The team initially created programs for their own needs, but these tools became widely used throughout Bell Labs and eventually beyond. UNIX's modularity and its growing family of utilities allowed it to evolve into a powerful, general-purpose system.

  • How has the UNIX system contributed to writing and documentation at Bell Labs?

    -UNIX helped develop tools like the 'Writer's Workbench,' which assisted in improving technical documentation. These tools provided spelling checks, style analysis, and readability scores, helping non-professional writers create clearer documents.

Outlines

00:00

🔧 The Origins of UNIX: A Revolutionary Operating System

Paragraph 1 introduces the development of UNIX by Ken Thompson and Dennis Ritchie at Bell Labs in 1969. Initially created to address their own needs, UNIX quickly evolved into a widely used operating system both within Bell Labs and globally. The paragraph discusses the need for better programming tools to improve productivity in the tech industry, comparing it to historical telephone switching by human operators. It highlights how UNIX tackled the growing challenge of managing large amounts of software across various systems and applications, providing a solution for efficient computing.

05:01

🔠 Breaking Down Complex Programs into Simple Components

Paragraph 2 delves into the powerful modularity of UNIX, focusing on how users can build complex programs by connecting smaller, simpler ones. An example is provided where a UNIX user finds spelling errors in a document by running multiple small programs sequentially. The process involves converting a sentence into individual words, standardizing case, sorting, and removing duplicates before comparing against a dictionary. This approach showcases the flexibility and efficiency of UNIX in handling tasks by reusing existing tools rather than creating new programs from scratch.

10:01

📂 UNIX File System and Streamlining Data Processing

Paragraph 3 explains the structure and advantages of the UNIX file system, likening it to a filing cabinet with nested folders and files. The UNIX system treats files as strings of characters or bytes, making it easier for programmers to handle data without rigid formatting restrictions. Additionally, the concept of 'pipelining' is introduced, where multiple programs are connected in a stream to process data efficiently. The paragraph concludes by demonstrating how UNIX’s pipelining eliminates the need for temporary files, simplifying complex operations.

15:04

📊 The Power of Pipelines and Efficient Task Automation

Paragraph 4 builds upon the concept of pipelining, showing how UNIX allows users to automate repetitive tasks and improve productivity. The example of a talking calculator demonstrates how different programs can be combined to create seamless workflows. By putting a series of commands into a file, users can automate the process, reducing the need to type the same commands repeatedly. This highlights UNIX’s ability to simplify complex tasks and empower users to automate their work with minimal effort.

20:04

✍️ Writing Aids and Enhanced Documentation with UNIX

Paragraph 5 shifts focus to applications of UNIX beyond programming, specifically in document preparation. The UNIX-based 'Writer’s Workbench' helps authors improve the quality of technical documentation by checking spelling, grammar, and writing style. This tool is particularly useful for non-professional writers, such as engineers and developers, who produce critical documentation. The paragraph emphasizes how UNIX’s modularity enabled the rapid development of such tools, demonstrating the system’s wide-reaching impact beyond computing tasks.

Mindmap

Keywords

💡UNIX

UNIX is a family of multitasking, multiuser computer operating systems that is widely used in computing industry. In the video, UNIX is highlighted as a system developed by Ken Thompson and Dennis Ritchie at Bell Labs, which has evolved to be widely used not only within Bell System but also globally. The video discusses UNIX's role in solving complex computing tasks and its impact on productivity in high technology industries.

💡Operating System

An operating system is a system software that manages computer hardware, software resources, and provides services for computer programs. In the context of the video, the operating system, particularly UNIX, is described as a collection of programs that simplify the computer's hardware for application programmers, allowing them to create software more easily.

💡Productivity

Productivity in the video refers to the efficiency and effectiveness of work, especially in the context of software development. The video emphasizes the need for better techniques and tools, like UNIX, to enhance productivity in programming and software maintenance, drawing an analogy with the historical need for telephone operators and the shift to automated systems.

💡Application Software

Application software are programs that perform specific tasks, such as word processing or database management, for the user. The video distinguishes between application software and system software, with the latter including the operating system that manages computer resources. UNIX is shown as a platform that supports the development of various application software.

💡Time-sharing

Time-sharing is a method of sharing computing resources among many users by allocating a small amount of time for each user. In the video, the concept is mentioned as an essential feature of communal computing, where UNIX systems encourage close communication and efficient use of computing resources through time-sharing.

💡Shell

The shell in UNIX is the command-line interpreter that provides a way for users to interact with the operating system. The video describes the shell as part of the UNIX operating system that manages the communication between the user and the system, interpreting commands and executing programs.

💡Pipeline

A pipeline in UNIX is a mechanism of invoking multiple programs and linking their input and output streams in a chain. The video uses the example of a spelling mistake program to illustrate how pipelines allow data to flow from one program to another without the need for intermediate files, streamlining the process and enhancing productivity.

💡Formless File

A formless file, as mentioned in the video, is a file that contains a stream of bytes without any predefined structure. UNIX's file system treats files as formless, which simplifies programming as any program can process any file. This concept is central to UNIX's flexibility and the ability to use data in various ways.

💡Proofreading

Proofreading in the video refers to the process of checking written text for errors and inconsistencies. The UNIX system is used to develop tools like 'proofer', which help in identifying spelling mistakes and punctuation errors, and also analyze the style of written text, making documentation and other written materials more professional and readable.

💡Darwinism in Computing

The term 'Darwinism in Computing' used in the video refers to the natural selection process where useful programs and commands developed by individuals for their needs are adopted by others, leading to their widespread use. This concept illustrates how UNIX and its utilities have evolved and become integral parts of the computing ecosystem due to their utility and adaptability.

Highlights

Ken Thompson and Dennis Ritchie developed UNIX at Bell Labs in 1969.

UNIX is widely used in various industries for solving complex problems.

High technology industry faces challenges in software productivity and maintenance.

UNIX helps manage large amounts of software across many computers.

UNIX decomposes complex computing tasks into simple subtasks.

UNIX is composed of a kernel, a shell, and utility programs.

UNIX allows creating complex programs by combining simpler ones.

UNIX's file system is likened to a file cabinet, simplifying data retrieval.

UNIX's formless files allow any program to process any file.

Pipelining is a fundamental contribution of UNIX, allowing data to flow between programs.

UNIX streamlines tasks by eliminating the need for temporary files.

UNIX utilities have been used to build valuable applications beyond the Bell System.

UNIX's development has been influenced by Darwinian principles, spreading useful programs.

UNIX has aided in the quick development of programs like the writer's workbench.

UNIX's proofreading program 'proofer' checks spelling and punctuation errors.

UNIX's style analysis program helps improve the readability of written text.

UNIX's impact on computing is seen as a step towards easier technology use.

Transcripts

play00:13

back in 1969

play00:16

a couple of computer scientists here at

play00:18

Bell Labs started to develop some

play00:20

programs they needed for their own use

play00:22

what Ken Thompson and Dennis Ritchie

play00:25

started developing then has evolved into

play00:27

the UNIX operating system which by now

play00:29

is widely used not only in the Bell

play00:31

System but in other places around the

play00:33

world in the next few minutes we're

play00:37

going to tell you about a few of the

play00:39

problems that UNIX is useful for and

play00:41

we're going to talk some about both

play00:44

operating systems in general and the

play00:46

UNIX operating system in particular to

play00:49

show you how UNIX helped people solve

play00:51

problems

play01:08

if you look particularly at Bell

play01:10

Laboratories but at high technology

play01:12

industry in general there is a

play01:14

tremendous need for better techniques

play01:17

and tools to make our work more

play01:18

productive we just simply cannot like

play01:21

all the software that needs to be

play01:23

written in fact a good analogy is that a

play01:26

number of years ago when telephone calls

play01:29

were switched not by computers but by

play01:32

human beings operators people predicted

play01:35

that sooner or later the entire

play01:37

population of the United States would

play01:39

have to be telephone operators to switch

play01:42

all of the calls that needed to be

play01:43

switched we have the same problem in

play01:45

programming productivity today now

play01:48

keeping large amounts of software

play01:50

working and keeping it working in the

play01:53

face of change simply takes a lot of

play01:55

people the bell system we have many

play01:57

millions of lines of software we have

play02:00

thousands of many computers we have

play02:03

hundreds of very large computers and

play02:05

there is a lot of software that needs to

play02:08

be kept working there's all different

play02:09

sorts of software there are is the

play02:11

switching software that switches your

play02:13

telephone calls there is administrative

play02:16

software that administers the entire

play02:18

process and there is for instance the

play02:22

billing software how many systems do you

play02:24

know give you a bill for something that

play02:26

costs as little as 10 or 20 cents

play02:28

there's a lot of software so we need

play02:32

lots of techniques and tools to make

play02:35

this more productive the programs which

play02:39

tell a computer how to switch a

play02:40

telephone call or computer payroll or

play02:43

play an electronic game are called

play02:45

application software there's another

play02:48

type of software the programs which

play02:50

control the resources of the computer

play02:52

itself the memory of the computer the

play02:54

processing elements and the terminals

play02:56

connected to the computer

play02:57

this latter type of software is called

play02:59

an operating system another way of

play03:02

saying what an operating system is is

play03:04

that it's a collection of programs which

play03:06

make the intricate hardware of the

play03:08

computer see more simple and

play03:10

comprehensible from the point of view of

play03:12

an applications programmer so that the

play03:14

applications programmers can create

play03:15

software more easy

play03:17

we are trying to make computing as

play03:19

simple as possible in the late 1960s

play03:22

Dennis Ritchie and I realized that the

play03:24

then-current

play03:25

operating systems were much too complex

play03:27

we attempted to reverse this trend by

play03:29

building a small simple operating system

play03:32

on a mini computer what we wanted to

play03:35

preserve was not just a good programming

play03:38

environment in which to do programming

play03:39

but a system around which a community

play03:42

could form fellowship we knew from

play03:44

experience that the essence of communal

play03:47

computing as supplied by remote access

play03:50

time sharing systems is not just a type

play03:52

programs into a terminal instead of a

play03:54

keypunch but to encourage close

play03:57

communication UNIX started out as a

play04:00

two-man effort and by now it's used all

play04:02

over Bell Labs we have close to 20,000

play04:05

computer terminals in this company

play04:08

roughly one per employee and most of

play04:12

them are used for communicating with

play04:13

UNIX systems one of the main reasons

play04:16

that UNIX is popular around here is

play04:17

because it provides graceful facilities

play04:19

for decomposing complex computing tasks

play04:22

into simple subtasks the UNIX operating

play04:27

system is basically made up of three

play04:29

parts the kernel or operating system

play04:32

proper is the part that manages the

play04:35

control of the Machine and supervises

play04:38

scheduling of the various user programs

play04:41

the shell or which is the name we give

play04:44

to the command interpreter looks after

play04:48

the communication between the user and

play04:51

the system itself the third part which

play04:55

is actually the largest is the various

play04:58

utility programs which perform specific

play05:00

tasks like editing a file or sorting a

play05:04

bunch of numbers or making a plot in

play05:08

other words all the other programs that

play05:10

are not provided directly as part of the

play05:13

operating system kernel one of the

play05:15

things about UNIX is the ability that we

play05:18

have to create complicated programs by

play05:22

building them out of simpler programs

play05:24

rather than writing programs from

play05:25

scratch we can often construct them just

play05:27

by gluing together existing programs

play05:29

almost like building blocks

play05:30

let me show you an example of how that

play05:32

would work by writing a program without

play05:34

actually writing a program to find

play05:36

spelling mistakes one of the things that

play05:37

UNIX has been used for it for a long

play05:39

time is document preparation helping

play05:41

create letters and papers and books and

play05:44

so on so let me write this spelling

play05:47

mistake program I'm not going to do it

play05:49

for a whole document because we don't

play05:50

have one but let me print a single

play05:52

sentence the sentence comes from a paper

play05:55

that John Massey and I wrote and if you

play05:57

look at it carefully you can see that

play05:58

they're actually a couple of spelling

play05:59

mistakes in it so suppose that we wanted

play06:03

to use a computer to find those spelling

play06:04

mistakes instead of doing it by hand

play06:06

basically what we want to do is to take

play06:08

each of the words in that sentence and

play06:10

compare them against dictionary to

play06:13

compare it against the dictionary which

play06:14

is sort of one word for line it's

play06:16

certainly going to be easiest to convert

play06:18

this into one word per line so let me

play06:20

run a program called make words program

play06:23

that already exists we'll take its input

play06:25

from sentence and we'll dump the output

play06:28

into some thing that I will simply call

play06:30

words words is a file just like sentence

play06:33

let's look at that and there it is all

play06:36

of the words one word per line now if I

play06:40

want to compare those against a

play06:41

dictionary I've made some progress but

play06:43

it's clearly not done yet because for

play06:45

example my dictionary doesn't have the

play06:47

word Bell or the word Laboratories with

play06:49

a capital letter at the beginning it

play06:51

only has them in lowercase and so if I

play06:52

do a blind search I won't get the right

play06:54

answer so the next thing I want to do is

play06:56

to convert words and the lowercase and

play07:00

so let me just run a program called

play07:01

lowercase on words and dump the output

play07:05

in this case into something that'll call

play07:07

LC words

play07:07

inventing file names as I go here and

play07:11

let's look at that one and see how we

play07:12

did

play07:13

and sure enough bail and laboratories

play07:16

are in lower case so we're getting

play07:18

warmer we're almost at the point where

play07:20

we could compare these words one at a

play07:23

time against the dictionary the

play07:25

dictionary is in alphabetical order and

play07:27

it will be a lot more efficient if we

play07:29

only go one pass through my list of

play07:32

words and one pass through the

play07:34

dictionary rather than sort of poking

play07:35

randomly at the dictionary so let me

play07:37

sort my list of words so I'll say sort

play07:40

kalsi words

play07:42

and I'll put that one into sordid words

play07:47

and let's see how that worked and sure

play07:56

enough they're sorted into alphabetical

play07:57

order we're sorting it shows us

play08:01

something else

play08:01

notice that the word systems appears

play08:03

twice there and that seems kind of silly

play08:05

and now in a single sentence it doesn't

play08:07

really matter but in the big document

play08:08

it'd be very nice to get rid of all of

play08:10

the duplicates so let me run another

play08:12

program which exists on UNIX called

play08:15

unique and I will say unique from the

play08:18

sorted words and to a unique words and

play08:27

let's see what we got here

play08:30

sure enough the word systems the

play08:33

duplicated word has gone away and now

play08:36

we're almost at the point what we want

play08:38

to do finally is compare the list of

play08:39

words that I have here with the

play08:41

dictionary and print the words that are

play08:43

in my list that are not in the

play08:45

dictionary and we'll do that with a

play08:46

program called mismatch where I simply

play08:49

say mismatch and then we'll go from the

play08:50

unique words and the dictionary those

play08:53

are my two sources of input and mismatch

play08:55

will simply print all of the words which

play08:57

are in unique words that are not in the

play08:59

dictionary and this one takes a little

play09:02

longer because the dictionary is

play09:03

actually fair size but sure enough we

play09:07

got laboratories and we got provide

play09:09

which are the two spelling mistakes and

play09:11

that tells you that this is actually

play09:12

quite a reasonable way to look for

play09:13

spelling mistakes unfortunately we've

play09:15

got a couple of other things we got the

play09:17

word time-sharing and we got the word

play09:18

unix and this tells you why it isn't a

play09:21

perfect way to look for spelling

play09:22

mistakes time sharing is a fine example

play09:25

of jargon it's a word that means

play09:27

something to everybody in computing and

play09:28

probably means nothing at all the people

play09:29

who aren't in the computer business and

play09:31

UNIX is an example of a proper name and

play09:34

is not likely to be in the dictionary

play09:36

ever so what do we do when we get this

play09:40

list of words what we do is that we fix

play09:43

the spelling mistakes in the sentence

play09:44

and that's done and we take the words

play09:47

that weren't spelling mistakes but that

play09:49

we're useful jargon like time sharing or

play09:51

useful proper names like UNIX and we use

play09:53

them to improve our dictionary so not

play09:55

only are we finding the spelling

play09:56

mistakes

play09:56

but we're also able to do the job better

play09:58

by taking that output and enhancing the

play10:01

dictionary that we use to find further

play10:03

spelling mistakes and so the next time

play10:04

we do it we'll never see those words

play10:06

again and so I think that what we've

play10:09

seen here is the the way that programs

play10:12

get developed on UNIX very often is not

play10:15

by somebody sitting down and saying I'm

play10:16

going to do this complicated job like

play10:18

printing like creating a program to find

play10:21

spelling mistakes what I'm going to do

play10:23

instead is to try to break that big job

play10:27

up into little pieces to see if I can do

play10:31

a part here a part there and a part

play10:32

somewhere else and then stick them

play10:34

together to get the job done and then

play10:36

the other thing that sort of comes with

play10:38

UNIX is that they're already very large

play10:41

collection of useful programs little

play10:43

tools kind of building blocks that mean

play10:46

that you don't have to build your own

play10:47

building blocks you can use the ones

play10:49

that are already there and I think this

play10:51

is one of the reasons why UNIX is a very

play10:52

productive system for most of us because

play10:54

the set of building blocks is already

play10:56

there and you can glue things together

play10:58

very very quickly in the way that I've

play11:01

shown you here and that way get your job

play11:03

done in a hurry and that in a sense is

play11:05

what productivity is one of the

play11:08

strengths of the UNIX system is its file

play11:10

system let me give you an oversimplified

play11:13

example UNIX file system is like a file

play11:16

cabinet in a file cabinet there are

play11:19

folders within folders there are letters

play11:22

sheets of paper and on these letters and

play11:25

sheets of paper are words and characters

play11:28

similarly in the UNIX file system there

play11:32

are directories that have tags on them

play11:36

and within directories you can find

play11:38

other directories or files and this

play11:42

allows you to be able to retrieve a file

play11:45

very simply through this kind of

play11:47

indexing system files in the UNIX system

play11:51

are form atlas that means that they are

play11:54

simply a string of characters or bytes

play11:58

any format imposed on that data is done

play12:01

by the programmer rather than by the

play12:04

operating system

play12:06

this makes programming very easy for for

play12:09

programmers for let me contrast other

play12:13

operating systems where at file creation

play12:17

time a programmer must specify what

play12:20

information will be in the file how big

play12:22

the file will be etcetera and once that

play12:25

is done the programmer is locked into it

play12:27

having locked into that kind of file

play12:31

then later it becomes impossible to put

play12:34

another kind of data in that file the

play12:36

analogy is to trying to put a legal

play12:40

sized document into a letter size file

play12:43

it simply won't fit the UNIX system you

play12:49

don't have this problem because data in

play12:52

files is form atlas and data can be

play12:54

easily moved back and forth between

play12:56

files form atlas files in which the data

play13:01

consists solely of a stream of bytes

play13:03

it's uninterpreted by the operating

play13:05

system simplify life because it means

play13:08

that any program can process any file

play13:11

when you combine this with the concept

play13:14

of pipelining your stream processing it

play13:16

makes UNIX and extremely powerful

play13:18

programming tool I think the notion of

play13:22

pipelining is the fundamental

play13:23

contribution of Unix the notion that you

play13:25

can take a bunch of programs two or more

play13:29

programs and stick them together end to

play13:31

end so that the data simply flows from

play13:33

the one on the left to the one on the

play13:34

right and the system itself looks after

play13:36

all the connections all of the

play13:38

synchronization making sure that the

play13:40

data goes from the one into the other

play13:42

the programs themselves don't know

play13:44

anything about the connection as far as

play13:45

they're concerned they're just talking

play13:46

to the terminal what Brian showed you

play13:49

earlier was that rather than write a

play13:50

special program to find spelling

play13:52

mistakes it's possible with Unix to

play13:54

cobble together already existing

play13:57

programs and end up with a program that

play13:59

basically finds spelling errors now he

play14:02

did that by writing all by using one

play14:05

program on his sentence

play14:08

and then putting that output into a

play14:10

temporary filing and running various

play14:12

programs on the temporary files it's

play14:14

possible using UNIX stream processing or

play14:17

pipelining to eliminate the use of

play14:20

temporary files and let the system put

play14:23

the data from one program into the next

play14:25

those are called pipelines let me show

play14:27

you how that works with Brian's same

play14:29

example I'll use the same programs in

play14:31

the same text file so I first run on

play14:34

make words on my text file and I run

play14:38

that through lower case I run that

play14:42

through sort and I run that through

play14:44

unique and I run that through mismatched

play14:48

and out of the end of the pipeline comes

play14:52

the spelling errors now it's also

play14:54

possible to sensing you get tired of

play14:57

typing the all the commands on one line

play15:00

to put the sequence of commands in a

play15:03

file and run only that file the system

play15:08

will then interpret what's inside that

play15:10

file is what you want to run so I have

play15:12

this same sequence and if I called check

play15:15

and I can run check on my text and again

play15:18

I'll get it get out my spelling errors

play15:21

now let me show you another example I

play15:23

have a desk calculator program I'm going

play15:27

to run the output of the desk calculator

play15:28

through program called number which

play15:31

turns the numbers into English and then

play15:33

I'm going to run that through a program

play15:35

called speak which turns the written

play15:38

English into spoken English and we now

play15:40

have a talking calculator so if I say on

play15:44

8-3 for example it tells me five

play15:49

now I can put this in a file put this

play15:51

pipeline in a file name talk calc and

play15:54

get the same thing now we'll raise 2 to

play16:01

the 100th power 100 million 267

play16:09

octillion 650 septillion 660 Liang 228

play16:16

quintillion 229 quadrillion 401 trillion

play16:22

496 billion 700 3 million two hundred

play16:26

five thousand 376 now person using this

play16:32

program doesn't need to know that it's

play16:33

that it's more than one program running

play16:36

and all of these things make our life

play16:39

much easier you don't have to keep

play16:41

typing the same thing over and over

play16:42

again and that's important for several

play16:44

reasons the first one is that I as a

play16:48

single programmer can can up a set of

play16:52

commands that it would have had to have

play16:54

typed but now I can get it by just

play16:56

typing something fairly short I issue

play16:58

one command and what's really done is

play17:00

quite a few commands the second thing is

play17:04

because it looks the same as the

play17:06

existing commands on the system it's

play17:08

very easy for other people to use

play17:16

we've seen a great deal of Darwinism in

play17:19

the development and spread of eunuchs

play17:21

initially people in the computing

play17:23

Science Research Center broke programs

play17:26

and commands that we'll use were useful

play17:28

for their own needs but a number of

play17:31

other people discovered that they were

play17:32

useful for their needs as well and as a

play17:34

consequence these programs and spread

play17:38

rapidly throughout the laboratories what

play17:41

this all means is that there is more

play17:43

leverage for everybody that this is sort

play17:46

of a continuation of progress in the

play17:48

computing field in which we have gone to

play17:51

higher and higher level languages and

play17:53

what has happened with UNIX is that over

play17:55

the years we've developed an increasing

play17:58

family this family of useful programs

play18:00

has gotten bigger and bigger and bigger

play18:02

and of course people who have used it

play18:03

for a long time have a whole bunch of

play18:05

members of this family at their

play18:06

fingertips so that they can really get

play18:08

things done very quickly and I think

play18:10

it's that that really makes UNIX as

play18:12

productive as it is people have used the

play18:16

UNIX utilities to build all sorts of

play18:18

valuable applications and all of these

play18:21

are now part of the UNIX family of

play18:23

programs some of these applications turn

play18:26

out to have usefulness that goes way

play18:27

beyond the bail system for example the

play18:30

programs which we call the writers

play18:31

workbench were originally designed for

play18:33

the use of our own people here but by

play18:36

now are used by people in a lot of other

play18:38

places as well in the bail system we

play18:42

produce enormous amounts of information

play18:44

for craftspeople that tell them how to

play18:46

install maintain and repair equipment

play18:49

this documentation is much more

play18:52

important these days than it used to be

play18:53

25 years ago most of our equipment was

play18:56

mechanical a person who was trying to

play18:59

install a repair piece of equipment

play19:01

could frequently figure out how to use

play19:03

it just by looking at it these days

play19:05

however our equipment is much more

play19:07

complex it's made up of computers and

play19:10

computer programs called software to

play19:13

debug or fix this kind of equipment you

play19:15

almost always need the documentation

play19:17

this documentation is usually written by

play19:20

the developers after all they know the

play19:22

most about the equipment but they

play19:24

weren't necessarily trained in how to

play19:26

write well so to help people like this

play19:29

and

play19:30

improve the bail system documentation

play19:32

we've developed some writing aids called

play19:34

the writer's workbench to begin I'll

play19:36

show you the output of a proofreading

play19:38

program called proofer as you can see

play19:41

here the file has only four lines in it

play19:44

or three sentences probably by just

play19:47

looking at it quickly you can tell that

play19:48

it has several errors in it if it were a

play19:51

longer paper however you might have

play19:52

trouble figuring out what those errors

play19:54

are so let me show you what our

play19:56

proofreading program would do with this

play19:57

text the first information that comes up

play20:04

is a spelling check this program is

play20:07

basically a spelling checker that's

play20:09

similar to the one that Brian Carnahan

play20:11

demonstrated earlier in this film one of

play20:14

the advantages of UNIX is that we were

play20:16

able to take this program and/or one

play20:19

fairly similar to it and build it into a

play20:22

proofreading package so you see that it

play20:25

found the two misspelled words here it

play20:27

then goes on and looks for simple kinds

play20:29

of punctuation errors we've gone however

play20:33

beyond simple proofreading to try and

play20:37

analyze the style of people's written

play20:39

text as well

play20:40

remember they frequently don't have a

play20:42

professional editor to look at their

play20:44

writing and there's lots of things about

play20:46

writing that are important especially in

play20:48

training documentation but people

play20:50

frequently don't know for instance you

play20:52

want to have the smallest number of

play20:54

passive verbs that you can and still

play20:57

have the text read fluidly because the

play20:59

passive verbs make text difficult to

play21:02

read so we have a program that

play21:10

analyzes many of the different features

play21:12

of the syntactic style of a paper I've

play21:16

run it here on a memo of mine here it

play21:19

tells you what the readability score is

play21:21

it tells you that it's 11th grade it

play21:24

tells you that that's a reference to 11

play21:27

years of schooling that you have to have

play21:29

to read this text and tells you that

play21:32

that's a good score it then goes on and

play21:34

describes the variations and says that

play21:38

you've had a good distribution of simple

play21:39

compound complex and compound-complex

play21:41

sentences following the short version it

play21:46

tells you that 57 words is pretty long

play21:48

for a sentence and that really you

play21:50

probably ought to change it and it goes

play21:52

beyond that and tells you how you could

play21:54

find what that sentence is and all the

play21:56

sentences in your text that are over

play21:58

some lengths are UNIX operating system

play22:01

helped us a lot to develop these

play22:03

programs quickly for instance there were

play22:05

many modules like the spelling checker

play22:07

and the diction program that were

play22:09

already existed and we're already

play22:12

debugged so we didn't have to start from

play22:14

scratch computing is going to be more

play22:18

and more it or woven with people's lives

play22:20

as the years go by so computer

play22:23

technology is going to have to evolve to

play22:25

be easier for people to use UNIX is

play22:28

certainly not the end of the road in

play22:29

this regard but I think it's a good step

play22:31

along the way

play23:08

you

play23:21

you

play23:31

you

Rate This

5.0 / 5 (0 votes)

Related Tags
UNIX HistoryBell LabsOperating SystemsKen ThompsonDennis RitchieComputing ProductivitySoftware DevelopmentTime-sharing SystemsDocument PreparationProgramming Tools