os designs Flashcards
what is the monolithic os and how has it developed today
applications kernel and hardware initially with no real separation
but now hardware forces this separation via user and system space
+ monolithic os
protects against things going wrong in user space; apps going wrong wont affect the rest of the system
efficient call structure
what is the call structure of a monolithic os
directly passing references to memory
– monolithic os
difficult to maintain due to the call structure as there could be lots of references to different parts of the system
difficult to impose security and protection
layered approach; multics rings/onion skin model
further into it the more privileges and control you have
every time you go through a ring level you add more security checks and can track access
– layered approach
not v efficient as the security checks take time and prevent you from simply passing over the memory reference
microkernel
v small kernel that doesnt do a lot
services usually part of the kernel now run as user level services
+ microkernel
as services are running at user level (min amount of code running at system level) they cant impact the system if something goes wrong
more secure
few system dependencies so more extensible
easy for message passing over a network
- microkernel
inter-process communication is inefficient as you would have to copy the data probably multiple times
more overhead
how does a microkernel transfer data
using inter-process communication; sending messages rather than memory references
modular os
has system and user space and the kernel has a set of interfaces that you can add extensions (modules) to
+ modular os
modules can be inserted and removed at runtime allowing the os to only have to load code required at that point in time
rely on APIs (more controlled method of passing memory) so more robust
uni-kernels
small kernel and applications carry most of the functionality of the os/kernel with them
the kernel provides the framework and everything else needed as a library