2010-08-26 36 views
5

Ai đó có thể vui lòng chỉ cho tôi một số tài liệu trên bản đồ bộ nhớ ảo được sử dụng cho Linux và Windows. Bởi vì tôi có nghĩa là những gì địa chỉ ảo, mã, dữ liệu tĩnh có thể ghi, ngăn xếp và đống (cùng với các bit hạt nhân khác) thường sẽ được đặt trong, trong một quá trình điển hình?Bản đồ bộ nhớ xử lý (Windows Linux)

Trả lời

2

Có lẽ cách tốt nhất để lấy bản đồ bộ nhớ quá trình trên Linux là xem tệp/proc // maps. Người ta có thể thấy rõ rằng đối với mỗi đối tượng thực thi hoặc chia sẻ có các phần riêng biệt cho dữ liệu tĩnh thực thi, dữ liệu tĩnh và dữ liệu tĩnh có thể ghi. Mỗi một phần trong số các phần này tồn tại trong trang bộ nhớ riêng của nó, cho phép Linux chia sẻ các phần giữa các tệp thi hành và thậm chí thực hiện các tính năng như sao chép-ghi-ghi.

Ngoài ra, còn có một phần dành riêng cho ngăn xếp và một phần dành riêng cho vùng lưu trữ. Cũng có thể có một số phần ẩn danh.

2

Kể từ khi ASLR ra đời, phần lớn là trên các địa chỉ ảo ngẫu nhiên.

+0

Đây có phải là các phần khối thực tế được sắp xếp hay không hoặc cách các chức năng định vị lại cụ thể được tổ chức trong chính khối mã đó? – doron

+0

Đó là ánh xạ bộ nhớ, tương đương với mã, dữ liệu và phân đoạn ngăn xếp. – ninjalj

1

Mục nhập Wikipedia trên Address Space Layout Randomisation (ALSR) mô tả cách phân bổ không gian địa chỉ ngẫu nhiên bảo vệ chống lại các cuộc tấn công khác nhau và mức độ quan trọng khác nhau giữa dữ liệu và mã.

Nó mô tả cả mức độ ngẫu nhiên mặc định yếu của Linux và bản vá bạn có thể sử dụng để tăng cường.

Nó cũng mô tả phiên bản Windows nào cung cấp và phiên bản Windows chỉ áp dụng cho một số mã thực thi &.

+0

Chi tiết khá thấp. Tôi quan tâm đến các sơ đồ có địa chỉ nếu có thể. – doron

+0

Nếu bạn đang tìm kiếm một bản đồ bộ nhớ như những ngày cũ, ví dụ, một Commodore 64 (chẳng hạn như http://sta.c64.org/cbm64mem.html), tôi nghĩ bạn sẽ ra ngoài của may mắn. Tôi không nghĩ nó hoạt động như thế nữa. – Oddthinking

Các vấn đề liên quan