(C) Copyright IBM Corp. 1992
Cover
Version Notice
Abstract
Acknowledgements
Figures
The New OS/2 Version 2.0 Logo
Evolution of OS/2
4GB Global Linear Address Space
Process Address Space Layout
Address Translation - Linear Address to Physical Address
Page Swapping
Mapping 16:16 Memory References
Thunk Concept
Thunks - 16-Bit versus 32-Bit
16:16 Shared Address Ranges
DosDebug Function
Sample DosDebug Function Call
OS/2 Version 2.0 Installation
The Initial System Configuration Screen
Selecting Features to Install
Configuration Details
Installation Progress Indication
OS/2 Version 2.0 Tutorial
A Typical OS/2 Version 2.0 CONFIG.SYS
OS/2 Version 2.0 I/O Related Components
Hard Disk Layout
FDISKPM Showing Disk One (of a Two Disk System)
FDISKPM Showing Disk Two (of a Two Disk System)
FDISK Utility (in Full-Screen Mode)
Boot Manager Selection Menu
Boot Manager Selection Menu - Advanced Mode
80386 General, Segment, and Status Registers
Real Mode Addressing
Protected Mode Addressing - without Paging
Protected Mode Addressing - with Paging
80386 Ring-Oriented Privilege Scheme
Virtual 8086 Environment - Memory Management
Micro Channel Participants and Data Transfer Paths
Basic Data Transfer Mode
Streaming Data Mode
Multiplexed Streaming Data Mode
SCSI Subsystem Block Diagram
Adapter Component Block Diagram
SCSI BIOS Interface Block Diagram
IBM SCSI Adapter I/O Ports
Overview of Delivery Support
Locate Mode Control Block Delivery Structure
SCB Structure Used by the IBM SCSI Adapter
IBM SCSI Adapter Scatter/Gather List
IBM SCSI Adapter Termination Status Block
Tables
Memory Object Classes
Partition Format Accessibility
IPF NLS Language Files
NLS Country Codes and Codepages
Data and Address Bus Widths for Micro Channel Participants
Special Notices
Preface
Related Publications
Overview
Intel 80386 32-Bit Microprocessor Support
Memory Management
Task Management
32-Bit Programming Environment
16-Bit Application Compatibility
Installation
Hardware Exploitation
Boot Manager
Multiple Virtual DOS Machines
Windows Application Support
Workplace Shell
Summary
Memory Management
Introduction
Flat Memory Model
Memory Objects
Allocation and Management
Guard Page Technique
Virtual Memory Management
Page Attributes
Memory Protection
Physical Memory Management
Address Translation
Managing Paging
Processing Page Faults
16-Bit Applications in a 32-Bit Environment
Address Conversion and Translation
Thunking
Shared Memory
Program Loading
Summary
Task Management
Dispatching
16-Bit Application Support
32-Bit Application Support
Interrupt Handling
Signal and Exception Handling
Thread Management
Creating Threads
Controlling Threads
Waiting On and Terminating Threads
Semaphores
Summary
Debugging Support
Functional Description
What Can Be Debugged
DosDebug() Function
Summary
Installation Considerations
Pre-Installation Planning
Processor Requirements
Memory Requirements
Fixed Disk Requirements
Beginning Installation
Installation Options
Installing Optional Features
Configuring System Parameters
Progress Indication
After Installation
Understanding the System Parameters
Starting Programs Automatically
Selective Install
Recovering the Desktop
Installation from a LAN
Installing over Existing Versions
Summary
Hardware Considerations
Device Driver Support
Compatibility with OS/2 V1.3
Virtual Device Drivers
Device Helper Functions
New Disk Device Driver
Layered Device Driver Architecture
Base Device Drivers
File System Considerations
High Performance File System Changes
FAT File System Changes
Disk Volume Considerations
UNDELETE Command
Volume Manager
Pager (Swapper)
Hardware Support Levels
Large Main Memory Support
Microprocessor Support
Disk and SCSI Device Drivers
Video Display Support
AT Bus Serial Port Support
Pointing Device Support
When OS/2 Version 2.0 Will Not Run
Summary
Boot Manager
Boot Manager Architecture
Partitions
Logical Drives
Logical Drive Boot Names
Multi-Boot Block
Migration from Other Operating Systems
Performance Impacts
Partitioning the Fixed Disk
Boot Manager Installation
FDISKPM Program
FDISK Program
SETBOOT Utility
Selecting an Operating System
Sharing Partitions between Operating Systems
AIX Considerations
Operating System Restrictions
Summary
National Language Considerations
Single-Byte Languages
Iceland
Czechoslovakia
Hungary
Poland
Yugoslavia
Turkey
Double-Byte Languages
Bidirectional Languages
Installation
Programming Interface
Bidirectional User Interface
Message Files
Information Presentation Facility
Supported Countries
Summary
Intel 80386 Architecture
Physical Characteristics
Memory Addressing
Real Mode
Protected Mode (Segmented Memory Model)
Protected Mode (Flat Memory Model)
Paging
Task Switching
Protection
Type Checking
Limit Checking
Privilege Levels
Restriction of Procedure Entry Points
Reserved Instructions
Interrupts
Input/Output Processing
Virtual 8086 Mode
Numeric Coprocessor Utilization
Multi-Processing
The Intel 80486 Processor
Micro Channel Architecture and SCSI
Micro Channel Architecture
Micro Channel Participants
Bus Master Adapters
DMA Adapters
Simple Adapters
Data Transfer Modes
Basic Data Transfer Mode
Streaming Data Mode
Multiplexed Streaming Data Mode
Data Integrity and Exception Handling
Parity Checking
Synchronous Exception Signaling
IBM SCSI Implementation
What is SCSI?
IBM SCSI Adapters
Adapter Components
SCSI BIOS
Support for Generic SCSI Functions
Subsystem Control Block Architecture
I/O Port Definitions
Delivery Service Structure
Delivery Service Facilities
Additional Information
Lab Session - 32-Bit Memory Model
Objectives
Exercise 1 - Memory Allocation
Step 1 - Normal Memory Allocation
Step 2 - Memory Protection Violation
Step 3 - Large Memory Allocation
Expected Results from Exercise 1
Step 1
Step 2
Step 3
Source Code MEMLAB1.C
Exercise 2 - Memory Protection
Expected Results from Exercise 2
Source Code MEMLAB2.C
Exercise 3 - Multiple DOS Sessions
Expected Results from Exercise 3
Source Code MEMLAB3.C
Sample Input File for MEMLAB3.EXE
Exercise 4 - Multiple Threads
Expected Results From Exercise 4
Source Code MEMLAB4.C
Program to Display Swap File Size
Source Code SWAPSIZE.C
Include File SWAPSIZE.H
Resource File Source SWAPSIZE.RC
MAKE File SWAPSIZE.MAK
Module Definition File SWAPSIZE.DEF
Linkage Parameters SWAPSIZE.L
Glossary
address conversion
address translation
alias
ANSI
API
arena
Bidi
BIOS
bit
Boot Manager
boot name
byte
cdecl
CD-ROM
compatibility region
compatibility region mapping algorithm
CRMA
DDE
debugging
device driver
DLL
DMA
DOS
DosDebug()
DOS Settings
drag and drop
ESDI
extended attributes
extended partition
far
FAT
flat memory model
free swap frame linked list
FSD
gate
GB
GDT
general protection exception
global descriptor table
guard page
guard page exception
guard page technique
HPFS
IDT
IFS
Information Presentation Facility
interrupt
Installable File System
interrupt descriptor table
I/O
IOPL
IPF
KB
LDT
local descriptor table
logical drive
MB
MBB
MBR
memory object
mixed model programming
Multiple Virtual DOS Machines
multiplexed streaming data mode
MVDM
near
NPX
NULL
page
page ager
page directory
page directory base address
page directory base register
page fault exception
page frame
page offset
page table
partition
pascal
PDBR
PIB
PIC
POST
primary partition
privilege level
process address space
protected mode
RAM
real mode
ROM
SCB
SCSI
segment
segment selector
semaphore
service layer
signal
sparse object
streaming data mode
system region
TCB
TIB
thunk
tiled local descriptor table
transaction lookaside buffer
trap 000D
trap 000E
task state segment
TSS
virtual device driver
virtual page structure
virtual DOS machine
virtual machine
virtual 8086 mode
Workplace Shell
0:32
16:16
16-bit
16/32-bit region
32-bit
80386
80486
_far16