---
# System prepended metadata

title: Structure

---

# Structure

Draft based on EROS paper:

-   Ideas 
    
    - What type of persistence this system implements?
        - How objects (data) are treated depending on their longlivety (how long they are used by the program)?
        - What abstractions are used to provide persistency?
    - How the interface providing persistence is integrated inside programming environment (language)?
    - Where the layer of software providing persistence is located?
        - What it expects to have?
        - What code should be executed using it or on top of it?
    - What are non-functional requirements defined by this system (if any)?
    - Were there any problems that are irrelevant now?
    -   Are there any ways to integrate non-persistent code?
        -   is there any model for integration of this environment?
    -   What are preferred ways of communication between computers?
        -   two cases:
            -   the same system
            -   generic case: non-persistent system
        -   hardware commands (can we make the same state as we needed)
    - What are proposed applications of the system?
        


-   implementation
    - How persistent storage is organized?
    - On which hardware it is supposed to be run?
    -   On which level the persistency is implemented? (hardware)
        -   is there any software layer underneath?
            -   What it can provide? (what is the purpose of having this layer)
            -   how it deals with errors made by this level
    -   How does it deal with errors that may affect persistence?
        -   hardware errors
        -   accident errors
        -   software errors
    -   how it deals with unexpected shutdowns?
        -   syscalls
        -   IPC
        -   Data
        -   external resources
        -   hardware (example: graphics state)
    -   Does the implementation conform with specified non-functional requirements?
    -   are there any specific security measures?
        -   Physical access to the hardware
        -   TCB granularity/sizes
        -   Network communication
