Talk:COMP 3000 Essay 1 2010 Question 1: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== Microkernel == | |||
Microkernel | |||
* Moving kernel functionality into processes contained in user space, e.g. file systems, drivers | * Moving kernel functionality into processes contained in user space, e.g. file systems, drivers | ||
* Keep basic functionality in kernel to handle sharing of resources | * Keep basic functionality in kernel to handle sharing of resources | ||
* Separation allows for manageability and security, corruption in one does not necessarily cause failure in system | * Separation allows for manageability and security, corruption in one does not necessarily cause failure in system | ||
== Virtual Machine == | |||
* Partitioning or virtualizing resources among OS virtualization running on top of host OS | * Partitioning or virtualizing resources among OS virtualization running on top of host OS | ||
* Virtualized OS believe running on full machine on its own | * Virtualized OS believe running on full machine on its own | ||
== Exokernel == | |||
* Microkernel architecture with limited abstractions, ask for resource, get resource not resource abstraction | * Microkernel architecture with limited abstractions, ask for resource, get resource not resource abstraction | ||
* Less functionality provided by kernel, security and handling of resource sharing | * Less functionality provided by kernel, security and handling of resource sharing | ||
* Once application receives resource, it can use it as it wishes/in control | * Once application receives resource, it can use it as it wishes/in control | ||
* Keep the basic kernel to handle allocating resources and sharing rather than developing straight to the hardware | * Keep the basic kernel to handle allocating resources and sharing rather than developing straight to the hardware | ||
* Goal is to give LibOS maximum freedom with out allowing them to interfere with each other. to do this the exokernel seperates protection from managment in doing this it provide 3 important tasks[1] | * Goal of the exokernel is to give LibOS maximum freedom with out allowing them to interfere with each other. to do this the exokernel seperates protection from managment in doing this it provide 3 important tasks[1] | ||
** tracking ownership of resources [1] | ** tracking ownership of resources [1] | ||
** ensuring protection by guarding all resource usage and binding points (not to shure what binding points are)[1] | ** ensuring protection by guarding all resource usage and binding points (not to shure what binding points are)[1] | ||
Line 40: | Line 24: | ||
** LibOs can be made portable if it is desgined to interact with a low-level machine independant level to hide hardware details [1] | ** LibOs can be made portable if it is desgined to interact with a low-level machine independant level to hide hardware details [1] | ||
=== Design Principles === | |||
*Securely Expose Hardware [1] | |||
** an Exokernel tries to creat low level primatives that the hardware resources can be accesse from, this allso includes interrupt's,exceptions | |||
** the exokernel also export priviledged instructions to the LibOS so that traditional OS abstractions can be implemented (eg Process , address pace) | |||
** | |||
*Expose allocation[1] | |||
*Expose Names[1] | |||
*Expose Revocation [1] | |||
== References == | |||
[1]<nowiki> Engler, D. R., M. F. Kaashoek, and J. O'Toole. "Exokernel." ACM SIGOPS Operating Systems Review 29.5 (1995): 251-66. Association for Computing Machinery. Web. 8 Oct. 2010. <http://portal.acm.org/citation.cfm?id=224076>.</nowiki> | |||
== Unsorted == | |||
Exokernel- | |||
Minimalistic abstractions for developers | |||
Exokernels can be seen as a good compromise between virtual machines and microkernels in the sense that exokernels can give that low level access to developers similar to direct access through a protected layer and at the same time can contain enough hardware abstraction to allow similar benefit of hiding the hardware resources to application programs. | |||
Exokernel – fewest hardware abstractions to developer | |||
Microkernel - is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system | |||
Virtual machine is a simulation of any or devices requested by an application program | |||
Exokenel – I’ve got a sound card | |||
Virtual Machine – I’ve got the sound card you’re looking for, perfect virtual match | |||
Microkernel – I’ve got sound card that plays Khazikstan sound format only | |||
MicroKernel - Very small, very predictable, good for schedualing (QNX is a microkernel - POSIX compatable, benefits of running linux software like modern browsers) | |||
This is some ideas I've got on this question, please contribute below | |||
-Rovic | |||
Outlining some main features here as I see them. | |||
I found that the exokernel was an even lower-level design than the microkernel, closer to the hardware without abstraction. They have the same architecture with the basic functionality contained in the kernel to manage everyone. As the exokernel "gives" the resource to the application it can use the resource in isolation of other applications (until forced to shared) much like VMs receive their resources, either partitioned or virtualized, and execute as if its running on its own machine. There is this similar notion of partitioning the resources among applications/OS and allowing them to take control of what they have. | I found that the exokernel was an even lower-level design than the microkernel, closer to the hardware without abstraction. They have the same architecture with the basic functionality contained in the kernel to manage everyone. As the exokernel "gives" the resource to the application it can use the resource in isolation of other applications (until forced to shared) much like VMs receive their resources, either partitioned or virtualized, and execute as if its running on its own machine. There is this similar notion of partitioning the resources among applications/OS and allowing them to take control of what they have. | ||
Line 49: | Line 60: | ||
btw in my page (i guess you can call it that) i have some resources i have found --[[User:Asoknack|Asoknack]] 15:50, 8 October 2010 (UTC) | btw in my page (i guess you can call it that) i have some resources i have found --[[User:Asoknack|Asoknack]] 15:50, 8 October 2010 (UTC) | ||
Revision as of 03:16, 9 October 2010
Microkernel
- Moving kernel functionality into processes contained in user space, e.g. file systems, drivers
- Keep basic functionality in kernel to handle sharing of resources
- Separation allows for manageability and security, corruption in one does not necessarily cause failure in system
Virtual Machine
- Partitioning or virtualizing resources among OS virtualization running on top of host OS
- Virtualized OS believe running on full machine on its own
Exokernel
- Microkernel architecture with limited abstractions, ask for resource, get resource not resource abstraction
- Less functionality provided by kernel, security and handling of resource sharing
- Once application receives resource, it can use it as it wishes/in control
- Keep the basic kernel to handle allocating resources and sharing rather than developing straight to the hardware
- Goal of the exokernel is to give LibOS maximum freedom with out allowing them to interfere with each other. to do this the exokernel seperates protection from managment in doing this it provide 3 important tasks[1]
- tracking ownership of resources [1]
- ensuring protection by guarding all resource usage and binding points (not to shure what binding points are)[1]
- revoking acces to the resources [1]
- LibrayOS (LibOs)
- Reduces the numbrt of kernel crossings[1]
- Not trusted by the exokernel so can be trusted by the application , Example given is a bad pramater passed to the LibOs only the application is affected.[1] (So LibOs cant interact with kernel ???)
- Any application running on the Exokernel can change the LibrayOs freely [1]
- Application that use LibOS that implement standard interfaces (POSIX) will be portable on any system with the same interface [1]
- LibOs can be made portable if it is desgined to interact with a low-level machine independant level to hide hardware details [1]
Design Principles
- Securely Expose Hardware [1]
- an Exokernel tries to creat low level primatives that the hardware resources can be accesse from, this allso includes interrupt's,exceptions
- the exokernel also export priviledged instructions to the LibOS so that traditional OS abstractions can be implemented (eg Process , address pace)
- Expose allocation[1]
- Expose Names[1]
- Expose Revocation [1]
References
[1] Engler, D. R., M. F. Kaashoek, and J. O'Toole. "Exokernel." ACM SIGOPS Operating Systems Review 29.5 (1995): 251-66. Association for Computing Machinery. Web. 8 Oct. 2010. <http://portal.acm.org/citation.cfm?id=224076>.
Unsorted
Exokernel- Minimalistic abstractions for developers Exokernels can be seen as a good compromise between virtual machines and microkernels in the sense that exokernels can give that low level access to developers similar to direct access through a protected layer and at the same time can contain enough hardware abstraction to allow similar benefit of hiding the hardware resources to application programs. Exokernel – fewest hardware abstractions to developer Microkernel - is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system Virtual machine is a simulation of any or devices requested by an application program Exokenel – I’ve got a sound card Virtual Machine – I’ve got the sound card you’re looking for, perfect virtual match Microkernel – I’ve got sound card that plays Khazikstan sound format only MicroKernel - Very small, very predictable, good for schedualing (QNX is a microkernel - POSIX compatable, benefits of running linux software like modern browsers)
This is some ideas I've got on this question, please contribute below -Rovic
Outlining some main features here as I see them.
I found that the exokernel was an even lower-level design than the microkernel, closer to the hardware without abstraction. They have the same architecture with the basic functionality contained in the kernel to manage everyone. As the exokernel "gives" the resource to the application it can use the resource in isolation of other applications (until forced to shared) much like VMs receive their resources, either partitioned or virtualized, and execute as if its running on its own machine. There is this similar notion of partitioning the resources among applications/OS and allowing them to take control of what they have.
I'll locate some references later on. --Slay 15:00, 7 October 2010 (UTC)
Maybe we can have an introduction - paragraph or so on each type - then similarities - differences - and the compromise. I am going to do some research and writing this weekend and I will put some up -- Jslonosky
btw in my page (i guess you can call it that) i have some resources i have found --Asoknack 15:50, 8 October 2010 (UTC)