>-----Original Message-----
>From: Peter Dolding [mailto:oiaohm@bluebottle.com]
>Sent: Tuesday, August 29, 2006 01:33 PM
>To: 'ReactOS Development List'
>Subject: Re: [ros-dev] (Free)DOS subsystem
>
>Myria wrote:
>> I've wanted to write an NTVDM for ReactOS, but I'm not sure when I'd ever
>> have time.
>>
>> Windows NT's DOS subsystem, NTVDM, is a user-mode program that runs on top
>> of Win32. It runs DOS programs as Windows processes, using v86 mode to run
>> the programs. DPMI programs are supported by asking the kernel to allocate
>> LDT segments and running directly. (If you write a DOS32 program and know
>> the correct addresses, you can call MessageBoxW in user32.dll and it will
>> work.)
>>
>> This differs significantly from DOSBox, which is effectively a machine
>> emulator rather than an API translator. DOSEmu, in comparison, is
>> essentially the same design as NTVDM but for Linux.
>>
>> FreeDOS in DOSBox works very well, because the FreeDOS kernel is its normal
>> self and is unaware that it's inside a VM. However, this doesn't work for
>> NTVDM/DOSEmu. In these, the FreeDOS kernel will need to be heavily
>> modified, particularly because the NT kernel handles file I/O. Programs
>> inside the virtual DOS environment use illegal opcodes to talk to NTVDM.
>>
>> Melissa
>>
>True Closest Freedos to Windows NT NTVDM is
>http://freedos-32.sourceforge.net/. Its was newer version under
>development. It could be stalled from 2005.
>
Why?
I never got it. It doesn't seem to add anything new. Nothing that can't be done in FreeDOS.
FreeDOS is for all pratical purposes a capable 32 bit system. It can run 32 bit DOS and (some) windows programs and it has multithreading (eRTOS), TCP/IP (watt32), etc... .
I think it would not be very difficult to write a multitasking DOS extender either (maybe as an extension to cwsdpr0).
If it's because it is running in 32 bit, I am not all that convinced that DOS-C can not be ported to 32 bit. It was originally intended to run on apple macintosh.
Imre
>Peter Dolding
>
>_______________________________________________
>Ros-dev mailing list
>Ros-dev(a)reactos.org
>http://www.reactos.org/mailman/listinfo/ros-dev
>
>
Hi
I I got the clipboard patch from thomas and waiting on the final dectsions from him.
Thomas need some time to review it. for it is around 121Kbytes big
I did test it in ReactOS and I alot happy
1. Copy text and picture betwin program is working with this big patch
2. Copy file from one place to anyther working. But I wisch it show file copy when it doing it
3. copy file to the desktop does not working nug in explore ??
4. move icon on the desktop is a new bug in win32k.
5. mark the text is white background with white text instead for invert background with white text
6. cut/copy/paste is working
7. keys like cut/copy/paste (ctrl+x,ctrl+c,ctrl+v) is working in all program I tested.
say this patch is really good sussess and adding a clipboard to reactos. that working betwin program and u can copy/paste files and more
I say it it is up to thomas to aprove the code. I have not looked at the code at, more that a fast preview.
Hi folks
based on my knowledge and some docs I used to read ages ago. Plus some recent
googling, I kinda recreated function GetSiteSidFromToken from advapi32.dll -
as it was missing there, and I couldn't start w2k taskmgr because of that. Of
course simple stub returning NULL should be sufficient, but I gave it a shot
and tried to implement it fresh and fully functional.
First, I am not sure of few things there. And if someone is more knowledgable
than I am - please let me know your thoughts.
As far as I know the function returns pointer to SID from token. But there's
more than one token. So it returns token that has "SITE" SID. Now, there were
quite few SIDs missing in ROS, I tried to add them - mainly guessing their
names based on some googling. Some docs on msdn say that they are all defined
in ntseapi.h - but I couldn't found that file anywhere. For more details
lookup attachment 1043 and corresponding bug.
Function is quite simple, it iterates through all sids, trying to match the
one with "SITE" authority. Question now arises - what if there's more than
one such SID ? Does ROS use SIDs 1-6 to 1-8 at all ? is the
SECURITY_INTERNETSITE_AUTHORITY the SITE authority or perhaps
SECURITY_SITESERVER_AUTHORITY ? I don't know.
I will try to write simple code that would ask original function from original
dll about it, and see what it comes up with.
First part of the code comes as simple c&p from other functions. The iteration
is quite obvious. I didn't knew what should I use to compare SIDs, so I used
memcmp. But perhaps simple comparing values in the table one by one would be
simple, or maybe there's some sort of ROSish/NTish specific function that is
more "right" than memcmp.
Another question I have - is it normal practice that you alloc extra ram and
return pointer to copy (seems to be in other places in your code), or should
I just simply return pointer to the SID ?
I do appreciate any comment. Patch is attached.
if someone has the ntseapi.h file anywhere on their discs, I would like you to
verify SECURITY_*_AUTHORITY names as well as values. I spent whole day
gathering info, and I used all info I could find.
Sorry for such long letter. Much too long I suppose.
this is my first attempt to hack anything for ros. I promise next time I would
try to take care of something more obvious and better documented.
till than, ta.
--
GJ
Hello,
after recent fixes by Alex Ionescu and Thomas Weidenmueller trunk
works rather good again.
What I tested:
- bootcd: installs, 2nd stage install works, explorer shows up and
is usable
- livecd: doesn't boot due to broken mkhive (it should use cmlib
and it doesn't do at the moment)
- GDB support in ntoskrnl: I was able to connect to the GDB with a
cmdline client, disassembly, however I wasn't able to test it more
because our keyboard/mouse drivers don't work when vmware has no
focus during booting.
WBR,
Aleksey Bragin.
Hi,
Instead of posting things on chat and coming across as flames, so here we go.
I added excerpts and opt edited from "Inside Microsoft Windows 2000".
http://www.reactos.org/wiki/index.php/ShutdownProcess
"Csrss in turn impersonates the caller and sends a Window message to a hidden window owned by
Winlogon telling it to perform a system shutdown."
The best way I could do this at one time, take for example. Find the program ntpmon.exe run
it and open a console window. Type ctrl-C or break at the same time watch ntpmon. You will see cmd
clone itself. One step further in the console window run listdlls.exe and watch ntpmon. You will see
"impersonation", threads created under processes to access each process context. Cool right! I could
have written this for lib/rtl/dbgbuffer.c but I thought KJK_Hyperions way was cooler and used
NtReadVirtualMemory to peek at process context instead. I did have a note in lib/rtl/dbgbuffer.c
alluded to this process but one of "the coders that knows more" removed it.
So, impersonates; user access rights, its a thread in Csrss created under the user program process
context, it finds the parent and sends the shutdown message.
I guess,
James
This email is directed mostly to Herve and anyone else familiar with
SERIAL.SYS and how it works.
Two years ago I implemented a small (5 kilobyte) WDM driver that
"wrapped" SERIAL.SYS. It's an ugly hack that (almost) works. What I did
was "hook" the interrupt service routine by directly modifying the IDT.
It works most of the time but occassionally I get BSOD (and I don't know
why).
The driver installed ISR reads the MSR (modem status register) of the
UART. The RDTSC instruction is used to generate a timestamp of when the
MSR changed. Both pieces of data are stored in a FIFO - on every
interrupt. A user mode program can later retrieve the information at
regular time intervals.
Hint: using the CTS, DCD, and DSR pins on a standard RS232 port, you can
create a Poor Man's 3 Channel Logic Analyzer. Other applications include
packet radio interface for amateur radio.
What I'd like to do is merge the functionality directly into SERIAL.SYS
(eg. work with the OS instead of around it). The extra functionality
would be exposed through IOCTL or some other means but would not break
ordinary serial COMM functionality.
Disclaimer: I'm not a veteran author of kernel mode drivers.
This is a relatively obscure application so if you want to reply
off-list, that's perfectly fine by me.
Here are my questions:
1. how robust is the current SERIAL.SYS driver (I see a few "FIXME"s in
the comments) ?
2. does ReactOS support or require code-signing of drivers? (probably
not yet)
3. Can I run the "Genuine" Reactos SERIAL.SYS on "Genuine" Windows
2K/XP? I think so (setting WFP aside). 4. is anyone in the ReactOS
community interested in such a driver extension as described above?
(probably not)
Also, if anyone would like to see the logic analyzer program and related
driver - please send me an email.
Regards,
Rick
Alex Ionescu wrote:
> Please don't add 3rd-party utilities to the tree. Such applications need to go in ros-apps. Base is only for BASE applications. "uptime" isn't.
>
besides, we already have one. I wrote it. It's called tickcount
gedmurphy(a)svn.reactos.org wrote:
> Author: gedmurphy
> Date: Fri Aug 25 04:33:27 2006
> New Revision: 23696
>
> URL: http://svn.reactos.org/svn/reactos?rev=23696&view=rev
> Log:
> add an 'uptime' command.
> Available in either Windows or Linux output. (defaulted to Windows)
>
Please don't add 3rd-party utilities to the tree. Such applications need
to go in ros-apps. Base is only for BASE applications. "uptime" isn't.
--
Best regards,
Alex Ionescu
Project Lead, TinyKRNL
Kernel-Mode Software Design Engineer, ReactOS