Longene


Longene is a Linux-based operating system kernel intended to be binary compatible with application software and device drivers made for Microsoft Windows and Linux. As of 1.0-rc2, it consists of a Linux kernel module implementing aspects of the Windows kernel and a modified Wine distribution designed to take advantage of the more native interface. 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.
Although the project is in the alpha stage of development as of 2015, many Windows programs already work well.
Its official website was gone in August, but was restored in 2019. Meanwhile, the source code remains available on GitHub.

Features

Longene 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.

Development

In 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:
Longene 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. Since the Longene kernel does the work of the Windows NT kernel, Wine's own userspace kernel emulation is not needed.
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 history

An earlier version, unifiedkernel-2.6.13, released on February 15, 2006. This version actualized the Windows system call mechanism.
colormeaning
redRelease no longer supported
yellowRelease, supported
greenCurrent release
blueFuture release

VersionRelease dateRelease Information
0.1.0April 30, 2006
  • kernel-win32 ported
  • Windows system call mechanism based on "int 2e"
0.2.0December 1, 2006
  • Windows process/thread creating implemented
  • partial implementation of Windows APC mechanism
  • 0.2.1February 4, 2008
  • Windows process/thread management
  • virtual memory management
  • synchronization
  • object management
  • built-in EXE loading function
  • 0.2.2October 31, 2008
  • Token mechanism
  • GUI installation program
  • 0.2.2-1December 17, 2008
  • bug fixes
  • 0.2.3February 12, 2009
  • Windows registry mechanism ported from Wine
  • 0.2.4May 22, 2009
  • file system management ported from Wine
  • partial implementation of registry management APIs
  • binary packages for popular distributions provided
  • 0.2.4.1August 31, 2009
  • based on Linux Kernel 2.6.30
  • support of new file systems
  • 0.3May 31, 2010
  • move all functions of wineserver into kernel space and get rid of wineserver
  • 0.3.1February 26, 2011
  • support non-root user
  • support apps Chinese path
  • 0.3.2June 8, 2011
  • support wineconsole, Windows console apps,such as cmd.exe can run like this way: wineconsole cmd.exe
  • improve the way of creation of process,so windows native-app and wine buitin-app can created by each other.
  • 1.0-rc1December 31, 2013
  • complete modification of the framework, the Longene is no longer needed kernel patch
  • Longene has supported SMP
  • more convenient installation, better compatibility, better stability
  • 1.0-rc2January 16, 2014
  • upgrade wine to version 1.7.10
  • solve ordinary users after the restart problem
  • solve several file permissions
  • modify file loading type
  • 2.02015
  • QEMU code integration
  • support Windows applications running on an ARM machine
  • Current and future development

    Developers 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 :
    – Magic Linux is a Chinese Linux distribution based on Red Hat Linux. Version 2.1 of Magic Linux, released on December 15, 2008, includes a main version, a compact version and a Longene version.

    Hardware requirements

    The minimum hardware requirements to run are: