Operating System #10 PC Booting: How PC Boots | Explained in Detail

preview_player
Показать описание
Operating System #10 PC Booting: How PC Boots | Explained in Detail
01:52 Powering Up PC: Physical address = (CS 4) + IP
= 0xffff0
• first instruction fetched from location 0xffff0.
• 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
• First instruction is at right on top of accessible
memory
• Should jump to another location

06:24 Powering Up BIOS: BIOS is present in a small chip connected to the
processor
– Flash/EPROM/E2PROM
• Does the following
– Power on self test
– Initialize video card and other devices
– Display BIOS screen
– Perform brief memory test
– Set DRAM memory parameters
– Configure Plug & Play devices
– Assign resources (DMA channels & IRQs)
– Identify the boot device
• Read sector 0 from boot device into memory location 0x7c00
• Jumps to 0x7c00

10:22 Powering Up MBR: Sector 0 in the disk called Master Boot Record
(MBR)
• MBR Contains code that boots the OS or another boot
loader
then begins to execute
• Size 512 bytes
446 bytes bootable code
64 bytes disk partition information (16 bytes per
partition)
2 bytes signature
• Typically, MBR code looks through partition table
and loads the bootloader (such as Linux or
Windows)
• or, it may directly load the OS

12:06 Powering Up bootloader: Loads the operating system
– May also allow the user to select which OS to load
(eg. Windows or Linux)
• Other jobs done
– Disable interrupts :
• Don’t want to bother with interrupts at this stage
• Interrupts re-enabled by xv6 when ready
– Setup GDT
– Switch from real mode to protected mode
– Read operating system from disk
The bootloader may be present in the MBR (sector 0)
itself

14:16 Powering Up OS: Set up virtual memory
• Initialize interrupt vectors
• Initilize
• timers,
• monitors,
• hard disks,
• consoles,
• filesystems,
• Initialized other processors (if any)
• Startup user process

16:08 Multiprocessor Organisation: 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

17:33 Multiprocessor Booting:
mpinit (7001) invoked from main (1221)
– Searches for an MP table in memory
• (generally put there by the BIOS)
• Contains information about processors in system along with
other details such as IO-APICs, Processor buses, etc.
• Extracts system information from MP table
– Fills in the cpu id (7024)
• CPU is a structure which contains CPU specific data (2304)
Рекомендации по теме
Комментарии
Автор

Very nicely assembled and presented! I'm an American who watches IIT lectures from time to time. I usually find the professors to be too serious, or harsh, as if they are trying to pound the knowledge into their students. Professor Rebeiro is a pleasant exception. This professor I would describe as "humble" and not "harsh." I wish everybody could be more fun-loving. Watching MIT lectures, I find the same harshness, so apparently its not just an Indian thing.

itsReallyLou
Автор

This is very good. I'm considered somewhat a PC expert, but always focused on a high level of process. I'm trying to understand more of the basic - how we got there - for application to single board computers and invention. This is most excellent.

douglasfelsenthal
Автор

I'm looking to learn even more detailed steps, going straight from pushing the power button to the CPU getting the reset signal is skipping many steps that I'm trying to examine. I'm basically trying to figure out how with no OS a computer can know enough to know that it has no os... the firmwear level, how does it know how to load a kernel, how does it run POST, how does it run cMOS, how does the cup even start to know about memory addresses, how many relays provide power to what components when the power button is pressed a physical connection is made allowing electrons to flow, that flow is regulated and controlled and sent to various parts in some scheme that gets the right voltage and amperage to the right parts at precise timing... all this breaks down to very small mechanical logic, but surely we don't manually program this by painstakingly setting permanent physical logic gates in a very specific layout by hand, the components are far to small for that, but I'm guessing we do still have people who program mechanical logic, and the work of physically making that tangible is done by robots, but that's the meat and potatoes of what I'm after, how do we figure out how to arrange logic gates in such a way that a BIOS and C-MOS and POST can exist THEN I and only after understanding that do I want to know how the CUP works on an electron level, Then I will concern myself with how kernels are loaded then, I know enough about after that to really really feel like I have a super sold grasp on how computers work on basically all levels. I know about OS development and I'm an application and web developer and super user on Unix like systems (especially Linux and Solaris) and a solid user on Wndows especially NT variants and I'm basically useless on pre-unix-adoption versions of Apple's OSes, but not a huge issue since these are very old and come from a time when apples was not popular so today you don't see a lot of older than old apples. So I'm lacking some knowledge on them, I'm not missing that knowledge. (Think 'I miss my mum' form of 'miss'.) But I want to know about complex mechanical programming with logic gates and how that can power software.

binaryglitch
Автор

What is the program to display the contents of first 512 byte of your primary hard disc???please suggest

neerajpatel
Автор

At which stage the basic clock, ram, several CPU registration configuration happen?

maverickavanish
Автор

ef ef ef ef zero -_-

Anand-wiyb