www.pudn.com > unifiedkernel-test.zip > README, change:2008-01-11,size:4680b


            The Linux Unified Kernel Project 
 
Copyright: 
========== 
    (c) 2006 Insigma Co., Ltd 
 
This program is free software; you can redistribute it and/or 
modify it under the terms of the GNU General Public License 
as published by the Free Software Foundation; either version 
2 of the License, or (at your option) any later version. 
 
The Project: 
============ 
Linux Unified Kernel is a project (linux.insigma.com.cn) in the  
Insigma Reasearch Institute, which is a subdivision of Insigma  
Co.,Ltd(www.insigma.com.cn).   
 
Sponsored by: 
============= 
  Insigma Co., Ltd (www.insigma.com.cn). 
 
 
The Package: 
============ 
o This package implements the Windows system call mechanism, and  
  a prototype for Windows system call (function) implementations.  
  In addition, a test programe is provided to demo the syscall  
  mechanism, and also to be used as a prototype for user space  
  programing. 
 
Released Files: 
=============== 
w32entry.S   - Implements the w32 system call mechanism. The code is basically 
               a merge of the related code in entry.S from Linux 2.6.13 and 
	       in syscall.S from Reactos 0.2.6. It is for i386 only. 
w32init.c    - Implements the w32 module initialization. 
w32syscall.c - W32 syscall function table and other data structures (from  
               ReactOS). 
w32syscall.h - Type definitions.  
linux-test.c - Application prototype used to test the w32 syscall interface. 
               To be built as a Linux application. 
w32-test.c   - Simular to linux-test.c, but to be built on Microsoft VC 
 	       as a windows application which should be used together on top of  
               ntdll-u.dll. 
ntdll-u.c    - For ntdll-u.dll, to be built on Microsoft VC, as a Windows DLL, 
               replacing the MS ntdll.dll. 
 
Subdirectories: 
================= 
src         - Source code subdirectory.  
src/module  - module source code. 
src/linux   - Linux test program source code. 
src/windows - Windows test program source code. 
bin         - Test program executable files: linux-test, w32-test.exe,  
	      ntdll-u.dll. 
 
To Build and Run: 
================= 
1.To get the unified kernel support, first cd to the top-level directory of  
  the kernel source code(linux-2.6.13). Then run the following command to patch  
  the kernel: 
 
  patch -p1 < path/patch-file 
 
  where "path" is the path of the patch file and "patch-file" is the patch file 
  name(something such as Unifiedkernel-2.6.13.diff). 
 
  After patching, configure the kernel like: 
   
  make menuconfig 
   
  Say Y to the "Unified kernel support" option in "General setup", and say N to  
  the "Use register arguments" option in "Processor type and features".  
  Then save, exit and compile the kernel. Run the following command to compile  
  the kernel and reboot: 
 
  make 
  make modules_install 
  make install 
  reboot 
 
2.To load the win32 module, first cd to the "module" directory of this package,  
  and do "make" to build. Then install the module: 
 
  insmod win32.ko 
 
  After the module loaded, you can run the test program to demonstrate. 
 
3.There are 2 options for building the test program:  
  Option 1: As a Linux application, do "make" to build the linux-test. Then you can 
            run linux-test directly. 
  Option 2: As a Windows application, build ntdll-u.c to ntdll-u.dll and w32-test.c 
	    to w32-test.exe with ntdll-u.dll both on Microsoft VC. Then you have to 
	    copy w32-test.exe and ntdll-u.dll to Linux, and run the following  
	    command: 
 
  wine w32-test.exe 
 
  Make sure that w32-test.exe and ntdll-u.dll are in the same directory.  
  Then you can see the test result by printing the values of parameters. 
 
4.To unpatch the kernel, cd to the top-level directory of the patched kernel, run  
  the following command: 
 
  patch -Rp1 < path/patch-file 
 
  where "path" is the path of the patch file and "patch-file" is the patch file  
  name. Then compile the kernel and reboot.   
 
Note: 
=============== 
Before test, make sure you have patched the kernel(linux-2.6.13) and compile it. 
Also you need to load the module, and Wine is needed if you want to run w32-test.exe 
on Linux. 
 
Don't run w32-test.exe on Windows, as the parameters are just for test and demo.   
 
To Do in Future: 
================ 
o Various system call functions on the Windows syscall interface. 
o The Windows process/thread management. 
o The Windows object management. 
o The Windows APC mechanism. 
o The WDM device driver framework. 
o The Windows DPC mechanism. 
o Exported kernel functions defined by Windows DDK. 
o The Windows Registry mechanism. 
o Others.