x
266
 
1
2
3
+------+   +-----+   +-----+   +-----+
4
|      |   |     |   |     |   |     |
5
| Foo  +-->| Bar +---+ Baz |<--+ Moo |
6
|      |   |     |   |     |   |     |
7
+------+   +-----+   +--+--+   +-----+
8
              ^         |
9
              |         V
10
.-------------+-----------------------.
11
| Hello here and there and everywhere |
12
'-------------------------------------'
13
14
15
                        ____________
16
   .--------------.     \           \
17
  / a == b         \     \           \     __________
18
 (    &&            )     ) process   )    \         \
19
  \ 'string' ne '' /     /           /     / process /
20
   '--------------'     /___________/     /_________/
21
22
  User code  ^               ^ OS code
23
              \             /
24
               \        .--'
25
                \      /
26
  User code  <--- Mode ----> OS code
27
                /      \
28
            .--'        \___
29
           /                \
30
          v                  v 
31
       User code            OS code
32
33
             .---.  .---. .---.  .---.    .---.  .---.
34
    OS API   '---'  '---' '---'  '---'    '---'  '---'
35
               |      |     |      |        |      |
36
               v      v     |      v        |      v
37
             .------------. | .-----------. |  .-----.
38
             | Filesystem | | | Scheduler | |  | MMU |
39
             '------------' | '-----------' |  '-----'
40
                    |       |      |        |
41
                    v       |      |        v
42
                 .----.     |      |    .---------.
43
                 | IO |<----'      |    | Network |
44
                 '----'            |    '---------'
45
                    |              |         |
46
                    v              v         v
47
             .---------------------------------------.
48
             |                  HAL                  |
49
             '---------------------------------------'
50
             
51
52
   ____[]
53
  | ___ |
54
  ||   ||  device
55
  ||___||  loads
56
  | ooo |----------------------------------------------------------.
57
  | ooo |    |                          |                          |
58
  | ooo |    |                          |                          |
59
  '_____'    |                          |                          |
60
             |                          |                          |
61
             v                          v                          v
62
   .-------------------.  .---------------------------.  .-------------------.
63
   | Loadable module C |  |     Loadable module A     |  | Loadable module B |
64
   '-------------------'  |---------------------------|  |   (instrumented)  |
65
             |            |         .-----.           |  '-------------------'
66
             '------------+-------->| A.o |           |             |
67
                 calls    |         '-----'           |             |
68
                          |    .------------------.   |             |
69
                          |   / A.instrumented.o /<---+-------------'
70
                          |  '------------------'     |    calls
71
                          '---------------------------'   
72
73
74
                                        .--> Base::Class::Derived_A
75
                                       /
76
                                      .----> Base::Class::Derived_B    
77
      Something -------.             /         \
78
                        \           /           \---> Base::Class::Derived
79
      Something::else    \         /             \
80
            \             \       /               '--> Base::Class::Derived
81
             \             \     /
82
              \             \   .-----------> Base::Class::Derived_C 
83
               \             \ /
84
                '------ Base::Class
85
                       /  \ \ \
86
                      '    \ \ \  
87
                      |     \ \ \
88
                      .      \ \ '--- The::Latest
89
                     /|       \ \      \
90
 With::Some::fantasy  '        \ \      '---- The::Latest::Greatest
91
                     /|         \ \
92
         More::Stuff  '          \ '- I::Am::Running::Out::Of::Ideas
93
                     /|           \
94
         More::Stuff  '            \
95
                     /              '--- Last::One
96
         More::Stuff 
97
98
  Safety
99
    ^
100
    |                       *Rust
101
    |           *Java
102
    | *Python
103
    |                        *C++
104
    +-----------------------------> Control
105
106
107
108
109
110
  TODO:
111
112
   
113
114
        |   \/   
115
       -+-  /\      
116
        |   
117
        
118
        |      |    |      |
119
        +--  --+    +--  --+   +--  --+
120
                    |      |   |      |
121
122
                     |    |  |     |
123
             .- -.   .-  -.  ._   _.
124
             |   |
125
126
        .-   -.  .-.       
127
        '-   -'  | |  | |  
128
                      '-'
129
130
      \      |    /  |
131
       .     '   '   .
132
       |    /    |    \ 
133
134
       \
135
       /
136
137
       /
138
       \
139
140
141
       /      \
142
      '--    --'
143
     /          \
144
145
       /   \
146
    --'     '--
147
     /       \
148
149
                       \         /
150
       --.--  --.--   --.--   --.--
151
        /        \     
152
153
154
        |   |
155
        .   .
156
       /|   |\ 
157
158
        |
159
        .
160
       / \
161
162
       \|/
163
        .
164
       /|\
165
166
       
167
       \|/
168
      --.--
169
       /|\
170
171
       \|/
172
      --+--
173
       /|\
174
        
175
        |/  \|
176
        .    .
177
        |    |
178
179
180
       -.  -.
181
       /     \
182
183
        .-  .-
184
       /     \
185
186
      
187
       /   /     \    \
188
      '-  '_     _'   -'
189
       
190
191
       .-.
192
      (   )
193
       '-'
194
195
       ..
196
      (  )
197
       ''
198
199
200
       .------.
201
      (        )
202
       '------'
203
204
        ________  
205
       /       /
206
      /       /
207
     /_______/
208
209
210
        ________  
211
        \       \
212
         \       \
213
          \_______\
214
215
       ________ 
216
      |________|
217
218
219
       ________ 
220
      |        |
221
      |________|
222
223
      .-.
224
      '-'
225
226
        ________  
227
        \_______\
228
229
       /\
230
      /  \
231
     /____\
232
233
       /\
234
      /  \
235
     /    \
236
    '------'
237
238
       ___
239
      /   \
240
      \___/
241
242
      ______
243
     /      \
244
    /        \
245
    \        /
246
     \______/
247
        
248
249
        +---------+
250
        |         |                        +--------------+
251
        |   NFS   |--+                     |              |
252
        |         |  |                 +-->|   CacheFS    |
253
        +---------+  |   +----------+  |   |  /dev/hda5   |
254
                     |   |          |  |   +--------------+
255
        +---------+  +-->|          |  |
256
        |         |      |          |--+
257
        |   AFS   |----->| FS-Cache |
258
        |         |      |          |--+
259
        +---------+  +-->|          |  |
260
                     |   |          |  |   +--------------+
261
        +---------+  |   +----------+  |   |              |
262
        |         |  |                 +-->|  CacheFiles  |
263
        |  ISOFS  |--+                     |  /var/cache  |
264
        |         |                        +--------------+
265
        +---------+
266
    
FooBarBazMooHellohereandthereandeverywherea==b&&process'string'ne''processUsercodeOScodeUsercodeModeOScodeUsercodeOScodeOSAPIFilesystemSchedulerMMUIONetworkHAL[]deviceloadsoooooooooLoadablemoduleCLoadablemoduleALoadablemoduleB(instrumented)A.ocallsA.instrumented.ocallsBase::Class::Derived_ABase::Class::Derived_BSomethingBase::Class::DerivedSomething::elseBase::Class::DerivedBase::Class::Derived_CBase::ClassThe::LatestWith::Some::fantasyThe::Latest::GreatestMore::StuffI::Am::Running::Out::Of::IdeasMore::StuffLast::OneMore::StuffSafety*Rust*Java*Python*CControlTODO:NFSCacheFSdevhda5AFSFS-CacheCacheFilesISOFSvarcache