paul@395 | 1 | = Departure = |
paul@142 | 2 | |
paul@395 | 3 | The Departure distribution aims to provide components and libraries to |
paul@395 | 4 | implement and deliver filesystem access in the L4 Runtime Environment. In |
paul@395 | 5 | particular, it acts as a research and testing vehicle for implementations of |
paul@398 | 6 | demand-paged files provided by filesystems. |
paul@398 | 7 | |
paul@398 | 8 | ######## A graph showing the general architecture of the system |
paul@398 | 9 | |
paul@398 | 10 | {{{#!graphviz |
paul@398 | 11 | #format svg |
paul@398 | 12 | #transform notugly |
paul@398 | 13 | digraph architecture { |
paul@398 | 14 | graph [fontsize="12.0",fontname="sans-serif"]; |
paul@398 | 15 | node [fontsize="12.0",fontname="sans-serif",shape=box]; |
paul@398 | 16 | edge [fontsize="12.0",fontname="sans-serif"]; |
paul@398 | 17 | |
paul@398 | 18 | subgraph cluster_client { |
paul@398 | 19 | color=none; style=filled; fillcolor="#ccffcc"; |
paul@398 | 20 | label="Client library"; URL="../Client_Library"; |
paul@398 | 21 | |
paul@398 | 22 | notifications [label="Notifications"]; |
paul@398 | 23 | io [label="Input/Output"]; |
paul@398 | 24 | } |
paul@398 | 25 | |
paul@398 | 26 | subgraph cluster_components { |
paul@398 | 27 | color=none; style=filled; fillcolor="#ccccff"; |
paul@398 | 28 | label="Components"; URL="../Components"; |
paul@398 | 29 | |
paul@398 | 30 | pipes [label="Pipes"]; |
paul@398 | 31 | openers [label="Openers"]; |
paul@398 | 32 | filesystems [label="Filesystems"]; |
paul@398 | 33 | files [label="Files"]; |
paul@398 | 34 | directories [label="Directories"]; |
paul@398 | 35 | } |
paul@398 | 36 | |
paul@398 | 37 | subgraph cluster_server { |
paul@398 | 38 | color=none; style=filled; fillcolor="#ffcccc"; |
paul@398 | 39 | label="Server library"; URL="../Server_Library"; |
paul@398 | 40 | |
paul@398 | 41 | resources [label="Resources"]; |
paul@398 | 42 | registries [label="Registries"]; |
paul@398 | 43 | providers [label="Providers"]; |
paul@398 | 44 | } |
paul@398 | 45 | |
paul@398 | 46 | /* Layout constraints. */ |
paul@398 | 47 | |
paul@398 | 48 | notifications -> pipes -> resources [dir=none,style=invis]; |
paul@398 | 49 | io -> directories -> providers [dir=none,style=invis]; |
paul@398 | 50 | } |
paul@398 | 51 | }}} |
paul@398 | 52 | |
paul@398 | 53 | ######## |
paul@142 | 54 | |
paul@142 | 55 | == Topics == |
paul@142 | 56 | |
paul@398 | 57 | Reference topics: |
paul@398 | 58 | |
paul@395 | 59 | * [[Client Library]] - convenience functions and structures to access |
paul@395 | 60 | filesystem objects |
paul@359 | 61 | * [[Components]] - server objects exposed at the system level that support |
paul@359 | 62 | filesystem access |
paul@398 | 63 | * [[Server Library]] - abstractions to expose and manage access to filesystem |
paul@398 | 64 | |
paul@398 | 65 | Mechanism details: |
paul@398 | 66 | |
paul@395 | 67 | * [[Filesystem Access]] - mechanisms within filesystem servers to manage |
paul@395 | 68 | filesystem resources and content |
paul@359 | 69 | * [[Paging]] - the mechanism by which filesystem content is provided for use |
paul@359 | 70 | by client programs |
paul@395 | 71 | * [[Program Loading]] - the mechanism by which programs are loaded |
paul@395 | 72 | objects |
paul@398 | 73 | |
paul@398 | 74 | Other concepts: |
paul@398 | 75 | |
paul@183 | 76 | * [[Users]] |
paul@427 | 77 | |
paul@427 | 78 | Project organisation: |
paul@427 | 79 | |
paul@427 | 80 | * [[Libraries]] |