News for hackers. Stuff that matters.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by cheez on Sunday September 17, 2017 @06:06PM (#15271949)
Why?
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by Lutia on Sunday September 17, 2017 @08:04PM (#15272417)
> Why?

Not having to deal with Linux's refusal of maintaining a stable driver API and ABI for a start. The number one reason that stops Android from getting updates on smartphones is that hardware manufacturers don't want the burden of constantly making small changes to their proprietary drivers to follow new linux kernel changes, something that they don't have to worry about when they make drivers for, say, Windows PCs.

Even Google's own phones, like the Nexus and Pixel, are stuck because of this. They receive updates faster than non-Google phones, but they do not receive more than 2 years of feature updates (with an additional year of security updates courtesy of Google backporting fixes from newer android builds to the older kernel).

Fuchsia is not going to be burdened by Linux kernel dev policies of constantly breaking APIs and their requirement for driver developers to open source their stuff, obey the kernel coding preferences (like when they rejected AMD's driver because of the HAL) to get them mainlined so that they can finally be kept in a maintained state.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by catern on Sunday September 17, 2017 @08:16PM (#15272470)
>Fuchsia is not going to be burdened by Linux kernel dev policies of constantly breaking APIs and their requirement for driver developers to open source their stuff, obey the kernel coding preferences (like when they rejected AMD's driver because of the HAL) to get them mainlined so that they can finally be kept in a maintained state.

And as a result, its drivers will be far lower quality and much less stable, and the system as a whole will pay the complexity cost of working around the awful code that hardware vendors churn out.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @08:21PM (#15272488)
> And as a result, its drivers will be far lower quality and much less stable

I don't buy it. Windows provides stable driver ABIs and works just fine. A lot of the changes to the Linux driver API are gratuitous, and isolating driver development from the whims of the core won't actually hurt.

If anything, a stable ABI will help, since a smaller, well-defined boundary between the kernel core and drivers allows for things like Vulkan-like validation layers, better debugging, better sandboxing, and even transparent thunking to userspace.

Will some drivers be shitty? Of course. But many drivers won't be, and drivers will be less shitty overall when they can spend more time on being good drivers and less time dealing with GFP_FOOBAR becoming GFP_BARFOO.

Conventional wisdom is that backward binary compatibility i some huge unreasonable burden. This conventional wisdom is wrong; if anything, maintaining a stable ABI imposes some discipline that focuses development effort and that forces you to modularize your system.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by lamlam on Sunday September 17, 2017 @08:36PM (#15272551)
I've always thought that one of the things that gives Windows drivers the edge over Linux ones is the fact that Microsoft provides a testing and validation suite for drivers [1].

[1] https://developer.microsoft.com/en-us/windows/hardware/downl...

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @08:37PM (#15272557)
SAL/PreFAST are _awesome_ too. I haven't seen anything close in the free world.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by flukus on Sunday September 17, 2017 @08:28PM (#15272519)
> I don't buy it. Windows provides stable driver ABIs and works just fine.

Depends on the driver, but often they are buggy and will never be updated for the life of a device. Once a device has been sold the manufacturer doesn't care about support. Most linux CVE's are in drivers, imagine how many are lurking in the binary blobs of random third parties?

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @08:30PM (#15272523)
> Most linux CVE's are in drivers, imagine how many are lurking in the binary blobs of random third parties?

That's why we should sandbox drivers as much as possible! I'm a big fan of punting a lot of driver work to userspace. How are we supposed to do that if drivers are allowed to use the entire Linux kernel internal API and do whatever they want? How can we possibly isolate a driver that thinks it has the right to take mmap_sem and twiddle PTE bits?

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by catern on Sunday September 17, 2017 @09:08PM (#15272682)
Sandboxing isn't a substitute for having your drivers be open source. Even if all drivers were written in safe languages, you'd still have CVEs and still want to fix those CVEs.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @09:22PM (#15272727)
Closed source Linux drivers exist. Open source Windows drivers exist. An unstable kernel ABI is neither necessary nor sufficient a condition for open sourcing drivers.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by catern on Sunday September 17, 2017 @09:49PM (#15272818)
True but irrelevant.

The key new "feature" of Fuschia is that its stable ABI makes closed-source drivers easier to write in the short term, relative to Linux. As a result, the vast majority of Fuschia drivers will be closed-source. Don't you agree?

I believe supporting a stable API and closed-source drivers will result in a technically inferior, more complex, less stable kernel. The Linux model of including all the drivers in a single open source codebase, where the drivers can be refactored and improved along with the rest of the kernel, is a genuinely superior way to develop a kernel, which produces a genuinely technically superior product. I just hope Google realizes this before they sink too many millions into Fuschia.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @09:52PM (#15272831)
I think we can at least agree that the proof is in the pudding.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by naasking on Monday September 18, 2017 @12:29AM (#15273411)
You seriously think that open source drivers would have fewer CVEs than sandboxed drivers?
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by catern on Monday September 18, 2017 @10:01AM (#15275977)
How exactly are you going to sandbox your drivers? Run them in user-mode, perhaps? But then you've constructed a microkernel, and no-one uses your system because it's slow.

Anyway, what I said is that sandboxing isn't a substitute for open-sourcing. They are complements, not substitutes.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by naasking on Tuesday September 19, 2017 @01:02AM (#15281926)
> But then you've constructed a microkernel, and no-one uses your system because it's slow.

FUD. L4 is the most widely deployed kernel in the world.

> Anyway, what I said is that sandboxing isn't a substitute for open-sourcing.

Given reality, something must substitute for open source drivers. Sandboxing is certainly the obvious choice.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by catern on Tuesday September 19, 2017 @10:31AM (#15284915)
>Given reality, something must substitute for open source drivers

Linux is quite real, I assure you.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by X86BSD on Sunday September 17, 2017 @10:23PM (#15272923)
As do the BSDs. That's what vendors need is stability regarding drivers.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by mangix on Sunday September 17, 2017 @08:27PM (#15272516)
I've seen a larger amount of instability in Windows than in Linux. Having a stable ABI doesn't help much.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by Lutia on Sunday September 17, 2017 @08:41PM (#15272573)
I've personally never had any problem stemming from the lower levels of the system ever since Windows 7. Whenever I've seen major bugs on Windows, it was on user space stuff like the profile corruption that breaks the start menu and metro/UAP apps in Windows 10 after the major updates which can be fixed by deleting the user and creating a new one.

Windows also has a more robust architecture where it matters, like the fact that a GPU driver crash doesn't kill the user session (windows can reload that subsystem while keeping the user session running since Vista), whereas it can either kill Xorg or just outright freeze the system on linux. A very useful way to architect the OS, although I've only experienced it on Vista and had more stable GPU drivers from 7 onward.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by quotemstr on Sunday September 17, 2017 @08:28PM (#15272521)
Windows, at least for me, has been exceptionally stable since Windows 7 or so.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by zamalek on Sunday September 17, 2017 @09:15PM (#15272709)
Software stability isn't the core point - how is the stability/instability of Windows relevant to the disadvantages of a driver ABI that changes continuously?
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by baybal2 on Sunday September 17, 2017 @08:38PM (#15272564)
>I don't buy it. Windows provides stable driver ABIs and works just fine.

I strongly disagree with this statement. Windows is a buggy mess on all levels from GUI down to kernel. It is a consensus of technically enlightened people

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by slededit on Sunday September 17, 2017 @08:49PM (#15272597)
Do you have an example that's not from user32? Usually people extrapolate that subsystem to the entire kernel.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by taeric on Sunday September 17, 2017 @10:39PM (#15272980)
I have a hard time thinking that Google will have a better user focused story than Linus. To that end, I have my doubts about them giving a more stable abi.

Just thinking of how painful taking a dependency on guava can be makes me think this claim is satire. :(

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by cromwellian on Monday September 18, 2017 @09:21PM (#15281088)
Really? Guava has a well defined deprecation policy, they give advanced warning of what's going to be deprecated, and they have consistently stuck to it with no surprises. It's one of the most well designed and carefully curated Java libraries in the entire ecosystem.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by taeric on Monday September 18, 2017 @10:42PM (#15281385)
It is well documented. It is also ridiculously aggressive.

If it wasn't in the Java ecosystem, it might not feel weird. But the Java community had maintained backwards compatibility for a long long time. Guava promises, what, a year?

And for internal use, that is fine. I have seen some poor sods introduce it as a dependency of theirs, which can lead to frustrating upgrade cycles.

Edit to add: the Jakarta libraries are also fairly well designed. To the point that most things in guava were already there.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by cheez on Monday September 18, 2017 @10:54AM (#15276443)
Good to know, thanks. It would be nice if the original page had this (also: I don't think it's helpful to downvote for asking why...)
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by rmusial on Sunday September 17, 2017 @06:25PM (#15272035)
Linux isn't capabilities based, or real time by default. Google likes permissive licenses. Android, while good, was a knee-jerk by Google in reaction to the iPhone. If you've got the resources of Google, why not try to build something in house that scratches some long standing itches and at the same time get ownership over the OS that could power everything from your phones to laptops?
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by tziki on Sunday September 17, 2017 @06:58PM (#15272167)
Android was in development far before iPhone was released.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by drewvolpe on Sunday September 17, 2017 @07:18PM (#15272250)
The original version of Android looked like and worked like a Blackberry: small screen with a physical keyboard and a D pad for navigation (no touch control).

When the iPhone was announced in 2007, they realized that on-screen keyboards and multi-touch control were the future, so they did a complete redesign, moving to an interface similar to the iPhone. Here's a quote from one of their engineers talking about the iPhone announcement:

“As a consumer I was blown away. I wanted [an iPhone] immediately. But as a Google engineer I thought ‘We’re going to have to start over’” Chris DeSalvo said. “What we had suddenly looked so… nineties. It’s just one of those things that are obvious when you see it.”

http://bgr.com/2013/12/19/original-iphone-android-story/

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by blinkingled on Sunday September 17, 2017 @08:16PM (#15272467)
Nothing to do with OP's point of Android being based on Linux even before the iPhone.

[Every time this story is told, I like to remind - note how fast Google were able to pivot / adapt when Microsoft with their crazy resources and Engineering might took way longer. (Even beyond that MS had to change the way apps were developed for WP.) Fact is Google/Danger/Android were in a fundamentally good position mobile OS design wise way before the iPhone. After the iPhone - they looked at the possibilities of multi touch soft keyboard UI and were able to get there and surpass fairly fast.]

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by addicted on Sunday September 17, 2017 @08:28PM (#15272517)
To be fair Google knew about the iPhone well before Microsoft did (they worked closely with Apple in the beginning for Maps and search).

But even adjusting for that it took MS 3-4 years after the iPhone to just get Windows Phone 7 out, and that was also clearly a rushed release, because they had to throw everything out for Windows Phone 8.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by vvanders on Sunday September 17, 2017 @07:04PM (#15272186)
Yeah, and Danger was doing a lot of interesting stuff in the space as well.

They were the first to do push based email and IM in a context outside of business AFAIK.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by rmusial on Sunday September 17, 2017 @07:32PM (#15272295)
Correct, Google bought Android in 2005 but went back to the drawing board in 2007 when iPhone came out. Now Google has a chance to take some time and try some new things out.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by cma on Sunday September 17, 2017 @09:23PM (#15272729)
They didn't totally go back to the drawing board. Comparing with the original demo they mainly just added touch stuff. The first android phones still had the same blackberry-esque selection ball even though they also had added capacitive touch.

I believe after rage from Jobs they left out multitouch zooming at first and did something double tap based, even though MS had done it before Apple (without capacitive) and Minority Report has shown it.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by bitmapbrother on Monday September 18, 2017 @12:45PM (#15277400)
If you look at both devices you'll notice that Android essentially looked and operated the same. The only changes were to add additional support for touch screen devices such as the virtual keyboard. I would hardly call this going back to the drawing board. There was no need as they already had all of the software pieces in place.
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by orf on Sunday September 17, 2017 @06:22PM (#15272024)
Why not? Have we reached the peak OS development, and any more is pointless?
Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by trimbo on Sunday September 17, 2017 @09:09PM (#15272684)
I think peak OS development was in the 70s and 80s. Every hardware vendor also had their own OS, or several. The System V OSes were just different enough to be annoying.

To name a few: UNICOS, NeXTStep, HP-UX, RSTS, ULTRIX, VMS, AIX, SunOS, Solaris, IRIX, A/UX, MacOS, ProDOS, Amiga OS.

Re:Fuchsia: Google's modular, capability-based, non-Unix ope... by alecco on Sunday September 17, 2017 @06:59PM (#15272172)
Control.