l4.sec implementation - kernel memory management

33
Introduction Design Implementation L4.sec Implementation Kernel Memory Management Bernhard Kauer [email protected] Diplomverteidigung 2005-05-20

Upload: others

Post on 27-Nov-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

L4.sec Implementation - Kernel Memory Managementhence needs one.
aim
implement access control
manage kernel memory
aim
implement access control Capabilities
flexible communication Endpoints
Introduction Design Implementation
aim
implement access control Capabilities
flexible communication Endpoints
Permissions object dependent rights like read, write or send, recv
Introduction Design Implementation
Permissions object dependent rights like read, write or send, recv
capability space
extension of the recursive address space model
map
unmap
Introduction Design Implementation
requirements
map and unmap kernel-memory
requirements
map and unmap kernel-memory
converted pages are inaccessible
reconvert at unmap of user-page or kmem object
delete all objects within it at reconvert
Introduction Design Implementation
Delete Objects Dependencies
Introduction Design Implementation
Delete Objects Dependencies
delete named objects
last capability removed
Introduction Design Implementation
Delete Objects Dependencies
delete named objects
last capability removed
Dependencies
Functional What needs this object to work?
Map Where it is mapped?
Introduction Design Implementation
Dependencies Example: Task
simplifies locking and implementation
simplifies locking and implementation
Redirection change the pointers
Introduction Design Implementation
idea
Introduction Design Implementation
idea
properties
architecture independently
Introduction Design Implementation
missing
Long-IPC
missing
Long-IPC
convert user-pages and create objects
mapping capabilities and unmapping objects
Introduction Design Implementation
Evaluation Code complexity
Introduction Design Implementation
Evaluation Code complexity
name L4.V2 L4.sec difference
kernel 17805 14421 −3384 jdb 14656 3950 −9626 unit tests 400 1762 +1362
kernel memory and allocators 1521 972 −549 mapping database and spaces 1994 2614 +620 thread and syscalls 4347 2265 −2082 api 1067 889 −178 reused code 7287 6985 −302 others 1589 696 −893
Introduction Design Implementation
similar code complexity
Introduction Design Implementation
similar code complexity
conclusion
problem
idea
implementation
application?
similar code complexity
conclusion
problem
idea
implementation
application?
Appendix
communication channel
many threads could send and receive from an endpoint
works over task boundaries
only open wait at a single endpoint possible
a call uses two different endpoints
Introduction