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
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
From: Henry Nestler [mailto:henry.ne@...]
Sent: Monday, October 25, 2010 16:43
To: Miller, Shao
Subject: Re: [coLinux-users] Native-Mode versus Win32
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
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
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
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
> - 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:sunyin51@...]
> Sent: Saturday, October 23, 2010 21:18
> To: Miller, Shao
> Cc: colinux-users@...
> 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.
> On Sat, Oct 23, 2010 at 12:28 PM, Miller, Shao
> <shao.miller@...> wrote:
>> Good day to All,
>> coLinux is very nice.
>> I'm interested in the possibility of utilizing it in an environment
>> the Win32 subsystem. This would be an environment with little more
>> NT kernel, network, block and other NT drivers.
>> Since the various coLinux daemons and network-controlling
>> Win32 executables, I'm wondering if there's any chance at all that
>> functions could run solely in a "native" environment without the
>> subsystem available. There needn't be any user interface at all; the
>> is for a "headless" Windows with coLinux facilitating a Linux and
>> that Linux available on the network.
>> Does this seem remotely possible?
>> Thank you for your time, and for coLinux!
>> - Shao Miller