Điều gì xảy ra nếu quá trình B ghi (với một thông thường viết() syscall) một số dữ liệu vào hình ảnh của quá trình A trong khi sau này đang thực hiện? Nó sẽ không gây ra tham nhũng của những gì quá trình A đang thực hiện?Viết để thực hiện quá trình 'hình ảnh trên Linux
Tôi mới sử dụng Linux. Theo tôi hiểu, Unix lịch sử không áp đặt các khóa tập tin bắt buộc (như Windows). Vì vậy, viết là hoàn toàn có thể.
Tôi đã tìm kiếm trên web mà không có kết quả. Khi tôi hỏi câu hỏi này, các đồng nghiệp có kinh nghiệm Linux của tôi, tất cả họ đều trả lời rằng quy trình A có hình ảnh hoàn toàn trong bộ nhớ của nó.
Tuy nhiên, từ những gì tôi đã đọc, hạt nhân có thể dễ dàng trao đổi một số trang trở lại tệp hình ảnh từ bộ nhớ, chẳng hạn như khi điều kiện bộ nhớ thấp bị nhấn mạnh. Vì vậy, trong khi trên đĩa, một số trang có thể có khả năng bị hỏng bởi một quá trình nhà văn khác; sau đó, chúng có thể được hoán đổi lại thành RAM và được thực thi.
Kiểm tra trước đó: http://stackoverflow.com/questions/4453781/what-happens-when-you-overwrite-a-memory-mapped-executable – Antoine