2013-12-30
xbionic - bionic libc for windows
1. What is [xbionic]
1-1. Bionic Libc
Android has the own standard c library, Bionic Libc.
It is just for the Linux OS, more precisely the Linux Kernel.
The implementation is very dependent on the System Call of Linux.
Because it stands for providing the light-weight standard c library, so it is natural.
Android version 4.4 (codename KitKat) has began to support the 64-bit CPU.
So, the Bionic Libc is evolving to support it.
1-2. Cygwin & MinGW for Developing on Windows
Cygwin(or MinGW) is the best choice to develop on Windows OS.
But, there is some missing features. For example, [the Group Source on Multicast],
[Getting the list of Ethernet Interfaces], [Socket Options], [Signal] and so on.
Inspite of these missing features, it is quite useful.
1-3. Bionic Libc for Windows
For overcome the missing features of Cygwin(or MinGW) and getting more flexible
standard c library, it is started the porting Bionic Libc on Windows 7.
[xbionic] is that project. And, it is also the begining of Android Platform for Windows.
That means running the Android Apps directly on Windows without QEMU.
2. the Way to port the Bionic Libc on Windows
2-1. only use the [ntdll.dll]
[ntdll.dll] has the Windows Native API. It is not documented by Microsoft.
But, [WinDDK] has small piece of reference code and documents,
and the undocumented project of NTinternal - http://undocumented.ntinternals.net/ -
has the good API documents. Also, the ReactOS Project has the good usage.
On the source tree of Bionic Libc, libc/arch-x86 is the base directory
to fork the [arch-win].
And the implementation of linux system-call is re-written by Windows Native APIs.
2-2. Building System
Same as any other android libraries, bionic libc has android building system
- [Android.mk].
But, I need the independent building system, so the Make and ANT is used
for compiling and linking the project.
2-3. VCS - GitHub
The project is started on GitHub. https://github.com/webos21/xbionic.git
Anyone can participate and help.
Labels:
xbionic
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment