Unit 2 DOS-loading

Download Report

Transcript Unit 2 DOS-loading

DOS- Disk Operating System
Contents
Internals of DOS,
 DOS loading,
 DOS memory map,
 Concepts of TSR,

ROM-BIOS
POST
 System configuration analysis
 Time of the day
 Print Screen
 Bootstrap loader
 I/O support programs

DOS
Interface between user and computer
 Convert command into Computer
actions
 DOS manager, BIOS caretaker

The structure of DOS

Three layers are:
◦ The BIOS (Basic Input/Output System)
◦ The DOS kernel
◦ The command processor (shell)
The BIOS Module



Specific to the individual computer system and is provided
by the manufacturer of the system.
It contains the default resident hardware-dependent drivers
for the following devices:
◦ Console display and keyboard (CON)
◦ Line printer (PRN)
◦ Auxiliary device (AUX)
◦ Date and time (CLOCK$)
◦ Boot disk device (block device)
MS-DOS kernel sends I/O request packets to these device
drivers; the drivers translate these requests into the proper
commands for the various hardware controllers.
The BIOS Module



continued…
In many MS-DOS systems, the most primitive parts of
the hardware drivers are located in read-only memory
(ROM) so that they can be used by stand-alone
applications, diagnostics, and the system startup
program.
The terms resident and installable are used to
distinguish between the drivers built into the BIOS and
the drivers installed during system initialisation by
DEVICE commands in the CONFIG.SYS file.
The BIOS is read into random-access memory (RAM)
during system initialisation as part of a file named
IO.SYS.
MS-DOS Kernel
•The kernel provides a collection of hardware-independent services called system functions.
- File Management
- Memory Management
- Device Input and Output
- Process control
The DOS Kernel
The kernel is a proprietary program and
provides a collection of hardware-independent
services called system functions.
 These functions include the following:

◦
◦
◦
◦
◦
File and record management
Memory management
Character-device input/output
Spawning of other programs
Access to the real-time clock
The DOS Kernel
continued…
Programs can access system functions by
loading registers with function-specific
parameters and then transferring to the
operating system by means of a software
interrupt.
 The DOS kernel is read into memory during
system initialization from the MSDOS.SYS file
on the boot disk. (The file is called
IBMDOS.COM in PC-DOS.) This file is marked
with the attributes hidden and system.

The Command Processor
The command processor, or shell, is the user's
interface to the operating system. It is
responsible for parsing (describing) and carrying
out user commands, including the loading and
execution of other programs from a disk or
other mass-storage device.
 The default shell that is provided with MS-DOS
is found in a file called COMMAND.COM. It is a
special class of program running under the
control of MS-DOS.

More about COMMAND.COM

Default MS-DOS shell, COMMAND.COM, is divided into
three parts:
◦ A resident portion
◦ An initialization section
◦ A transient module


The resident portion is loaded in lower memory,
above the DOS kernel and its buffers and tables. It
contains the routines to process Ctrl-C and Ctrl-Break,
critical errors, and the termination (final exit) of other
transient programs. This part of COMMAND.COM
issues error messages and is responsible for the familiar
prompt
Abort, Retry, Ignore?
The resident portion also contains the code required to
reload the transient portion of COMMAND.COM when
necessary.
More about COMMAND.COM
continued…
The initialization section of
COMMAND.COM is loaded above the
resident portion when the system is
started.
 It processes the AUTOEXEC.BAT batch
file (the user's list of commands to
execute at system startup), if one is
present, and is then discarded.

More about COMMAND.COM



continued…
The transient portion of COMMAND.COM is loaded
at the high end of memory, and its memory can also be
used for other purposes by application programs.
The transient module issues the user prompt, reads the
commands from the keyboard or batch file, and causes
them to be executed.
When an application program terminates, the resident
portion of COMMAND.COM does a checksum of the
transient module to determine whether it has been
destroyed and fetches a fresh copy from the disk if
necessary.
User Commands
The user commands that are accepted by
COMMAND.COM fall into three
categories:
 Internal commands

(carried out by code embedded in COMMAND.COM)

External commands
(names of programs stored on disk file)

Batch files
(batch or group of DOS commands)
DOS Loading



When system starts/reset program execution
begins at an address FFFF0H, which lies
within ROM area, containing a jump
instruction to system test code and the ROM
bootstrap routine,
ROM bootstrap routine reads the disk
bootstrap routine from the boot sector of
the system startup disk into memory at some
arbitrary address,
And then transfers control to it.
DOS Loading
Continued….
The disk bootstrap routine checks for MSDOS, by checking first two files from first
sector of root directory.
 If not found user is prompted to change disk,
and strike any key to try again.
 If found, both files will be read into memory
by disk bootstrap routine and transfers
controls to the initial entry point of IO.SYS.

DOS Loading
Continued….
IO.SYS consists of two separate modules
◦ BIOS: containing the linked set of resident device drivers,
◦ SYSINIT: Supplied by Microsoft and linked into the IO.SYS
file, along with the BIOS by the computer manufacturer.
 SYSINIT is called by BIOS initialisation code,
 Determines the contiguous memory present in the system
and then relocates itself to high memory,
 Then it moves the DOS kernel, MS-DOS.SYS, from its original
load location to its final location, overlaying the original
SYSINIT code and any other expendable initialisation code of
IO.SYS

DOS Loading



Continued….
SYSINIT, next calls the initialisation code in MSDOS.SYS,
DOS kernel initailises its internal tables and work areas,
sets up the interrupt vectors 20H through 2FH, and
traces through the linked list of resident device drivers,
calling the initialisation function for each.
These driver functions determine the equipment status,
preform any necessary hardware initialisation, and set up
the vectors for any external hardware interrupts the
driver will service.
Boot Process

Step 0: CPU Reset
◦ Blank memory, except ROM
◦ Start running from address FFFF0 (only 16
bytes left!)
Step 1: Power-on self test (POST)
Step 2: ROM BIOS startup program
searches for and loads an OS
 Step 3: OS configures the system and
completes its own loading
 Step 4: User executes applications
software


Step 1: POST & BIOS Boot
A built-in diagnostic program that checks the
hardware to ensure that everything is
present and functioning properly, before the
BIOS begins the actual boot.
 It then continues with additional tests, e.g.,
memory test, as boot process is proceeding.
 The ROM BIOS startup program surveys
hardware resources and needs, and assigns
system resources to meet those needs

POST
Step 2: BIOS Finds & Loads OS
Most often the OS is loaded from logical
drive C on the hard drive
 Configuration information on CMOS chip
tells startup BIOS where to look for the
OS
 BIOS turns to that device, reads the
beginning files of the OS, copies them into
memory, then turns control over to the
OS

◦ Master Boot Record (MBR) loaded.
BIOS Finds
& Loads OS
28
Step 3: OS Completes Boot
The OS checks some of the same things
that startup BIOS checked (e.g., available
memory and whether memory is reliable)
 The OS loads software to control the
mouse, a CD-ROM, a scanner, and other
peripheral devices (generally have device
drivers)

29
Boot Process
30
Step 4: User Executes Applications Software
The OS finds the applications software
(on a secondary storage device), copies
software into memory, and turns control
over to it
 User commands the applications software,
which makes requests to the OS, which
uses the system resources, system BIOS,
and device drivers to interface with and
control the hardware

31
8086 MEMORY MAP



64 K


384
K ROM MAP
8086
MEMORY

ROM BIOS
ROM BASIC

F0000H - FFFFFH
Present in older computers
Reserved ROM


Video BIOS ROM
C0000H - C7FFFH
Video RAM
A0000H - BFFFFH


A0000H



User RAM
640 K RAM


Resident portion of DOS
Varies between 12 K to 40 K
BIOS and DOS data area
00400H - 005FFH
Interrupt Vector Table
00000H - 003FFH



1K
Comparison between DOS and BIOS
Parameters
DOS
BIOS
Related to
Disk Operations
Covers all I/O devices
Loaded
from
Bootable disk(hard/ floppy
disk)
In ROM
Uses function
of
BIOS
Not uses DOS
functions
Hardware
Independent
Dependent
Command
Set
Own
Not
Command
Interpreter
Yes: Copy, print and delete No:
files
Ex:
MOV AH,01H
INT 21H
MOV AH,00H
MOV AL,03H
INT 10H
File Management

Block Devices are accessed on a sector basis. The MS- DOS kernel through the
device driver sees a block as a logical fixed size array of sectors. the device
driver in turn translates the logical sector requests from the MS – DOS into
physical locations on the block device.

MS – DOS file system is divided into four parts
- Boot Sector
- Always at the beginning of a partition.
- Contains OEM identification, a loader routine , and a BIOS parameter block.
- File Allocation Tables (FAT)
- Provides a map to the storage locations of files on the disk by indicating which
clusters are allocated to each file.
- Second copy of FAT as back up.
- Free cluster is found by scanning the FAT for a zero value.
- Root directory
- Root directory entries are 32 bytes long.
- Each entry includes a filename and extension, size, starting FAT entry, the time
and date the file was created and the files attributes.
- Files Area
- Contains subdirectories, file data and unallocated clusters.
- The area is divided into fixed size clusters and the use for a particular cluster is
specified by the corresponding FAT entry
Memory Management




Based on a pool of variable sized memory blocks.
Two basic functions are to allocate a block from the pool and to return the allocated block to the pool.
MS-DOS compatible personal computers can be fitted with three kinds of RAMs
◦ Conventional Memory
◦ Expanded Memory
◦ Extended Memory
Conventional Memory
- Up to 1MB of Memory is directly addressable.
- Physical addresses for references are generated by a 16-bit segment register combined with 16-bit
offset.
- Out of 1MB MS-DOS occupies 640KB of the conventional memory.
- This 640KB is divided into three zones
- The interrupt vector table
- Occupies lowest 1024 bytes of memory.
- Its address and length are hardwired into the processor and cannot be changed.
- The operating system area
- Begins immediately above the interrupt vector table.
- Holds the operating system, its tables and buffers, and device drivers.
- Amount of memory occupied varies from version to version of MS-DOS.
- The transient program area
- Remainder of the 640KB area.
- Organized into a structure called Memory Arena, which is divided into arena entries (memory
blocks).
- Each arena entry has a arena entry header.
How MS-DOS supports Conventional Memory Management
The MS-DOS kernel supports three memory management functions, invoked with interrupt 21H, which operate on t
TPA:
- Function 48H (Allocate Memory block)
- Function 49H (Free Memory block)
- Function 4AH (Resize Memory block)

The memory manager can use any of three allocation strategies:
- First fit – the arena entry at the lowest address that is large enough to satisfy the request.
- Best fit – the smallest available arena entry that satisfies the request, regardless of its position.
- Last fit – the arena entry at the highest address that is large enough to satisfy the request
Default approach used by MS-DOS is First-fit approach.

Expanded Memory
- To circumvent the 1MB limit of conventional memory, expanded memory was designed.
- As much as 8MB of expanded memory can be installed in a single machine.
- Made available to the application software in 16KB pages.
Expanded Memory Manager
- Provides an interface between application programs and expanded memory.
- Divided into Driver and Manager.
- Manager controls the status, allocation, mapping and deallocation of expanded memory.
Extended Memory
- Storage at addresses above 1MB that can be accessed in Protected mode.
- Extended memory is linearly addressable, so no manager required.
Device Input and Output
MS-DOS recognizes two types of devices: block devices e.g. floppy disk or fixed
disk drives; and character devices, e.g keyboard, display, printer, and
communication ports.
 MS-DOS identifies each block device by a drive letter assigned when the devices
controlling software, the device driver, is loaded. A character device on the other
hand, is identified by a logical name built into the device driver.
 Distinction between character and block devices is that the MS-DOS always adds
new block – device drivers to the tail of the driver chain but adds new character –
device drivers to the head of the chain.
 Techniques to access character devices:
- Handle type function calls
A handle is a 16 bit number returned by the operating system whenever a
device is
opened or created.
- Character input and output functions:
Interrupt 21H functions 01H to 0CH. These functions are designed to
communicate
directly with the keyboard, display, printer and serial port.

Process Control
Process, or task, control includes program loading, task execution, task termination,
task scheduling and intertask communication.
 MS-DOS is not a multitasking operating system ,it is a single tasking operating
system.

Computer Memory and Memory Mapping
Use of Hardware mapping registers in protected address
space
 Programs are at same address space and executed
simultaneously
 It maps pages of two sizes(4 KB and 2 MB)
 Processes of 1 user are protected from other users
process
 Users are not able to use other users data

Hardware Memory Mapping Register




CR3 is the hardware mapping register
It points to table available in computer memory
CR3 contains the address of top level table(Page map
level4)
Page Map Level:
It has 512 entries which points different pages in memory
first level of memory translation hierarchy
logical to virtual address
0-11 bit page offset
12-20 page table index
21-29 page directory index
30-38 page directory pointer
39-47 PML index
Hardware Memory Mapping Register

Page Directory Pointer Table
second level of memory translation
512 entries, points to Page Directory Table

Page Directory Table
third level of memory translation
512 entries, points to Page Table

Page Table
fourth level of memory translation
512 entries, points to Pages in memory
physical address of destination

TLB
available in cache
Recently used pages
BIOS and DOS Interrupts

BIOS Calls: INT 10H
Function Description
Input
Output
00H
Set Video Mode
AH=00h
AL= Video Mode
Nothing
01H
Set Cursor Type
AH=01h
CH= Starting Line of Cursor
CL= Ending Line of Cursor
Nothing
02H
Set Cursor
Position
AH=02h
BH= Page
DH= row (x co-ordinate)
DL= column (y co-ordinate)
Nothing
03H
Get Cursor
Position
AH=03h
BH= Page
CH= Starting of Cursor
CL= Ending of Cursor
DH= row DH= column
08H
Read character
and attribute at
cursor
AH=08h
BH= Page
AH=attribute
AL= character
BIOS and DOS Interrupts

BIOS Calls: INT 10H
Functio
n
Description
Input
Output
09H
Write character
and attribute at
cursor
AH=09h
AL= character
BH=Page
BL= Attribute or
color
CX= count of
characters
Nothing
0AH
Write character
at cursor
AH=0Ah
AL= character
BH=Page
BL= color (graphics)
CX= count of
characters
Nothing
0CH
Write graphics
pixel
AH=0Ch
AL= Pixel value
BH=Page
CX= Column (X)
DX=Row(Y)
Nothing
BIOS and DOS Interrupts

DOS Calls: INT 21H
Function Description
Input
Output
00H
Terminate
Process
AH=00h
CS= Seg address of PSP
Nothing
01H
Character input
with echo
AH=01h
AL= 8 bit input data
02H
Character output
AH=02h
DL= 8 bit data to output
Nothing
08H
Character input
without echo
AH=08h
AL= 8 bit input data
09H
Display String
AH=09h
DS:DX= Segment: offset of
string
Nothing
BIOS and DOS Interrupts

DOS Calls: INT 21H File Operations
Function Description
Input
Output
3CH
Create File
AH=3Ch
CX= File attribute
DS:DX= offset of path name
Successful: CF=0, AX=
Handle
unsuccessful: CF=1, AX=
Error code
3DH
Open File
AH=3Dh
AL= Access Mode
DS:DX= offset of path name
Successful: CF=0, AX=
Handle
unsuccessful: CF=1, AX=
Error code
3EH
Close File
AH=3Eh
BX= Handle
Successful: CF=0
unsuccessful: CF=1 AX=
Error code
3FH
Read File
AH=3Fh
BX= Handle
CX= no of bytes to read
DS:DX =offset of path name
Successful: CF=0, AX=
bytes transferred
unsuccessful: CF=1, AX=
Error code
40H
Write File
AH=40h
BX= Handle
CX= no of bytes to write
DS:DX =offset of buffer
Successful: CF=0, AX=
bytes transferred
unsuccessful: CF=1, AX=
Error code