A compiler, and the code generated by it, is useless if it does not have an environment that it can run in. Such an environment is called an operating system. We need an operating system for the compiler that we just constructed so it can actually compile source code (DNA) and run the executable code (proteins). Several analogies can be drawn between computer operating systems, living systems, and the operating system we are trying to define. We will consider one that projects the cell as a complex self replicating operating system. In particular, our operating system will share some of its philosophy with the Unix operating system, while continuing to mimic metabolic pathways and other biological characteristics of living beings.
By self replicating, we mean that the memory used by our cell representation, not the physical hardware of the machine, will replicate and grow. Thus our cloned organism cannot grow arbitrarily large because the space occupied by memory in a machine is finite. There is a definite, predetermined, upper limit on the size of the clone. This is somewhat analagous to the notion of contact inhibition that is seen in carbon based organisms. (Contact inhibition is responsible for making sure that internal organs don't grow larger than they should.)
The environment in this case is the far reaches of the physical hardware. We will refer to this environment as ``cyberspace''. Our clone will grow in the memory of the machine. There is no notion of dynamic and static memory (though in complex organisms, it could be analogised to short term and long term memory). The memory that the organism replicates in is what we consider RAM (Random Access Memory). Virtual memory concepts could be used to enable more copies of cells to exist in a machine. If the RAM is erased for some reason, then the organism is "dead". This defines what constitutes "consciousness" for our clone. The sum of experiences will influence the state of the memory (RAM) it occupies. This resembles the Cartesian cogito, for as soon as its ``thoughts'' are erased, the creature ceases to exist.
The environment, as John von Neumman realised, is one of the key ingredients that will make for a self replicating and self evolving system. Without a sufficiently complex (selective) environment, the individual units within a system will never form a complex dynamic network of interactions and will remain stagnant.
The source of nutrition is obtained from the environment. It will be the same source of nutrition that the host whose DNA we entered into the computer uses. Since we have synthesised proteins and amino acids in a formal manner, we can provide all possible forms of nutrition. Electricity is what allows metabolism to take place (it replaces oxygen in the case of aerobic respiration). Minor modifications will have to be made to account for the change in the environment.v
It is a design decision whether to actually replicate an organism's environment to perfection, or to use the computer itself as a new environment. We will consider the latter approach, for we want organism that can exist in cyberspace and not in a pseudoearth environment. To that end, the proposed nutrition scheme above may have to be revamped.
The nucleus of the cell is the kernel of the operating system. It controls the actions of the cell. In this case, our kernel is the encoded form of DNA along with other nucleolar material. The boundaries of the executable version of the kernel is what defines the nuclear membrane.
The reason we constructed a compiler before we theorised this idea of an operating system is because we need to build up our operating system by a bootstrapping process, i.e., we need to encode the DNA so we can construct a single cell using the proteins generated by our compiler. This single cell is the human created zygote.
Like the nucleus, we can also construct other organelles in the cell. The boundary of the operating system defines the cytoplasm and the cell membrane. Detailed specifications of other organelles and their synthesis will follow later.
The organelles, proteins, enyzmes, etc., exist as processes, daemons, and clients/servers in the cell, and heuristics that allow their interaction will be built. These heuristics will be based on the current understanding of the cell and may be be specified by a set of formal rules, if there exists a pattern to the behaviour of parts of the cell. Interprocess communication (IPC) will therefore define how proteins and enzymes interact.
The replication of this cell we have just formulated involves several events. We will deal only with mitotic replication, which would result in our cloned organisms being theoretically immortal. Our organism is inherently asexual since it has no need to reproduce via gametogenesis and fertilisation. (It also in theory has no need to replicate since the genetic material can evolve continually to adapt to the environment, but this is separate issue.) For mitotic cell division, we have to replicate chromosomal DNA (which could be easy or hard depending on the approach used), and deal with replicating an entire operating system. Thusly, we introduce the notion of coexisting and interacting operating systems on a single machine. Once we facilitate the operating system to replicate on its own in the presence of nutrients, we have then completed our task of representing a cell. The rest is up to the information contained in the DNA of the cell.
In general, a single copy of the system will be in either the S1 (synthesis), G (DNA replication), S2 (more synthesis), or the interphase (mitosis) stage. It will repeat the S1-G-S2 cycle to give rise to more cells.
We will have to deal with the following to assemble our first cell: