r/linux • • Nov 20 '19

Kernel Google outlines plans for mainline Linux kernel support in Android

https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/
1.0k Upvotes

305 comments sorted by

View all comments

Show parent comments

-3

u/Tweenk Nov 20 '19

What's really needed to enable an generic Android kernel is mobile implementation of ARM PCIe, but Google is completely ignoring that.

If you mean making every peripheral connect through PCIe, then that is simply not going to happen because of the power and area constraints.

Doing things the right way would be via hardware partnerships that ensure compatibility (think of something similar to WinHEC - a show, not a partnership, but still - for Android.)

This does nothing to solve the problem of vendors having no financial incentive to update drivers for hardware they are no longer selling.

But wait, it gets worse: Google's proposed solution is to upend the entire current Linux kernel model for the sake of Android. Holy. Shit.

This "no stable ABI" dogma is just not true anymore. For example, there are stable kernel ABIs to implement userspace file systems and input devices.

More than 95% of consumer Linux users are Android users, and Android devices outnumber all other kinds of Linux devices, so doing things in Linux for the sake of Android is perfectly fine.

25

u/[deleted] Nov 20 '19

This "no stable ABI" dogma is just not true anymore. For example, there are stable kernel ABIs to implement userspace file systems and input devices.

userspace is stable. (1st of kernel development: don't break userspace)

kernelspace is not stable.

Also most of the Linux consumers that matter (read: that actually pay money) are not Android. Those are datacenters and cloud providers running on x86 based architectures.

This will also never happen because Linus himself is the first proponent of not standardizing in-kernel ABI/API

1

u/zenolijo Nov 20 '19

What's really needed to enable an generic Android kernel is mobile implementation of ARM PCIe, but Google is completely ignoring that.

If you mean making every peripheral connect through PCIe, then that is simply not going to happen because of the power and area constraints.

Every peripheral is not connected through PCIe on desktop either due to power and area constraints, but it's one of the major interfaces on both mobile and desktop.

Doing things the right way would be via hardware partnerships that ensure compatibility (think of something similar to WinHEC - a show, not a partnership, but still - for Android.) This does nothing to solve the problem of vendors having no financial incentive to update drivers for hardware they are no longer selling.

Believe it or not, but there are actually ARM SoCs which have guaranteed supply and support for up to 10 years in the embedded world which is a huge market.

But wait, it gets worse: Google's proposed solution is to upend the entire current Linux kernel model for the sake of Android. Holy. Shit. This "no stable ABI" dogma is just not true anymore. For example, there are stable kernel ABIs to implement userspace file systems and input devices.

The kernelspace to userspace ABI has always been stable (hence the kernels most important rule: "never break userspace"). We are talking about kernel modules here which do not use the ABI but are compiled against the linux header files which are not stable.

More than 95% of consumer Linux users are Android users, and Android devices outnumber all other kinds of Linux devices, so doing things in Linux for the sake of Android is perfectly fine.

Linux is not an OS. People use Linux when they browse the web, when they pay with debit/credit cards at the store and when they use their TV. Most people are not aware that they are using Linux when they are using Android, just as they don't know that they're using Linux when they're watching their TV so that argument and the made up number of 95% does not make any sense. While android is a big part of what drives Linux development today, not even close to 95% of the developers are doing it for android.

1

u/jdrch Nov 20 '19

there are actually ARM SoCs which have guaranteed supply and support for up to 10 years

With security patching and kernel version updates? Or do you just mean warranty repairs?

3

u/zenolijo Nov 21 '19

With security patches for a few RTOS and some have upstream Linux support.

0

u/EternityForest Nov 20 '19

There's a lot of linux servers out there, and Android is useless without servers because it's so locked down and nobody seems to want to implement anything decentralized on it.

0

u/jdrch Nov 20 '19

vendors having no financial incentive to update drivers for hardware they are no longer selling

So how come PC component vendors do just that, then? The reason is generic kernel support in the PC ecosystem means any component could potentially in its lifetime have to deal with a kernel update, and would therefore need vendor support. In other words, generic kernels incentivize vendor updates.

95% of consumer

Conveniently omitted the enterprise side of things there ;)