News for hackers. Stuff that matters.
Re:Android overtakes Windows as the internet’s most used ope... by alnitak on Monday April 03, 2017 @01:05PM (#14024673)
Let me ask a (potentially) very stupid question here: What prevents doing the same on phones?

What would make a phone hardware able to install anything that compiles to its CPU architecture the same way a PC can?

Re:Android overtakes Windows as the internet’s most used ope... by cbhl on Monday April 03, 2017 @01:19PM (#14024853)
Paraphrase the question in the reverse and you get your answer: What makes this possible on Windows desktops?

Stable binary driver ABI. Hardware monoculture. Expensive driver certification program. Letting hardware vendors release binary drivers without releasing the corresponding sources. An opt-out automatic update mechanism.

(Disclaimer: I work at Google, but not on the Android team.)

Re:Android overtakes Windows as the internet’s most used ope... by hermitdev on Monday April 03, 2017 @02:24PM (#14025578)
Hardware monoculture? Surely you must be joking. There are only a few to several dozen current Android phone models being sold at a given time. There are thousands upon thousands of PC models being sold among major manufacturers. This doesnt even begin to account for home builds or customizations. There is a very slim chamce that anyone has the exact same hardware config as my PC, yet Windows still has to work on it. Sure, vast majority of Windows is x86/x64, but that doesn't mean it is a hardware monoculture.
Re:Android overtakes Windows as the internet’s most used ope... by fridsun on Monday April 03, 2017 @03:06PM (#14026018)
If you break those PC models open what's really different? The hardware interfaces of PC has almost always been stable since the age of IBM PC clones. It might not be a monoculture in terms of all the RGB lightings you can put on your machine, but you definitely don't need to worry about different protocols. All the while Android phones can have the weirdest SoC's on the planet in them.
Re:Android overtakes Windows as the internet’s most used ope... by hermitdev on Monday April 03, 2017 @03:24PM (#14026202)
I admittedly have zero experience with configuring HW with ARM.

However, to say that HW interfaces on the PC have been stable since the age of IBM PC clones is a joke. In the DOS days, users manually had to manually set IO memory addresses and IRQ levels. Early Windows sat on top of DOS, so still had to do it there. Plug'n'Play didn't show up until Windows 95, and even then it was hit and miss. Some devices worked, others required manual configuration. RTM Win95 didn't support USB, either. That took the equivalent of a service pack (although, IIRC, they went by a different name back then. I want to say OSR1 added USB 1.1 support). Windows drivers didn't really get friendlier until the push to the NT kernel & it's HAL. Win2k had limited, but good support. WinXP got better. Vista was a step backwards. Win7, 8 and 10 have incrementally improved on Vista. Even on Windows 10, though, I have updates that "forget" a subset of my USB controllers. Windows doesn't know about drivers for my HOTAS. Most recent windows updates cause it to forget about my secondary monitor. Half the time after an update, my USB keyboard doesn't work (I have to login on my desktop using an on-screen keyboard to correct settings). I'm probably one of the only (or a small handful) of people that have a Geforce 690 & 1080 in the same system. Sure, PC might be better in that most peripherals go over USB. But, not all USB devices work with a generic driver, and Windows often doesn't include non-generic drivers for all but the most popular devices.

Re:Android overtakes Windows as the internet’s most used ope... by temac on Monday April 03, 2017 @04:07PM (#14026632)
Let's ignore the historical legacy non-PNP ISA config nightmare, because they do not bring anything of value in this discussion.

The core system of PC is highly compatible with OSes in pretty much all directions. (Well now even if I don't ignore the non-PNP ISA configurations stuffs, it does not really change the situation: those were not for core system stuffs)

Then you have drivers for various bus controllers and peripheral, some of which are crucial for using your PC in practice, but as soon as the necessary driver exists, loaded by the kernel way after the core boot, and highly abstracted on all modern OSes (it only access the HW through functions abstracted by the OS)

For non-ancient PC, you even have with ACPI some abstracted functions, provided by the HW, and used at the runtime by the OS. It's to be considered as part of the core plateform, as if it was a pure HW interface, given what we are discussing about. The NT HAL, btw, is a vestigial of early NT years, and is of zero interest for the purpose of PC compatibility today (there is only one HAL that is in use on modern PCs, and IIRC switching the HAL was not even enough when multiple were in use IIRC, other MS binaries still needed to be recompiled -- so the NT HAL is merely an internal detail that bring no consequence in backward or fw compat as far as decoupling of binaries and their update of a partial subset in a system is concerned)

Now the situation for ARM SoC for Android is NOT the same. You just don't boot a generic ARM Linux kernel to driver your random ARM SoC of your random phone. Because even what could constitute an equivalent core system as what exists for PC, follows no standard.

Re:Android overtakes Windows as the internet’s most used ope... by ZephyrP on Monday April 03, 2017 @04:09PM (#14026655)
You still need all of these things. An x64 Intel Processor manufactured in 2017 still boots into real mode at startup exactly like the original did 30 years ago. Complete with segmented mode without memory protection, multitasking, or code privilege levels, just as AT/AT compatible as the day it was born.
Re:Android overtakes Windows as the internet’s most used ope... by 72deluxe on Monday April 03, 2017 @04:48PM (#14026993)
Thanks for reminding me of Plug'N'Pray. Some stuff worked but a lot didn't, likely the cheap rubbish hardware I bought with lame drivers. And trying to load a mouse driver for DOS and play a game that needed himem. Or trying the set the right IRQ to get the DOS game to believe you had an Adlib or SB16 compatible card....

The kids today don't know how easy things are with unified drivers for audio on Mac OS etc. I mean, even USB coming out was amazing instead of serial devices and guessing the COM port? Which LPT1?? And dial up etc etc so easy now.

Re:Android overtakes Windows as the internet’s most used ope... by asveikau on Monday April 03, 2017 @02:53PM (#14025894)
My understanding is the interface between hardware and kernel is more vendor-specific on ARM than it is on the PC. So the PC has lots of hardware diversity but the way you talk to a given device is already somewhat abstracted from the perspective of the kernel.
Re:Android overtakes Windows as the internet’s most used ope... by digi_owl on Monday April 03, 2017 @04:20PM (#14026764)
A major thing you have on PCs that you do not have on ARM is bus query.

With PCI and later the OS can ask each device on the bus to ID itself and thus figure out if it is a known device type or not (and if not, ask the admin to install drivers).

On ARM You have things sitting off various buses that expect the kernel to know what they are and how to talk to them from the word go.

It has gotten better as now there exist something known as a device tree that can be read by the kernel at boot. But not every SoC provide support.

Re:Android overtakes Windows as the internet’s most used ope... by digi_owl on Monday April 03, 2017 @04:16PM (#14026724)
Intel started work on Moblin back in the day because Microsoft balked at bringing Windows to a x86 platform without PCI device enumeration.

Heck, if you crack open the ARM based Windows RT tablets you will find quite the odd duck of an ARM SoC inside. One more reminiscent of a x86 PC than what you find in your average Android device.

Re:Android overtakes Windows as the internet’s most used ope... by ryukafalz on Monday April 03, 2017 @02:12PM (#14025463)
I think you're overstating the value of most of those things, because it's also possible on Linux desktops too. You can take a typical off-the-shelf x86 laptop, pop a disk in, and install Linux on it.

IMO the key point out of the things you mentioned is the hardware monoculture, because that definitely does help people get Linux running (and keep it running) on new hardware. I'm skeptical about most of the others.

Re:Android overtakes Windows as the internet’s most used ope... by wutbrodo on Monday April 03, 2017 @02:16PM (#14025501)
Your example actually helps prove the point: the fact that Linux can use some of these advantages but not others lines up pretty neatly with the fact that it's generally harder to get Linux running on a given system than it is Windows. I say this as someone whose used Linux and thinks that practically everyone could benefit from giving Linux a try as their primary personal computer (with the always-major caveat that you have to be careful about hardware purchases and/or have someone knowledgeable set it up).
Re:Android overtakes Windows as the internet’s most used ope... by tjoff on Monday April 03, 2017 @02:08PM (#14025415)
Windows runs on many CPU architectures. Android phones are packed with binary blobs.
Re:Android overtakes Windows as the internet’s most used ope... by bitmapbrother on Monday April 03, 2017 @03:18PM (#14026133)
Windows is one giant binary blob. Also, Android runs on many CPU architectures as well.
Re:Android overtakes Windows as the internet’s most used ope... by fauigerzigerk on Monday April 03, 2017 @01:29PM (#14024983)
So it's Linux fault and Fuchsia is the solution, right? :)
Re:Android overtakes Windows as the internet’s most used ope... by bighi on Monday April 03, 2017 @04:11PM (#14026671)
What is this "fuck sea" you're talking about and how do I sail in it?
Re:Android overtakes Windows as the internet’s most used ope... by fauigerzigerk on Monday April 03, 2017 @04:41PM (#14026943)
It's Google's best shot so far at provoking "Android is dead" rumours: http://www.androidpolice.com/2017/02/15/speculation-around-g...

But the reason I brought it up is that Fuchsia OS will have a stable driver ABI.

Re:Android overtakes Windows as the internet’s most used ope... by shp0ngle on Monday April 03, 2017 @01:12PM (#14024766)
I don't really understand it either.

I get Windows security updates on every damn computer I buy. Yes, the computer is pre-loaded with bloat, but I still get updates like everyone else.

Meanwhile, on Android, I mostly get nothing. What is so fundamentally different between PC and phone? Why is it so hard on mobile phones?

Re:Android overtakes Windows as the internet’s most used ope... by bitmapbrother on Monday April 03, 2017 @01:56PM (#14025265)
Does your OEM create their version of Windows? No, they ship the binaries they receive from Microsoft. As long as Android OEM's are allowed to build their own version of Android this problem will always be in the hands of the OEM.
Re:Android overtakes Windows as the internet’s most used ope... by shp0ngle on Monday April 03, 2017 @03:33PM (#14026287)
Well they sort of do, by adding pre-installed bloat.

But it's still Windows.

I just wonder why that is. Maybe Microsoft has stricter licensing?

Re:Android overtakes Windows as the internet’s most used ope... by Johan-bjareholt on Monday April 03, 2017 @05:08PM (#14027158)
There's a pretty huge difference between modifying the os and its desktop environment compared to just adding a few extra bloated apps and some wallpapers...
Re:Android overtakes Windows as the internet’s most used ope... by bitmapbrother on Monday April 03, 2017 @06:01PM (#14027616)
There's a big difference between an OEM merging their source code with Google's AOSP source code and then compiling it to build an OS than just adding crapware to a Windows installation. OEM's can't modify the Windows source code and can only distribute the OS given to them.
Re:Android overtakes Windows as the internet’s most used ope... by rsync on Monday April 03, 2017 @02:54PM (#14025910)
"What would make a phone hardware able to install anything that compiles to its CPU architecture the same way a PC can?"

The reason your question is "stupid" is because you think your phone is just one computer.

In fact, you can do just what you describe - and it wouldn't be that difficult - but it would only be for the application processor and you would end up with a nice PDA.

In order to make phone calls you would also need to control the other two, fully functional, general purpose computers inside of your phone: the baseband processor and the SIM card.

Currently, there is no way for you to control either of those in any meaningful way.[1]

There are deeply entrenched economic and technical forces standing in the way of controlling your own baseband processor and we are nowhere near to doing it.

[1] Osmocom on 2G phones is not meaningful, no matter how impressive and interesting it is.

Re:Android overtakes Windows as the internet’s most used ope... by alnitak on Monday April 03, 2017 @04:38PM (#14026915)
hey thanks I think you hit the point very well here. But then how about tablets for example?
Re:Android overtakes Windows as the internet’s most used ope... by drvdevd on Monday April 03, 2017 @01:12PM (#14024776)
The short answer is that phone hardware is all over the place .. x86/64 has actually made generic kernels (including Windows) possible by having a slew of very similar machines. You can't expect the same thing from ARM systems yet - each system has to be specially targeted.
Re:Android overtakes Windows as the internet’s most used ope... by Const-me on Monday April 03, 2017 @02:15PM (#14025491)
There are Windows versions that work on ARM: phone/mobile, and Win10 IoT.

They update just fine, sometimes even on the major versions. E.g. my phone initially had windows phone 8.1 and now it’s windows mobile 10. And despite the phone is 3 years old, I'm still regularly getting OS updates.

That’s why I don’t believe ARM hardware is responsible.

Re:Android overtakes Windows as the internet’s most used ope... by cat199 on Monday April 03, 2017 @04:15PM (#14026709)
Not sure about ARM/Windows vs ARM/Android, but I do know that unlike the PC, Android ARM phones at least do not have things like a standardized BIOS, standardized peripheral bus enumeration, low-level firmware to hardware interface etc, or at least not to the same level..

This is why things like SBSA (https://en.wikipedia.org/wiki/Server_Base_System_Architectur...) were needed before ARM servers could even be talked about, and why things like Rasberry PI's are not directly compatible with BeagleBones, etc, at least for the low-level stuff..

Nothing to do with ARM itself; just lack of ARM standards.

This was similar in the early PC days and had similar headaches - compare the various CP/M machines with what became the 'standard' MS-DOS/IBM-PC 'platform'..

Re:Android overtakes Windows as the internet’s most used ope... by overgryphon on Wednesday April 05, 2017 @11:24AM (#14042767)
PCs do not have a standardized BIOS. BIOS configuration options vary widely, and often mean different things between different BIOS vendors. UEFI is standardized but sometimes difficult to adopt.
Re:Android overtakes Windows as the internet’s most used ope... by temac on Monday April 03, 2017 @04:13PM (#14026688)
It is half-responsible, but MS did the necessary thing to achieve their capability to independently update the OS (and deliver it as binaries, instead of letting phone vendors built it from source, which MS do not want to distribute to anybody): they specified a common plateforme for ARM phones, that is, IIRC, basically ARM + ACPI.

Then they mandated secure boot with keys that cannot be controlled by the user, so that other systems can not leverage the platform on W10M hw :p . (That's in the spirit of what BG wanted for ACPI: something somehow incompatible with other OSes -- MS eventually managed to do this with a sidestep, but well, this did not really help their market share :P )

Re:Android overtakes Windows as the internet’s most used ope... by digi_owl on Monday April 03, 2017 @04:24PM (#14026791)
Pretty much. MS even balked at supporting mobile ATOM back in the day, because Intel had stripped out PCI support to reduce power requirements.

The The PocketPC and Windows Mobile situation was not much different from the Android situation today, i believe.

Re:Android overtakes Windows as the internet’s most used ope... by ReverseCold on Monday April 03, 2017 @01:26PM (#14024944)
No, they're all similar enough. Only things forcing the upgrades are...

- Android breaks compat with old drivers every update - HW makers only ship (often vulnerable) binary blobs.

Re:Android overtakes Windows as the internet’s most used ope... by rmvt on Monday April 03, 2017 @01:24PM (#14024919)
and you also have other things such as other pieces of hardware the the os needs to talk to. this might not be part of what "android is", in it's barebones, so you can't just hope to build an updated version of the os and that's it. a lot of vendors customise their android builds, which means that they need to be the ones pushing updates. i'm not siding with google, but that's the way it is. could they have done a better job in assuring continued security updates? yes, but they were far too focused on trying to spread android everywhere they could.
Re:Android overtakes Windows as the internet’s most used ope... by ReverseCold on Monday April 03, 2017 @01:24PM (#14024921)
Qualcomm distributes firmware blobs. Once the blob is out of date you cannot use it on a newer version of Android.

(And device manufacturers do this too, but it's a ton easier to, say, fix flash with a shim than it is to fix networking.)

Re:Android overtakes Windows as the internet’s most used ope... by thinkling on Monday April 03, 2017 @01:29PM (#14024977)
Pardon my ignorance, but... doesn't Android run on top of the firmware? You're saying newer versions of Android are breaking backward compatibility with older firmware?
Re:Android overtakes Windows as the internet’s most used ope... by izacus on Monday April 03, 2017 @01:34PM (#14025038)
As Android evolves, you need to update drivers to keep in step with new features (pretty much the same as with Windows - you need new drivers for newer Windows usually). But as opposed to Windows, Linux kernel doesn't really have a very stable driver API and the manufacturers love to patch and mess with the kernel itself to get their hardware working. As such, porting closed-source drivers to newer Android OSes is usually impossible without support from the manufacturers.

Qualcomm (by far the most popular hardware vendor for Android devices) doesn't care about supporting their released hardware.

Re:Android overtakes Windows as the internet’s most used ope... by digi_owl on Monday April 03, 2017 @04:29PM (#14026840)
Its a bit more complicated than that.

Quite often these days when a part is initialized, the driver uploads firmware as part of that.

If you look at most Linux distros they have a package of firmwares that various companies have allowed to be distributed with the kernel.

Meaning there is a small part of the Qualcomm blob that needs to interface with the kernel to upload the firmware.

And the interface changes as the kernel changes. This because Linux devs don't want the hassle of trying to debug a kernel panic only to find that it is happening inside a third party blob, and thus they can't fix it. Instead they want companies to either work with them to maintain drivers or hand them the information needed to maintain a open driver within the kernel source.