词条 | Longene | |||||||||||||||||||||||||||||||||||||||||
释义 |
| name = Linux Unified Kernel | logo = | screenshot = UnifiedKernel 0.2.1-KingSoft WPS.jpg | caption = Longene 0.2.1 | developer = Insigma Technology | family = Hybrid: Linux-like and Windows-like | working state = Abandoned, last update in 2014 | source model = Open source | released = | latest release version = | latest release date = | latest preview version = 1.0-rc2 | latest preview date = {{Start date and age|2014|1|16}} | marketing target = Personal computing | programmed in = C | language = Multilingual | supported platforms = IA-32, x86-64 | kernel type = Hybrid (Linux kernel and designed to be compatible with Windows NT) | license = GNU GPL v2 | website = {{URL|www.longene.org/en/index.php}} | frequently updated = Yes |logo_size = 90px }} Longene[1] is an operating system kernel intended to be binary compatible with application software and device drivers made for Microsoft Windows and Linux. In order to accomplish this, key features of the Windows kernel are ported to the Linux kernel. Longene is written in the C programming language and is free and open source software. It is licensed under the terms of the GNU General Public License version 2 (GPLv2). Although the project is in the alpha stage of development as of 2015, many Windows programs already work well.{{citation needed|date=April 2015}} As of August 2018, the official website is gone, signifying the end of the project. However, the source code is still available on GitHub.[2] FeaturesLongene aims to add all Windows kernel mechanisms, including system calls, Windows Registry, Windows Driver Model, Deferred Procedure Call, and others, into the Linux kernel to form a new kernel. The new kernel will allow both Linux and Windows applications and device drivers to work without virtualization or emulation. In order to prevent bloating, if a function is available in both the ReactOS and Linux kernel, the Linux implementation is used. Functions are implemented using Linux loadable kernel modules, so they can be loaded and unloaded easily. Longene has two sets of system calls and their corresponding tables: a Windows syscall set and a Linux syscall set. Windows applications call the syscall table via software interrupt "int 0x2e". Linux applications call the syscall table via "int 0x80". The Longene project does not develop the Windows and the Linux userland libraries. Those libraries are offered by others projects, such as Wine, ReactOS, GNU, and NDISwrapper.[3] DevelopmentIn September 2005, the Longene project gained sponsorship from Insigma Technology (浙大网新), a China-based IT consulting corporation. The project leader, Decao Mao (毛德操), proposed the idea and route of the Longene. He wrote a series of articles about the market, the intellectual property rights and the techniques to explain why people needed the project and how to implement the Longene. The articles Mao wrote were then compiled to form the white paper of the project. According to the white paper, to implement the Longene, one needs to add several parts to the Linux kernel:
Development strategyLongene uses Wine as a base for implementing the Windows API. The project re-implements Wine's modules for use as part of the joint kernel. Longene defers from using Wine modules that have not been sufficiently implemented for the project. Versions of Longene are released when several of the Wine modules have been successfully implemented into the kernel. The new stable version will then be used as a base for implementing future modules. Windows API that have not been implemented by Wine are developed into modules from scratch. For device drivers, Longene imports NDISwrapper into the kernel. Modifications are made to NDISwrapper for missing functionality of the Windows Driver Model using ReactOS code as a reference. The Windows Driver Kit implementation is based on ReactOS code. It uses a combination of redirecting drivers to Linux kernel resources and additional libraries that implement functions that cannot be implemented in Linux. Version historyAn earlier version, unifiedkernel-2.6.13,[4] released in February 15, 2006. This version actualized the Windows system call mechanism.
Current and future developmentDevelopers are currently working on Longene 2.0, which will support Windows applications running on non-x86 architecture hardware, such as ARM and Loongson. Additionally, the developers are working on AMD64 support and porting NDISWrapper code to the project. Not yet implemented (but planned):
Available Open Source resources
Longene is based on the Linux kernel. It implements its functions in the Linux loadable kernel modules (LKMs). As opposed to ReactOS implementing functions from scratch, Longene exploits the abundant code and documentation of the Linux kernel to create its functions. These are the main approaches to implement Windows mechanisms in Longene:
ReactOS is a clone of MS Windows written from scratch. Longene uses ReactOS code as a reference to implement some basic mechanisms of the Microsoft Windows Operating System. That involves implementing the Windows device driver framework, NDIS, the system call interface, the process management and resource management, the device driver interface, etc.
Wine implements a compatibility layer, providing alternative implementations of the DLLs that Windows programs call, and processes to substitute for the Windows NT kernel. As opposed to Longene using the microkernel functions to implement Windows API in kernel space, Wine uses the macro host OS API to implement Windows API in userspace. Longene offers the Windows Process management, Thread management, Object management, etc. in kernel; Wine offers those by wineserver running in userspace. Longene depends on Wine for the user libraries (the .dll files). Most of Wine's DLLs can be used directly by Longene. Wine code (such as the Windows Registry table) can be referred to implement some functions. In the transitional state, Longene uses Wine to offer those functions that have not been completed yet.
Kernel-Win32 is a project intended to move some functions from the Wineserver into the Linux kernel to accelerate Wine. Longene project ported (and partly re-implemented) Kernel-Win32 into Longene to implement the Windows system call mechanism.
NDISWrapper recreated a part of Windows NT kernel in a Linux kernel module, making possible to execute modern Windows drivers inside a Linux kernel box. NDISWrapper consists of a NTOSKRNL API, a basic WDM controller, and a set of Windows call wrappers such as Wireless/NDIS/USB/PnP to Linux APIs. NDISWrapper is not limited to executing only NDIS drivers; other WDM drivers can be used as long as the driver doesn't call unimplemented Windows API functions. The first step of WDM implementation in Longene will be to import NDISWrapper into Longene. Then the Longene project team will implement its WDM via modifying NDISwrapper and adding functions into NDISWrapper with ReactOS code as a reference.
To run Windows x86 binary applications directly on the ARM architecture, there is a need of an emulation, of course. QEMU is an open source emulator in Linux that can run Wine, but the result is unacceptably slow. QEMU interprets all x86 instructions in user space (including the Wine code); only in case of Linux system calls the application is running at full speed. The result is slow, because applications spend most of the time in the emulated user space, and less time in the kernel. But if the Win API DLLs, provided by Wine could be used outside of QEMU, they would run at full speed because they can be compiled natively, and the overall running speed should significantly improve. This way of combining Wine and QEMU, and putting Wineserver functions into the kernel, is the idea of Longene 2.0. UsersMagicLinux – MagicLinux is a Chinese Linux distribution based on Red Hat Linux. Version 2.1 of MagicLinux, released on December 15, 2008, includes a main version (DVD, with Linux kernel 2.6.25.20), a compact version (CD, with Linux kernel 2.6.25.20) and a Longene version (CD, with Longene 0.2.2).[6]Hardware requirementsThe minimum hardware requirements to run are:
Architecture support
See also
References1. ^[https://web.archive.org/web/20090225090005/http://www.longene.org/en/index.php Longene web site] 2. ^{{Cite web|url=https://github.com/tsuibin/longene|title=tsuibin/longene|website=GitHub|language=en|access-date=2018-08-21}} 3. ^[https://lwn.net/Articles/349988/ Linux unified kernel 0.2.4.1] "The LUK project does not develop the Windows and the Linux userland libraries. Those libraries are offered by the Wine (or Microsoft Windows/ReactOS) project and the Linux project." 4. ^unifiedkernel-2.6.13 5. ^Longene 2.0 will support the Windows applications run on non-x86 architecture machine 6. ^Magic Linux 2.5 rc2 发布 {{webarchive|url=https://web.archive.org/web/20140420015428/http://www.magiclinux.org/node/906 |date=2014-04-20 }} 1 : Linux kernel |
|||||||||||||||||||||||||||||||||||||||||
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。