Title: Mondriaan Memory Protection ???
1Mondriaan Memory Protection???
2??????
- ??????????????????????
- ??????????????? ?????????????????????
????????????
3????
- E. Witchel, J. Cates and K. AsanovicMondrian
Memory ProtectionIn proc. of ASPLOS 2002. - E. Witchel and K. AsanovicHardware Works,
Software Doesnt Enforcing Modularity with
Mondriaan Memory ProtectionIn proc. of HotOS
2003. - E. Witchel, J. Rhee and K. AsanovicMondrix
Memory Isolation for Linux using Mondriaan Memory
ProtectionIn proc. of SOSP 2005.
4??????????
- 1???????????????????????????
- ????1?????1????????????
5?? Mondriaan ?
- Piet Mondriaan (1872-1944)
Composition with Red, Yellow and Blue (1921)
6???????????
- Permissions Table ?????
- Permissions Table
- ???????????????????????
- ?????????????????
- (???????????)
- ??? ISA ??????
- Permissions Table ??????????
7MMP (Mondriaan Memory Protection)System ???
8Sidecar ????????? ??1
????????????????????????
??????????????????????
9PLB ????????? ??2
Protection Lookaside BufferTLB??????(???)
PLB ???
10Permissions Table
?????????????
11????????
- Permissions Table ????????
- ??????????3?
- SST Sorted Segment Table
- MLPT Multi-level Permissions Table
- MLPT SST
12SST Sorted Segment Table
0x00000000
SST ????
0x00100020
???????
Perm ?????
13SST ???
- Table??????????(?)
- Table ???? ???????
00000000
00
01
00
11
SST ????
00
11
00
01
00
10
00
10
00
01
00
SST
???????
14SST ???
- Table??????????? ( O(log n))
- Table ??????
2. ????????????
00000000
00
01
1. ?????????????? (???????)
???????????????????
00
11
00
11
00
01
10
00
00
10
00
10
????????? ???????????
00
01
00
SST
???????
15MLPT Multi-level Protection Table
??????
Perm Table Base
Table ???????? 32 bit
1???????????? (32 / 2) ? 16 ?
????????? (64 / 16) ??? 4 ??? 1 ???
MLPT????
16MLPT ???
- Table ????? ( O(1))
- ????3?????????????????????
Perm Table Base
17MLPT ???
MLPT ???
???? 2? (???????? 2???????????????)
0x01000
?????????????
SST ???
0x08000
???? 1? (?????????? PLB ?????????)
???????
18SST ? MLPT ???
- SST
- ???????(?)
- ????????
- ?????(???????)
- ?????
- MLPT
- ??????????
- ???????
- ?????(O(1))
- ?????
19MLPT SST(?????)????????????
- SST
- ???????(?)
- ????????
- ?????(???????)
- ?????
- MLPT
- ??????????
- ???????
- ?????(O(1))
- ?????
20MLPT SST
- MLPT ?????? SST ?????????
mini-SST ????
Perm Table Base
21MLPT with mini-SST ???
- ???????
- ???????????????????????????
- (PLB ?????????????)
mini-SST ????
22MLPT with mini-SST ???
- Table ??????
- 1????????????????????????
?????????????????
mini-SST ????
23??????
- MMP ??????????????
- ?????????????????????????
- 2?????
- ?????? MMP ????????????????
- Read-only text, read-only data, read-write data
and stacks - ?????? MMP ????????????????
- malloc ???????????????????(?????????????????2????
???????) - ???????????????????????
- MIPS???????????
24?????????
Refs ????????? (load
store) Segments ?????????? ( malloc
??2) Refs/Update ????????? / Table ????? Cs
???????????????????
25?????? MMP ??????????????
X-ref Table ???????? / ??????????????? Space
Table ???? / ???????????????????? l/k
Table ????????????? / Table ????
26?????? MMP ??????????????
SST vs. MLTP with mini-SST
Space Table ???? / ???????????????????? X-ref
Table ???????? / ??????????????? upd
Table ????????????? / Table ??????????????? ld/lk
Table ????????????? / Table ????
27?????? MMP ??????????????
MLPT vs. MLPT with mini-SST
Space Table ???? / ???????????????????? X-ref
Table ???????? / ??????????????? upd
Table ????????????? / Table ??????????????? ld/lk
Table ????????????? / Table ????
28???
- MMP ???? Linux ????? (Mondrix)
- Linux ????1?????
- (??? x86 ???????, SOSP 2005)
29???
- Mondriaan Memory Protection ????????????????????
??????????