From: Miller, S. <sha...@yr...> - 2010-10-25 20:52:55
|
Good day Henry, Thank you very much for your response. You are right: I mean no Windows GUI and none of the user-land .DLLs you listed. You are right: Almost seems as good as running Linux natively, except: The use of Windows drivers for, let's say, storage and network, which we could bridge to the hosted Linux. You are right: I'm thinking of a "native" application with similar dependencies as drivers (.SYS) files: HAL.DLL, NTOSKRNL.EXE, NDIS.SYS, probably NTDLL.DLL, etc. For an example of a "native" application, see Windows XP's \Windows\System32\AutoChk.exe. I was very hopeful that most of coLinux resides in LINUX.SYS. It seems that you are confirming this. If it's a simple matter of sending some IRPs to \Device\CoLinuxDriver (I forget what it's called right now) in order to get the driver to host the Linux, that is really what I'm interested in, since we can send IRPs from "native" .EXEs. I had already taken a quick look at the source directories you mentioned before I sent the original e-mail, but wasn't 100% sure how feasible it would be. You seem to be suggesting that LINUX.SYS is the most critical component, which is what I had hoped for. I'll have to read more of the source and see if it would be difficult to avoid the Win32 API and port to just use the native functions. Thank you again, - Shao Miller -----Original Message----- From: Henry Nestler [mailto:hen...@ar...] Sent: Monday, October 25, 2010 16:43 To: Miller, Shao Cc: col...@li... Subject: Re: [coLinux-users] Native-Mode versus Win32 Hello Shao, I don't know why you ask, this. First: Win32 is the complete Windows user land API. You means that? You means without GUI and so, than you would need to run coLinux without some basic DLLs, for example without user32.dll, gdi32.dll? This is the list of all used DLL: 'user32', 'gdi32', 'ws2_32', 'ntdll', 'kernel32', 'ole32', 'uuid', 'msvcrt', 'crtdll', 'shlwapi'. You say, only kernel function can use? Then only kernel32.dll would be leave? I think, that is to little. Without Session Manager you would have no other task, no winlogon, no other windows task. So, and way we should this run now? If you all of the windows GUI have removed, then I would say: Better start Linux natively. By the way the most things does the linux.sys, and this use only kernel DLLs ndis, ntoskrnl and hal. The colinux-daemon is only a loader to start Linux from inside the kernel driver, and later the monitor of running Linux task. colinux-daemon.exe send some ioctl to the kernel driver. The Win32 functions are for reading files and manage the task switch (WaitForMultipleObjects), and of curse for inter process communication base between the other colinux-*-daemon's (data pipe). Please check files in src/colinux/os/winnt/user/*.c and src/colinux/os/winnt/user/daemon/*.c to see what API functions are used http://colinux.svn.sourceforge.net/viewvc/colinux/branches/devel/src/col inux/os/winnt/user/ Henry On 24.10.2010 04:35, wrote Miller, Shao: > Thanks, Yin. > > Right now, the coLinux .EXEs have dependencies on the Win32 sub-system; they use the Win32 API, whether run as a service or not. For example, the top of the process tree on Windows XP might look something like: > > - System > - SMSS.EXE (Session Manager) > - CSRSS.EXE (Client Server Runtime) > - WinLogon.EXE (Windows NT Logon)<- Win32-dependent > - Services.EXE (Services and Controller)<- Win32-dependent > - LSASS.EXE (LSA Shell)<- Win32-dependent > > I believe that all [non-driver] services are Win32 applications spawned by Services.EXE. The minimal environment I'm interested in is: > > - System > - XXX.EXE > > where XXX.EXE is a "native" executable which does some of whatever colinux-daemon.exe does... Starts up a Linux and sits there. It'd possibly need to do some of whatever the other colinux-*-daemon.exe programs do, in order to facilitate networking for the hosted Linux. > > I'm wondering now if the Win32 dependencies are huge or if it might be relatively straight-forward to port the daemons to use the native API. > > - Shao Miller > > -----Original Message----- > From: yin sun [mailto:sun...@gm...] > Sent: Saturday, October 23, 2010 21:18 > To: Miller, Shao > Cc: col...@li... > Subject: Re: [coLinux-users] Native-Mode versus Win32 > > don't know much about how windows separate the subsystem, looking at > the code inside kernel to see what is part of win32. > the user part can be removed completely in service mode. > > /Yin > > On Sat, Oct 23, 2010 at 12:28 PM, Miller, Shao > <sha...@yr...> wrote: >> Good day to All, >> >> >> >> coLinux is very nice. >> >> >> >> I'm interested in the possibility of utilizing it in an environment without >> the Win32 subsystem. This would be an environment with little more than the >> NT kernel, network, block and other NT drivers. >> >> >> >> Since the various coLinux daemons and network-controlling applications are >> Win32 executables, I'm wondering if there's any chance at all that their >> functions could run solely in a "native" environment without the Win32 >> subsystem available. There needn't be any user interface at all; the idea >> is for a "headless" Windows with coLinux facilitating a Linux and making >> that Linux available on the network. >> >> >> >> Does this seem remotely possible? >> >> >> >> Thank you for your time, and for coLinux! >> >> >> >> - Shao Miller |