Greetings All,
I am new to ReactOS but have much experience with with Windows, Linux, etc... as well as programming mainly in C/C++.
Recently, I have decided to looking into ReactOS from a learning perspective after which, once the learning curve has been completed, I may try to get involved with some of the development efforts as well as work on some additional projects.
From what I have seen, ReactOS has come a very long ways in its development
and is really turning into a special OS to be recognized.
I would like to review some of the documentation on the Wiki but had a question regarding an experiment that I wanted to investigate with ReactOS.
The question that I wanted to answer is this.
What is the absolute minimum size, as relates to booting and OS files that are needed by ReactOS to run, for example, the notepad.exe program?
To caveat this, it would include leaving out all of the OS tools, Explorer, Desktop, and absolutely everything that is not clearly needed to run the notepad.exe application.
Basically, I would like ReactOS to boot and go directly into the notepad application. The real point here is to investigate what "absolute" minimum files are needed to run a simple application.
Sounds a bit crazy, but that is the question that I would like to answer.
Any ideas or information related to this would be greatly appreciated.
Thanks and have a great day, Lonnie
Hey, your name sounds very familiar to me. Did we communicate in the past regarding something?
Thanks for your opinion about ReactOS as an OS. It's indeed come a long way, however there are still many things requiring attention.
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.
Best regards, Aleksey Bragin.
On 19.06.2012 19:06, Lonnie Cumberland wrote:
Greetings All,
I am new to ReactOS but have much experience with with Windows, Linux, etc... as well as programming mainly in C/C++.
Recently, I have decided to looking into ReactOS from a learning perspective after which, once the learning curve has been completed, I may try to get involved with some of the development efforts as well as work on some additional projects.
From what I have seen, ReactOS has come a very long ways in its development and is really turning into a special OS to be recognized.
I would like to review some of the documentation on the Wiki but had a question regarding an experiment that I wanted to investigate with ReactOS.
The question that I wanted to answer is this.
What is the absolute minimum size, as relates to booting and OS files that are needed by ReactOS to run, for example, the notepad.exe program?
To caveat this, it would include leaving out all of the OS tools, Explorer, Desktop, and absolutely everything that is not clearly needed to run the notepad.exe application.
Basically, I would like ReactOS to boot and go directly into the notepad application. The real point here is to investigate what "absolute" minimum files are needed to run a simple application.
Sounds a bit crazy, but that is the question that I would like to answer.
Any ideas or information related to this would be greatly appreciated.
Thanks and have a great day, Lonnie
Hi Aleksey,
Thanks for your quick response to my inquiry.
On Tue, Jun 19, 2012 at 11:20 AM, Aleksey Bragin aleksey@reactos.orgwrote:
Hey, your name sounds very familiar to me. Did we communicate in the past regarding something?
Perhaps we have communicated in the past as I have investigated a number of possible projects, but sometimes forget who I have spoken to as time goes by.
I also do a bit of work in the biofuels industry, but additionally have a huge background in computers which allows me to do some stuff with them as well, but more on the hobby side though.
Thanks for your opinion about ReactOS as an OS. It's indeed come a long way, however there are still many things requiring attention.
Yes, I looked at ReactOS a long time ago and it has come a very long ways since the, but I can also see that there is still much to do as well. You and your team are making GREAT progress forward.
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.
Have a great day, Lonnie
Best regards, Aleksey Bragin.
On 19.06.2012 19:06, Lonnie Cumberland wrote:
Greetings All,
I am new to ReactOS but have much experience with with Windows, Linux, etc... as well as programming mainly in C/C++.
Recently, I have decided to looking into ReactOS from a learning perspective after which, once the learning curve has been completed, I may try to get involved with some of the development efforts as well as work on some additional projects.
From what I have seen, ReactOS has come a very long ways in its development and is really turning into a special OS to be recognized.
I would like to review some of the documentation on the Wiki but had a question regarding an experiment that I wanted to investigate with ReactOS.
The question that I wanted to answer is this.
What is the absolute minimum size, as relates to booting and OS files that are needed by ReactOS to run, for example, the notepad.exe program?
To caveat this, it would include leaving out all of the OS tools, Explorer, Desktop, and absolutely everything that is not clearly needed to run the notepad.exe application.
Basically, I would like ReactOS to boot and go directly into the notepad application. The real point here is to investigate what "absolute" minimum files are needed to run a simple application.
Sounds a bit crazy, but that is the question that I would like to answer.
Any ideas or information related to this would be greatly appreciated.
Thanks and have a great day, Lonnie
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
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
you definately need the following: freeldr.sys, ntoskrnl.exe, hal.dll, bootvid.dll, kdcom.dll, pci.sys, npfs.sys, fastfat.sys, i8042prt.sys, kbdclass.sys, mouclass.sys, uniata.sys, scsiport.sys, win32k.sys, framebuf.dll, ftfd.dll, vbemp.sys, videoprt.sys, kbd(lang).dll, smss.exe, csrss.exe, lsass.exe, services.exe, win32csr.dll, svchost.exe, userinit.exe, winlogon.exe, ntdll.dll, kernel32.dll, gdi32.dll, user32.dll, comdlg32.dll, comctl32.dll,
most likely nmidebug.dll, blue.sys, umpnpmgr.exe
And a lot more. We sadly have a lot of interdependencies. As soon as you want to run a gui app, you might need a lot of dlls.
Let us know when you found a minimal configuration :)
Timo
i.e. "ReactOS Server Edition"? :P
On Wed, Jun 20, 2012 at 2:05 AM, Timo Kreuzer timo.kreuzer@web.de wrote:
you definately need the following: freeldr.sys, ntoskrnl.exe, hal.dll, bootvid.dll, kdcom.dll, pci.sys, npfs.sys, fastfat.sys, i8042prt.sys, kbdclass.sys, mouclass.sys, uniata.sys, scsiport.sys, win32k.sys, framebuf.dll, ftfd.dll, vbemp.sys, videoprt.sys, kbd(lang).dll, smss.exe, csrss.exe, lsass.exe, services.exe, win32csr.dll, svchost.exe, userinit.exe, winlogon.exe, ntdll.dll, kernel32.dll, gdi32.dll, user32.dll, comdlg32.dll, comctl32.dll,
most likely nmidebug.dll, blue.sys, umpnpmgr.exe
And a lot more. We sadly have a lot of interdependencies. As soon as you want to run a gui app, you might need a lot of dlls.
Let us know when you found a minimal configuration :)
Timo
______________________________**_________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/**mailman/listinfo/ros-devhttp://www.reactos.org/mailman/listinfo/ros-dev
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
-- Best regards, Alex Ionescu
On 2012-06-19, at 5:05 PM, Timo Kreuzer wrote:
you definately need the following: freeldr.sys, ntoskrnl.exe, hal.dll, bootvid.dll, kdcom.dll, pci.sys, npfs.sys, fastfat.sys, i8042prt.sys, kbdclass.sys, mouclass.sys, uniata.sys, scsiport.sys, win32k.sys, framebuf.dll, ftfd.dll, vbemp.sys, videoprt.sys, kbd(lang).dll, smss.exe, csrss.exe, lsass.exe, services.exe, win32csr.dll, svchost.exe, userinit.exe, winlogon.exe, ntdll.dll, kernel32.dll, gdi32.dll, user32.dll, comdlg32.dll, comctl32.dll,
most likely nmidebug.dll, blue.sys, umpnpmgr.exe
And a lot more. We sadly have a lot of interdependencies. As soon as you want to run a gui app, you might need a lot of dlls.
Let us know when you found a minimal configuration :)
Timo
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Thanks to everyone for all of the wonderful responses to my inquiry and I am now going to work towards building that small very lean version to test some things from a minimalist perspective with ReactOS.
Have a great day all, Lonnie
On Wed, Jun 20, 2012 at 11:23 AM, Alex Ionescu ionucu@videotron.ca wrote:
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
-- Best regards, Alex Ionescu
On 2012-06-19, at 5:05 PM, Timo Kreuzer wrote:
you definately need the following: freeldr.sys, ntoskrnl.exe, hal.dll, bootvid.dll, kdcom.dll, pci.sys,
npfs.sys, fastfat.sys, i8042prt.sys, kbdclass.sys, mouclass.sys, uniata.sys, scsiport.sys, win32k.sys, framebuf.dll, ftfd.dll, vbemp.sys, videoprt.sys, kbd(lang).dll, smss.exe, csrss.exe, lsass.exe, services.exe, win32csr.dll, svchost.exe, userinit.exe, winlogon.exe, ntdll.dll, kernel32.dll, gdi32.dll, user32.dll, comdlg32.dll, comctl32.dll,
most likely nmidebug.dll, blue.sys, umpnpmgr.exe
And a lot more. We sadly have a lot of interdependencies. As soon as you
want to run a gui app, you might need a lot of dlls.
Let us know when you found a minimal configuration :)
Timo
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Am 20.06.2012 17:23, schrieb Alex Ionescu:
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
Native app, yes, but he asked for notepad.
Thanks for the information as I am sure that it will be very helpful in my quest.
I looked over your NativeShell stuff on your website and am sure to want to use it in the future for this project using ReactOS.
Thanks again and have a great day, Lonnie
On Thu, Jun 21, 2012 at 8:18 AM, Александр art1st-tm@yandex.ru wrote:
http://reboot.pro/2681/ also this...
21.06.2012, 16:14, "Александр" art1st-tm@yandex.ru:
https://github.com/amdf/NativeShell
I'll just leave it here.
21.06.2012, 02:36, "Timo Kreuzer" timo.kreuzer@web.de:
Am 20.06.2012 17:23, schrieb Alex Ionescu:
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
Native app, yes, but he asked for notepad.
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
-- С наилучшими пожеланиями, Александр.
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
-- С наилучшими пожеланиями, Александр.
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Yes, at this phase, I am attempting to load up the minimum core ReactOS followed by just a single GUI application. The idea is to find out what is the minimum needed for the base plain OS and then what is needed to be added (ie GUI subsystem, etc..) for a particular application in 2 clearly separated groups.
The rational is that the ReactOS base always has to be load, but the GUI and other subsystems only may need to be loaded depending upon application. Typically the GUI and other subsystems will be load prior to the application in almost all cases.
The idea is to run a very lean ReactOS core system and just one single application of some type. When the application exits then the OS shuts down perhaps.
This is good learning for how ReactOS flows from boot to application instance as well as understanding the minimum core files (and size) needed to have the ReactOS base and some application in 2 separate groups of files.
If I am starting to understand ReactOS better then I suspect that (for testing purposes) I could load the ReactOS base files followed by the real Windows XP subsystems file and the OS should function cleanly and stable if there is complete compatibility across these 2 OS.
This would answer the question of compatibility and stability within ReactOS after which when each new ReactOS subsystem is developed, then the Windows XP subsystem can be removed from the process. Eventually, one should arrive at a completey compatible drop-in replacement ReactOS system.
Just some general thoughts though on what I have been thinking lately as well.
Thanks again and have a great day all, Lonnie
On Wed, Jun 20, 2012 at 6:36 PM, Timo Kreuzer timo.kreuzer@web.de wrote:
Am 20.06.2012 17:23, schrieb Alex Ionescu:
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
Native app, yes, but he asked for notepad.
______________________________**_________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/**mailman/listinfo/ros-devhttp://www.reactos.org/mailman/listinfo/ros-dev
Somewhere back in time, there is a version of ROS that loaded the GUI on-demand. Dark times. ;0)
*cough*/CONSOLE*cough*
On Thu, Jun 21, 2012 at 6:20 AM, Lonnie Cumberland lonnie@outstep.comwrote:
Yes, at this phase, I am attempting to load up the minimum core ReactOS followed by just a single GUI application. The idea is to find out what is the minimum needed for the base plain OS and then what is needed to be added (ie GUI subsystem, etc..) for a particular application in 2 clearly separated groups.
The rational is that the ReactOS base always has to be load, but the GUI and other subsystems only may need to be loaded depending upon application. Typically the GUI and other subsystems will be load prior to the application in almost all cases.
The idea is to run a very lean ReactOS core system and just one single application of some type. When the application exits then the OS shuts down perhaps.
This is good learning for how ReactOS flows from boot to application instance as well as understanding the minimum core files (and size) needed to have the ReactOS base and some application in 2 separate groups of files.
If I am starting to understand ReactOS better then I suspect that (for testing purposes) I could load the ReactOS base files followed by the real Windows XP subsystems file and the OS should function cleanly and stable if there is complete compatibility across these 2 OS.
This would answer the question of compatibility and stability within ReactOS after which when each new ReactOS subsystem is developed, then the Windows XP subsystem can be removed from the process. Eventually, one should arrive at a completey compatible drop-in replacement ReactOS system.
Just some general thoughts though on what I have been thinking lately as well.
Thanks again and have a great day all, Lonnie
On Wed, Jun 20, 2012 at 6:36 PM, Timo Kreuzer timo.kreuzer@web.de wrote:
Am 20.06.2012 17:23, schrieb Alex Ionescu:
You don't need all of that.
Here's what TinyKRNL 2 used:
freeldr (ntldr) ntoskrnl hal bootvid kdcom fastfat ramdisk kbdclass i8042prt ntdll smss
And then a native app to launch (configured by registry)
Native app, yes, but he asked for notepad.
______________________________**_________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/**mailman/listinfo/ros-devhttp://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Am 21.06.2012 15:24, schrieb WaxDragon:
Somewhere back in time, there is a version of ROS that loaded the GUI on-demand. Dark times. ;0)
*cough*/CONSOLE*cough*
In fact this functionality is still there and should work. But the only thing it does, is to switch to gui mode. win32k and the rest are already loaded.
On Thu, Jun 21, 2012 at 10:00 AM, Timo Kreuzer timo.kreuzer@web.de wrote:
Am 21.06.2012 15:24, schrieb WaxDragon:
Somewhere back in time, there is a version of ROS that loaded the GUI
on-demand. Dark times. ;0)
*cough*/CONSOLE*cough*
In fact this functionality is still there and should work.
But the only thing it does, is to switch to gui mode. win32k and the rest are already loaded.
______________________________**_________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/**mailman/listinfo/ros-devhttp://www.reactos.org/mailman/listinfo/ros-dev
I think that I actually am starting to find this. I was browsing around the iso's that I have and on the ReactOS.iso I could see that it all goes through the ReactOS installation process. On that iso, the base core files seem to be loaded after which control is passed to the installer "ReactOS.exe" which utilizes a GUI and does not seem to be at the native level although I could be wrong.
I'm still not sure which last core file passes control over to the reactos.exe file, but it seems like this installation process might be a good starting point for the experiment that I am working towards.
Cheers, Lonnie
Oh here is the change that could make Cmd run instead of Explorer.
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesft_i386....
On 6/21/12, Lonnie Cumberland lonnie@outstep.com wrote:
On Thu, Jun 21, 2012 at 10:00 AM, Timo Kreuzer timo.kreuzer@web.de wrote:
Am 21.06.2012 15:24, schrieb WaxDragon:
Somewhere back in time, there is a version of ROS that loaded the GUI
on-demand. Dark times. ;0)
*cough*/CONSOLE*cough*
In fact this functionality is still there and should work.
But the only thing it does, is to switch to gui mode. win32k and the rest are already loaded.
I think that I actually am starting to find this. I was browsing around the iso's that I have and on the ReactOS.iso I could see that it all goes through the ReactOS installation process. On that iso, the base core files seem to be loaded after which control is passed to the installer "ReactOS.exe" which utilizes a GUI and does not seem to be at the native level although I could be wrong.
I'm still not sure which last core file passes control over to the reactos.exe file, but it seems like this installation process might be a good starting point for the experiment that I am working towards.
Cheers, Lonnie
UniATA!!! :-)
On Thu, Jun 21, 2012 at 4:06 PM, Александр art1st-tm@yandex.ru wrote:
The developers of* NativeShell* and *Uniata* are attended to visit our irc channel around *17:00 UTC* 21th of June 2012
Soooo dont miss the mess =)
С наилучшими пожеланиями, Александр.
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev