The Dauug House Wright State University logo
Dauug|36 minicomputer documentation

Operating system

These are merely notes.

Activities

  1. probe for data, stack, and page table memory
  2. boot loader
  3. segregate run-once OS code to free memory
  4. task scheduling
  5. bill tasks for API use
  6. be at least aware of the timer interval
  7. data memory allocation
  8. page table management
  9. code memory allocation
  10. program loading
  11. sanitizing registers, code, data, stack, page table

Nonprivileged API

  1. obtain memory at virtual address
  2. free memory at virtual address
  3. relocate page(s) to another virtual address
  4. share page(s) with another program, w/ possible write protection
  5. write-protect a virtual page for life of page

Privileged API

  1. start privileged program
  2. start nonprivileged program
  3. fix/unfix privileged program
  4. fix/unfix nonprivileged program
  5. terminate an instance of a program

Program attributes

  1. virtual memory limit
  2. API permissions
  3. live instance limit
  4. code identifier (probably simply the PVFS name)
  5. scheduler round fraction

Instance attributes

  1. instance identifier (likely obfuscated)
  2. copy of program attributes at start (for kernel convenience)

Unresolved questions

  1. How will the page discovery/sharing mechanism work?
  2. How to handle “escalation” privilege vs. “DoS” privilege? Example: start priv./nonpriv. program.

Settled questions

  1. We’ll have an authorizable, lightweight, extensible way to query system data.
  2. Because user can allocate memory, OS won’t on user’s behalf. Orthogonality.
  3. No one can un-write-protect a page. For transitiveness when sharing pages.
  4. An offer to share a page may stipulate the receiver’s is write-protected.
  5. API calls are traceable by the kernel at most.
  6. Only page sharing will be offered for interprocess communication (for now).
  7. The “filesystem hole” will be left wide open.
  8. Fix/unfix privilege will be separately controlled for priv./unpriv. programs.
  9. Any # of idle programs can be in memory, possibly slowing memory (de)alloc.
  10. Per-instance control of program attributes will not be available.
  11. The assembler will place program attributes within the executable.
  12. A program with privileged instructions or privileged API access is privileged.

Tabled questions

1. The presence of fast collections vs. just lists within the OS will be decided after enough is known about the information and its volume.


Marc W. Abel
Computer Science and Engineering
College of Engineering and Computer Science
marc.abel@wright.edu
Without secure hardware, there is no secure software.
937-775-3016