Tôi là một chút nhầm lẫn như thế nào glibc trên linux cấp phát bộ nhớ của nó để program.These khác nhau là một vài câu hỏi:Các chương trình khác nhau có được bộ nhớ của chúng từ một đống thông thường hay từ một vùng riêng biệt?
Có được phân bổ từ một đống chung (ví dụ là có một đống chung trên tất cả các các quy trình trong linux) hoặc có một đống được phân bổ cho mọi quá trình trong hệ thống.
Giả sử nếu tôi biên soạn một thư viện tĩnh và cuối cùng nó được liên kết tĩnh với quy trình chính, cách nó sẽ nhận được bộ nhớ của nó? Là nó đã được liên kết với một số heap khác (như chúng tôi đã biên dịch nó) hoặc sẽ nhận được bộ nhớ của nó từ heap của quá trình chính.
Dưới đây là một câu trả lời mà minh họa Linux Memory Model: http://stackoverflow.com/questions/2048007/linux-ia-32-memory-model –
Xem [Làm thế nào Các Kernel Quản lý bộ nhớ của bạn] (http : //duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory) để biết tổng quan ... và sau đó là một số! Vì vậy, nhiều cho là "đơn giản" ;-) –