DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7d560fa61⟧ Wang Wps File

    Length: 17300 (0x4394)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN63.08«

Derivation

└─⟦003a8b650⟧ Bits:30006009 8" Wang WCS floppy, CR 0044A
    └─ ⟦this⟧ »~ORPHAN63.08« 

WangText

…1b……00……00……00……00…?…0a……00……00…?…0b…?
?…07…>…0e…>…0f…>…06…>…07…=…0d…=…0e…=…01…=…86…1                                              …02…           …02…   …02…        

…02…CPS/SDS/001

…02…OKH/810227…02……02…
CAMPS SYSTEM DESIGN SPECIFICATION
…02……02…CAMPS








                 T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲



   5.6  KERNEL ..................................... 
   277
       5.6.1  Summary of Requirements..............  277
         5.6.1.1  General Description .............. 
         277
           5.6.1.1.1  Process Concept .............. 
           279
           5.6.1.1.2  Security ..................... 
           279
           5.6.1.1.3  Process Environment .......... 
           281
           5.6.1.1.4  Intrfaces ...................  281

         5.6.1.2  Functions ........................ 
         284
           5.6.1.2.1  Directory Functions .......... 
           284
             5.6.1.2.1.1  Access to Objects ........ 
             285

           5.6.1.2.2  Security ..................... 
           285
             .6.1.2.2.1  Access Authorization .....  286

           5.6.1.2.3  Device Management ............ 
           287
             5.6.1.2.3.1  Device Security .......... 
             289

           5.6.1.2.4  Process Management ........... 
           289
             5.6.1.2.4.1  Process Hierarchy ........ 
             90
             5.6.1.2.4.2  Process Attributes ....... 
             292
             5.6.1.2.4.3  Process Management
                          Functions ................ 
             292

           5.6.1.2.5  Process Scheduling ........... 
           293
             5.6.1.2.5.1  Priorities ............... 
             293
           5.6.1.2.5.2  Time Slicing .............  294
             5.6.1.2.5.3  Process Scheduling
                          Interfaces ............... 
                       294

           5.6.1.2.6  Process Communication ........ 
           294
             5.6.1.2.6.1  Synchronization Elements . 
             294
             5.6.1..6.2  Basic Process Communication
                          Functions ................ 
                         295
             5.6.1.2.6.3  IO System ................ 
             296

           5.6.1.2.7  Page Management .............. 
           300
             5.6.1.2.7.1  Page Manager Concepts .... 
             301
             5.6.1.2.72  Page Manager Functions ...  304
             5.6.1.2.7.3  Page Manager Security
                          Aspects .................. 
                         307

           5.6.1.2.8  Timer Management ............. 
           307


         5.6.1.3  Kernel Control ................... 
         308
           5.6.1.3.1  Parameter Control ............ 
           308
           5.6.1.3.2  Initialization ............... 
           309
           5.6.1.3.3  Error Hndling ...............  309

         5.6.1.4  Characteristics .................. 
         309
           5.6.1.4.1  Availability ................. 
           310
           5.6.1.4.2  Security ..................... 
           310

         5.6.1.5  Design and Construction .......... 
         310
         5.6..6 Documentation .....................  310

       5.6.2  Environment .......................... 
       310
         5.6.2.1  Standard Hardware, Firmware and
                  Software ......................... 
                310
         5.6.2.2  External Interfaces .............. 
         310
       5.6.2.3  Subsystem Interfaces .............  310…86…1
               …02…   …02…   …02…   …02…                             
                    
5.6  K̲E̲R̲N̲E̲L̲



5.6.1  S̲u̲m̲m̲a̲r̲y̲ ̲o̲f̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲



5.6.1.1  G̲e̲n̲e̲r̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

   KERNEL is the interface between CAMPS software and
   hardware. The CR80D hardware provides a set of low
   lvel hardware objects, such as CPUs, memory modules,
   memory mapping module, I/O busses, I/O devices, and
   a set of operations on those objects by means of the
   CR80D instruction set.

   The main purpose of most pieces of system software
   is to hide certin hardware features, replacing them
   with a new set of features, which are more suitable
   for the application area at hand. This can be viewed
   as an abstraction of the actual physical machine into
   a virtual machine, which will be the only one accessble
   by application software. Actually this abstraction
   process is repeated a number of times and gives rise
   to several layers of system software. Each layer transforms
   the underlying virtual machine into a new one, which
   is then provided to upper lyers. KERNEL constitutes
   the lowest level of system software in this sense.

   The next level of abstraction above the KERNEL is constituted
   by SFM and IOC respectively:

   - SFM transforms each disk device (controller) into
     a set of disk units, eachconsisting of a number of
     disk files.

   - IOC transforms each line termination device (LTU
     or TDX Host IF) into a set of logical communication
     lines.

   In a rather crude model, the relations between KERNEL,
   SFM, IOC and the rest of CAMPS software i shown on
   the diagram 5.6.1.1-1.



















































5.6.1.1-1…86…1         …02…   …02…   …02…   …02…                                        
   
5.6.1.1.1    P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲n̲c̲e̲p̲t̲

         The most important new concept introduced by KERNEL
         is that of a p̲r̲o̲c̲e̲s̲s̲.

         A pr̲o̲c̲e̲s̲s̲ is defined as the transformation of a given
         set of data performed y the execution of an associated
         program.

         A program is defined as a sequence of machine instructions.

         The data associated with a process are called the p̲r̲o̲c̲e̲s̲s̲
         ̲d̲a̲t̲a̲.̲

         The instructions for manipulating the process data
         are collected in the assoiated program. The available
         instructions are the CR80D user instructions (non privileged
         hardware instructions) together with the system commands
         provided by KER, SFM and IOC.

         Program and process data reside in completely separate
         parts of memor, and the same program may well be executed
         by several processes.

         Execution of processes may be truly parallel if the
         machine contains more than one CPU. Otherwise execution
         is pseudo-parallel, meaning that execution of the running
         process may atany place in the program be interrupted
         and another process may then resume execution from
         a point in the program where it was previously interrupted.

         Process data and program associated with a given process
         are specified by two sets of Memory Trnslation Tables
         belonging to the process. They are loaded into the
         map module each time the process resumes execution.
          (See figure 5.6.1.1.1-1)



5.6.1.1.2    S̲e̲c̲u̲r̲i̲t̲y̲

         Security is closely related to the process concept
         in that all system resourcesare allocated to and exchanged
         between processes. So security actually amounts to
         controlling the access to system resources, including
         information carrying resources, by processes.…86…1    
             …02…   …02…   …02…   …02…                                     
              


























                     Fig. 5.6.1.1.1-1
Relations between HW and SW packages…86…1         …02…   …02…   …02…   …02…                           
                
         KERNEL implements the basic tools for protection of
         resources as described in more detail in section 5.6.1.2.2.



5.6.1.1.3    P̲r̲o̲c̲e̲s̲s̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲

         From "within" a process the envionment looks as if
         the process is executed within a monoprogrammed machine
         with a CPU, a memory and a set of peripheral files
         and/or lines. The process exchanges data with the environmental
         files and lines. It does not need to recognize other
         proceses except that they may cause a slow down of
         the CPU.

         Processes may, however, cooperate in performing a specific
         task. They do so by exchanging data and synchronizing
         their activities. This is done by the process communication
         tools provided by ERNEL.

         Synchronization and data exchange between processes
         is done by means of s̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲ ̲e̲l̲e̲m̲e̲n̲t̲s̲ ̲as described
         in 5.6.1.2.6.  Based upon synchronization elements,
         the I/O system implements special tools for data exchange
         with SFM and IOC.


5.6.1.1.4    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         KERNEL interfaces to hardware and to all other CAMPS
         software packages. Three packages are of special interest:

         a)  SSC

             Takes all high level decisions concerning resource
             allocation and resource sharing.

         b)  SFM

             Contols all disk storage.

         c)  IOC

             Controls all communication lines.

         The main interfaces are shown on the diagram overleaf.…86…1
                 …02…   …02…   …02…   …02…                                 
                  












































Figure 5.6.1.1.4-1…01…KERNEL Interfaces…86…1         …02…   …02…   …02…   …02…                            
               








         1.  I/O Activation
         2.  I/O Completion Notification
         3.  I/O Instruction
         4.  Device Interrupt
         5.  Process creation, deletion, activation, and deactivation
         6.  Timer Interrupt                                     7. Send,
                                                                    Await
                                                                    and
                                                                    I/O
                                                                    System
                                                                    Functions
         8.  Page Fault Interrupt
         9.  Segment creation, deletion, transfer, and mapping
         10. Set Time
         11. Read Time, Schedule and Cancel Time Signal
         12. Time Signal
         13. Timer Interrupt
         14. Error Report to CallingProcess
         15. Error Report to Parent





                FIGURE 5.6.1.1.4-1 (CONT.)


5.6.1.2  F̲u̲n̲c̲t̲i̲o̲n̲s̲



5.6.1.2.1    D̲i̲r̲e̲c̲t̲o̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         Directory Functions are KERNEL tools for resource allocation.

         Examples of system resources, from here on called o̲b̲j̲e̲c̲t̲s̲,
         are emory segments, processes, CPU's and synchronization
         elements. Objects are dynamically created and removed
         by processes, and exchanged between processes.

         KERNEL controls, that whenever a process has obtained
         access to an object, either by creatin it or by obtaining
         it from another process, the process can not access
         or manipulate the object beyond a limit defined at
         creation time or time of granting the access. This
         limit is called the capabilities of the process with
         respect to the object For each object a process can
         only grant a subset of the capabilities that it has
         got itself.

         The ability of a process to create new objects is further
         limited by a socalled claim on each type of resource.
         A process can never create more instancs of a specific
         object type than defined by its claim for that object
         type.

         Even if KERNEL contains tools for limiting access to
         existing objects and limits ability to create new objects,
         it does not take any high level decisions about distributin
         of available resources between processes and the dynamic
         behaviour of the system in terms of creation and removal
         of objects.

         These decisions must be taken by special processes
         playing the role of o̲p̲e̲r̲a̲t̲i̲n̲g̲ ̲s̲y̲s̲t̲e̲m̲s̲.̲  This is further
         described i section 5.6.1.2.4.

         In CAMPS, the operating system functions are performed
         by SSC, having responsibility for all resource management.




5.6.1.2.1.1 A̲c̲c̲e̲s̲s̲ ̲t̲o̲ ̲O̲b̲j̲e̲c̲t̲s̲

         There are three ways for a process to gain access to
         an object:

         a)  C̲r̲e̲a̲t̲i̲o̲n̲

             The process which originally created the object
             has capabilities whch it specified itself at creation
             time. At that time Directory Functions checked
             if the specified capabilities were compatible with
             security rules.

         b)  I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲

             A child may at creation time inherit specified
             objects with specified capabilites from the parent.
             The capabilities versus a given object can only
             be a subset of those possessed by the parent. The
             capabilities of the child can never be changed.
             Directory functions check at creation time if the
             capabilities are consistent withsecurity rules.

         c)  C̲a̲t̲a̲l̲o̲g̲u̲i̲n̲g̲

             Directory functions has a directory, where objects
             may be catalogued. Each catalogue entry consists
             of an object indentifier and an access control
             list. Each entry of the access control list specifies
             the capabilties of a user group to the object.
             When a process wants access to a particular object,
             it calls the directory function L̲o̲o̲k̲u̲p̲ ̲O̲b̲j̲e̲c̲t̲,̲
             which then checks if the user group of the process
             has any capabilities to the object and if the access
             is consisent with security rules.



5.6.1.2.2    S̲e̲c̲u̲r̲i̲t̲y̲

         KERNEL contains tools which may be used by SSC to enforce
         very rigid limitations upon the information exchange
         between processes, and access to objects by processes.
         As described in section 4.8, thes tools are used as
         the second level in a two level checking mechanism.




5.6.1.2.2.1 A̲c̲c̲e̲s̲s̲ ̲A̲u̲t̲h̲o̲r̲i̲z̲a̲t̲i̲o̲n̲

         Authorization of access to an object is based on

         -   A general security policy, and

         -   A discretionary access checking

         The security policy is ased on a multilevel - multicompartment
         security system.

         Objects are associated with a security classification
         level for each compartment and subjects (processes)
         are associated with a security clearance level for
         each compartment. Both entitiesare described in a common
         type:

         -   The security profile

         Discretionary access checking is based on

         -   Identification of access classes of subjects (processes),
             and

         -   Statements of access capabilities for explicitly
             enumerated access classes ofsubjects vis a vis
             a given object.

         The identification of an access class of subjects (processes)
         is based on a User Group Identification (UGI) which
         is common to all subjects in that class.

         Access rights are stated in an access control list
         whih is associated with each catalogued object. The
         access control list is a list of paired UGIs and stated
         access capabilities.

         Certain UGIs are reserved for special use:

         -   System User

             Identifies a subject with all access rights

         -   Public Use

             Identifies any subject which is otherwise not found
             in an access control list

         The general access authorization mechanism described
         above is used whenever catalogued objects are accessed.


         Access to an object is authorized if the following
         conditions both are fulfilled:

         a)  The access requested is allowed according to the
             access control list, or the object was inheited
             from parent or created by the process itself

         b)  The security profile of the calling process matches
             that of the object.

         The security profile check uses the concept of a trusted
         process:

         A trusted process is assumed to work correctly withinformation
         of its own classification level or lower.

         The behaviour of an unstrusted process is unpredictable.

         The general security policy can now be stated:

         1)  Any process is allowed to read information from
             objects of security level lower tan or equal to
             its own level (within each compartment).

         2)  Any process is allowed to write information to
             objects of security level higher than or equal
             to its own level.

         3)  A trusted process is further allowed to write information
             to objects o security level lower than its own
             level.

         These rules imply that the flow of information is generally
         from lower to the same or higher security levels. Only
         trusted processes can reverse this direction.

         All security control information is kept n protected
         memory which is only accessible in system mode.



5.6.1.2.3    D̲e̲v̲i̲c̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

         Processes may not execute I/O instructions directly.
         Neither are they directly activated by device interrupts.
         Both functions are carried out by device hanlers within
         the KERNEL module DEVICE MANAGEMENT.


         A device is a system resource, which by some operating
         system must be granted to the process with the job
         of mediating access to the device. In CAMPS, SFM and
         IOC will be granted ontrol of disk and line devices
         respectively.

         The external function of Device Manager is:

         1)  IO Activation

             A procedure called by SFM or IOC, requesting a
             single operation or a sequence of operation to
             be performed on the device. Special case are activation
             of specific built-in test functions of the device.

         2)  IO Completion Notification

             A notification to SFM or IOC that a requested IO
             operation has been completed, either normally or
             abnormally (with one or more errors). IO notifictions
             are passed via synchronization elements specified
             by the controlling process.

         The interfaces between DEVICE MANAGER and hardware
         are:

         3)  IO Instruction

             One of the CR80D instruction, if the device is
             located in the processor crate, and  DMA transferred
             IO command, if the device is located in an IO crate.

         4)  Interrupt

             Signal from a device that an IO operation has been
             completed fully or partially




5.6.1.2.3.1 D̲e̲v̲i̲c̲e̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲

         As KERNEL objects, devices are protected by the security
         mechanisms described in 5.6.1.2.2.

         Each physical device, however, consists of a number
         of lgical sub-devices. A disk device is by SFM subdivided
         into a number of files and items, each of which should
         be protected individually. A line terminating device
         similarly consists of a number of individual lines,
         each of which must also be protectd.

         So in addition to the device protection enforced by
         KERNEL, SFM and IOC respectively will enforce a protection
         on a subdevice level.

         The security rules described in 5.6.1.2.2 are the same,
         however.



5.6.1.2.4    P̲r̲o̲c̲e̲s̲s̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

         Process mnagement is concerned with implementation
         of software processes as a data type and with implementation
         of the functions available for operating on processes.

         As described in 5.6.1.1.1, a process may be defined
         as an incarnation of the data transfrmations obtained
         by execution of a program in a given context. A context
         is taken to mean a set of CPU registers (CPU resident
         or saved) including the program and data base registers
         PROG and BASE and the two Translation Table Registers
         and the tw Translation Tables.

         A process is represented by a process descriptor (procdes)
         and it is identified by a process identifier (procid).
         A process may thus be referred to without knowing in
         which memory locations it resides. The only instant
         at whi