On 19.06.2012 17:39, Lonnie Cumberland wrote:
As for your experiment. It's quite simple to
do. You can build your
own version of ReactOS from trunk (or just download the prebuilt
.iso from our website - the trunk build, not the last release),
install it and then try to "strip" it down as much as you want.
Explorer.exe is specified as a shell in a special registry key, I
could look up the path if you like. Hackish way would be to delete
explorer.exe and rename notepad.exe to explorer.exe. Or, better, use
cmd.exe as a shell, it allows to actually do something with the OS
instead of just typing text in the editor.
After that, it would be needed to look at dependencies and actually
delete all DLLs which are not necessary.
This way you get a really lean ReactOS install.
I actually had thought of using the load up and strip away approach, but
was hoping not to have to go that route and wanted to see if I could
instead opt for the other approach which would be to have the absolute
minimums needed to boot ReactOS and then go with the add-files approach
which would actually make a leaner ReactOS version I would think as only
needed files would be on the system with no extraneous files lurking about.
It also does not have to strictly be notepad.exe, but that was just one
of the simplest ones that I could see possibly using as I would then
like to do the same thing with paint.exe and perhaps one other one for
this set of tests.
You could also use Dependency Walker (
http://www.dependencywalker.com/
) and open your favorite application (I'll take notepad.exe for now). If
you do it on ReactOS (at least if Dependency Walker runs on ReactOS...)
you will see all the DLLs the application needs and which DLLs those
DLLs need in turn. Then you'll also at least need the following which
you won't find through DLL dependencies (though I can indeed be missing
something ;) ):
* the hive file where the HKEY_CURRENT_USER part of the registry is
stored in (don't know it's current location in ROS though :( )
* all other hive files in %systempath%/config
* the drivers which are marked as "boot" in the registry (though you can
try to disable selected ones, like e.g. floopy if you don't need them)
* smss.exe, csrss.exe, win32k.sys (maybe we already also need
win32csr.dll), winlogon.exe (though you can also change it in the
registry to a different application; then you don't need to set the
shell AFAIK; or you can rename your application to winlogon.exe)
* ntoskrnl.exe and hal.dll
* pagefile.sys, freeldr.sys, boot.ini (all located in the system partition)
As I said the list might not be complete, but it will give you a
starting point.
Regards,
Sven