SlideShare a Scribd company logo
1 of 14
1. Protection in Segmented Virtual Memory:
• 4 privilege levels (4 modes) of protection:
• (0): OS kernel
• (1): High-priority device drivers & OS services
• (2): Lower-priority device drivers
• (3): Applications
• Protection design principle:
TRUST THE OS AS LITTLE AS POSSIBLE
Study case: Intel Pentium using IA-32 (32-bit architecture)
John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 1
BẢO VỆ TRONG VÙNG NHỚ ẢO
Phần 1. Hiện thực trong Segmented Virtual Memory
Mở đầu: Các giải pháp bảo vệ bộ nhớ ảo được thiết kế, cải tiến liên tục trong suốt lịch sử
phát triển của ngành máy tính. Vì thế, để có thể xem xét các giải pháp bảo vệ dành cho
các kiến trúc bộ nhớ ảo khác nhau, chúng ta sẽ xem xét thông qua các study case của các
kiến trúc đã có. Vì những giải pháp được đưa ra được sử dụng thông suốt (best practice)
trong lĩnh vực bán dẫn
1. Bảo vệ bộ nhớ từ trong thiết kế của kiến trúc IA-32
Kiến trúc IA-32 (viết tắt của Intel Architecture 32 bit) tăng cường mức độ bảo vệ của bộ
nhớ thông qua 4 phân mức đặc quyền:
• Mức 0: dành riêng cho nhân hệ điều hành (đặc quyền cao nhất)
• Mức 1: Dành cho driver được ưu tiên cao và dịch vụ của hệ điều hành
• Mức 2: Dành cho driver có ưu tiên thấp hơn
• Mức 3: Dành cho ứng dụng (đặc quyền thấp nhất)
Việc phân chia mức độ đặc quyền, kiến trúc IA-32 sẽ phân phối các stack riêng rẽ cho
các tầng đặc quyền khác nhau để đảm bảo không có kẽ hở bảo mật giữa các tầng
2. Các giải pháp bảo vệ khác được các kỹ sư Intel thiết kế dựa trên nguyên tắc: HẠN
CHẾ TIN TƯỞNG HỆ ĐIỀU HÀNH MỘT CÁCH THẤP NHẤT CÓ THỂ
1
3 approaches in design:
•Adding Bounding Checking & Memory Mapping
•Adding Sharing & Protection
•Adding Safe Calls from User-to-OS Gates & Inheriting
Protection Level for Parameters
John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
2
3 hướng tiếp cận trong quá trình thiết kế memory protection:
• Kiểm tra phạm vi truy cập bộ nhớ (Bounding Checking) & Xây dựng phương thức
ánh xạ bộ nhớ (Memory Mapping)
• Chia sẻ (Sharing) & Bảo vệ vùng nhớ được chia sẻ (Protection)
• Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền thấp (User)
đến vùng có đặc quyền cao (OS) & Kế thừa cơ chế phân cấp đặc quyền (đã nói
trong slide trước) để bảo vệ memory parameter
2
a. Adding Bounds Checking and Memory Mapping
• Memory Mapping: IA-32 contain
index in a virtual memory data
structure called a descriptor table
The equivalent of a page table entry
is a segment descriptor.
• Bound Checking: 4 bit of limit field,
which establishes the upper bound
of valid offsets for this segment
John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
3
a. Giải pháp 1 trong việc bảo vệ giải pháp phân đoạn bộ nhớ ảo (Segmented Virtual
Memory): Thêm vào thành phần hỗ trợ kiểm tra phạm vi truy cập bộ nhớ và phương
thức ánh xạ bộ nhớ
1. Xây dựng phương thức ánh xạ bộ nhớ (Memory Mapping): IA-32 sử dụng cấu trúc
dữ liệu bộ nhớ ảo được gọi là <descriptor tables> (tạm dịch: bảng nhận diện phân
vùng bộ nhớ). Trong trường hợp này: <descriptor tables> đóng vai trò như một bảng
<paging> truyền thống. Và tương đương với <page table entry>, IA-32 đưa ra khái
niệm <segment descriptor> (tạm dịch: phần tử nhận diện phân vùng bộ nhớ)
2. Kiểm tra phạm vi truy cập bộ nhớ (Bound Checking): IA-32 định nghĩa 4 bit limit
field trong <segment descriptor>, (Không được định nghĩa trong trong các hệ thống
phân trang), để thiết lập cận trên offset cho mỗi segment
3
IA-32 Segment Descriptor
(a.k.a Segment Table Entry)
1. , “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005).
2. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
Base: Defines the
starting physical
address of the
segment
D/B bit: Operands
and addressing
modes are 16 or
32 bits?
Granularity bit (G):
Indicates whether the
Limit field is to be
interpreted
Descriptor Privilege Level
(DPL): Specifies the privilege
level of the segment (value:
0-3  2 bits)
S bit: Code segment
or Data segment?
Segment Present bit (P):
In nonpaged systems, P = 0
(segment is not present in
memory).
In paged system, P=1
Limit
Defines the size of the
segment.
4KB to 4GB = 215 Mbit
Type: Distinguishes
between various kinds of
segments and indicates the
access attributes (4 bits)
4
Các thông số quan trọng của Segment descriptor:
• Base:
• Granularity bit (G): :
• Limit:
• Descriptor Privilege Level (Đã đề cập trong phần “bảo vệ bộ nhớ từ giai đoạn thiết
kế”): 2 bit biểu thị các cấp độ đặc quyền từ 00 (dec 0) đến 11 (dec 3)
• S bit: Code segment or Data segment?
• Segment Present bit (P): In nonpaged systems, P = 0 (segment is not present in
memory). In paged system, P=1
• Type: Distinguishes between various kinds of segments and indicates the access
attributes (4 bits)
Tham khảo tại:
1. Stallings, William, “Computer Organization and Architecture”, 7th edition, Prentice
Hall International, 2016
2. John Hennessy, David Patterson, “Computer Architecture: A Quantitative
Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
3. , “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System
Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au-
cs240c/lab/ia32/IA32-3.pdf
4. , “INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986”, (1986),
URL: https://css.csail.mit.edu/6.858/2013/readings/i386.pdf
4
b. Adding Sharing and Protection
Protected sharing: Divide the address space into 2 spaces
• Global address space: shared by all processes. Contain all
descriptors for a shared segment
• Local address space: unique to each process. Contain all
descriptors for a private segment
John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
5
b. Giải pháp 2:
IA-32 chia địa chỉ thành 2 vùng:
• Global address space: được chia sẻ bởi tất cả process. Chứa tất cả các <descriptor>
trỏ về shared segment
• Local address space: độc nhất cho riêng process. Chứa tất cả các <descriptor> trỏ về
private segment
5
c. Adding Safe Calls from User-to-OS Gates and
Inheriting Protection Level for Parameters
• Why? Prevent user from randomly jumping anywhere into a protected
or more privileged code segment
• How? Special segment descriptor – call gate (full physical addresses of
an object in memory)
John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
6
c. Giải pháp 3: Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền
thấp (User) đến vùng có đặc quyền cao (OS) & Kế thừa cơ chế phân cấp đặc quyền
để bảo vệ memory parameter
Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền thấp (User) đến
vùng có đặc quyền cao (OS):
• Để ngăn chặn các vùng có đặc quyền thấp ngẫu nhiên nhảy đến các phân vùng được
bảo vệ hoặc có phân quyền cao hơn.
IA-32 hiện thực cơ chế safe-call như thế nào?
• IA-32 định nghĩa <segment descriptor> đặc biệt: call gate – để kết nối giữa user với
OS
Các giá trị trong 1 segment
• Word count controls the number of words copied from the current stack to the new
stack on a call gate.
• Destination selector and destination offset, select the descriptor of the destination of
the call and the
offset into it,
6
Accessing Call
gate at various
Privilege levels
“IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au-
cs240c/lab/ia32/IA32-3.pdf
7
Ví dụ về call gate kết nối <code segment A> có phân mức đặc quyền 3 (thấp nhất) đến
<code segment B> có phân mức đặc quyền 0 (cao nhất) thông qua <call gate A>
7
Protection checking
categories for segmented virtual memory:
•Limit checks.
•Type checks.
•Privilege level checks.
8
“IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au-
cs240c/lab/ia32/IA32-3.pdf
Từ các giải pháp thiết kế protection như trên, IA-32 thực hiện quá trình kiểm tra bộ nhớ
ảo trong kiến trúc IA-32 với các công việc như sau:
• Limit checks: kiểm tra phạm vi truy cập.
• Type checks: kiểm tra kiểu của segment (là data segment hay code segment)
• Privilege level checks: kiểm tra các tương tác dữ liệu giữa các segment có phân mức
đặc quyền khác nhau
8
2. Protection in Paged Virtual Memory:
• Multilevel hierarchical page-table design
• 64-bit virtual address of the AMD64
architecture is mapped onto 52-bit physical
addresses
• The Opteron, uses:
• 48-bit virtual addresses
• 40-bit physical addresses
Study case: AMD Opteron 64-bit
9
Phần 2. Hiện thực trong Paged Virtual Memory
Cơ chế page-translation đã được sử dụng từ các kiến trúc 32-bit điển hình là IA-32 và
đến kiến trúc 64-bit, các cơ chế này được kế thừa lại.
Tuy nhiên để không bị bùng nổ kích thước của các page-table (264) như cách thiết kế từ
kiến trúc 32-bit, Kiến trúc AMD64 sử dụng thiết kế page table kế thừa đa tầng
<Multilevel hierarchical page-table> (Rõ hơn trong slide kế tiếp)
Trong thiết kế chung của các kiến trúc AMD64 và các kiến trúc kế thừa: địa chỉ ảo 64-bit
sẽ được ánh xạ bởi địa chỉ vật lý 52-bit.
Tuy nhiên trên thực tế, ở đây ví dụ bởi kiến trúc cho CPU AMD Opteron thì địa chỉ ảo
64-bit sẽ được biểu diễn ở dạng chính tắc (canonical form) trong đó 16 bits dấu và 48 bits
địa chỉ ảo được ánh xạ bởi địa chỉ vật lý 40-bit
Có 2 mô hình <page translation> được sử dụng trong AMD64,
1. Mô hình <legacy-mode page translation>: cơ chế paging kế thừa từ kiến trúc IA-32
(32 bit)
2. Mô hình <long-mode page translation>: (Minh họa bởi hình trong slide sau)
Dẫn chứng có thể thấy rõ ràng nhất là 2 thư mục Program Files và Program Files (x86)
9
16 bits 9 bits 9 bits 9 bits 9 bits 12 bits
1. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
2. “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021
The four-level translation of the 48-bit virtual addresses of the Opteron.
3 potential places to
check protection
restrictions
10
Mô hình Long-Mode Page Translation
Để không bùng nổ kích thức của 1 page table (64 bit, a.k.a 264 phần tử), AMD64 sử dụng
thiết kế page table kế thừa đa tầng (multi level hierarchy) như vậy thì số table lúc này
sẽ phụ thuộc vào kích thước của địa chỉ ô nhớ (address size). Cụ thể:
• 4 Kbyte  4 page table {Page-map L4; Page-dir pointer, Page-dir, Page-table}
• 2 Mbyte  3 page table {Page-map L4; Page-dir pointer, Page-dir}
• 1 Gbyte  2 page table {Page-map L4; Page-dir pointer}
Cấu trúc phần tử trong các page table đều có các cờ kiểm tra, tiêu biểu có thể kể đến:
• User/Supervisor (U/S) bit: Kiểm tra phân quyền
• Read/Write (R/W): Kiểm tra read-only hay không?
• No-Execute (NX): Các tập lệnh có bị đánh dấu không thực thi được hay không?
Vì thế trong các page table đều có thể thiết lập các phương thức kiểm tra, và như trên
hình thể hiện 3 nơi tiềm năng về mặt lý thuyết để có thể thực hiện các phép kiểm tra
page-protection
Tham khảo tại:
1.John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”,
5th edition, Morgan Kaufmann Publisher, 2012
2.“AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”,
AMD, Revision 3.37, Date: Mar 2021, URL:
https://www.amd.com/system/files/TechDocs/24593.pdf
10
Protecting paging VM principle
• The page tables are protected from being written by user
programs (non-privileged).
• Sharing of memory between processes is accomplished by
having a page table entry in each address space point to the
same physical memory page
11
1. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012
2. “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021, URL:
https://www.amd.com/system/files/TechDocs/24593.pdf
Với các đặc tính của phương pháp thiết kế page table kế thừa đa tầng, AMD64 được
thiết lập các nguyên tắc nhất định:
• Do có 2 phân quyền chính supervisor và user (không có đặc quyền), vì thế các
pagetable phải được bảo vệ khỏi việc ghi từ chương trình không được phân quyền
(user)
• Phương thức chia sẻ dữ liệu được thực hiện thông qua các phần tử của page-table có
thể trỏ về cùng một địa chỉ vùng nhớ chính
Một số thông tin thêm: The Opteron hiện thực 4 cấu trúc 4 tầng pagetable để nhằm rút
ngắn chi phí thời gian khi truy cập. Trong đó 2 bảng dùng cho instruction accesses và 2
bảng dùng cho data accesses
11
AMD64 Page-protection
•Supervisor pages
•Read-only pages
•Instruction fetch restrictions
•Memory protection keys
•Shadow stack pages
12
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021
Các cơ chế page-protection được hiện thực trong kiến trúc AMD64:
1. Supervisor pages: Phương thức bảo vệ ngăn chặn các code phi đặc quyền (user - non-
privileged) truy cập vào data và code của các phân vùng đặc quyền (supervisor)
2. Read-only pages: Ngăn chặn các chương trình viết vào các không gian read-only
3. Instruction fetch restrictions: Chặn bộ xử lý (processor) lấy các lệnh từ các page chứa
dữ liệu không thực thi (non-executable data) hoặc không được phép truy cập do
không có quyền hợp lệ
4. Memory protection keys: Phương thức cho phép các ứng dụng truy cập các data có
phân quyền cao thông qua các cơ chế truy cập được bảo vệ mà kiến trúc cho phép
5. Shadow stack pages: Đọc thêm phần Shadow stack trong tài liệu tham khảo
Tham khảo tại:
1., “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”,
AMD, Revision 3.37, Date: Mar 2021, URL:
https://www.amd.com/system/files/TechDocs/24593.pdf
12
3. Protection in modern
architecture:
Study case: modern x86
and AMD64 Architecture
Stallings, William, “Computer Organization and Architecture”, 7th edition, Prentice Hall International, 2016 13
Phần 3. Hiện thực trong các kiến trúc x86 & AMD64 hiện đại dùng kiến trúc hybrid
Các kiến trúc hiện đại đa phần đều là dạng kết hợp 2 phương thức thiết kế bộ nhớ ảo,
điển hình là x86 và AMD64 (a.k.a x86_64)
Quá trình kiểm tra trong segment-protection và page-protection sẽ được thực hiện tuần tự
bởi bộ xử lý trung tâm. Trong đó:
• Sẽ thực hiện trước các phương pháp segment-protection, kế tiếp sẽ đến page-
protection
• Nếu phát hiện ra các xung đột trong quá trình segment-protection, sẽ không thực
hiện page-protection
• Khi có xung đột tại segment-protection hoặc page-protection, sẽ tạo ra exception và
không thực hiện truy cập bộ nhớ
13
Architecture manual list
• “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date:
Mar 2021, URL: https://www.amd.com/system/files/TechDocs/24593.pdf
• “Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programing Guide,
Part 1”, Intel, (2016), URL:
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-
software-developer-vol-3a-part-1-manual.pdf
• “The IA-32 Architecture”, Guide to Assembly Language Programming in Linux, 10.1007/b136895(Chapter 4),
61–78. (2005). doi:10.1007/0-387-26171-0_4
• “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005).
URL: https://www.scs.stanford.edu/05au-cs240c/lab/ia32/IA32-3.pdf
• “INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986”, (1986), URL:
https://css.csail.mit.edu/6.858/2013/readings/i386.pdf
14
14

More Related Content

Similar to Protection in Virtual Memory - Study case

Quan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxQuan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxThu Lam
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttvo nhan
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhCao Toa
 
Các thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin họcCác thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin họcRosie2505
 
đề Cương thi sát hạch kỹ sư cntt
đề Cương thi sát hạch kỹ sư cnttđề Cương thi sát hạch kỹ sư cntt
đề Cương thi sát hạch kỹ sư cnttHạnh Ngọc
 
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724kien12f3
 
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Vuong Nguyen
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...bookbooming1
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Văn Dũng
 
Report password cracking (2)
Report password cracking (2)Report password cracking (2)
Report password cracking (2)phanleson
 
Untitled Untitled Untitled
Untitled Untitled UntitledUntitled Untitled Untitled
Untitled Untitled UntitledBằng Ngô
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaViết thuê trọn gói ZALO 0934573149
 
CG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfCG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfTrieuThuHuong1
 

Similar to Protection in Virtual Memory - Study case (20)

Quan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxQuan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linux
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_httt
 
Bien dich nhan linux
Bien dich nhan linuxBien dich nhan linux
Bien dich nhan linux
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tính
 
Các thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin họcCác thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin học
 
đề Cương thi sát hạch kỹ sư cntt
đề Cương thi sát hạch kỹ sư cnttđề Cương thi sát hạch kỹ sư cntt
đề Cương thi sát hạch kỹ sư cntt
 
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724
Tieu luan hdh_quan_ly_bo_nho_trong_windows__1724
 
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
 
Ncb01
Ncb01Ncb01
Ncb01
 
04 de cuong
04 de cuong04 de cuong
04 de cuong
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
 
Kysu tinhoccn
Kysu tinhoccnKysu tinhoccn
Kysu tinhoccn
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
 
Report password cracking (2)
Report password cracking (2)Report password cracking (2)
Report password cracking (2)
 
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên AndroidHệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
 
Untitled Untitled Untitled
Untitled Untitled UntitledUntitled Untitled Untitled
Untitled Untitled Untitled
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
 
Android OS
Android OSAndroid OS
Android OS
 
CG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfCG02_Graphics Systems.pdf
CG02_Graphics Systems.pdf
 

More from Ho Quang Thanh

Hướng dẫn sử dụng đồng hồ Casio AE-1000WD
Hướng dẫn sử dụng đồng hồ Casio AE-1000WDHướng dẫn sử dụng đồng hồ Casio AE-1000WD
Hướng dẫn sử dụng đồng hồ Casio AE-1000WDHo Quang Thanh
 
Long mode page traslation
Long mode page traslationLong mode page traslation
Long mode page traslationHo Quang Thanh
 
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...Ho Quang Thanh
 
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...Ho Quang Thanh
 
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAM
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAMĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAM
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAMHo Quang Thanh
 
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trìnhLow-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trìnhHo Quang Thanh
 
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"Ho Quang Thanh
 
Nhận dạng tin tức giả Tiếng Việt
Nhận dạng tin tức giả Tiếng ViệtNhận dạng tin tức giả Tiếng Việt
Nhận dạng tin tức giả Tiếng ViệtHo Quang Thanh
 
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKALựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKAHo Quang Thanh
 
Machine Learning resource textbook - Andrew Ng - print version
Machine Learning resource textbook - Andrew Ng - print versionMachine Learning resource textbook - Andrew Ng - print version
Machine Learning resource textbook - Andrew Ng - print versionHo Quang Thanh
 
HCMUT-TBI Training of Trainer
HCMUT-TBI Training of Trainer HCMUT-TBI Training of Trainer
HCMUT-TBI Training of Trainer Ho Quang Thanh
 
Giải quyết bài toán Speech-2-Text bằng Long Short-term Memory
Giải quyết bài toán Speech-2-Text bằng Long Short-term MemoryGiải quyết bài toán Speech-2-Text bằng Long Short-term Memory
Giải quyết bài toán Speech-2-Text bằng Long Short-term MemoryHo Quang Thanh
 
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triểnLuận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triểnHo Quang Thanh
 
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerce
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerceAGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerce
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerceHo Quang Thanh
 
Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Ho Quang Thanh
 
Lean manufacturing - Sản xuất Tinh gọn
Lean manufacturing - Sản xuất Tinh gọnLean manufacturing - Sản xuất Tinh gọn
Lean manufacturing - Sản xuất Tinh gọnHo Quang Thanh
 
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1Ho Quang Thanh
 

More from Ho Quang Thanh (17)

Hướng dẫn sử dụng đồng hồ Casio AE-1000WD
Hướng dẫn sử dụng đồng hồ Casio AE-1000WDHướng dẫn sử dụng đồng hồ Casio AE-1000WD
Hướng dẫn sử dụng đồng hồ Casio AE-1000WD
 
Long mode page traslation
Long mode page traslationLong mode page traslation
Long mode page traslation
 
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...
ĐẢNG CỘNG SẢN VIỆT NAM giải quyết xung đột với Pháp sau CMT8 trước Toàn quốc ...
 
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...
ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI QUÁ TRÌNH SÀNG LỌC NGHIÊM KHẮC CỦA LỊCH SỬ & DÂ...
 
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAM
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAMĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAM
ĐƯỜNG LỐI CÔNG NGHIỆP HÓA CỦA ĐẢNG CỘNG SẢN VIỆT NAM
 
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trìnhLow-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
 
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"
VINASTAS - các đối tượng hữu quan và đạo đức tổ chức trong vụ "Nước mắm Asen"
 
Nhận dạng tin tức giả Tiếng Việt
Nhận dạng tin tức giả Tiếng ViệtNhận dạng tin tức giả Tiếng Việt
Nhận dạng tin tức giả Tiếng Việt
 
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKALựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
 
Machine Learning resource textbook - Andrew Ng - print version
Machine Learning resource textbook - Andrew Ng - print versionMachine Learning resource textbook - Andrew Ng - print version
Machine Learning resource textbook - Andrew Ng - print version
 
HCMUT-TBI Training of Trainer
HCMUT-TBI Training of Trainer HCMUT-TBI Training of Trainer
HCMUT-TBI Training of Trainer
 
Giải quyết bài toán Speech-2-Text bằng Long Short-term Memory
Giải quyết bài toán Speech-2-Text bằng Long Short-term MemoryGiải quyết bài toán Speech-2-Text bằng Long Short-term Memory
Giải quyết bài toán Speech-2-Text bằng Long Short-term Memory
 
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triểnLuận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
 
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerce
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerceAGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerce
AGILE project management - Quản lý dự án linh hoạt & Ứng dụng trong eCommerce
 
Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server
 
Lean manufacturing - Sản xuất Tinh gọn
Lean manufacturing - Sản xuất Tinh gọnLean manufacturing - Sản xuất Tinh gọn
Lean manufacturing - Sản xuất Tinh gọn
 
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1
Phiên chợ khởi nghiệp lần 1 - Startup & SMEs Fair 1
 

Protection in Virtual Memory - Study case

  • 1. 1. Protection in Segmented Virtual Memory: • 4 privilege levels (4 modes) of protection: • (0): OS kernel • (1): High-priority device drivers & OS services • (2): Lower-priority device drivers • (3): Applications • Protection design principle: TRUST THE OS AS LITTLE AS POSSIBLE Study case: Intel Pentium using IA-32 (32-bit architecture) John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 1 BẢO VỆ TRONG VÙNG NHỚ ẢO Phần 1. Hiện thực trong Segmented Virtual Memory Mở đầu: Các giải pháp bảo vệ bộ nhớ ảo được thiết kế, cải tiến liên tục trong suốt lịch sử phát triển của ngành máy tính. Vì thế, để có thể xem xét các giải pháp bảo vệ dành cho các kiến trúc bộ nhớ ảo khác nhau, chúng ta sẽ xem xét thông qua các study case của các kiến trúc đã có. Vì những giải pháp được đưa ra được sử dụng thông suốt (best practice) trong lĩnh vực bán dẫn 1. Bảo vệ bộ nhớ từ trong thiết kế của kiến trúc IA-32 Kiến trúc IA-32 (viết tắt của Intel Architecture 32 bit) tăng cường mức độ bảo vệ của bộ nhớ thông qua 4 phân mức đặc quyền: • Mức 0: dành riêng cho nhân hệ điều hành (đặc quyền cao nhất) • Mức 1: Dành cho driver được ưu tiên cao và dịch vụ của hệ điều hành • Mức 2: Dành cho driver có ưu tiên thấp hơn • Mức 3: Dành cho ứng dụng (đặc quyền thấp nhất) Việc phân chia mức độ đặc quyền, kiến trúc IA-32 sẽ phân phối các stack riêng rẽ cho các tầng đặc quyền khác nhau để đảm bảo không có kẽ hở bảo mật giữa các tầng 2. Các giải pháp bảo vệ khác được các kỹ sư Intel thiết kế dựa trên nguyên tắc: HẠN CHẾ TIN TƯỞNG HỆ ĐIỀU HÀNH MỘT CÁCH THẤP NHẤT CÓ THỂ 1
  • 2. 3 approaches in design: •Adding Bounding Checking & Memory Mapping •Adding Sharing & Protection •Adding Safe Calls from User-to-OS Gates & Inheriting Protection Level for Parameters John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 2 3 hướng tiếp cận trong quá trình thiết kế memory protection: • Kiểm tra phạm vi truy cập bộ nhớ (Bounding Checking) & Xây dựng phương thức ánh xạ bộ nhớ (Memory Mapping) • Chia sẻ (Sharing) & Bảo vệ vùng nhớ được chia sẻ (Protection) • Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền thấp (User) đến vùng có đặc quyền cao (OS) & Kế thừa cơ chế phân cấp đặc quyền (đã nói trong slide trước) để bảo vệ memory parameter 2
  • 3. a. Adding Bounds Checking and Memory Mapping • Memory Mapping: IA-32 contain index in a virtual memory data structure called a descriptor table The equivalent of a page table entry is a segment descriptor. • Bound Checking: 4 bit of limit field, which establishes the upper bound of valid offsets for this segment John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 3 a. Giải pháp 1 trong việc bảo vệ giải pháp phân đoạn bộ nhớ ảo (Segmented Virtual Memory): Thêm vào thành phần hỗ trợ kiểm tra phạm vi truy cập bộ nhớ và phương thức ánh xạ bộ nhớ 1. Xây dựng phương thức ánh xạ bộ nhớ (Memory Mapping): IA-32 sử dụng cấu trúc dữ liệu bộ nhớ ảo được gọi là <descriptor tables> (tạm dịch: bảng nhận diện phân vùng bộ nhớ). Trong trường hợp này: <descriptor tables> đóng vai trò như một bảng <paging> truyền thống. Và tương đương với <page table entry>, IA-32 đưa ra khái niệm <segment descriptor> (tạm dịch: phần tử nhận diện phân vùng bộ nhớ) 2. Kiểm tra phạm vi truy cập bộ nhớ (Bound Checking): IA-32 định nghĩa 4 bit limit field trong <segment descriptor>, (Không được định nghĩa trong trong các hệ thống phân trang), để thiết lập cận trên offset cho mỗi segment 3
  • 4. IA-32 Segment Descriptor (a.k.a Segment Table Entry) 1. , “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). 2. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 Base: Defines the starting physical address of the segment D/B bit: Operands and addressing modes are 16 or 32 bits? Granularity bit (G): Indicates whether the Limit field is to be interpreted Descriptor Privilege Level (DPL): Specifies the privilege level of the segment (value: 0-3  2 bits) S bit: Code segment or Data segment? Segment Present bit (P): In nonpaged systems, P = 0 (segment is not present in memory). In paged system, P=1 Limit Defines the size of the segment. 4KB to 4GB = 215 Mbit Type: Distinguishes between various kinds of segments and indicates the access attributes (4 bits) 4 Các thông số quan trọng của Segment descriptor: • Base: • Granularity bit (G): : • Limit: • Descriptor Privilege Level (Đã đề cập trong phần “bảo vệ bộ nhớ từ giai đoạn thiết kế”): 2 bit biểu thị các cấp độ đặc quyền từ 00 (dec 0) đến 11 (dec 3) • S bit: Code segment or Data segment? • Segment Present bit (P): In nonpaged systems, P = 0 (segment is not present in memory). In paged system, P=1 • Type: Distinguishes between various kinds of segments and indicates the access attributes (4 bits) Tham khảo tại: 1. Stallings, William, “Computer Organization and Architecture”, 7th edition, Prentice Hall International, 2016 2. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 3. , “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au- cs240c/lab/ia32/IA32-3.pdf 4. , “INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986”, (1986), URL: https://css.csail.mit.edu/6.858/2013/readings/i386.pdf 4
  • 5. b. Adding Sharing and Protection Protected sharing: Divide the address space into 2 spaces • Global address space: shared by all processes. Contain all descriptors for a shared segment • Local address space: unique to each process. Contain all descriptors for a private segment John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 5 b. Giải pháp 2: IA-32 chia địa chỉ thành 2 vùng: • Global address space: được chia sẻ bởi tất cả process. Chứa tất cả các <descriptor> trỏ về shared segment • Local address space: độc nhất cho riêng process. Chứa tất cả các <descriptor> trỏ về private segment 5
  • 6. c. Adding Safe Calls from User-to-OS Gates and Inheriting Protection Level for Parameters • Why? Prevent user from randomly jumping anywhere into a protected or more privileged code segment • How? Special segment descriptor – call gate (full physical addresses of an object in memory) John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 6 c. Giải pháp 3: Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền thấp (User) đến vùng có đặc quyền cao (OS) & Kế thừa cơ chế phân cấp đặc quyền để bảo vệ memory parameter Thêm cơ chế Safe Call để hỗ trợ việc truy cập từ vùng có đặc quyền thấp (User) đến vùng có đặc quyền cao (OS): • Để ngăn chặn các vùng có đặc quyền thấp ngẫu nhiên nhảy đến các phân vùng được bảo vệ hoặc có phân quyền cao hơn. IA-32 hiện thực cơ chế safe-call như thế nào? • IA-32 định nghĩa <segment descriptor> đặc biệt: call gate – để kết nối giữa user với OS Các giá trị trong 1 segment • Word count controls the number of words copied from the current stack to the new stack on a call gate. • Destination selector and destination offset, select the descriptor of the destination of the call and the offset into it, 6
  • 7. Accessing Call gate at various Privilege levels “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au- cs240c/lab/ia32/IA32-3.pdf 7 Ví dụ về call gate kết nối <code segment A> có phân mức đặc quyền 3 (thấp nhất) đến <code segment B> có phân mức đặc quyền 0 (cao nhất) thông qua <call gate A> 7
  • 8. Protection checking categories for segmented virtual memory: •Limit checks. •Type checks. •Privilege level checks. 8 “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au- cs240c/lab/ia32/IA32-3.pdf Từ các giải pháp thiết kế protection như trên, IA-32 thực hiện quá trình kiểm tra bộ nhớ ảo trong kiến trúc IA-32 với các công việc như sau: • Limit checks: kiểm tra phạm vi truy cập. • Type checks: kiểm tra kiểu của segment (là data segment hay code segment) • Privilege level checks: kiểm tra các tương tác dữ liệu giữa các segment có phân mức đặc quyền khác nhau 8
  • 9. 2. Protection in Paged Virtual Memory: • Multilevel hierarchical page-table design • 64-bit virtual address of the AMD64 architecture is mapped onto 52-bit physical addresses • The Opteron, uses: • 48-bit virtual addresses • 40-bit physical addresses Study case: AMD Opteron 64-bit 9 Phần 2. Hiện thực trong Paged Virtual Memory Cơ chế page-translation đã được sử dụng từ các kiến trúc 32-bit điển hình là IA-32 và đến kiến trúc 64-bit, các cơ chế này được kế thừa lại. Tuy nhiên để không bị bùng nổ kích thước của các page-table (264) như cách thiết kế từ kiến trúc 32-bit, Kiến trúc AMD64 sử dụng thiết kế page table kế thừa đa tầng <Multilevel hierarchical page-table> (Rõ hơn trong slide kế tiếp) Trong thiết kế chung của các kiến trúc AMD64 và các kiến trúc kế thừa: địa chỉ ảo 64-bit sẽ được ánh xạ bởi địa chỉ vật lý 52-bit. Tuy nhiên trên thực tế, ở đây ví dụ bởi kiến trúc cho CPU AMD Opteron thì địa chỉ ảo 64-bit sẽ được biểu diễn ở dạng chính tắc (canonical form) trong đó 16 bits dấu và 48 bits địa chỉ ảo được ánh xạ bởi địa chỉ vật lý 40-bit Có 2 mô hình <page translation> được sử dụng trong AMD64, 1. Mô hình <legacy-mode page translation>: cơ chế paging kế thừa từ kiến trúc IA-32 (32 bit) 2. Mô hình <long-mode page translation>: (Minh họa bởi hình trong slide sau) Dẫn chứng có thể thấy rõ ràng nhất là 2 thư mục Program Files và Program Files (x86) 9
  • 10. 16 bits 9 bits 9 bits 9 bits 9 bits 12 bits 1. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 2. “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021 The four-level translation of the 48-bit virtual addresses of the Opteron. 3 potential places to check protection restrictions 10 Mô hình Long-Mode Page Translation Để không bùng nổ kích thức của 1 page table (64 bit, a.k.a 264 phần tử), AMD64 sử dụng thiết kế page table kế thừa đa tầng (multi level hierarchy) như vậy thì số table lúc này sẽ phụ thuộc vào kích thước của địa chỉ ô nhớ (address size). Cụ thể: • 4 Kbyte  4 page table {Page-map L4; Page-dir pointer, Page-dir, Page-table} • 2 Mbyte  3 page table {Page-map L4; Page-dir pointer, Page-dir} • 1 Gbyte  2 page table {Page-map L4; Page-dir pointer} Cấu trúc phần tử trong các page table đều có các cờ kiểm tra, tiêu biểu có thể kể đến: • User/Supervisor (U/S) bit: Kiểm tra phân quyền • Read/Write (R/W): Kiểm tra read-only hay không? • No-Execute (NX): Các tập lệnh có bị đánh dấu không thực thi được hay không? Vì thế trong các page table đều có thể thiết lập các phương thức kiểm tra, và như trên hình thể hiện 3 nơi tiềm năng về mặt lý thuyết để có thể thực hiện các phép kiểm tra page-protection Tham khảo tại: 1.John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 2.“AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021, URL: https://www.amd.com/system/files/TechDocs/24593.pdf 10
  • 11. Protecting paging VM principle • The page tables are protected from being written by user programs (non-privileged). • Sharing of memory between processes is accomplished by having a page table entry in each address space point to the same physical memory page 11 1. John Hennessy, David Patterson, “Computer Architecture: A Quantitative Approach”, 5th edition, Morgan Kaufmann Publisher, 2012 2. “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021, URL: https://www.amd.com/system/files/TechDocs/24593.pdf Với các đặc tính của phương pháp thiết kế page table kế thừa đa tầng, AMD64 được thiết lập các nguyên tắc nhất định: • Do có 2 phân quyền chính supervisor và user (không có đặc quyền), vì thế các pagetable phải được bảo vệ khỏi việc ghi từ chương trình không được phân quyền (user) • Phương thức chia sẻ dữ liệu được thực hiện thông qua các phần tử của page-table có thể trỏ về cùng một địa chỉ vùng nhớ chính Một số thông tin thêm: The Opteron hiện thực 4 cấu trúc 4 tầng pagetable để nhằm rút ngắn chi phí thời gian khi truy cập. Trong đó 2 bảng dùng cho instruction accesses và 2 bảng dùng cho data accesses 11
  • 12. AMD64 Page-protection •Supervisor pages •Read-only pages •Instruction fetch restrictions •Memory protection keys •Shadow stack pages 12 AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021 Các cơ chế page-protection được hiện thực trong kiến trúc AMD64: 1. Supervisor pages: Phương thức bảo vệ ngăn chặn các code phi đặc quyền (user - non- privileged) truy cập vào data và code của các phân vùng đặc quyền (supervisor) 2. Read-only pages: Ngăn chặn các chương trình viết vào các không gian read-only 3. Instruction fetch restrictions: Chặn bộ xử lý (processor) lấy các lệnh từ các page chứa dữ liệu không thực thi (non-executable data) hoặc không được phép truy cập do không có quyền hợp lệ 4. Memory protection keys: Phương thức cho phép các ứng dụng truy cập các data có phân quyền cao thông qua các cơ chế truy cập được bảo vệ mà kiến trúc cho phép 5. Shadow stack pages: Đọc thêm phần Shadow stack trong tài liệu tham khảo Tham khảo tại: 1., “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021, URL: https://www.amd.com/system/files/TechDocs/24593.pdf 12
  • 13. 3. Protection in modern architecture: Study case: modern x86 and AMD64 Architecture Stallings, William, “Computer Organization and Architecture”, 7th edition, Prentice Hall International, 2016 13 Phần 3. Hiện thực trong các kiến trúc x86 & AMD64 hiện đại dùng kiến trúc hybrid Các kiến trúc hiện đại đa phần đều là dạng kết hợp 2 phương thức thiết kế bộ nhớ ảo, điển hình là x86 và AMD64 (a.k.a x86_64) Quá trình kiểm tra trong segment-protection và page-protection sẽ được thực hiện tuần tự bởi bộ xử lý trung tâm. Trong đó: • Sẽ thực hiện trước các phương pháp segment-protection, kế tiếp sẽ đến page- protection • Nếu phát hiện ra các xung đột trong quá trình segment-protection, sẽ không thực hiện page-protection • Khi có xung đột tại segment-protection hoặc page-protection, sẽ tạo ra exception và không thực hiện truy cập bộ nhớ 13
  • 14. Architecture manual list • “AMD64 Architecture Programmer’s Manual, Volume 2: System Programming”, AMD, Revision 3.37, Date: Mar 2021, URL: https://www.amd.com/system/files/TechDocs/24593.pdf • “Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programing Guide, Part 1”, Intel, (2016), URL: https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures- software-developer-vol-3a-part-1-manual.pdf • “The IA-32 Architecture”, Guide to Assembly Language Programming in Linux, 10.1007/b136895(Chapter 4), 61–78. (2005). doi:10.1007/0-387-26171-0_4 • “IA-32 Intel® Architecture Software Developer’s Manual, Volume 3: System Programming Guide”, (2005). URL: https://www.scs.stanford.edu/05au-cs240c/lab/ia32/IA32-3.pdf • “INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986”, (1986), URL: https://css.csail.mit.edu/6.858/2013/readings/i386.pdf 14 14