logo资料库

The Hidden Language of Computer Hardware and Software.pdf

第1页 / 共400页
第2页 / 共400页
第3页 / 共400页
第4页 / 共400页
第5页 / 共400页
第6页 / 共400页
第7页 / 共400页
第8页 / 共400页
资料共400页,剩余部分请下载后查看
Cover
Copyright page
Contents
Preface to the Paperback Edition
code (kod) ...
Chapter One: Best Friends
Chapter Two: Codes and Combinations
Chapter Three: Braille and Binary Codes
Chapter Four: Anatomy of a Flashlight
Chapter Five: Seeing Around Corners
Chapter Six: Telegraphs and Relays
Chapter Seven: Our Ten Digits
Chapter Eight: Alternatives to Ten
Chapter Nine: Bit by Bit by Bit
Chapter Ten: Logic and Switches
Chapter Eleven: Gates (Not Bill)
Chapter Twelve: A Binary Adding Machine
Chapter Thirteen: But What About Subtraction?
Chapter Fourteen: Feedback and Flip-Flops
Chapter Fifteen: Bytes and Hex
Chapter Sixteen: An Assemblage of Memory
Chapter Seventeen: Automation
Chapter Eighteen: From Abaci to Chips
Chapter Nineteen: Two Classic Microprocessors
Chapter Twenty: ASCII and a Cast of Characters
Chapter Twenty-One: Get on the Bus
Chapter Twenty-Two: The Operating System
Chapter Twenty-Three: Fixed Point, Floating Point
Chapter Twenty-Four: Languages High and Low
Chapter Twenty-Five: The Graphical Revolution
Acknowledgments
Bibliography
Index
Numbers
A
B, C
D, E
F, G, H, I
J, K, L, M
N
O, P, Q, R
S, T, U
V, W, X, Z
About the Author
Colophon
The Hidden Language of Computer Hardware and Software Charles Petzold
PUBLISHED BY Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2000 by Charles Petzold All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Library of Congress Cataloging-in-Publication Data Petzold, Charles, 1953– Code / Charles Petzold. p. cm. 978-0-735-69260-2 ISBN 1. Computer programming. 2. Coding theory. I. Title. -- ISBN 0-7356-1131-9 (paperback) QA76.6 .P495 1999 005.7'2 21--dc21 99-040198 Printed and bound in the United States of America. 1 2 3 4 5 6 7 8 9 QWM 5 4 3 2 1 0 Distributed in Canada by Penguin Books Canada Limited. A CIP catalogue record for this book is available from the British Library. Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at mspress.microsoft.com. Send comments to mspinput@microsoft.com. Macintosh is a registered trademark of Apple Computer, Inc. Microsoft, MS-DOS, and Windows are either registered trademarks or trademarks of Microsoft Corpo- ration in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners. Images of Charles Babbage, George Boole, Louis Braille, Herman Hollerith, Samuel Morse, and John von Neumann appear courtesy of Corbis Images and were modified for this book by Joel Panchot. The January 1975 cover of Popular Electronics is reprinted by permission of Ziff-Davis and the Ziff family. All other illustrations in the book were produced by Joel Panchot. Unless otherwise noted, the example companies, organizations, products, people, and events depicted herein are fictitious. No association with any real company, organization, product, person, or event is intended or should be inferred. Acquisitions Editor: Ben Ryan Project Editor: Kathleen Atkins Technical Editor: Jim Fuchs
 Contents  Preface Best Friends Codes and Combinations Braille and Binary Codes Anatomy of a Flashlight Seeing Around Corners Telegraphs and Relays Our Ten Digits Alternatives to Ten Bit by Bit by Bit Logic and Switches Gates (Not Bill) A Binary Adding Machine Chapter One Chapter Two Chapter Three Chapter Four Chapter Five Chapter Six Chapter Seven Chapter Eight Chapter Nine Chapter Ten Chapter Eleven Chapter Twelve Chapter Thirteen But What About Subtraction? Chapter Fourteen Feedback and Flip-Flops Chapter Fifteen Chapter Sixteen Bytes and Hex An Assemblage of Memory Chapter Seventeen Automation Chapter Eighteen From Abaci to Chips Chapter Nineteen Two Classic Microprocessors Chapter Twenty ASCII and a Cast of Characters Chapter Twenty-One Get on the Bus Chapter Twenty-Two The Operating System Chapter Twenty-Three Fixed Point, Floating Point Chapter Twenty-Four Languages High and Low Chapter Twenty-Five The Graphical Revolution Acknowledgments Index iv 3 9 15 22 32 40 47 54 69 86 102 131 143 155 180 190 206 238 260 286 301 320 335 349 364 383 385 iii
Preface to the  Paperback Edition  ode rattled around in my head for about a decade before I started writing it. As I was contemplating Code and then writing it, and even after the book was published, people would ask me, “What’s the C book about?” I was always reluctant to answer this question. I’d mumble something about “a unique journey through the evolution of the digital technologies that define the modern age” and hope that would be sufficient. But finally I had to admit it: “Code is a book about how computers work.” As I feared, the reactions weren’t favorable. “Oh, I have a book like that,” some people would say, to which my immediate response was, “No, no, no, you don’t have a book like this one.” I still think that’s true. Code is not like other how-computers-work books. It doesn’t have big color illustrations of disk drives with arrows showing how the data sweeps into the computer. Code has no drawings of trains carrying a cargo of zeros and ones. Metaphors and similes are wonderful literary devices but they do nothing but obscure the beauty of technology. The other comment I heard was, “People don’t want to know how computers work.” And this I’m sure is true. I personally happen to enjoy learning how things work. But I also like to choose which things I learn about and which I do not. I’d be hard pressed to explain how my refrigerator works, for example. Yet I often hear people ask questions that reveal a need to know something about the inner workings of personal computers. One such common question is, “What’s the difference between storage and memory?” That’s certainly a critical question. The marketing of personal computers is based on such concepts. Even novice users are expected to know how many megas of the one thing and gigas of the other thing will be necessary for their particular applications. Novice users are also expected to master the concept of the computer “file” and to visualize how files are loaded from storage into memory and saved from memory back to storage. The storage-and-memory question is usually answered with an analogy: “Memory is like the surface of your desk and storage is like the filing cabinet.” That’s not a bad answer as far as it goes. But I find it quite unsatisfactory. It makes it sound as if computer architecture were patterned after an office. The truth is that the distinction between memory and storage
is an artificial one and exists solely because we don’t have a single storage medium that is both fast and vast as well as nonvolatile. What we know today as “von Neumann architecture”—the dominant computer architecture for over 50 years—is a direct result of this technical deficiency. Here’s another question that someone once asked me: “Why can’t you run Macintosh programs under Windows?” My mouth opened to begin an answer when I realized that it involved many more technical issues than I’m sure my questioner was prepared to deal with in one sitting. I want Code to be a book that makes you understand these things, not in some abstract way, but with a depth that just might even rival that of electrical engineers and programmers. I also hope that you might recognize the computer to be one of the crowning achievements of twentieth century technology and appreciate it as a beautiful thing in itself without metaphors and similes getting in the way. Computers are constructed in a hierarchy, from transistors down at the bottom to the information displayed on our computer screens at the top. Moving up each level in the hierarchy—which is how Code is structured— is probably not as hard as most people might think. There is certainly a lot going on inside the modern computer, but it is a lot of very common and simple operations. Although computers today are more complex than the computers of 25 years or 50 years ago, they are still fundamentally the same. That’s what’s so great about studying the history of technology: The further back in time you go, the simpler the technologies become. Thus it’s possible to reach a point where it all makes relatively easy sense. In Code, I went as far back as I could go. Astonishingly, I found that I could go back into the nineteenth century and use early telegraph equipment to show how computers are built. In theory at least, everything in the first 17 chapters of Code can be built entirely using simple electrical devices that have been around for over a century. This use of antique technology gives Code a fairly nostalgic feel, I think. Code is a book that could never be titled The Faster New Faster Thing or Business @ the Speed of a Digital Nervous System. The “bit” isn’t defined until page 68; “byte” isn’t defined until page 180. I don’t mention transistors until page 142, and that’s only in passing. So, while Code goes fairly deep into the workings of the computer (few other books show how computer processors actually work, for example), the pace is fairly relaxed. Despite the depth, I tried to make the trip as comfortable as possible. But without little drawings of trains carrying a cargo of zeros and ones. Charles Petzold August 16, 2000
code (kod) ... 3.a. A system of signals used to represent letters or numbers in transmitting messages. b. A system of symbols, letters, or words given certain arbitrary meanings, used for transmitting messages requiring secrecy or brevity. 4. A system of symbols and rules used to represent instructions to a computer… — The American Heritage Dictionary of the English Language
Chapter One Best Friends Y ou’re 10 years old. Your best friend lives across the street. In fact, the windows of your bedrooms face each other. Every night, after your parents have declared bedtime at the usual indecently early hour, you still need to exchange thoughts, observations, secrets, gossip, jokes, and dreams. No one can blame you. After all, the impulse to communicate is one of the most human of traits. While the lights are still on in your bedrooms, you and your best friend can wave to each other from the windows and, using broad gestures and rudimentary body language, convey a thought or two. But sophisticated transactions seem difficult. And once the parents have decreed “Lights out!” the situation seems hopeless. How to communicate? The telephone perhaps? Do you have a telephone in your room at the age of 10? Even so, wherever the phone is you’ll be overheard. If your family personal computer is hooked into a phone line, it might offer soundless help, but again, it’s not in your room. What you and your best friend do own, however, are flashlights. Everyone knows that flashlights were invented to let kids read books under the bed covers; flashlights also seem perfect for the job of communicating after dark. They’re certainly quiet enough, and the light is highly directional and prob- ably won’t seep out under the bedroom door to alert your suspicious folks. Can flashlights be made to speak? It’s certainly worth a try. You learned how to write letters and words on paper in first grade, so transferring that knowledge to the flashlight seems reasonable. All you have to do is stand at your window and draw the letters with light. For an O, you turn on the flashlight, sweep a circle in the air, and turn off the switch. For an I, you make a vertical stroke. But, as you discover quickly, this method simply doesn’t work. As you watch your friend’s flashlight making swoops and lines in the 3
4 Chapter One air, you find that it’s too hard to assemble the multiple strokes together in your head. These swirls and slashes of light are not precise enough. You once saw a movie in which a couple of sailors signaled to each other across the sea with blinking lights. In another movie, a spy wiggled a mir- ror to reflect the sunlight into a room where another spy lay captive. Maybe that’s the solution. So you first devise a simple technique. Each letter of the alphabet corresponds to a series of flashlight blinks. An A is 1 blink, a B is 2 blinks, a C is 3 blinks, and so on to 26 blinks for Z. The word BAD is 2 blinks, 1 blink, and 4 blinks with little pauses between the letters so you won’t mistake the 7 blinks for a G. You’ll pause a bit longer between words. This seems promising. The good news is that you no longer have to wave the flashlight in the air; all you have to do is point and click. The bad news is that one of the first messages you try to send (“How are you?”) turns out to require a grand total of 131 blinks of light! Moreover, you forgot about punctuation, so you don’t know how many blinks correspond to a question mark. But you’re close. Surely, you think, somebody must have faced this prob- lem before, and you’re absolutely right. With daylight and a trip to the li- brary for research, you discover a marvelous invention known as Morse code. It’s exactly what you’ve been looking for, even though you must now relearn how to “write” all the letters of the alphabet. Here’s the difference: In the system you invented, every letter of the al- phabet is a certain number of blinks, from 1 blink for A to 26 blinks for Z. In Morse code, you have two kinds of blinks—short blinks and long blinks. This makes Morse code more complicated, of course, but in actual use it turns out to be much more efficient. The sentence “How are you?” now requires only 32 blinks (some short, some long) rather than 131, and that’s including a code for the question mark. When discussing how Morse code works, people don’t talk about “short blinks” and “long blinks.” Instead, they refer to “dots” and “dashes” be- cause that’s a convenient way of showing the codes on the printed page. In Morse code, every letter of the alphabet corresponds to a short series of dots and dashes, as you can see in the following table. A A J J B b K K S T S T C C L L U U D D M M V V E E N N W W F F O O X X G G P P Y Y H I H I Q Q Z Z R R
分享到:
收藏