OpenBinder

Last updated

OpenBinder
Developer(s) Google
Operating system Cross-platform
Type Inter-process communication
Website www.angryredplanet.com/~hackbod/openbinder/docs/html/

OpenBinder is a system for inter-process communication. [1] It was developed at Be Inc. and then Palm, Inc. [2] and was the basis for the Binder framework [3] now used in the Android operating system developed by Google. [4]

OpenBinder allows processes to present interfaces which may be called by other threads. Each process maintains a thread pool which may be used to service such requests. OpenBinder takes care of reference counting, recursion back into the original thread, and the inter-process communication itself. On the Linux version of OpenBinder, the communication is achieved using ioctls on a given file descriptor, communicating with a kernel driver.

The kernel-side component of the Linux version of OpenBinder was merged into the Linux kernel mainline in kernel version 3.19, which was released on February 8, 2015. [5]

Related Research Articles

MIPS Technologies company

MIPS Technologies, Inc., formerly MIPS Computer Systems, Inc., was an American fabless semiconductor design company that is most widely known for developing the MIPS architecture and a series of RISC CPU chips based on it. MIPS provides processor architectures and cores for digital home, networking, embedded, Internet of things and mobile applications.

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.

QNX Unix-like, real-time, embedded operating system

QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems. As of 2020, it is used in a variety of devices including cars and mobile phones.

L4 is a family of second-generation microkernels, generally used to implement Unix-like operating systems, but also used in a variety of other systems.

Inter-process communication mechanisms an operating system provides to allow the processes to manage shared data

In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

DragonFly BSD Operating system

DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in June 2003 and announced it on the FreeBSD mailing lists on 16 July 2003.

XNU computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the macOS operating system and released as free and open-source software as part of the Darwin OS, which is the basis for the Apple TV Software, iOS, iPadOS, watchOS, and tvOS OSes. XNU is an abbreviation of X is Not Unix.

The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. Typically, it is mapped to a mount point named /proc at boot time. The proc file system acts as an interface to internal data structures in the kernel. It can be used to obtain information about the system and to change certain kernel parameters at runtime (sysctl).

seccomp is a computer security facility in the Linux kernel. seccomp allows a process to make a one-way transition into a "secure" state where it cannot make any system calls except exit , sigreturn , read and write to already-open file descriptors. Should it attempt any other system calls, the kernel will terminate the process with SIGKILL or SIGSYS. In this sense, it does not virtualize the system's resources but isolates the process from them entirely.

Linux Family of free and open-source software operating systems based on the Linux kernel

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution.

Openmoko Taiwanese corporation that codeveloped Openmoko Linux

Openmoko was a project to create a family of open source mobile phones, including the hardware specification, the operating system, and actual smartphone development implementation like the Neo 1973 and Neo FreeRunner. The whole project was sponsored by Openmoko Inc.

A mobile operating system is an operating system for mobile phones, tablets, smartwatches, 2-in-1 PCs or other mobile devices. While computers such as typical laptops are 'mobile', the operating systems usually used on them are not considered mobile ones, as they were originally designed for desktop computers that historically did not have or need specific mobile features. This distinction is becoming blurred in some newer operating systems that are hybrids made for both uses.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software that requires access to stored data, such that the database system is "hidden" from the application’s end-user and requires little or no ongoing maintenance. It is actually a broad technology category that includes

Linux kernel free and open-source Unix-like operating system kernel

The Linux kernel is a free and open-source, monolithic, Unix-like operating system kernel. It is deployed on a wide variety of computing systems, from personal computers, mobile devices, mainframes, and supercomputer to embedded devices, such as routers, wireless access points, private branch exchanges, set-top boxes, FTA receivers, smart TVs, personal video recorders, and NAS appliances. Its availability and continuous development and support have spawned a plethora of operating system distributions, commonly also called Linux.

Index of Android OS articles Wikipedia index

A list of Android -related topics

cgroups is a Linux kernel feature that limits, accounts for, and isolates the resource usage of a collection of processes.

Mono (software) computer software project

Mono is a free and open-source project to create an Ecma standard-compliant .NET Framework-compatible software framework, including a C# compiler and a Common Language Runtime. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. The stated purpose of Mono is not only to be able to run Microsoft .NET applications cross-platform, but also to bring better development tools to Linux developers. Mono can be run on many software systems including Android, most Linux distributions, BSD, macOS, Windows, Solaris, and even some game consoles such as PlayStation 3, Wii, and Xbox 360.

Synchronous Interprocess Messaging Project for LINUX (SIMPL) is a free and open-source project that allows QNX-style synchronous message passing by adding a Linux library using user space techniques like shared memory and Unix pipes to implement SendMssg/ReceiveMssg/ReplyMssg inter-process messaging mechanisms.

kGraft is a feature of the Linux kernel that implements live patching of a running kernel, which allows kernel patches to be applied while the kernel is still running. By avoiding the need for rebooting the system with a new kernel that contains the desired patches, kGraft aims to maximize the system uptime and availability. At the same time, kGraft allows kernel-related security updates to be applied without deferring them to scheduled downtimes. Internally, kGraft allows entire functions in a running kernel to be replaced with their patched versions, doing that safely by selectively using original versions of functions to ensure per-process consistency while the live patching is performed.

Google Fuchsia capability-based, real-time operating system (RTOS) being developed by Google

Fuchsia is an open source capability-based operating system currently being developed by Google. It first became known to the public when the project appeared on a self hosted form of git in August 2016 without any official announcement. The source documentation describes the reasoning behind the name as "Pink + Purple == Fuchsia ", which is a reference to Pink, and Purple. In contrast to prior Google-developed operating systems such as Chrome OS and Android, which are based on the Linux kernel, Fuchsia is based on a new microkernel called Zircon, named after the mineral.

References

  1. OpenBinder website
  2. Eugenia Loli-Queru, Introduction to OpenBinder and Interview with Dianne Hackborn, OSNews, 14 February 2006.
  3. Aleksandar Gargenta, Deep Dive into Android IPC/Binder Framework, What is Binder? [ permanent dead link ], 17 February 2013
  4. Ben Leslie, Android: strace runtime, Benno’s website, 18 November 2007.
  5. "Linux kernel 3.19, Section 1.4. Android binder moved to stable". kernelnewbies.org. February 8, 2015. Retrieved February 18, 2015.