In the previous log (3. The cellular allegory), we find that there is some degree of similarity between eukaryote cells and the model I'm describing in this project.
Differences are :
- Binary coding is used, instead of quaternary (i'm nitpicking, I know)
- Programs communicate with direct calls, register values and transient memory blocks, instead of mRNA
- fine-grained rights are enforced by an extra sub-level, under control of a specific promgram that enforces protections, as well as housekeeping for the thread ID and other essential features (like allowing code to load in the executable area)
- Programs are inherently parallel and can be executed by any number of threads simultaneously (whereas DNA transcription of one gene can only be physically performed once at a time, as in the following GIF
Obviously a RNA or DNA strand can only be "sensed" by a single molecule at a time).
I will now try to describe the elements of the programming model :
- The rights
- The programs
- The threads
- The data memory
The rights
are properties and/or credentials that enable or inhibit access to a critical resource, such as
- the input-output ports, or communications outside de execution context
- the paging mechanism
- the program memory (loading and/or reading the code of programs)
- the properties of the programs
- etc.
There is one rule here, inspired by other OSes : it is only possible to drop/lose rights ! Otherwise, any program could get access to resources it shouldn't, by mistake and/or malevolently. So the whole system is designed in a "top-down" fashion where a first/initial program starts with all the possible rights, dispatches them to other sub-programs, with each of them having only the minimum required rights to perform their job.
Surrogate programs can serve as gatekeepers : they perform the I/O taks for example while filtering data and enforcing protocols. They have their own filters for who can use which provided service. This allows dynamic, fine-grained access to necessary features, and even cascading "server programs" while keeping the system "flat" (no "privileged program" because no program has all the rights).
..
More about this in Basics.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.