|
|
|
XavierL
|
Hi,
I don't understand why there are 2 concepts to isolate programs in OKL4. Why is it possible to have more than one address space in a hypercell? Can someone explain me the purpose of each concept or give me a link to some documentation? Best regards Xavier Langellier. _______________________________________________ Developer mailing list [hidden email] https://lists.okl4.org/mailman/listinfo/developer |
||||||||||||||||
|
XavierL
|
I post here the answers from Geoff Revill to my first question because it's still not clear.
If anyone has an idea about the question: OK, I can see your confusion, because this confuses me too. This diagram and explanation does not correspond to the definition on the web site, which seemed crystal clear to me. a SHC is not a partition/memory space according to that definition. Even if it was, I cannot see how/why you'd have 2 memory spaces within a partition anyway. Lemme look into this some more. In the meantime I suggest you raise the question on the forum, because to me the web page definition is simple and clear, and this slide seems to contradict that definition. Xavier.LANGELLIER@fr.thalesgroup.com wrote: Thanks for your effort, It is in the presentation called Overview of the OKL4 3.0 API on the Open Kernel Labs' wiki. On the slide 54, there is a diagram showing 2 hypercells, the first with only one address space in it and the second with two. This is the point that confuse me because I don't see the need for different address spaces since we already have hypercells to isolate. Xavier. -----Message d'origine----- De : Geoff Revill [mailto:geoff@marketbroad.com] Envoyé : lundi 23 mars 2009 16:51 À : Xavier.LANGELLIER@fr.thalesgroup.com Objet : Re: [okl4-developer] Difference between hypercells and address sp aces not sure I understand the question....but here is an answer to A question...just not sure if this is your question :) Within any memory space (or secured partition) you can have multiple threads of execution, because of course you can have a complete Linux OS within a OKL4 managed memory space. From an OKL4 point of view though it will be scheduling a context for a memory space which is thus a single thread of execution. For example you may have 2 memory partitions being managed by OKL4, one is running Linux the other is running Windows. From an OKL4 perspective this is 2 threads of execution. From any application perspective within those memory partitions there may indeed be many threads of execution being managed by the virtualized OS. Or to put it another way....be very careful when you read a piece of text discussing a thread and make sure you are looking at that type of thread from the same point of view as the person writing about it. When you get this close to the hardware silicon vendors sometimes talk about threads when they really mean contexts; add in a virtualizing microkernel like OKL4 and you get another way of thinking about threads that's in addition to the threads being executed within a managed memory partition. That said...the text you seem to have read may indeed be wrong....so can you send a ref to the info that has got you confused? Then I might be able to be more specific. Geoff Xavier.LANGELLIER@fr.thalesgroup.com wrote: Thank you for the answer, I think I understand the concept of SHC/partitions but i don't see the purpose of the address spaces if there is already a mean to isolate threads. Xavier -----Message d'origine----- De : Geoff Revill [mailto:geoff@marketbroad.com] Envoyé : lundi 23 mars 2009 15:59 À : Xavier.LANGELLIER@fr.thalesgroup.com Objet : Re: [okl4-developer] Difference between hypercells and address spaces see http://www.ok-labs.com/products/product-strategy/secure-hypercell-technology Which I think provides a pretty crystal clear definition of Secure HyperCell. In effect the environment provided by OKL4 is the Secure Hypercell, as thus as an architecture there is only one Secure HyperCell, SHC is the technology environment not the definition of a secured cell. Any Hypervisor can provide partitioned cells/memory spaces, as does OKL4, where OKL4 is different is its ability to provide the capability to build a secured systems with each of these partitions still able to communicate through the secured IPC mechanisms supported by the fact that only OKL4 runs in privileged mode and architected to be as small as possible (minimal Trusted compute base) and still provide these integration/build services. This is about as far as you can go to build software securely in an embedded design, the rest of the secure solution is of course to ensure you select a processor and memory management environment that does not create any additional security attack points. Geoff Xavier.LANGELLIER@fr.thalesgroup.com wrote: Hi, I don't understand why there are 2 concepts to isolate programs in OKL4. Why is it possible to have more than one address space in a hypercell? Can someone explain me the purpose of each concept or give me a link to some documentation? Best regards Xavier Langellier. _______________________________________________ Developer mailing list Developer@okl4.org https://lists.okl4.org/mailman/listinfo/developer -- Geoff Revill Partner Work: +44 1647 253011 Email: geoff@marketbroad.com IM: geoffrevill (Skype) http://www.linkedin.com/in/geoffrevill Marketbroad See who we know in common Want a signature like this? -- Geoff Revill Partner Work: +44 1647 253011 Email: geoff@marketbroad.com IM: geoffrevill (Skype) http://www.linkedin.com/in/geoffrevill Marketbroad See who we know in common Want a signature like this? -- Geoff Revill Partner Work: +44 1647 253011 Email: geoff@marketbroad.com IM: geoffrevill (Skype) http://www.linkedin.com/in/geoffrevill Marketbroad See who we know in common Want a signature like this?
|
||||||||||||||||
|
Guanghui, Cheng
|
In reply to this post
by XavierL
On Monday 23 March 2009 05:29:28 pm [hidden email]
wrote: > Hi, > > I don't understand why there are 2 concepts to isolate programs in OKL4. > Why is it possible to have more than one address space in a hypercell? > Can someone explain me the purpose of each concept or give me a link to > some documentation? You can find the description of cell in this documentation. http://wiki.ok-labs.com/downloads/release-3.0/okl4lib-ref-manual-3.0.pdf I think page 20 could give you answer about why cell and address space are different and why it is possible to have many address spaces in one cell. In addition i think hypercell is only a name to show the OKL4 secure architecture. In my opininion it is cell. Thanks. cheng Guanghui _______________________________________________ Developer mailing list [hidden email] https://lists.okl4.org/mailman/listinfo/developer |
||||||||||||||||
|
Josh Matthews
|
In reply to this post
by XavierL
I'd like to thank Xavier, Geoff, and Cheng for the feedback regarding
Secure HyperCell Technology. I hope in this developer post to completely clarify the concept and give some insight into why a Secure HyperCell is an extremely useful abstraction to simplify the design and development of secure embedded systems. Firstly, to clarify terminology: "Secure HyperCell", "HyperCell", and "Cell" are all synonymous terms, and are used to denote a distinct secure partition of an embedded system (more on this shortly). "Secure HyperCell Technology" means the underlying technology infrastructure within OKL4 that enables the system designer to create Secure HyperCells (or, more simply, to create cells). The original question was "why are there two concepts to isolate programs"; i.e. why do we have this cell abstraction when we also provide the usual address space abstraction that is common in most operating systems? The first part of the answer relates to the complementary concepts of virtualization and componentization. While address spaces are useful to provide isolation between individual _programs_, cells operate at a higher level: isolation between individual _components_ within your system. i.e. A cell contains a single isolated system component. A component can indeed be a single program, in which case (from a memory isolation perspective, at least) the cell abstraction is analogous to the address space abstraction (the cell would contain a single address space). However, the real power in Secure HyperCell technology arises from the fact that a component (a cell) can exist at several levels of granularity - from an individual device driver or operating system component (such as a file system), to a program (a "native OKL4 application"), and all the way up to a full virtualized high level operating system (such as Linux). In the latter virtual machine case, the cell obviously contains numerous address spaces (one for each program executing within the VM cell). The ability to componentize your system in this manner was a primary motivator in providing the Secure HyperCell abstraction (and, I'd note, it's unique to OKL4. Other hypervisors provide componentization only at the highest level of granularity (virtualization, or full VM's), which is quite unsuitable for embedded systems). The second part of the answer relates to security (i.e. the "Secure" in "Secure HyperCell"), and this really strikes at the core of why hypervisors that provide only full granularity componentization are unsuitable in embedded. Embedded systems are highly integrated - as an easy example, you're obviously going to be sharing most devices between higher level components - and this integration implies that a level of communication is required between components. However, you don't want the requirement for communication to undermine your requirement for security. What you really want is the ability to strongly isolate your components at multiple levels, and then to be able to select, in an extremely fine grained manner, what level of interaction is possible between those components. Secure HyperCell Technology provides this ability in the form of capabilities. A capability represents a token for an operation on a system object, and conveys both the right for the holder of the token to perform the operation, along with the totality of the knowledge that the holder requires of the system object. This limitation of knowledge is a fundamental aspect of secure communication: system object identifiers (such as thread identifiers) are not global in scope, and the only knowledge a component of the system can have about any other component, including its existence, is via the explicit granting of a locally-scoped capability to that component. No operation, knowledge, or communication with a component is possible without the granting of a capability. Capabilities are stored in capability lists (or "clists"). An address space is associated with exactly one clist; a cell can contain multiple clists, and a clist can be shared by many address spaces within a cell. For those who are used to the address space abstraction, you can think of this as a complementary "capability space" abstraction: where address spaces are useful for partitioning and abstracting physical memory, capability spaces are a powerful concept to partition the security of your system. In summary: - Technically: A system can contain multiple components in the form of cells. A cell can contain multiple address spaces and multiple capability lists. There is a 1:many relationship between a capability list and an address space (an address space is associated with a single capability list; a single capability list can be associated with multiple address spaces). - Conceptually: Secure HyperCell Technology provides a very powerful abstraction to componentize your embedded system at multiple levels of granularity, from individual drivers all the way up to full virtual machines, while giving the system designer very fine-grained control over the security of the system. The ability to do this is fundamental to the construction of secure embedded systems. Secure HyperCell Technology is at the core of OKL4's innovations in providing the world's most advanced embedded hypervisor, and I would certainly welcome any and all further discussion on the subject. Best regards, Josh -- Josh Matthews | Field Application Engineer Open Kernel Labs t +1 518 956 3528 e [hidden email] www.ok-labs.com On Mon, March 23, 2009 5:29 am, [hidden email] wrote: > Hi, > > I don't understand why there are 2 concepts to isolate programs in OKL4. > Why is it possible to have more than one address space in a hypercell? > Can someone explain me the purpose of each concept or give me a link to > some documentation? > > Best regards > > Xavier Langellier. _______________________________________________ Developer mailing list [hidden email] https://lists.okl4.org/mailman/listinfo/developer |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |