MichalOS

35 views
Skip to first unread message

Ahmed

unread,
Jan 29, 2025, 3:30:34 AMJan 29
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 AMJan 29
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 PMJan 29
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