13.07.2015 Views

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

interBINDING AND LOADING• Constructing gates• Formatting object files for the convenience of boot loaders and dynamic loaders• Creating export modules that contain gates for operating-system interfacesFigure 11-2 shows the Binder specifications that combine the level-zero modules of XOS. The inputmodules contain only three unique segment names (the PL/M-<strong>286</strong> names: NUCLEUS_CODE,NUCLEUS_DATA, and STACK); therefore, the output module contains just three segments: one forinstructions, one for static data items, and one for the level-zero stack. The name of the output moduleis NUCLEUS; it is written to the file NUC.LNK. Similar specifications combine the level-one modules.Figure 11-3 shows the specifications to build a bootloadable file for the example operating system. TheSEGMENT statement assigns privilege levels to to each of the segments; segments not mentioned inthis clause receive privilege level 3 (PL 3) by default.The TABLE statement defines the descriptor tables. The RESERVE clause allocates space for theworking descriptors used by such modules as the memory-management module described inChapter 3. The ENTRY clause identifies the remaining segment descriptors that belong in each table.Builder allocates slots for each of these descriptors.The TASK statement provides information for contructing TSSs. The identifier assigned to each taskis the identifier of the descriptor of its TSS. The OBJECT clause identifies the module containing theinformation Builder can use to fill the segment-register and initial stack fields of the TSS.The GATE statement creates gates for each of the public procedures that are XOS primitives, assignsa privilege level to each gate, and gives each a name different from the procedure name.The EXPORT statement creates a linkable module KERNEL in file XOS.EXP that application modulescan use for binding to the gates for XOS primitives.RUN :F2:BND<strong>286</strong> &:Fl:POINT.OBJ, :Fl:SLOT.OBJ, &:Fl:MEMORY.OBJ, :Fl:DISP.OBJ, &:Fl:ALIAS.OBJ, :Fl:SEMAPH.OBJ, &:Fl:MBOX.OBJ, :Fl:INTRPT.OBJ, &:Fl:DESCR.OBJ , :Fl:DISQUE.OBJ, &:Fl:TASK.OBJ:Fl:MESSAG.OBJ, &PLM<strong>286</strong>.LIB&NAME (NUCLEUS) OBJECT (:Fl:NUC.LNK) NOLOAD DEBUGFigure 11-2. Binder Specifications for XOS Kernel11-6 121960·001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!