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