3-Operating Systems- PC Hardware & Booting [Autosaved]
3-Operating Systems- PC Hardware & Booting [Autosaved]
PC Hardware and
Booting
Dr. M. Brindha
Associate Professor
Department of CSE
NIT, Trichy-15
CPUs
Processor
i386
Everything has an
address
0x3c0:0x3cf
0x60:0x6f
Processor
i386
0x1f0:0x1f7
Memory Map
Low and Extended Memory
(Legacy Issues)
• Why study it?
– Backward compatibility
• 8088 has 20 address lines; can address 220 bytes (1MB)
• Memory Ranges
– 0 to 640KB used by IBM PC MSDOS
• Other DOS versions have a different memory limit
– 640 KB to 1MB used by video buffers, expansion ROMS, BIOS
ROMs
– 1 MB onwards called extended memory
• Modern processors have more usable memory
– OSes like Linux and x86 simply ignore the first 1MB and load
kernel in extended memory
Address Types : (IO
Ports)
• Range : 0 to 216-1
• Used to access devices
• Uses a different bus compared
to RAM memory access
– Completely isolated from
• memory
Accessed by in/out
instructions
inb $0x64, %al
outb %al, $0x64
ref : http://bochs.sourceforge.net/techspec/PORTS.LST 8
Memory Mapped
I/O
• Why?
– More space
• Devices and RAM share
the same address
• space
Instructions used to
access RAM can also be
used to access devices.
– Eg load/store
Memory Map
Who decides the address
ranges?
• Standards / Legacy
– Such as the IBM PC standard
– Fixed for all PCs.
– Ensures BIOS and OS to be portable across
platforms
• Plug and Play devices
– Address range set by BIOS or OS
– A device address range may vary every time the
system is restarted
PC
Organization
Processor Processor Processor Processor
1 2 3 4
Memory bus
DRAM North Bridge
PCI Bus 0
bus
DMI
South Bridge PCI-PCI Ethernet USB
VGA
Bridge Controller Controller
PCI Bus 1
USB
USB USB USB device
device bridge device
More
PCI
Legacy devices
Devices PS2
(keyboard, mouse,
PC speaker)
The x86 Evolution (8088)
General Purpose Registers
• 8088
– •16 bit microprocessor
– •20 bit external address bus
• Can address 1MB of memory
– •Registers are 16 bit
• General Purpose Registers
• AX, BX, CD, DX,
• Pointer Registers
• BP, SI, DI, SP
• Instruction Pointer : IP
• Segment Registers GPRs can be accessed as
• CS, SS, DS, ES 8 bit or 16 bit registers
– •Accessing memory Eg.
• (segment_base << 4) + offset mov $0x1, %ah ; 8 bit move
eg: (CS << 4) + IP mov $0x1, %ax ; 16 bit move
The x86 Evolution (80386)
General Purpose Registers
• 80386
– 32 bit microprocessor
(1995)
– 32 bit external address bus
• Can address 4GB of memory
– Registers are 32 bit
General Purpose Registers
EAX, EBX, ECD, EDX,
Pointer Registers
EBP, ESI, EDI, ESP
Instruction Pointer : IP
Segment Registers GPRs can be accessed as
CS, SS, DS, ES 8, 16, 32 bit registers
– Lot more features e.g.
• Protected operating mode mov $0x1, %ah ; 8 bit move
• Virtual addresses mov $0x1, %ax ; 16 bit move
mov $0x1, %eax ; 32 bit move
The x86 Evolution
(k8)
• AMD k8 (2003)
– RAX instead of EAX
– X86-64, x64, amd64, intel64: all same thing
• Backward compatibility
– All systems backward compatible with 8088
Building and Booting an Operating System
reset
Powering up :
Reset
Power on Reset
Physical address = (CS << 4) + IP
Every register initialized = 0xffff0
to 0 except • first instruction fetched from location 0xffff0.
CS=0xf000, IP=0xfff0
• Processor in real mode (backward compatible to
8088)
• Limited to 1MB addresses
• No protection; no privilege levels
• Direct access to all memory
• No multi-tasking
Inaccessible • First instruction is at right on top of accessible
memory
memory
• Should jump to another location
first instructions 0x100000
(Jump to rom bios) 0xFFFF0
0xF0000
BIO
S
0
RAM
Powering up :
BIOS
Power on Reset
BIOS
Memory bus
DRAM North Bridge
• Memory Symmetry
• All processors in the system share the same memory space
• Advantage : Common operating system code
• I/O Symmetry
• All processors share the same I/O subsystem
• Every processor can receive interrupt from any I/O device
Multiprocessor
Booting
• One processor designated as ‘Boot Processor’ (BSP)
– Designation done either by Hardware or BIOS
– All other processors are designated AP (Application Processors)
• •
BIOS boots the BSP
•
• •BSP learns system configuration
BSP triggers boot of other AP
• – Done by sending an Startup IPI (inter processor interrupt) signal to the AP
http://www.intel.com/design/pentium/datashts/24201606.pdf 26
Building and Booting Linux