Hello,
I am just subscribed, I do not know if I will contribute or not, need to browse the code and the website for longer to see. Now the question:
Where is if any documentation to the ReactOS booting process in maximum details?
The area of my interest is to try to create Win32 console environement build from ReactOS. That is no windows, no graphics. Only the command line, much like linux or freebsd after the boot.
My experience with ReactOS has never been any good. I guess few years ago when I first heared of ReactOS, I tried to set it up, and got no luck. I keep trying every six month, and few days ago I downloaded the .iso and - oops, no luck again, it now complains about "cabinet not found", dude, this is an installation CD! So I guess I have to go down to source and keep the stuff under control. And the first thing I want to know is the boot process in details.
If anyone here is afraid of anonyms my name is Yakov Sudeikin I live in Siberia. I like the idea of ReactOS and I just unsubscribed from other developer's mailing lists ([dev-freepascal] and [dev-shareware] got me bored finally) and it looks I cannot simply live without being a part of [dev-something].
Yash
From: yash
I am just subscribed
Welcome!
Where is if any documentation to the ReactOS booting process in maximum details?
Like in many other open source projects, documentation is not our strongest point... On the positive side, when you find some docs on how Windows does something (lots of those floating around) then often it will apply to ReactOS too. The boot process with minimum details: First FREELDR.SYS is loaded (either from the bootsector or by chainloading from e.g. NTLDR or GRUB). FreeLdr will load the kernel, hal and (parts of) the registry. It will parse the registry to find which boot-time drivers (and NLS data files) to load and will actually load them. Some device detection is done and finally FreeLdr will transfer control to the kernel. The kernel will initialize itself and the drivers which were loaded by FreeLdr. This should give it access to the disk. It will then proceed to load other drivers. At the end of the boot process it will start the first usermode app, the Session Manager Sub System (SMSS.EXE). SMSS will load and start the environment subsystems (e.g. CSRSS.EXE, the usermode Win32 subsystem and WIN32K.SYS, it's kernelmode counterpart). It will also start WINLOGON.EXE, the logon process. WinLogon would normally be responsible for logging in users, but since we don't support security yet that's basically stubbed out. WinLogon will then start the users shell.
The area of my interest is to try to create Win32 console environement build from ReactOS. That is no windows, no graphics. Only the command line, much like linux or freebsd after the boot.
Well, we already provide that. We don't switch to graphics mode until the first graphics app is started. Normally the users shell will be set to Explorer, that will be the first graphics app so we switch to graphics mode after WinLogon has started the shell. However, by overriding the default shell and setting it to CMD.EXE, no graphics app is started so we stay in text mode. The easiest way to experiment with this is to just copy \ReactOS\System32\cmd.exe to \ReactOS\explorer.exe. You can also change a registry value.
My experience with ReactOS has never been any good. I guess few years ago when I first heared of ReactOS, I tried to set it up, and got no luck. I keep trying every six month, and few days ago I downloaded the .iso and - oops, no luck again, it now complains about "cabinet not found", dude, this is an installation CD!
Hmm, that's bad. Where did you obtain the .iso (which version is it)?
And the first thing I want to know is the boot process in details.
If you have questions about specific parts of the boot process, just ask. I'm sure there's someone on the list who can answer your questions. Also feel free to add information you got which was useful to you to http://wiki.reactos.com so it doesn't get lost.
Ge van Geldorp.
A few more comments to what Ge van Geldorp wrote.
Like in many other open source projects, documentation is not our strongest point...
Nature has no sort of own documentation I am aware of... but it is an excellent project! Many books were written later about it. ROS is just a few picoseconds after the Big Bang... ;)
On the positive side, when you find some docs on how Windows does something (lots of those floating around) then often it will apply to ReactOS too.
Apples are apples! iPods are iPods...
[omissis]
The kernel will initialize itself and the drivers which were loaded by FreeLdr. This should give it access to the disk. It will then proceed to load other drivers. At the end of the boot process it will start the first usermode app, the Session Manager Sub System (SMSS.EXE).
At this point, do not confuse that kind of session with a typical Unix/Windows user session. SM sessions are "emulated operating systems". At present, ReactOS boots only the emulated Win32(tm) session (CSRSS.EXE). We hope it will be able to boot more in the future.
SMSS will load and start the environment subsystems (e.g. CSRSS.EXE, the usermode Win32 subsystem and WIN32K.SYS, it's kernelmode counterpart). It will also start WINLOGON.EXE, the logon process. WinLogon would normally be responsible for logging in users, but since we don't support security yet that's basically stubbed out. WinLogon will then start the users shell.
Recently, in an attempt to clean the design a little to make the SM support easily other OS emulators, loading of WIN32K.SYS and running WINLOGON.EXE were moved in CSRSS.EXE.