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.