31.01.2014 Views

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 6. Security in Open Source Software<br />

gu<strong>es</strong>t mode is used for VMs. In the gu<strong>es</strong>t mode, the virtualised operating system still se<strong>es</strong> the<br />

four privilege levels of x86 CPUs in protected mode. Additionally, in gu<strong>es</strong>t mode, a virtualised<br />

operating system can be executed in the high<strong>es</strong>t privilege level. This do<strong>es</strong> not mean a security<br />

risk because in gu<strong>es</strong>t mode all privileged executions are trapped and the control returned to<br />

the hypervisor, which handl<strong>es</strong> then the execution in the host mode. The advantage of the two<br />

mod<strong>es</strong> is that the hypervisor do<strong>es</strong> not need to provide a software implemented virtual CPU.<br />

This can drastically reduce the computational overhead [1].<br />

The usage of host and gu<strong>es</strong>t mode still leav<strong>es</strong> an overhead problem with the memory<br />

management inside a VM: The memory management unit (MMU) of a CPU, which is used for<br />

paging and segmentation [77, pp. 353-453], has to be provided by the hypervisor as software<br />

implementation. For this problem also exists a hardware assisted solution because a virtual<br />

MMU can also be provided by x86 CPUs by a feature known as Rapid Virtualisation Indexing<br />

(RVI) or Extended Page Table (EPT) [1]. The combination of both CPU featur<strong>es</strong> in a hypervisor<br />

may provide the b<strong>es</strong>t performance or rather overhead reduction that is currently available.<br />

6.2.4. Proc<strong>es</strong>s Communication<br />

The limitation of the communication to network mechanisms (Prob.4) could be directly<br />

integrated in the software d<strong>es</strong>ign to reduce the drawbacks. For example, CORBA [41] can<br />

be used for user or supplier implementations. Simply and generally expr<strong>es</strong>sed, the typical<br />

CORBA development case is that an interface [41] is defined, which has to be implemented in<br />

an object-oriented programming language, e.g. C++ or Java. The implementation is called<br />

Servant [41] and is a software class. Additionally, CORBA provid<strong>es</strong> a so-called Proxy [41],<br />

which is generated from the interface and can be used to acc<strong>es</strong>s the Servant. Figure 6.4 shows<br />

a simplified example of a CORBA development case.<br />

Interface<br />

void Method()<br />

implements<br />

Servant<br />

void Method<br />

generat<strong>es</strong><br />

calls<br />

Proxy<br />

void Method()<br />

Figure 6.4.: Simple CORBA usage example<br />

This Servant-Proxy mechanism could be directly included in the software model by, for<br />

example, defining each part of the open model (from Figure 6.3) that could or should be<br />

(re)implemented as supplier parts as CORBA interface. Consequently, each supplier implementation<br />

would be done by implementing a CORBA Servant for a certain interface. B<strong>es</strong>id<strong>es</strong><br />

74

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!