Kernel application binary interface for Linux has been in the area of development, kernel application binary interface (ABI ApplicationBinaryInterface,) complain a lot.
The design of the Linux kernel is kernel internal can modify a lot of content, but the user application must not modify the kernel ABI to go through. This problem is not just theoretical, in the actual development is truly exist: kernel interface range exists means that, contrary to the provisions of certain operations may occur, sometimes even by very strict code lookup does not find the problem. Then, when the breach of the provisions to happen, it will have two problems: it might make you unable to confirm a real cause reason (for example, it is a kernel or a user application?); in addition you need to spend time and effort to fix it. There are some methods to temporarily work around this problem. For some project, the most rapid and effective means of user-space file system (FilesysteminUserspace, FUSE), which is the Linux system platform loadable kernel module, allows unprivileged users to create full-featured file system without having to recompile the kernel. FUSE module only provide kernel module of the entrance, the main implementation code itself is located in the user space. However, in the long term, Linux requires a stable and able to meet the needs of long-term growth, and the ABI will not be the cause of potential compatibility issues that mice nest. Native file version management (NativeFileVersioning) native file version management is another can join to Linux, but so far has not been added to Linux by default. Its concept is very simple: in a current version of the file to be overwritten or corrupted, users can restore to a previous version of any one. Windows user now through the shadow copies of forms you can experience this feature, but in the standard Linux file system is the embodiment of the function. Of course, it does not replace the file backup, but you can put a file to roll back to the past at some point in the function or has its place. Now you can manually to increase the functionality in Linux. Some of the different projects have also been using a slightly different way to achieve this functionality, such as the Wayback, ext3cow, copyfs and Tux3, etc. Although some people call this function to implement non-kernel plugin, but if you have a standard, "kernel security" method to implement version control is a better choice. I believe that the future of the Linux file system (perhaps the upcoming BTRFS) will completely solve the problem, but there is no direct solutions begin to solve the problem. Audio application programming interface (API) to cook too much can go bad in a pot of good soup, use this example to show the status of the Linux audio implementation and fitting. Multiple audio API and subsystems means that you can easily choose one to meet their own needs, but it also means that you will face compatibility problems. Kernel-level audio API, ALSA, is in most cases the application's preferences. But apart from it, there are many other audio API, for example, the initial PulseAudio, mainly used in mixing from multiple applications audio; JACK, used to implement low-latency of professional audio. In September this year LinuxPlumber Conference DonMarti good summarizes the problems posed by the conflict, he said, "If anyone asked me, ' I want to write an audio application, which one should I use? ' API I can't give a good answer. "In short, the audio programming API problems plaguing the plague users. Or, any programmer problems in the long term will also affect the end user. PulseAudio is perhaps the most universal solution, also has the broadest range of applications. But in the long term, application developers need is a kernel-level audio access method.
No comments:
Post a Comment