Hi all,
As per TT, Intel has announced at the latest UEFI plugfest on sept 2017 that they plan on removing the CSM module from UEFI, moving any implementation to class 3.0(+) from that moment on. For those not yet in the know; the CSM module provides services for those legacy OSses and such that (still) rely on BIOS callbacks. This is not going to be a problem for the ReactOS bootloader freeldr.dll, as UEFI (boot) support is in the works, and progressing slowly :'') but steadily. But what about the rest of the OS? Since the current target is NT5.1 and NT5.2 (the Windows Server 2003 group) and thus aimed at OSses that were developed with only a BIOS-based system firmware architecture in mind, chances are that ReactOS, in mimicking those NT5 based OSses, might loose the ability to natively run on HW by default by then. The LinuxBIOS//Coreboot guys already have been using SeaBIOS (a PC BIOS implementation written in C) as a payload to be able to boot Windows XP and 7 off a Coreboot based system firmware, suggesting that trying to boot a Windows XP or 7 reimplementation off a UEFI class 3 firmware will fall flat on its face. Are BIOS callbacks being made only at boot time (fixed when freeloader gets UEFI support) or also during runtime (please NO!) in ReactOS?
Intel to ditch CSM from UEFI in 2020, effects on ROS??
Moderator: Moderator Team
-
- Posts: 29
- Joined: Tue Sep 23, 2014 5:58 pm
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
Who is "TT"?JHKr0md1yk wrote:As per TT...
Does Microsoft Windows XP or Server 2003 make BIOS callbacks during runtime? There is your answer.JHKr0md1yk wrote:Are BIOS callbacks being made... during runtime (please NO!) in ReactOS?
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
How do you know that? "Coreboot guys" told you that BS?OSses that were developed with only a BIOS-based system firmware architecture in mind
These OSes were based on the previous versions capable running on Alpha, PPC and MIPS architectures, none of which had BIOS FW. And these systems were developed for Itanium too, where there is no BIOS and where EFI arose in fact.
I highly doubt x86 NT5.1 and NT5.2 use BIOS calls, don't know for sure though. There is no sense in using that even in the HAL.
So XP won't boot on UEFI just because of reliance on ntldr which has no clue about UEFI. 7 boots on UEFI easily. Hence their reimplementations could fail to boot only idue to they use BIOS or loaders that rely only on BIOS presence.
I guess, this "fear" is a little bit exaggerated.
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
I am not a ReactOS developer.
I am no OS developer but I am confident that modern OS like XP and later have no dependency on BIOS while they are running.
(I mean after booting)
I assume that you know what BIOS is.
Basic Input Output System.
Modern OSs' are so complex that functions provided by BIOS is of no use during runtime.
The work of BIOS is to just load the bootloader then if necessary, help the bootloader to load the OS then get the hell out of there.
Besides, modern OSs' have Device Drivers which can handle a lot more than BIOS.
Plus they are safe.
Also the kernel can register its own
interrupt handlers.
Kernel routines are more portable.
Pure Win32 applications use Win32 API call and so they are not bare metal and they don't directly interact with hardware.
( I mean user level programs like notepad, GIMP, AIMP, etc )
So, all you have to do is implement Win32 API on compatible CPU architecture to run Win32 applications.
ReactOS VDM will take care of the BIOS calls needed for DOS programs.
(BTW I don't think that any Win32 program can interact with hardware directly. But I am not sure because programs can be written in assembly.)
( before asking anything take into account the difference between don't and can't )
I am no OS developer but I am confident that modern OS like XP and later have no dependency on BIOS while they are running.
(I mean after booting)
I assume that you know what BIOS is.
Basic Input Output System.
Modern OSs' are so complex that functions provided by BIOS is of no use during runtime.
The work of BIOS is to just load the bootloader then if necessary, help the bootloader to load the OS then get the hell out of there.
Besides, modern OSs' have Device Drivers which can handle a lot more than BIOS.
Plus they are safe.
Also the kernel can register its own
interrupt handlers.
Kernel routines are more portable.
Pure Win32 applications use Win32 API call and so they are not bare metal and they don't directly interact with hardware.
( I mean user level programs like notepad, GIMP, AIMP, etc )
So, all you have to do is implement Win32 API on compatible CPU architecture to run Win32 applications.
ReactOS VDM will take care of the BIOS calls needed for DOS programs.
(BTW I don't think that any Win32 program can interact with hardware directly. But I am not sure because programs can be written in assembly.)
( before asking anything take into account the difference between don't and can't )
Open Your Windows To Freedom
-
- Posts: 29
- Joined: Tue Sep 23, 2014 5:58 pm
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
OSses that were developed with only a BIOS-based system firmware architecture in mind
Point taken about the MS versions of the NT5 OS family being developed and able to run on different CPU archs, but that doesn't say anything definite about the x86 branch, the project's main target currently, in particular in this regard. Though admittedly, I should have been more clear about limiting the scope to x86(-64) versions specifically.Val wrote:How do you know that? "Coreboot guys" told you that BS?
These OSes were based on the previous versions capable running on Alpha, PPC and MIPS architectures, none of which had BIOS FW. And these systems were developed for Itanium too, where there is no BIOS and where EFI arose in fact.
If memory serves me well 7 is able to boot from an UEFI FW thanks to the presence of that CSM module. XP x86 won't boot at all.I highly doubt x86 NT5.1 and NT5.2 use BIOS calls, don't know for sure though. There is no sense in using that even in the HAL.
So XP won't boot on UEFI just because of reliance on ntldr which has no clue about UEFI. 7 boots on UEFI easily. Hence their reimplementations could fail to boot only idue to they use BIOS or loaders that rely only on BIOS presence.
I guess, this "fear" is a little bit exaggerated.
The Coreboot project relies on SeaBIOS to provide the neccesary BIOS calls when trying to install plain vanilla XP or 7 on a system flashed with a Coreboot image into the BIOS chip. They're using the original ntldr from the install medium, not a reimplementation thereof.
Also @Adcock: I'm inclined to believe that for performance reasons, the OS's native drivers and routines would be vastly preferred over calling into BIOS routines. However, I suspect some of them still be using those as a fallback mechanism occasionally. I'm thinking of VGA and IDE // ATA type disk drivers in particular.
Last edited by JHKr0md1yk on Sat Nov 25, 2017 1:38 am, edited 1 time in total.
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
I can't answer your question directly, but if you're familiar with BIOS calls you can look in FreeLDR and HAL's source code in the repository:
https://github.com/reactos/reactos/tree ... hal/halx86
https://github.com/reactos/reactos/tree ... ot/freeldr
I don't think any other part of the system would call the BIOS anywhere else. But if you want to be absolutely sure, just search the repository for anything that might have it (BIOS calls while organizing the search results for only Assembly files, C compiler-specific calls to Assembly, etc.) I recall hearing official Windows code still had a bit of assembly somewhere outside the HAL but I don't know anything about it or if ReactOS also does it the same way.
I know it doesn't help much but it's a lot less aggressive than the hot garbage replies in this thread. The rest of you should be ashamed.
Have a good day.
https://github.com/reactos/reactos/tree ... hal/halx86
https://github.com/reactos/reactos/tree ... ot/freeldr
I don't think any other part of the system would call the BIOS anywhere else. But if you want to be absolutely sure, just search the repository for anything that might have it (BIOS calls while organizing the search results for only Assembly files, C compiler-specific calls to Assembly, etc.) I recall hearing official Windows code still had a bit of assembly somewhere outside the HAL but I don't know anything about it or if ReactOS also does it the same way.
I know it doesn't help much but it's a lot less aggressive than the hot garbage replies in this thread. The rest of you should be ashamed.
Have a good day.
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
The parts of code in ReactOS that use BIOS interrupts are:
- as everyone noticed, FreeLdr (which will be replaced on UEFI platforms by ongoing developed UEFI bootloader by Alex Ionescu);
- some stuff in hal/halx86 (see hal/halx86/generic/bios.c);
- x86 VDM support in ntoskrnl (see ntoskrnl/vdm/vdmexec.c and ntoskrnl/ke/i386/v86vdm.c), which of course should not be here for all the other architectures, and should not be used on UEFI platforms;
- the (VGA) VideoPort driver: see the file win32ss/drivers/videoprt/int10.c (last two lines in https://git.reactos.org/?p=reactos.git& ... 86CallBios ).
On other architectures this should certainly need to be a framebuffer driver instead.
- as everyone noticed, FreeLdr (which will be replaced on UEFI platforms by ongoing developed UEFI bootloader by Alex Ionescu);
- some stuff in hal/halx86 (see hal/halx86/generic/bios.c);
- x86 VDM support in ntoskrnl (see ntoskrnl/vdm/vdmexec.c and ntoskrnl/ke/i386/v86vdm.c), which of course should not be here for all the other architectures, and should not be used on UEFI platforms;
- the (VGA) VideoPort driver: see the file win32ss/drivers/videoprt/int10.c (last two lines in https://git.reactos.org/?p=reactos.git& ... 86CallBios ).
On other architectures this should certainly need to be a framebuffer driver instead.
Re: Intel to ditch CSM from UEFI in 2020, effects on ROS??
hbelusca : Doesn't ReactOS VDM emulate BIOS interrupts, calls, etc?
If it doesn't then I think that it should.
I just did not understand what you meant by this :
Konata :
(The 'aggresive' part, Not 'ashamed' part)
If it doesn't then I think that it should.
I just did not understand what you meant by this :
I mean does it call real BIOS or emulate BIOS.hbelusca wrote: The parts of code in ReactOS that use BIOS interrupts are:
[...]
- x86 VDM support in ntoskrnl (see
ntoskrnl/vdm/vdmexec.c and
ntoskrnl/ke/i386/v86vdm.c), which of
course should not be here for all the
other architectures, and should not be
used on UEFI platforms
Konata :
For clearit's sake to whom did you refer it.Konata wrote: I know it doesn't help much but it's a lot less aggressive than the hot garbage replies in this thread. The rest of you should be ashamed.
(The 'aggresive' part, Not 'ashamed' part)
Open Your Windows To Freedom
Who is online
Users browsing this forum: DotBot [Crawler] and 38 guests