Tôi đang đọc "Phát triển nhân Linux" của Robert Love, và tôi đã xem qua đoạn văn sau:
Không (Dễ dàng) Sử dụng Dấu phẩy động
Khi một quy trình không gian người dùng sử dụng các lệnh dấu phẩy động, hạt nhân quản lý quá trình chuyển đổi từ chế độ số nguyên sang chế độ dấu phẩy động. Những gì hạt nhân phải làm khi sử dụng các lệnh dấu phẩy động thay đổi theo kiến trúc, nhưng hạt nhân thường bắt một cái bẫy và sau đó bắt đầu chuyển đổi từ chế độ số nguyên sang chế độ dấu chấm động.
Không giống như user-space, kernel không có sự hỗ trợ liền mạch cho dấu phẩy động vì nó không thể dễ dàng tự bẫy. Việc sử dụng dấu phẩy động bên trong hạt nhân yêu cầu phải lưu và khôi phục thủ công các thanh ghi dấu chấm động, trong số các công việc có thể có khác. Câu trả lời ngắn gọn là: Đừng làm điều đó! Ngoại trừ một số trường hợp hiếm hoi, không có phép toán dấu phẩy động nào trong nhân.
Tôi chưa bao giờ nghe nói về các chế độ "số nguyên" và "dấu phẩy động". Chính xác thì chúng là gì và tại sao chúng lại cần thiết? Sự khác biệt này có tồn tại trên các kiến trúc phần cứng chính thống (chẳng hạn như x86) hay nó dành riêng cho một số môi trường kỳ lạ hơn? Chính xác thì việc chuyển đổi từ chế độ số nguyên sang chế độ dấu phẩy động đòi hỏi điều gì, cả từ quan điểm của quá trình và hạt nhân?