Re:The Jury Is In: Monolithic OS Design Is Flawed [pdf]
by ysleepy on Friday August 17, 2018 @10:47AM
(#17783197)
Android Things is not included in normal Android as it seems.
Android Treble/9 is just not even close to a microkernel.
It if was, there would be documentation on how to write a userspace device driver, but there isn't.
Re:The Jury Is In: Monolithic OS Design Is Flawed [pdf]
by monocasa on Thursday August 16, 2018 @06:50PM
(#17779060)
Binder allows for endpoints in kernel space.
Re:The Jury Is In: Monolithic OS Design Is Flawed [pdf]
by pjmlp on Thursday August 16, 2018 @09:09PM
(#17779614)
Of course, otherwise how would they support passthrough legacy HALs for devices upgrading to Oreo as described on the documentation?
Interprocess RPC is only for Oreo and newer.
Re:The Jury Is In: Monolithic OS Design Is Flawed [pdf]
by monocasa on Thursday August 16, 2018 @10:13PM
(#17779838)
The current HAL works via dynamic libraries that get loaded into your process and talk to kernel space with a platform specific API. The passthrough support is just opening both sides in the same process, loading those legacy libraries, and wrapping the libraries in the treble API. So it actually uses IPC where both sides are in user space. That's what they mean when they describe it as 'in process' in the documentation.
Going forward, I expect the vendors to modify their kernel drivers to export the treble API over binder IPC directly while in kernel space.
So I wouldn't be surprised if it ends up that interprocess RPC only ebds up getting used in systems before Oreo.
"Binderized HALs. HALs expressed in HAL interface definition language (HIDL). These HALs replace both conventional and legacy HALs used in earlier versions of Android. In a Binderized HAL, the Android framework and HALs communicate with each other using binder inter-process communication (IPC) calls. All devices launching with Android 8.0 or later must support binderized HALs only.
Passthrough HALs. A HIDL-wrapped conventional or legacy HAL. These HALs wrap existing HALs and can serve the HAL in binderized and same-process (passthrough) modes. Devices upgrading to Android 8.0 can use passthrough HALs. "
https://source.android.com/devices/architecture/hal-types
Here are the user space driver APIs for i2c/spi access on Android Things.
https://developer.android.com/reference/com/google/android/t...