1. user space là gì? kernel space là gì?
User space là môi trường để người dùng thao tác với hệ điều hành
→ phần mềm, ứng dụng chạy ở đây
Kernel space là môi trường để hệ điều hành chạy
→ làm việc trực tiếp với phần cứng + quản lí những cái chạy ở user space
Từ dãy (range) địa chỉ nhớ chia ra thành user space và kernel space
2. Chia địa chỉ nhớ cho user space và kernel space trong Linux Kernel 32 bit
Không mất tính tổng quát ta có
Biên dịch trong Linux Kernel là 1 mớ bòng bong này
Processor type and features → Memory split
3G/1G
3G/1G (full 1G low memory)
→ kernel space là low memory nha
2G/2G
2G/2G (full 2G low memory)
1G/3G
3. Làm seo để bít chạy được ở user space hay kernel space?
Tài liệu CPU của Intel nói thía này
Trong cái sổ hộ khẩu (registry) của CPU có 1 ông đăng kí (register) địa chỉ nhớđể điều khiển
→ tên là CR3 (Control Register) sẽ cho chạy ở user space hay kernel space
Trang 2947 + 2948 sách Intel 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
4. Bên trong CPU Intel phân chia quyền hạn như thế nào?
Hình này trang 158 sách ở trên á, giải thích ở trang 2949
5. Các vùng địa chỉ nhớ trên Linux Kernel 32 bit
1 2 3 4 5 6 | //1 số lịnh để coi các vùng nhớ 32 bit grep^Node/proc/zoneinfo cat/proc/pagetypeinfo cat/proc/buddyinfo |
https://www.kernel.org/doc/html/latest/mm/highmem.html
Vài lịnh để xem CPU 32 bit hay 64 bit
1 2 3 4 5 6 7 8 9 10 | uname-i;uname-p;uname-m //Gộp lại cho phẻ uname-ipm getconf LONG_BIT //Dòng CPU op-mode(s) 32-bit, 64-bit có vẻ CPU đang chạy là 64 bit //--> máy ảo được mô phỏng (simulate) là 32 bit lscpu |
1 2 3 4 5 6 | //Tìm thông tin zìa long mode của CPU 64 bit //--> có lm nha grep lm/proc/cpuinfo //Lịnh này khác gì lịnh trên zạ? grep-wlm/proc/cpuinfo |
Hỏi
lahf_lm là zì zạ?
Seo 32 bit mà nhận được 64GB RAM zạ?
https://www.kernel.org/doc/html/latest/mm/highmem.html#i386-pae
Bạn nào kiếm cho mềnh 1 cái hình nhìn dễ hiểu hơn được hem?
Biên dịch Linux Kernel ăn được 64GB RAM nè
Processor type and features → High Memory Support
Bài tập