Minimal System setup

All development related issues welcome

Moderator: Moderator Team

tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Minimal System setup

Post by tothpaul »

Hello,

I'm an experimented Windows developper (especialy under Delphi), and I'd like to play with ReactOS to build a minimal WinPE execution environment.

Is it possible to have a text mode kernel to execute console applications like Delphi's DCC32.exe command line compiler

OR

to have a minimal GUI system with a console window and the GDI (and OpenGL ?) API ?

My purpose is to launch fullscreen applications like games, or IP servers, made with Delphi.

BTW, is it possible to build ReactOS *under* ReactOS ?

Best regards from France
hbelusca
Developer
Posts: 1197
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

Bonjour tothpaul !

We had (about 2-3 years ago) a console-only mode on ReactOS (which can be launched by adding /CONSOLE to the ReactOS boot options inside freeldr.ini) but curently this doesn't seem to work, perhaps because of an "interference" problem with win32k.sys (our GUI subsystem). Otherwise, you can have a minimal GUI with a console window opened, by changing the default shell (instead of starting explorer.exe, start cmd.exe).

Concerning your question about self-hosting (building ReactOS on ReactOS), this may be work, under the assumption that our command-line interpreter (cmd.exe) understands all the commands (and their parameters) our build system RosBE can use. However it's still not officially tested.

Cordialement.
User avatar
EmuandCo
Developer
Posts: 4473
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Minimal System setup

Post by EmuandCo »

it was tested a while ago and worked. but this was about a year ago. maybe it regressed
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

Bonjour,

Thanks, I'll take a look.

Before I dig into the source code, Is there any documentation of the boot process of ReactOS ? From MBR to freeldr, win32k.sys & cie ?

Regards
User avatar
EmuandCo
Developer
Posts: 4473
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Minimal System setup

Post by EmuandCo »

check windows internals book. its the same as the windows one
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes
zydon
Posts: 160
Joined: Tue Dec 18, 2007 9:03 am

Re: Minimal System setup

Post by zydon »

tothpaul wrote:Hello,

I'm an experimented Windows developper (especialy under Delphi), and I'd like to play with ReactOS to build a minimal WinPE execution environment.

Is it possible to have a text mode kernel to execute console applications like Delphi's DCC32.exe command line compiler

OR

to have a minimal GUI system with a console window and the GDI (and OpenGL ?) API ?

My purpose is to launch fullscreen applications like games, or IP servers, made with Delphi.
There were a slimming *.CMD script for WinXP on the Internet where it delete some system files they don't need just to have a minimal GUI desktop. I think it will work for ROS too. You could modify it to suit your purpose since ROS system files structure were not much different from Windows NT/XP system.
pbreneman
Posts: 78
Joined: Wed Feb 25, 2009 5:12 am

Re: Minimal System setup

Post by pbreneman »

I also use Delphi as well as Free Pascal. I've wanted to do things similar to what you've mentioned.

You might want to see these two pages:
http://www.turbocontrol.com/easyfpgui.htm
http://www.turbocontrol.com/reactos.htm
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

Thank's, I'll take a look

anyway, I've played with ReactOS under last version of VirtualBox (PCnet-FAST III) and got tcpip.sys BSOD while downloading RosBE with the provided application manager...later a BOSD at boot time even in "mode sans échec" (Safe mode ?)

*** STOP: 0x0000001E (0x80000003, 0x80900703E, 0xF747C948, 0x00000000)
*** NTOSKRNL.EXE - Address 8090703E base at 80800000, Datesamp 4f2f1454

seems not very stable :(
User avatar
EmuandCo
Developer
Posts: 4473
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Minimal System setup

Post by EmuandCo »

Last Version? 0.1.4 or nightly?
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

Version 0.3.14-20120205-rUNKNOW (from ISO download)

BTW when I start the RosBE command line scut.exe raise an error
The instruction at "0x7c90db70" referenced memory at "0xfffffffe". The memory could no be "read"

Same error with tee.exe when I start "make" that tell me:

mingw32-make.exe: *** No targets specified and no makefile found. Stop.

And configure.cmd say the gcc.exe is not able to compile a simple test program
hbelusca
Developer
Posts: 1197
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

tothpaul wrote:Version 0.3.14-20120205-rUNKNOW (from ISO download)
20120205 == 5 February 2012, quite old indeed :D

If you want to test ReactOS, please use our nightly build from there: http://www.reactos.org/getbuilds . Since February, many many things were fixed (network, ...).
By the way, we are currently updating our official build environment so, if you want to compile something for ReactOS, please use our latest version of RosBE that you can find there: http://www.reactos.org/wiki/Build_Environment and download the 2.1rc version (and as a consequence, all the things you can find on our wiki about compiling ReactOS might be a little bit outdated). To use it, do the following :

Here is a description for how to compile ReactOS with our build environment, RosBE v2.1.

1- Download our latest RosBE environment (2.1rc) here: http://www.reactos.org/wiki/Build_Environment or there: (http://svn.reactos.org/amine/RosBE-2.1.exe for Windows, http://svn.reactos.org/amine/RosBE-Unix ... ne.tar.bz2 for Linux/Unix), and install it.

2- Open RosBE - Build Environment (command-line) and work in it for the following steps.

3- In some directory, say in C:\sources\reactos, download the content of http://svn.reactos.org/svn/reactos/trunk/reactos/ (via SVN you must checkout the repository svn://svn.reactos.org/reactos/trunk/reactos into C:\sources\reactos). If you want also to be able to compile our tests as well as our "ros-apps", please also checkout svn://svn.reactos.org/reactos/trunk/rosapps and svn://svn.reactos.org/reactos/trunk/rostests into C:\sources\rosapps and C:\sources\rostests respectively, and add into C:\sources\reactos\modules a hardlink pointing to C:\sources\rosapps and/or a hardlink pointing to C:\sources\rostests .

Therefore, you obtain the following directory tree:

Code: Select all

C:\sources
    +------> reactos
    |           +------> <some directories and files>
    |           +------> modules
    |                       +------> <hardlink_to_rosapps>
    |                       +------> <hardlink_to_rostests>
    +------> rosapps  (optional)
    +------> rostests (optional)
4- Create another directory where the build files will be output, say: C:\rosbuild .

5- Being in C:\rosbuild, type:

Code: Select all

C:\sources\reactos\configure Ninja
which configures the build (and creates some files and directories inside C:\rosbuild).

6- After the previous step being done, and in case of success, go to the directory: C:\rosbuild\host-tools and execute:

Code: Select all

ninja all
Then go to C:\rosbuild\reactos and execute:

Code: Select all

ninja all
(just to compile all ReactOS), or

Code: Select all

ninja bootcd
(to compile all ReactOS if needed and to create a bootcd), or

Code: Select all

ninja livecd
(same as before, but for creating the livecd).

All the previous commands can be executed at once, being in C:\rosbuild, by entering at the command-line:

Code: Select all

cd host-tools && ninja all && cd ..\reactos && ninja bootcd
for example.

7- Enjoy !!
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

Hello,

Well I've done almost everything like above (is "ssvn create" ok to get the source code ?) I've now a bootcd.iso and when I install it, it request to download Gecko for Wine, when I accept this I have a BSOD

*** STOP: 0x0000007E (0x80000003, 0x8092759E, 0xF73ACB64, 0xF73AC868)
*** NTOSKRNL.EXE - Address 8092759E base at 80800000, Datestamp 50de98d4

Then I've change VirtualBox network card from "PCnet-FAST III" to "PCnet-PC II" and the system seems to work correctly (Version 0.4-SVN-20121229-r58034)...

oh no ! by selecting a category in the app manager I have the above error when it starts downloading infos !
hbelusca
Developer
Posts: 1197
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

Hmm... I strongly recommend to you that you create a bug-report in http://jira.reactos.org (our issues-tracker, log in with your current ReactOS credentials). I never seen such a problem before. Concerning the bug-report, you will have to accurately describe the parameters of your virtual machine (and the version of VBox you're using), etc...
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

BlackRabbit
Posts: 128
Joined: Sat Dec 22, 2012 7:36 am

Re: Minimal System setup

Post by BlackRabbit »

Hi All,

I hope that those of you who are supporting RosBE do not take this post as critical of RosBE. It is not meant to be a criticism of what exists, but of what does not. I am aware that getting something like RosBE to work at all is a large and important project in itself, and of course, I think the ReactOS project, overall, is simply fantastic.

That said, I thought I would share my most important observation after being a member for a little over a week:

In my opinion, by far, the biggest (non-financial) opportunity for accelerating the development of ReactOS is to utilize Visual Studio as it was meant to be used. By this, I do not mean that we should use Visual Studio as a glorified command-line launcher. I mean that the IDE should be "conscious" of the ReactOS solution that it is building. The developer, if s/she so chooses, should be able to build the entire ReactOS tree by clicking on the "Build Solution" button in Visual Studio. This includes the kernel-mode components such as device drivers.

Imagine the virtue of allowing a novice developer, who might be terrified of, say, spin-locks, but not so much of, say, CreateSolidBrush, to be able to:
  • Copy the SVN URL into Visual Studio.
  • Pull the entire ReactOS tree from the web site.
  • Click on Build Solution.
  • Watch everything build cleanly.
  • Launch the application that contains CreateSolidBrush under the Visual Studio debugger.
  • Set breakpoints, examine variables, catch exceptions, examine registers, check call stack, etc.
  • Find the bug.
  • Make the fix.
  • Commit (according to the existing approval process).
  • Repeat.
Unless I am mistaken, we can have that. :)

There is something else to consider: Once this process is set-up correctly, it becomes possible to debug, using the Visual Studio debugger, an application that is running inside the virtual machine, exactly as if it were running locally. It also becomes much more intuitive to build various configurations of ReactOS.

I think that, sometimes, experienced developers, who are familiar with make, command-line compilation, etc.; tend to forget the significant barrier-to-entry that is presented to those who are just starting out as engineers and just trying to write some code. This might be the reason that the http://www.reactos.org/peoplemap/ has a large ratio of "Users" to "Developers": Many of the "users" are probably developers-in-lurking because they are intimidated by, frustrated by, or just plain wary of the build process. Also there is the psychological effect. If the build is easy and clean. but the subsequent execution of that build crashes the virtual machine, no worries. The developer thinks...Now all I have to do is make some changes to improve the code. Yes, I am a novice, but that's OK, because if I fix this bug...the iceberg will be unstoppable. But if the build is problematic, the iceberg starts to melt because the effort-to-actual-productivity ratio becomes too high.

I understand that there are logistical reasons for using the current process, including non-trivial dependencies upon third-party tools. And of course, there are some steps that cannot be handled by the compiler/linker at all. But I also believe that the benefit to be gained by using Visual Studio far outweighs the detriment. And as we all know, anything that can be done on the command-line can be done within the IDE. And finally, as you all know, Visual Studio project files can co-exist with what is already present in the hierarchy, as the Visual Studio method is being constructed, without interfering with RosBE.

My vision is to eliminate, completely, any roadblocks that have to do with the build.

Any thoughts appreciated.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest