64-bit Application Exception Handling via 32-bit Kernel Mode Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Migrating from a 32-bit architecture to a 64-bit architecture is resource-intensive and time-consuming, requiring significant modifications to the operating system kernel and device drivers, leading to potential bugs and substantial engineering efforts.
Innovation Solution
A system that uses a 32-bit OS kernel to support 64-bit applications by switching to 32-bit mode for exception handling and mapping applications to virtual memory, allowing a 32-bit kernel to execute 64-bit processes while maintaining backward compatibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If extensive modifications are made to the OS kernel to support 64-bit architecture, then the system can natively support 64-bit applications, but the migration process becomes time-consuming and resource-intensive
Solution Approach 1:
The patent introduces a 64-bit user mode as an intermediary layer that allows 64-bit applications to execute on a 32-bit kernel. The kernel maintains its 32-bit architecture while providing controlled access to 64-bit user space, eliminating the need to modify the kernel for 64-bit support.
Solution Approach 2:
The system is segmented into distinct 32-bit kernel space and 64-bit user space. This segmentation allows each part to operate independently with its native architecture, avoiding the need to modify the entire system for 64-bit compatibility.
2Adaptability or versatility
If extensive modifications are made to the OS kernel, then 64-bit architecture support is achieved, but subtle bugs are introduced that take weeks or months to identify and fix
Solution Approach 1:
By segmenting the system into 32-bit kernel and 64-bit user mode, the patent isolates the stable 32-bit kernel from 64-bit operations. This prevents bugs from being introduced into the kernel while still enabling 64-bit application execution in the user space.
Solution Approach 2:
The 64-bit user mode acts as an intermediary that handles 64-bit operations without requiring kernel modification. This protects the kernel's stability while providing 64-bit functionality through the intermediary layer.
3Adaptability or versatility
If a new 64-bit OS kernel is created, then 64-bit applications can execute natively, but device drivers must be rewritten by third party vendors
Solution Approach 1:
The 32-bit kernel is designed to be universal, supporting both 32-bit and 64-bit applications through its dual-mode architecture. Existing device drivers continue to function without modification since the kernel interface remains compatible.
Solution Approach 2:
The 64-bit user mode serves as an intermediary that allows 64-bit applications to interact with the 32-bit kernel through existing driver interfaces, eliminating the need for driver rewriting while enabling 64-bit execution.
4Ease of manufacture
If a 32-bit kernel is used to support 64-bit applications, then migration is simplified, but the system must switch processor modes for exception handling
Solution Approach 1:
The system segments processor operation into 32-bit kernel mode and 64-bit user mode, allowing simple migration while managing mode switching as a controlled transition between segmented states rather than a system-wide complexity.
Data Source
AI summary
One embodiment of the present invention provides a system that uses an M-bit operating system (OS) kernel to support N-bit user processes. During operation, the system receives an exception. Note that the exception can be any event that needs to be handled by executing OS kernel code. Specifically, the exception can be a hardware interrupt, a software interrupt, an asynchronous interrupt, a synchronous interrupt, a signal, a trap, or a system call. Next, the system handles the exception by first switching the processor to the M-bit mode, and then executing M-bit OS kernel code which is designed to handle the exception. Note that the processor may primarily be designed to operate in the N-bit mode; the M-bit mode may primarily be provided for backward compatibility reasons.


