The author starts with an interesting overview of the history of computers from mechanical computing devices, from John Napier's "Napier's Bones" (1614) -- a forerunner of the sliderule -- and William Oughtred's sliderule (1621) which remained the cutting edge of computational technology for nearly 350 years, to Charles Babbage's "Difference Engine" (1822) and concept for the Analytical Engine (1830), and Herman Hollerinth's electric tabulating system for the US Census Bureau (1890) that lead to his formation of the Tabulating Machine Company (1896) which ultimately becomes IBM.
Against this backdrop of computing innovation there is a discussion of semiconductors and the evolution from vacuum tubes to transistors to integrated circuits and designers attempted to add computational power while reducing energy usage to avoid issues of overheating.
The first comsumer computer, the "Altair 8800" appeared in 1975. It consisted of a box of switches and LEDs without a screen or keyboard or mouse. As it did not come with an operating system, computer hobbyists (as they were then known) would have to program the Altair by turning switches on and off, then decode the resulting answers by charting the changes in the patterns of illuminated LEDs.
It wasn't until two such hobbyists (or hackers), Steve Jobs and Steve Wozniak put together a computer that came with a display, built-in keyboard and disk storage called the Apple, and began selling it at computer clubs an approximation of contemporary computers were available. Until that time, computers had been primarily the domain of highly trained computer technicians who input data and instructions using punch cards or magnetic tape then interpreted the output results. With the Apple, Radio Shack, Commodore and IBM PC can a new generation of computers that were affordable, available and usable by the consumer masses.
Chapter 1: Getting to Know the Hardware
Here we get look inside a standard "Wintel" desktop computer. Components are identified and their purposes explained. Similarly, we get a glimpse inside a Notebook PC to see how the hardware layout changes given the size constraints of a portable computer. Next, we explore Tablet PCs and the technologies behind the touchscreen: resistive, capacitive, surface acoustic wave, optical, and dispersive signal sensing.
Next there is a discussion of handwriting recognition: the ink (or raw handwriting path data) is processed by a character expert that takes a two-pronged approach. First it looks at stroke timing by looking at the ink as a sequence of time-separated points. The second approach uses a spacial matrix that compares the ink to a database of shapes. If the ink is a continuous script it is processed through a segmentation expert that identifies how to parse out the letters. Next a language expert application analyzes the result to contextually verify the result and identify any unrecognized letters or words.
Chapter 2: How Circuits Juggle Data
Here we begin with an overview of circuit boards, tracings, pin connectors and board components such as capacitors and resistors. Next we examine the complete motherboard layout for a big-picture perspective on the role of each component in the processing of data. Exta attention is given to the chip set (the North Bridge - which handles RAM and video - and the South Bridge - which handles I/O from all other ports) that facilitate the operation of the CPU. There is discussion of PCI-E that allows for point-to-point links through the South Bridge's crossbar switch. PCI-E is scalable and allows for channel bonding to increase the bandwidth for a particular component.
Chapter 3: How a PC Comes Alive
When a computer is turned on BIOS runs code that begins power-on self-test (POST) and search drives for an operating system. But first, BIOS collects device information from CMOS (which stores information on what components are installed on the computer). Next BIOS loads device drivers and interrupt handlers into memory. CPU checks the real-time clock and sends signals over the system bus to make sure all basic components are functioning. Display adaptor and video signals are tested and display BIOS code is added to overall system BIOS. Next BIOS check to see if it needs to test RAM, if it is a cold boot (meaning the computer was off) all RAM is tested, if it is a warm boot, or reboot, it skips the rest of POST. If it is a cold boot, BIOS runs a series of tests to ensure that RAM is functioning correctly. Finally, POST completes and BIOS transfers control to the OS.
Some attention is given to the hard disk boot sector which contains instructions for loading the OS and where to find all the necessary drivers, registry, services, and plug-and-play components.
Chapter 4: How an Operating System Controls Hardware
The operating system was originally designed to communicate with disk drives, but has taken on a hugely expanded role as the options for devices and peripherals expands geometrically. Controllers plug into the motherboard and translate instructions from the BIOS/driver into signals that the device can use. Controllers relay a signal to the interrupt controller which manages the IO Bus. Two types of interrupts exist: INTR (which is used for normal interrupts that can be deprioritized) and NMI (or a non-maskable interrupt that like a CTRL-ALT-DEL takes priority). When the CPU receives an interrupt it records a memory address to a stack so it can resume what it was doing when the interrupt is complete. The computer has 256 types of interrupts and stores in the interrupt descriptor table (IDT) the appropriate interrupt service routine (ISR) for each. When the ISR completes its job it sends a return from interrupt, RET, instruction to the CPU which takes that cue to look up the stack and find the memory address of its last function.
Next there is a discussion of plug-and-play and how the configuration manager adds ennumerators to itself for the devices plugged into the system. These ennumerators are stored in a hardware tree, which is examined by the OS for resource arbitration to ensure that each device has a unique interrupts (IRQ) and confirms with the device that IRQ it should "listen" for. Finally, the OS searches for the appropriate devices driver and loads it into memory to complete the boot.
Keeping track of all this information and more is the registry which uses five root keys with numerous subkeys and numerouse values beneath those to create a road map for the OS. The five (fairly self explanatory) keys are:
(1) HKEY_CLASSES_ROOT (HKCR)
(2) HKEY_CURRENT_USER (HKCU)
(3) HKEY_LOCAL_MACHINE (HKLM)
(4) HKEY_USERS (HKU)
(5) HKEY_CURRENT_CONFIG (HKCC)
The registry uses five primary data types for values:
(1) String value - plain text and numbers (most common)
(2) string array value - multiple strings of plain text and numbers
(3) expanded string value - points to locations
(4) DWORD values - numbers (hex in reg)
(5) binary values
No comments:
Post a Comment