Tháo một hệ nhị phân ELF trên hệ thống Ubuntu x86 Tôi không thể không chú ý rằng đoạn mã (.text) bắt đầu từ địa chỉ ảo 0x8048000 và tất cả các địa chỉ bộ nhớ thấp hơn dường như không được sử dụng.Tại sao địa chỉ bộ nhớ ảo cho các tệp nhị phân Linux bắt đầu ở 0x8048000?
Điều này có vẻ khá lãng phí và tất cả các lượt truy cập của Google đều là folklore involving STACK_TOP hoặc bảo vệ chống lại các tham chiếu không có con trỏ null. Trường hợp thứ hai có vẻ như nó có thể được sửa bằng cách sử dụng một trang duy nhất thay vì để lại khoảng trống 128MB.
Vì vậy, câu hỏi của tôi là điều này - có câu trả lời dứt khoát nào về lý do bố cục đã được sửa cho các giá trị này hay chỉ là một lựa chọn tùy ý?
Tôi không biết câu trả lời thực sự; nhưng có lẽ bài viết này có thể giúp hoặc ít nhất là cung cấp một đọc thú vị! http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html –
bản sao có thể có của [Tại sao địa chỉ ảo thực thi ELF có dạng 0x80xxxxx và không phải 0x0?] (http: // stackoverflow .com/questions/2187484/why-is-the-elf-execution-entry-point-virtual-địa chỉ-of-the-form-0x80xxxxx-and-n) –