Under the Hood
The goal of this page is to give an introductory information of a Personel Computer structure. So that, the potential users of DE_W32 utility to explore their drives. It is not intended to make the readers a Guru, as stated at the beginning, it is intended to provide a basic knowledge so that they can use the utility mode effectively.
The PC with MS-DOS (Microsoft Disk Operating System) was officially announced in 1981 although there were predecessors.
The structure and features of a PC changes as the technology develops; less components, higher speeds, more processing powers, more memory and more storage area. But, topology is still same. The very high level block diagram of a today’s PC is shown below.
Basic Input / Output System (BIOS) is the first and essential software component of a PC. Without the BIOS, a PC is just a bunch of electronic components that can do nothing other then consuming power. It resides on a Flash-ROM component. Although features of BIOSs may differ from manufacturer to manufacturer, they all provide the main functionality. A typical BIOS has following parts;
- Power On Test (POST)
- Bootstrap loader
- Function library for controlling hardware
Function library consists of routines that enable software to access the hardware. There are various mother boards that employ different components. Some operating systems and applications may need to use BIOS routines to access these hardware components. For sure, it is not practically possible to include all hardware components available in the library. Motherboard BIOS provides general functions for the hardware. Therefore, modern BIOSs support Extended BIOS feature, so that function libraries of plug-in boards’ BIOSs are made available for use.
When a PC is powered up or reseted, the CPU starts executing the BIOS code located at F000:0000 address. First task is to initialize some registers for timers, interrupt handlers, memory refresh etc. Then checks the first 640K memory block. Most BIOSs copy themselves into RAM memory to speed up the boot process.
Next step is to perform POST. In this stage, memory is checked. Detection of available hardware including plug-in board is done now. During this process, bootable devices are also identified. Some of this data is stored in a reserved RAM area called System Metrics with size of 256 bytes.
Now, main task of a BIOS is completed and it is time to load an operating system from a storage media. Bootstrap Loader of a BIOS finds first bootable media and loads the Master Boot Record Sector into memory starting at 0000:0000 address. Then transfers the execution to that address.
This sector is composed of a small executable code, disk signature, a table with information on the disk partitions and MBR marker. The code section is Boot Loader that loads an operating system. Partitions are logical parts of an HDD. They can be AT-style Master Boot Record (MBR) or GUID Partition Table format. GUID is a new architecture to overcome the limitations of MBR. In MBR format, an HDD can be divided into maximum of four primary partitions (multiple logical partitions are possible in extended partition). Each partition is used a logical disk drives; volumes. Partition table shows where these partitions are located on the physical HDD and type of the partition. The partition type in a Microsoft Windows Operating System can be one of the followings;
- Unused entry
- FAT12 File System
- FAT16 File System
- FAT32 File System
- Installable File System (IFS)
- Logical Disk Manager (LDM)
- Fault Tolerant (NTFT)
Until now, everything is operating system is independent although there may be slight differences in application. Since it would be easier to explain in this introductory text, FAT File System family will be explained.