Saya mempelajari sistem operasi dan arsitektur x86, dan ketika saya membaca tentang segmentasi dan paging, saya tentu penasaran bagaimana OS modern menangani manajemen memori. Dari apa yang saya temukan Linux dan sebagian besar sistem operasi lainnya pada dasarnya menghindari segmentasi demi paging. Beberapa alasan untuk ini yang saya temukan adalah kesederhanaan dan portabilitas.
Apa kegunaan praktis yang ada untuk segmentasi (x86 atau yang lain) dan apakah kita akan pernah melihat sistem operasi yang kuat menggunakannya atau apakah mereka akan terus mendukung sistem berbasis paging.
Sekarang saya tahu ini adalah pertanyaan yang dimuat tetapi saya ingin tahu bagaimana segmentasi akan ditangani dengan sistem operasi yang baru dikembangkan. Apakah masuk akal untuk memilih paging sehingga tidak ada yang akan mempertimbangkan pendekatan yang lebih 'tersegmentasi'? Jika demikian, mengapa?
Dan ketika saya mengatakan segmentasi 'hindari' saya menyiratkan bahwa Linux hanya menggunakannya sejauh yang diperlukan. Hanya 4 segmen untuk pengguna dan kode kernel / segmen data. Saat membaca dokumentasi Intel, saya merasa bahwa segmentasi dirancang dengan solusi yang lebih kuat. Kemudian lagi saya diberitahu pada banyak kesempatan betapa rumitnya x86.
Saya menemukan anekdot yang menarik ini setelah dikaitkan dengan 'pengumuman' asli Linux Torvald untuk Linux. Dia mengatakan ini beberapa posting kemudian:
Cukup, saya akan mengatakan bahwa porting tidak mungkin. Ini sebagian besar dalam C, tetapi kebanyakan orang tidak akan menyebut apa yang saya tulis C. Ini menggunakan semua fitur yang mungkin dari 386 yang bisa saya temukan, karena itu juga sebuah proyek untuk mengajari saya tentang 386. Seperti yang telah disebutkan, ia menggunakan MMU , untuk paging (belum ke disk) dan segmentasi. Ini adalah segmentasi yang menjadikannya BENAR-BENAR 386 bergantung (setiap tugas memiliki segmen 64 MB untuk kode & data - maks 64 tugas dalam 4Gb. Siapa pun yang membutuhkan lebih dari 64 Mb / tugas - cookie yang sulit).
Saya kira eksperimen saya sendiri dengan x86 membuat saya mengajukan pertanyaan ini. Linus tidak memiliki StackOverflow, jadi dia hanya mengimplementasikannya untuk mencobanya.