3 ms·
Thanks, this is useful information. > For a retail devices, such as the Nest Hub, vendors can build a custom system with additional or different services from
by ryukafalz 5y ago
Thanks, this is useful information.
> For a retail devices, such as the Nest Hub, vendors can build a custom system with additional or different services from what is found in the open-source release. Thanks to stability of the FIDL interfaces, those closed-source services do not prevent the core system from being updated.
This is helpful so long as the interface does not change; do you anticipate ever having to change it or do you think it's pretty final at this point?
Regarding drivers, it's interesting that they're userspace services interacting with the rest of the system via IPC. Are there any sort of security guarantees to protect against malicious services? (Obviously a proprietary driver could do its job incorrectly, but if they can't otherwise mess with other parts of the system that's helpful.) EDIT: I suspect that as it's a capability-based system, there is a decent amount of isolation between drivers and the rest of the system, but I just want to be sure.
> I'm not sure this is much different from the situation with Android: not all drivers or UI used on Android devices are open source, are they?
Regarding Android drivers: my understanding is they sometimes do have proprietary userspace components. Any kernel-side components are necessarily FOSS however, as they are derivative of the Linux kernel and therefore GPL. (This doesn't mean that they're always easy to use though, as manufacturers seldom upstream them and the Linux kernel is a huge project.)
On the Android UI, you're correct; most often the UI on an Android phone is not FOSS. I suspect this is because, as that part of Android is permissively licensed, the device vendors don't have to release it. So they don't.
I've had mixed feelings with Fuchsia from a licensing perspective for that reason. On one hand, having a stable interface might make it easier to deal with proprietary drivers, provided that interface is locked in amber and never changes. On the other hand, Fuchsia's permissive licensing makes it more likely that manufacturers will make all their drivers proprietary, because they clearly do whenever they can. (At least the ARM vendors do; the x86 vendors seem to be a lot more open to working in public.)
- kerneis 5y ago> do you anticipate ever having to change it or do you think it's pretty final at this point? We're not there yet, but defining a stable driver runtime is on our roadmap for 2021: https://fuchsia.dev/fuchsia-src/contribute/roadmap/2021/stable_driver_runtime https://fuchsia.dev/fuchsia-src/contribute/roadmap/2021/stab... For non-driver interfaces, similar stability commitments may be shared over time, as the platform matures and we get more users. > Are there any sort of security guarantees to protect against malicious services? Fuchsia is based on capabilities, ie. handles to access resources, and those include memory regions. So a driver will only be able to access the parts of memory that you delegate to it. I don't know enough about drivers to provide a detailed security analysis, but I think it provides far more isolation than what you have in a monolithic kernel such as Linux.
- ryukafalz 5y ago> Fuchsia is based on capabilities, ie. handles to access resources, and those include memory regions. So a driver will only be able to access the parts of memory that you delegate to it. Ah thanks - Fuchsia drivers having capabilities to specific memory regions mostly answers my concerns at that level I think. Well, I guess I'll continue to be both interested in it from a technical perspective and conflicted about it based on licensing.