Dude wrote:Reminds me of the Win32c (Chicago) kernel of Windows 4 (which was renamed Windows '95).
You can generally not run a 64-bit application using a 32-bit kernel, at least not under Linux or MS Windows as far as I know, but not every OS has these restrictions.
Dude wrote:All operating systems have some kind of kernel API for application s/w to run on that kernel. APIs for memory management (allocating and using shared memory fore example), APIs for IPC (Inter Process Communication), APIs for I/O and so on.
I'm not a Windows developer. Please correct me if I'm wrong, but I think what you described was accomplished by Windows APIs. And if I'm not mistaken, developers will have to use these APIs in their code in order to function.
It would be like using a 32bit OS/X (or Windows 7) kernel today and running sound via a 16bit MS-DOS SoundBlaster driver and a SB compatible sound card. And this is exactly what the Chicago kernel did and allowed.For one, the ISA bus was 8/16 bit. At the same time, Apple used the NuBus, which was already 32-bit. The 68k Motorola CPU's were 16/32-bit and the Mac OS provided 32-bit virtual memory addressing. So the complexity of Microsoft might be impressive, but not from a technology standpoint, which was already a decade behind at the time. The IBM XT/AT was already a pile of technology junk. One man's trash is another man's treasure ;-)
I do not believe that this type of integration had every been attempted before, or sinceSuch type of solutions were already used many years ago in the 80's by DEC/VMS, which at some point in history was a 32-bit OS running on 16-bit hardware. And Dave Cutler and crew who developed Windows NT for Microsoft, as we all know worked for DEC. Windoes NT was a new OS in 1993 with a new API, but the roots of its core architecture and implementation goes back to the 70's.
ABI for OS/X fails to compare. The Chicago kernel was a lot more complex and something pretty unique.Well, I wonder why you say "fails to compare". ABI is API on the machine level, sort of a compiled API. ABI is a superior solution, certainly more convenient for the user or developer. Isn't the Linux ELF format SysV ABI?