How does a computer work?
This document has been created to give you a better understanding of how the personal computer works and what it does each time you press the power button.
Powering on the computer
When you first press the power button the computer sends a signal to the computer power supply, which converts the alternating current (AC) into a direct current (DC) to supply the computer and its components with the proper amount of voltage and electricity.
Once the computer and its components have received ample power and the power supply reports no errors it sends a signal (using transistors) to the motherboard and the computer processor (CPU). While this is happening, the processor will clear any leftover data in the memory registers and give the CPU program counter a F000 hexadecimal number. This number is the location of the first instruction and tells the CPU that it's ready to process the instructions contained in the basic input/output system (BIOS).
BIOS and the POST
When the computer first looks at the BIOS, it begins the power-on self-test (POST) sequence to make sure the components in the computer are present and functioning properly. If the computer does not pass any of these tests, it will encounter an irregular POST. An irregular POST is a beep code that is different from the standard one or two beeps. For example, an irregular POST could generate no beeps at all or a combination of different beeps to indicate the cause of the failure.
If the computer passes the initial POST, it will next look at the first 64-bytes of memory located in the complementary metal oxide semiconductor (CMOS) chip, which is kept alive by the CMOS battery even when the computer is turned off. This chip contains information such as the system time and date and information about all the hardware installed in your computer.
After loading the CMOS information, the POST will begin inspecting and comparing the system settings with what is installed in the computer. If no errors are found it will then load the basic device drivers and interrupt handlers for hardware such as the hard drive, keyboard, mouse, floppy drive. These basic drivers allow the CPU to communicate with these hardware devices and allow the computer to continue its boot process.
Next, the POST will check the real-time clock (RTC) or system timer and the computer system bus to make sure both of these are properly working on the computer. Finally, you'll get a picture on your display after the POST has loaded the memory contained on the display adapter and has made it part of the overall system BIOS.
Next, the BIOS will check to see if it's currently performing a cold boot or warm boot (reboot) by looking at the memory address 0000:0472, if it sees 1234h the BIOS knows that this is a reboot and will skip the remainder of the POST steps.
If 1234h is not seen, the BIOS knows that this is a cold boot and will continue running additional POST steps. Next, it tests the computer memory (RAM) installed in the computer by writing to each chip. With many computers, you'll know it's performing this step if you see the computer counting the total installed memory as it's booting.
Finally, the POST will send signals to the computer floppy, optical, and hard drive to test these drives. If all drives pass the test, the POST is complete and instruct the computer to start the process of loading the operating system.
Booting the operating system
After the computer has passed the POST, the computer will start the boot process. This process is what loads the operating system and all of it's associated files. Because Microsoft Windows is the most commonly used operating system, this section will cover the process of loading Microsoft Windows.
The BIOS first hands control over to the bootstrap loader, which looks at the boot sector of the hard drive. If your boot sequence in CMOS setup is not setup to look at the hard drive first, it may look at the boot sector on any inserted floppy disk drive or optical disc first before doing this.
In this example, the Microsoft Windows XP NT Loader (NTLDR) is found on the boot sector and tells the computer where to find the remaining code on the hard drive. Next, Windows loads the ntdetect.com file, which displays the Windows splash screen and loads the Windows registry. After loading the registry, Windows begins to load dozens of low-level programs that make up the operating system into memory. Many of the initially loaded programs are what allow Windows to communicate with the essential hardware and other programs running on the computer.
After the registry has loaded the initial basic hardware devices, it begins to load Plug and Play devices, PCI, and ISA devices. After loading all these devices, Windows then moves to loading full support of the hard drive, partitions, and any other disk drives and then moves to all other drivers that have been installed.
Finally, after successfully completing the above steps any additional required services are loaded and Windows starts.
Hardware devices communicating with the computer
After the computer has loaded the operating system, hardware attached to the computer must be able to communicate with the CPU. Hardware communication is done by using an interrupt request (IRQ). Each time a hardware device needs the attention of the computer the interrupt controller sends the request (INTR) to the CPU so it temporarily stop what it is doing to process the request of the hardware device. Anything that was being currently done by the CPU is put on hold and stored as a memory address in the memory stack and is returned to after the interrupt request is processed.