translated by google.com


Written on the occasion of release of Dragon 1.0

Decao Mao

After consideration , we decided to catch up before entering the 2014 release Longjing - that is compatible with Linux kernel version 1.0 , or else with the release of version 2.0 should huddled together , because we are in research and development Longjing 2.0 has also achieved good progress .

Longjing 1.0 mentioned here , refers to the Linux kernel Wineserver move to improve the operating efficiency of Wine . In recent years , Wine has made great progress , support for Windows applications on Linux kernel compatibility and stability has improved a lot . However , Wine service process through a user-space , namely Wineserver, to provide a virtual Windows system call interface , which was grafted to the Linux system calls, after all, is a bottleneck. So will Wineserver moved into the Linux kernel , closely integrated with the kernel , it can improve operational efficiency . However, if you simply put Wineserver into a kernel thread from a user -space process , so efficiency is very limited , because that is running Windows applications still frequent thread scheduling . Therefore, the Wineserver moved into the kernel , actually means removing Wineserver, it carried out the treatment to break up the process in the context of each user . In this regard, we have now to be able to release version 1.0 of the time. Maybe now we can not say who can run on Wine to run Windows applications can be as stable as the Longjing 1.0 , but for many in terms of software we tested did have a good run. In addition , Longjing 1.0 does not require patching the kernel , and can simply be installed as a module is loaded , which makes the deployment of Longjing simplified installation , and friends who want to try Longjing is very simple .

But Longjing version 1.0 with several previously released have a significantly different . Before we put on the Windows device driver compatibility very seriously , so trying to build a Linux kernel device driver to let Windows environment looked very much like the Windows kernel . This is a few years ago is very reasonable . For example , when Intel had the slogan "decisive battle in the living room ," seems Wintel camp will accomplish a great deal in terms of smart home , and this is likely to mean that the diversification of Windows device drivers , because contact with a wide variety of devices . However , over the years , but the actual situation is that the " decisive battle in the living room ," probably will not happen , because the AA (ARM + Android) architecture has become mainstream, and Android is running on the Linux kernel . In this case , consider the device driver compatible with Windows becomes redundant. So, have abandoned trying Longjing 1.0 compatible Windows device drivers in the kernel approach , it is no longer our goal. For the purposes of this aspect , Longjing 1.0 can be said to some extent in the return to Wine.

However , can cross- CPU architecture on both AA and machine architecture directly across operating systems running Windows applications ? Further , can the other non- x86 -based machines , and on Linux, Windows applications can be run directly ? This is much more interesting than the drive device is compatible with Windows x86 architecture in the Linux kernel . Imagine , if you can include a variety of Windows applications , including office software based on AA tablet coat , it is not very good? Admittedly now on Android also has many good software , but for some " heavyweight" people are still accustomed to those applications software for Windows. This is the Longjing 2.0 goals to be achieved .

To run Windows applications on x86 architecture binary image directly on the ARM architecture , obviously have to simulation (Emulation). Interestingly , Wine is "Wine is not an Emulator (Wine Is Not an Emulator ) " abbreviation, while based in Longjing Wine 2.0 , but that is to be simulated . But this is not a simple simulation simulation . We all know that QEMU is an open source emulator on Linux, QEMU can run on Wine , but you can try to know unacceptably slow . In fact , QEMU interpreted ( ie simulation ) x86 instruction user space ( including Wine instruction ) , it is just a case of system calls into the Linux kernel , where is the "original" running at full speed . General applications are running in the user space of time , less time to run into the kernel , so very slow. But if we can push it up the line to the Win API, if we could let one run Windows applications into the Win API, namely those DLL provided by Wine, will run at full speed to "original" , then running speed should can significantly improve because most applications actually always spin in a DLL at runtime , and Wine those DLL is compiled into ARM mode . In this way, we can combine Wine and QEMU and put Wineserver moved into the kernel , so you should be able to achieve our goal , this is our idea of ​​Longjing 2.0 . To this end we played in 2012 on a lot of experiments . Experiments show that , at least on the clock frequency up to 1GHz ARM processor modern , this is feasible . Now, Longjing 2.0 R & D has made very good progress , like Excel, PPT such software can already turn up in the ARM development board , of course, slower speed , but acceptable. The results, we think , both for practical applications on tablets and phones , or for the CPU and operating system localization , are meaningful.

After that we will temporarily maintain two branches Longjing . One is the 1.0 branch , which is cross-operating system for x86-compatible architecture. Another is the 2.0 branch , which is for both cross-operating system compatibility and inter- CPU architecture . But this is only a transition , after a period of time or to be integrated in the 2.0 branch. This is because , with respect to our objectives , for both the Linux ( x86 architecture , whether or not the x86 architecture ) compatible with the x86 architecture of Windows, support for running Windows applications directly , it is essentially the same. On the use of technology, the former is only a subset of the latter , after the 1.0 branch of progress ( eg progress from Wine 's ) should be also reflected in the 2.0 branch.

So please, my friends first play Longjing 1.0 , while looking forward to the release of Longjing 2.0 . Of course, we hope you will be able to participate in, and we work together.



----
you can download longene-1.0-rc2 here:
longene.org/download.php