Tôi đang nghiên cứu các hệ điều hành và kiến trúc x86, và trong khi tôi đang đọc về phân đoạn và phân trang, tôi tự nhiên tò mò về cách các hệ điều hành hiện đại xử lý việc quản lý bộ nhớ. Từ những gì tôi tìm thấy Linux và hầu hết các hệ điều hành khác về cơ bản tránh xa phân khúc có lợi cho việc phân trang. Một vài lý do cho điều này mà tôi tìm thấy là sự đơn giản và tính di động.
Những ứng dụng thực tế nào dành cho phân khúc (x86 hay nói cách khác) và chúng ta sẽ thấy các hệ điều hành mạnh mẽ sử dụng nó hay chúng sẽ tiếp tục ưu tiên một hệ thống phân trang.
Bây giờ tôi biết đây là một câu hỏi được tải nhưng tôi tò mò cách phân khúc sẽ được xử lý với các hệ điều hành mới được phát triển. Liệu nó có ý nghĩa rất nhiều để ủng hộ phân trang mà không ai sẽ xem xét một cách tiếp cận 'phân khúc' hơn? Nếu vậy, tại sao?
Và khi tôi nói phân khúc 'trốn tránh', tôi ngụ ý rằng Linux chỉ sử dụng nó theo như nó phải làm. Chỉ có 4 phân đoạn cho người dùng và mã nhân / phân đoạn dữ liệu. Trong khi đọc tài liệu Intel, tôi có cảm giác rằng phân khúc được thiết kế với các giải pháp mạnh mẽ hơn trong tâm trí. Sau đó, một lần nữa tôi được cho biết rằng x86 có thể phức tạp đến mức nào.
Tôi đã tìm thấy giai thoại thú vị này sau khi được liên kết với 'thông báo' ban đầu của Linux Torvald cho Linux. Ông nói điều này một vài bài viết sau:
Đơn giản, tôi muốn nói rằng porting là không thể. Nó chủ yếu ở C, nhưng hầu hết mọi người sẽ không gọi những gì tôi viết C. Nó sử dụng mọi tính năng có thể hiểu được của 386 tôi có thể tìm thấy, vì đó cũng là một dự án để dạy tôi về 386. Như đã đề cập, nó sử dụng MMU , cho cả phân trang (chưa vào đĩa) và phân đoạn. Đó là phân đoạn làm cho nó thực sự phụ thuộc 386 (mọi tác vụ đều có phân đoạn 64Mb cho mã & dữ liệu - tối đa 64 tác vụ trong 4Gb. Bất kỳ ai cần nhiều hơn 64Mb / tác vụ - cookie khó khăn).
Tôi đoán thử nghiệm của riêng tôi với x86 đã khiến tôi đặt câu hỏi này. Linus không có StackOverflow, vì vậy anh ta chỉ thực hiện nó để dùng thử.