INVITATION TO CYBERSECURITY 18 ing how computers and the Internet works is vital for practitioners of cybersecurity—the better we understand, the more “light” we are able to shine in the darkness to see what is really going on. 2.2 Computer Hardware “The considerations which follow deal with the structure of a very high speed automatic digital computing system…” - “First Draft of a Report on the EDVAC” by John von Neumann, a pioneer of computer architecture Computers are made up of two basic components: hardware and software. Hardware is the physical computational components of the computer. Hardware is generic. It is designed to carry out a basic set of instructions and calculations. Software is the instructions that the computer hardware executes. Software is specific. It is designed to accomplish a task. Hardware is configured by software to carry out specific computational tasks. In a draft report in 1945 John von Neumann described the hardware architecture of a general-purpose computer that became the standard model in computing and is now known as the von Neumann architecture. The von Neumann architecture has four main hardware components: memory, storage (or disk space), a central processing unit (CPU), and input/output (I/O) devices. Computer programs and data are saved in storage. Programs and data are loaded into memory to be executed. I/O devices are what enable people to interact with computers through feeding them data (input) and observing their calculations (output). 2.2.1 Memory “When I think back on all the crap I learned in high school / It’s a wonder I can think at all / And though my lack of education hasn’t hurt me none / I can read the writing on the wall.” - “Kodachrome” lyrics by Paul Simon Computer memory can be pictured like a wall of post office boxes with box numbers— each box holds a value. Each block of memory typically holds a byte of data and is directly accessible via extremely tiny wiring at a memory address. Memory in modern computers is known as random-access memory (RAM) because values stored in memory can be accessed directly and in any order. The amount of addressable memory in a computer is based on a computer’s word size. The word size is the number of bits that can be processed at a time by the CPU. Figure 2.6 shows an 8-bit address scheme with memory locations ranging from 0x00 to 0xff. Each of the 256 blocks stores a byte, but in the figure only memory location 0x42 is shown holding a value (0x10). Modern computers have word sizes of either thirty-two or sixty-four bits, referred to as 32-bit or 64-bit architectures. Data in memory changes frequently, and it is normal for memory locations to hold outdated or random values known as garbage data. If due to bad programming or hacking, a program accesses one of these garbage values, the result may be an error or a program crash—the abrupt termination of a running program. As alluded to earlier, if a
RkJQdWJsaXNoZXIy MTM4ODY=