Trong Linux, tôi đã học được rằng mọi quá trình lưu trữ dữ liệu bắt đầu từ 0x08048000 trong máy 32 bit (và 0x00400000 trong máy 64 bit).Bộ nhớ trước 0x08048000 được sử dụng cho máy 32 bit là gì?
Nhưng tôi không biết lý do tại sao bắt đầu từ đó. Bộ nhớ trước 0x08048000 được sử dụng để làm gì?
Cập nhật: Một số người nghĩ rằng nó được ánh xạ cho hạt nhân. Tuy nhiên theo như tôi biết, hạt nhân Linux sử dụng bộ nhớ cao cấp bắt đầu sau khi ngăn xếp người dùng.
Một số bản phân phối (ví dụ: RHEL6) thậm chí đã bỏ hoàn toàn điều '0x08048000' bằng cách liên kết các chương trình với [' DYNAMIC' flag] (http://stackoverflow.com/questions/5235844/objdump-head-elf-meaning-of-flags), làm cho phân đoạn của họ được phân bổ cùng với '.so'. –