Dear core developers of Reactos,
I Am very nicely surpriced by The fact, that so complex project like developing new operating system from scratch based on Windows XP kernel and API functions calls exists. I tried to install The Reactos and i can tell You, that even visually impaired user can install Reactos to The empty computer harddrive without need to even make unattended installation. I was able to successfully install Reactos operating system to my computer.
I Am now solving issue, how to install The driver for my sound cart when many functions of Reactos are for now only accessible with mouse. So please, if Reactos device manager is reporting, That The sound device is working correctly, but only multimedia adapter list item is presenting my Soundmax integrated digital audio sound cart, it do not means, that Reactos can automatically use this eevice without need to add The driver?
I tried to install The driver by using The setup program provided with The driver, i unfortunately have got a error message, that setup has occurred an error and must be closed. Please check, if another instance of setup is not active.
By using add new hardware wizard, could i install The driver by specifiing The exact location for this driver?
It is The WDM based driver for Soundmax digital integrated audio, which is build in The motherboard of The IBM Thinkpat 2668.
I would like to know, if Microsoft Active accessibility standards could be implemented on The future during developing Reactos. I found out, that oleacc.dll is being presented and is The part of The Reactos installation. But i do not know, if You could implement MSAA standarts, because knowing The API functions and The object methods and properties will not be probably enough to ensure, that MSAA standarts would work.
I would like to test some screen reader, which is based on using API calls and by using MSAA calls, but i do not know, if it is implemented.
My problems is now to add sound cart driver to test this.
I Am advanced user with some advanced system administration knowledge, i know Windows operating systems starting with Windows for Workgroups 3.11 to Windows XP Professional. I can use Linux distributions to copy some needed files to The partition, where Reactos has been installed. I can even find necessary debug logs and send them as AN E-mails by using Linux distribution.
Linux distro could help me in The situations, when Reactos can not give me some feetback.
Installing sound driver manually by using registry editor is not easy task and i can not perform it without screen reader support.
I Am surpriced by The stability of Reactos. Eventhough some API calls are not awailable for now, The kernel is very stable and i have never got some crash dialog Window informing me, that application has crashed, sorry for any problems.
If You would try to think about implementation of MSAA, many visually impaired users would be very very glad because of it.
And later, what about triing to implement some hod keys for controlling The user interface and for controlling The Explorer?
Thank you very much, i Am ready for debugging and testing The Reactos.
PS:
I have never able to install and run Windows XP so quickly, without using Nlite program, which is able to modifi setup.sif file and some other files on Windows XP installation CD, i would never been able to perform The installation of commercial Windows XP myself. Only with Reactos, i could perform this without stress and without need to use some other external utility.
I AM also very very glad, that Reactos is even able to work as a live CD.
And here are some links for downloading freeware or opensource screen readers, which are fully compatible with Windows Xp and are not based on Display chaining manager DCM, which is too complex to implement even on future for You. Those screen readers are based on using API calls and on using MSAA standarts.
Unfortunately, NVDA will not work, because some important libraryes are not The part of The installation of Reactos. It is probably wrong idea triing to mix original libraries from Microsoft with Yours operating system, because i think, that it could cause some confuses and often crashes.
Because i can really constructively cooperate with You, i will send You The list of libraryes, on which NVDA screen reader is depend on.
And here is The direct link for downloading latest stable version of NVDA, which do not have to be installed, You can only unzip it and place it on some directory on Yours Reactos installation.
http://www.nvda-project.org/download/releases/nvda_2009.1_portable.exe
I Am recommending You to join to The NVDA development mailing list. YOu will need to have YOur sound drivers properly configured. NVDA screen reader is by The default triing to load included Espeak speech synthesizer, which is The part of NVDA package. This speech synthesizer is written by using Microsoft Visual C++ express 2005, and The original source code of this speech synthesizer variant for WIndows has been modified so this synthesizer is not working like The SAPI5 compatible speech synthesizer, but like a Activex library, which can be called from NVDA.
Espeak will very probably depend on wdmaud.drv and NVDA is also using winmm.dll library.
The list of dlls, which NVDA is using will be sended on The separate E-mail.
PS:
Please, try to allow visually impaired computer users to use freeware and fully functional operating system, which is based on standarts of WIndows XP and 2003. If MSAA standarts are too complex to develope from scrath for You to prevent random crashes while using Yours future new dlls, which would come out from this standarts, i will understand it. You are working on very, very complex project while using legally obtained technical information from various sources.
PS:
I know, that it is not possible to use products, which are developed by Microsoft on other operating system, that on original operating system from Microsoft, so triing to donwload WIndows Internet Explorer 8.0 and triing to use it with Reactos will probably not be legal.
But if it is so, never mind. There is Mozilla Firefox WEB browser, which is working with NVDA screen reader very nicely, and also Opera WEB browser is able to provide some accessibility support for visually impaired computer users.
And Openoffice ORG is also working very nicely.
But for now, i would atleast like to try, if NVDA can speak atleast somethink or if many API calls are not presented.
Thank You for cooperation with me.
With kindness regards.
Janusz Chmiel
Dear developers of Reactos,
As i promised in my previous E-mail, i AM sending You The list of dlls, on which NVDA screen reader is strictly depend and without them will not work.
Thank You for any feetback provided.
OLEAUT32.dll - C:\WINDOWS\system32\OLEAUT32.dll
USER32.dll - C:\WINDOWS\system32\USER32.dll
POWRPROF.dll - C:\WINDOWS\system32\POWRPROF.dll
SHELL32.dll - C:\WINDOWS\system32\SHELL32.dll
ole32.dll - C:\WINDOWS\system32\ole32.dll
WINMM.dll - C:\WINDOWS\system32\WINMM.dll
WSOCK32.dll - C:\WINDOWS\system32\WSOCK32.dll
COMDLG32.dll - C:\WINDOWS\system32\COMDLG32.dll
ADVAPI32.dll - C:\WINDOWS\system32\ADVAPI32.dll
msvcrt.dll - C:\WINDOWS\system32\msvcrt.dll
WS2_32.DLL - C:\WINDOWS\system32\WS2_32.DLL
GDI32.dll - C:\WINDOWS\system32\GDI32.dll
VERSION.dll - C:\WINDOWS\system32\VERSION.dll
KERNEL32.dll - C:\WINDOWS\system32\KERNEL32.dll
COMCTL32.dll - C:\WINDOWS\system32\COMCTL32.dll
RPCRT4.dll - C:\WINDOWS\system32\RPCRT4.dll
Extracting all API calls from NVDA source code written in Python will not be easy task, and extracting those calls from source code written in C language for several helper libraryes will not be asy to.
Hello everybody,
After some more updates, fixes and strange problems, Daniel and I finally
released new RCs of RosBE-Windows and RosBE-Unix 1.5.
Daniel published a changelog for the Windows version at
http://dreimer.de.vu.
The Unix version fixes building problems on many hosts, especially 64-bit
ones. Like RosBE-Windows, it also includes updated tools such as GCC 4.4.3.
Besides, all supplied libraries are guaranteed to contain STABS+ symbols
useful for debugging with e.g. GDB. Finally, make/makex now reports the
correct return value instead of always 0 :-)
You can download RosBE-Windows 1.5-RC4 and RosBE-Unix 1.5-RC2 at
http://reactos.colinfinck.de.
Please test out both of them using the latest code patch at
http://www.reactos.org/bugzilla/show_bug.cgi?id=4810, so that we can move to
RosBE 1.5 and GCC 4.4.x soon.
For the Unix version, I'm especially looking for testers using non-Linux
operating systems such as Mac OS X or FreeBSD. Current RosBE works well on
them, but the previous RC made problems.
Best regards,
Colin
This change keeps the ability to plug GDB into ReactOS and fixes libxlst.
It also fixes bootcd with Rosbe 1.5 trunk builds.
With -g0 enabled in RosBE-Unix 1.5 instead of STABS+,
previous builds of bootcd used to fail to allocate memory and crash.
Kind regards,
Sylvain Petreolle
This is really interesting. It'd be great to have this up in testman somehow.
-----Original Message-----
From: ros-diffs-bounces(a)reactos.org [mailto:ros-diffs-bounces@reactos.org] On Behalf Of sir_richard(a)svn.reactos.org
Sent: 28 January 2010 15:51
To: ros-diffs(a)reactos.org
Subject: [ros-diffs] [sir_richard] 45297: [PERF]: Not in any way a scientific number you should bet the farm on, but we do now count the number of cycles at the very first instruction of kernel initialization, at the moment SMSS initializes the registry (when we c
Author: sir_richard
Date: Thu Jan 28 16:51:18 2010
New Revision: 45297
URL: http://svn.reactos.org/svn/reactos?rev=45297&view=rev
Log:
[PERF]: Not in any way a scientific number you should bet the farm on, but we do now count the number of cycles at the very first instruction of kernel initialization, at the moment SMSS initializes the registry (when we call kernel initialization complete), and at the moment there have been 12 processes created (10 without counting idle/system), which is a bit less than a normal GUI boot. We also display the number if interrupts, system calls, and context switches it took to get us there. A purely comparative number, perhaps worthy for inclusion in testman/regression tests?
Modified:
trunk/reactos/ntoskrnl/config/ntapi.c
trunk/reactos/ntoskrnl/include/internal/ke.h
trunk/reactos/ntoskrnl/ke/i386/kiinit.c
trunk/reactos/ntoskrnl/ps/process.c
Modified: trunk/reactos/ntoskrnl/config/ntapi.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/ntapi.c?re…
==============================================================================
--- trunk/reactos/ntoskrnl/config/ntapi.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/config/ntapi.c [iso-8859-1] Thu Jan 28 16:51:18 2010
@@ -890,6 +890,14 @@
/* Always do this as kernel mode */
if (KeGetPreviousMode() == UserMode) return ZwInitializeRegistry(Flag);
+ /* Enough of the system has booted by now */
+ BootCyclesEnd = __rdtsc();
+ DPRINT1("Boot took %I64d cycles!\n", BootCyclesEnd - BootCycles);
+ DPRINT1("Interrupts: %d System Calls: %d Context Switches: %d\n",
+ KeGetCurrentPrcb()->InterruptCount,
+ KeGetCurrentPrcb()->KeSystemCalls,
+ KeGetContextSwitches(KeGetCurrentPrcb()));
+
/* Validate flag */
if (Flag > CM_BOOT_FLAG_MAX) return STATUS_INVALID_PARAMETER;
Modified: trunk/reactos/ntoskrnl/include/internal/ke.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ke.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/ke.h [iso-8859-1] Thu Jan 28 16:51:18 2010
@@ -139,6 +139,8 @@
extern ULONG KiFreezeFlag;
extern ULONG KiDPCTimeout;
extern PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch;
+extern ULONGLONG BootCycles, BootCyclesEnd;
+extern ULONG ProcessCount;
/* MACROS *************************************************************************/
Modified: trunk/reactos/ntoskrnl/ke/i386/kiinit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kiinit.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/kiinit.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/kiinit.c [iso-8859-1] Thu Jan 28 16:51:18 2010
@@ -24,6 +24,10 @@
/* Spinlocks used only on X86 */
KSPIN_LOCK KiFreezeExecutionLock;
KSPIN_LOCK Ki486CompatibilityLock;
+
+/* Perf */
+ULONG ProcessCount;
+ULONGLONG BootCycles, BootCyclesEnd;
/* FUNCTIONS *****************************************************************/
@@ -683,6 +687,9 @@
PKTSS Tss;
PKIPCR Pcr;
+ /* Boot cycles timestamp */
+ BootCycles = __rdtsc();
+
/* Check if we are being booted from FreeLDR */
if (!((ULONG_PTR)LoaderBlock & 0x80000000)) KiRosPrepareForSystemStartup((PROS_LOADER_PARAMETER_BLOCK)LoaderBlock);
Modified: trunk/reactos/ntoskrnl/ps/process.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/process.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/ps/process.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ps/process.c [iso-8859-1] Thu Jan 28 16:51:18 2010
@@ -843,6 +843,18 @@
/* Run the Notification Routines */
PspRunCreateProcessNotifyRoutines(Process, TRUE);
+
+ /* If 12 processes have been created, enough of user-mode is ready */
+ if (++ProcessCount == 12)
+ {
+ /* Enough of the system has booted by now */
+ BootCyclesEnd = __rdtsc();
+ DPRINT1("User Boot took %I64d cycles!\n", BootCyclesEnd - BootCycles);
+ DPRINT1("Interrupts: %d System Calls: %d Context Switches: %d\n",
+ KeGetCurrentPrcb()->InterruptCount,
+ KeGetCurrentPrcb()->KeSystemCalls,
+ KeGetContextSwitches(KeGetCurrentPrcb()));
+ }
CleanupWithRef:
/*
I wonder if I could get in touch with the folks doing the ARM port...
Executive summary: From a look at the code I think ARM ReactOS uses SWIs
(syscalls) numbered from zero. There's a de-facto ARM standard that splits
up SWI numbering so different OSs get allocated different numbering ranges.
It would be handy if ReactOS could pick one that doesn't clash with other
OSs. I wondered if the ARM port folks might consider changing SWI base at
some point.
For more details, a brief history lesson. The ARM1 and ARM2 chips were
originally developed at Acorn Computers in 1983-7. The first ARM machine
was the Archimedes, launched by Acorn in 1987. The Archimedes was supplied
with Arthur, which in 1988 became RISC OS, a co-operatively multitasking OS.
RISC OS is still around and runs on modern hardware such as the BeagleBoard
- see http://www.riscosopen.org/
SWI instructions on the ARM have a 24 bit 'comment' field. As originally
envisaged this would hold the syscall number, a bit like INT on x86 and TRAP
on 68k.
Acorn for their OSs (and there were no other ARM OSs at the time) chose a
numbering scheme where bits 20-23 denote the OS. For the ones I know about:
23--20
0000 RISC OS
1000 RISC iX (4.3 BSD ported to ARM2/3)
1001 Formerly Linux (they've now don't use the comment field)
1111 ARM's OS independent routines
And NetBSD use another value that I forget.
The advantage of having non-overlapping SWI bases is that it allows
cross-platform execution of binaries (a bit like WINE in effect, though I
don't know the details of how WINE works). So it means RISC OS code (of
which there is lots) could run on ReactOS, or vice versa, if somebody writes
a syscall implementation for the other platform.
So I wondered if there was any interest in making sure the syscall numbers
didn't clash with other OSs? From what I see in:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/usercall.c…
it looks like your SWIs are numbered from zero, which is a clash.
If you were interested in changing, do you have any idea how many SWIs you
might use? RISC OS uses hundreds of thousands (SWIs are used as the
interface to DLL-like code), but if you were to only need, say, 2^16 that
might save the number space a bit.
Thoughts? Comments? Flames?
Thanks
Theo