MichalOS

39 views
Skip to first unread message

Ahmed

unread,
Jan 29, 2025, 3:30:34 AM1/29/25
to MikeOS
Sorry for the questions, but can is MichalOS 32 bit or 16 bit, some areas it's written 16 and some 32

Walt Nagel

unread,
Jan 29, 2025, 7:17:23 AM1/29/25
to Ahmed, MikeOS
Ahmed,

Your questions is a very good question. As you noticed part of the code is written with 16-bit processors in mind and some (especially the disk access) with 32-bit processor instructions.

The original goal was to keep all of the code completely compatible with an 8086/88 system (16-bit). However, goals change. Even the early beta code started to include instructions that required a 186/188 (still 16-bit) or newer processor. By  the time of the initial release in late 2007, there were areas of the code that required a 386 or newer system (32-bit) -- I believe this was done to make the system more compact, faster and easier to program.

I classify a system based on its application programmer interface (API). In the case of MikeOS the API is still 16-bit -- even though there is 32-bit underlying code; I would still classify MikeOS as a 16-bit system. Since MichalOS is based on MikeOS (see Readme file), by this reasoning, it would also be a '16-bit system' (with underlying 32-bit code).


On 1/29/2025 3:30 AM, Ahmed wrote:
Sorry for the questions, but can is MichalOS 32 bit or 16 bit, some areas it's written 16 and some 32 --
You received this message because you are subscribed to the Google Groups "MikeOS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mikeos+un...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/mikeos/dc3c777c-f28e-40bc-86e4-8a9540b55d4dn%40googlegroups.com.

-- 
"I hate this old computer. I wish that they would sell it.
It never does just what I want, But only what I tell it."

procha...@gmail.com

unread,
Jan 29, 2025, 1:15:26 PM1/29/25
to MikeOS
Hi, I'm the author of MichalOS, a fork of MikeOS.

Many years ago, the main reason for MichalOS's existence was the fact that it ran in 32-bit unreal mode, which is a weird x86 CPU mode where you have access to the entire 32-bit memory address space, but it still runs 16-bit code (meaning you can use the existing BIOS services which MikeOS/MichalOS rely on).

The problem was that x86 unreal mode behaved weirdly on some systems (especially coreboot machines, where every BIOS service call forced the CPU back into 16-bit real mode, and sometimes it would also nuke the upper 16 bits of registers), so I removed the support for it. Now, MichalOS runs only in real mode, like MikeOS. However, there are still some parts of the kernel using 32-bit registers (which you can do in real mode), so it requires at least a 386 to boot.
Reply all
Reply to author
Forward
0 new messages