Trong trạng thái giả this câu trả lời: With the 64-bit x86_64 kernel, a 32-bit process can use the entire 4GB address space, except for a couple pages (8KB) at the end of the 4GB address space which are managed by the kernel.
32-bit xử lý của địa chỉ trên 64-bit Linux
mục đích của bộ nhớ hạt nhân quản lý này là gì? Nó có nên ở trong không gian hạt nhân, để ngăn chặn sự tham nhũng tình cờ của người dùng không?
'-4095 .. -1' là' 0xfffff001 .. 0xffffffff'. '0xfffff000' là' -4096', không phải '-4095', vì vậy nó là giá trị trả về không hợp lệ từ mmap. ([định hình trang đó không thực sự hoạt động] (https://stackoverflow.com/questions/47712502/why-cant-i-mmapmap-fixed-the-highest-virtual-page-in-a-32-bit- linux-process-o), nhưng tôi không tin rằng đó là lý do, trừ khi có một VMA ẩn chứa phần trên cùng để hạt nhân không phải lo lắng về không gian người dùng truyền chúng như args để 'read' hoặc một cái gì đó .) –