Fuchsia overview
fuchsia.dev
fuchsia.dev
This is a massive step back for open source. The fact that Linux doesn't have a binary-compatible driver interface is a good thing: It means hardware vendors have a very strong incentive to get their drivers upstream into the kernel. And indeed, on servers and laptops and desktop machines, this has largely happened. But on mobile platforms, with Android, it has not happened. For various reasons, but nothing fundamental.
We would all benefit if Android hardware drivers were upstreamed. This would allow for a much more competitive, and higher quality, software and hardware ecosystem on mobile platforms.
But Fuschia is going in the exact opposite direction: It makes it possible to build proprietary drivers. It's for this reason that I hope Fuschia is not successful. We already have a high quality kernel: Linux. If Fuschia is "not a science experiment", but instead intended to use proven ideas, then any improvement that could be added to Fuschia could be added to Linux. We don't need a new operating system whose only advantage is that it's easier to write proprietary drivers.
"Hardware vendors being unwilling to make the drivers they write open source" is a pretty fundamental reason.
Which is worse, a phone where you can't update kernel because of the closed drivers or a phone where you can update the kernel, with closed drivers? I don't think that realistically there's a third option. The open source community is not, for example, going to make their own high performance gpus.
>Which is worse, a phone where you can't update kernel because of the closed drivers or a phone where you can update the kernel, with closed drivers?
Neither of those are good options because even in the second case, there are still vast swaths of code that upstream is not going to touch out of fear of breaking things, the end result being that you still get stuck with unfixable kernel and driver bugs.
>The open source community is not, for example, going to make their own high performance gpus.
The open source community includes a lot of companies. The high-performance GPU companies are welcome to join this community any time they like.
Every Nvidia and Intel competitor (AMD) is probably already reverse engineering their binary drivers and binary libraries trying to steal their IP, so Intel and Nvidia’s fears are imo justified.
If NVIDIA or Intel could easily protect their open source code from being stolen from AMD, the story would be different. But you can’t prevent somebody from reading even GPL code, being “inspired” by it, and writing something different enough that does the same thing with the same ideas. Like just look at the LLVM project were people look at what GCC code does every now and then for “inspiration”.
Intel's GPU drivers are free software, they even contribute them themselves, same goes for AMD.
I think NVIDIA's different because they have the Apple mentality of them being the real innovators, (regardless of fact) and building their internal culture on secrecy, closeness even to other teams within the company etc. I think they consider it as part of their 'coolness factor', together with the CEO being on stage dressed like a rock star from the 80s.
The fact that they benefit from Linux massively and that having an open driver would win them massive goodwill is not directly measurable in terms of their balance sheet, at least in the short term, plus it would remove some of the secrecy.
So no that isn't decent enough, and I only keep it like this, because it is just a little travel laptop that I keep on using until it eventually dies.
I don't get this constant obsession with mentioning how 8 years ago this and this on Linux sucked. Yes, it did, things improved considerably since then.
If you're only willing to run Linux on ancient, underpowered hardware and then complain about the experience, be my guest, but I think you'd be better served by a Mac.
There's a whole class of people who run Linux on shitty little laptops and then compare the experience to their brand new iMac. I guess somewhere there's still the mentality that since one's not paying for Linux, it's not for my serious hardware, only second hand.
As much as I'd have liked for AMD to get their shit together sooner, I am glad they eventually did and are improving amdgpu at a decent speed.
Indeed, that is why this Linux laptop is the surviving one that still runs Linux on bare metal, everywhere else I just VMs, if at all.
I can't figure out what you mean by "sabotage their competitors". The term sabotage indicates that they are performing actions to actively harm their competitors, how is that related to keeping your source, which cointains your IP, private?
The open source community includes a lot of companies. The high-performance GPU companies are welcome to join this community any time they like.
It is nice to hear that they are welcome :p. Which they would even feel more so, if there were actual incentives being offered rather than trying to make their life artificial difficult.
I think we should lower the entry threshold first. The open source and free GPU project was the first thing that came to my mind when I saw http://llhd.io/. After all, one of the main problems with OpenHardware projects is the closed FPGA ecosystem.
Still a long way to go of course, but I'm pretty positive about the direction things are heading.
IOMMUs solve this problem by giving hardware devices their own virtual address spaces.
A phone in which the kernel never needs to be updated, like with the seL4 microkernel.
A third solution could be to require device manufacturers to share their source code with a trusted third party (such as google/certification authority). This third party will make sure that the driver does not include any harmful code and provide signed binaries. Binaries could also be updated for newer versions that way, even if the original manufacturer loses interest/goes bankrupt. If the IP gets stolen, the device manufacturer could sue this third party, therefore business people will also feel secure.
It is not ideal, but I could be able to live with this solution.
Of course it will.
https://github.com/felsabbagh3/Vortex https://news.ycombinator.com/item?id=22492902 https://libre-riscv.org/3d_gpu/
Another crucial thing is texture mapper. That thing is really fast and usable even in the compute pipeline. Image support is (was?) largely optional in OpenCL.
Also I remember the last time people talked about this. PS3 was not originally supposed to have a GPU at all because the Cell processor was so powerful. In the end they had to ram in an actual GPU. While the Cell was just fine for vertex processing it did choke terribly in rasterization due to lack of TMU and dedicated HW rasterizer.
EDIT: I also want to emphasize the difference of target markets. On AMD one can go to the Nanite path for some of the rasterization. One must remember that it is a non battery powered device.
Memory bandwidth is really power hungry. For mobile, the likely target market for the Vortex and similar, one really wants to do tile based rendering. Ideally the way IMG does it. Even though theoretical flops of modern mobile GPU’s is higher than some old discrete ones their memory bandwidths are way lower, so no running Crysis on modern mobile even though flops would indicate it would match a good discrete GPU back in the days.
'21 years ago we got a new thing. Why on Earth do you think we're going to get something new ever again?'
'21 years ago we got yet another new thing. What makes you think we'll ever get a new thing again?'
Seriously?
Citation needed.
I think the mounting cost of e-waste is a far bigger deal. Think of the unimaginable amount of carbon impact from the millions of trashed Android phones out there. Do we really want to continue down this path, until there's billions of obsolete machines sitting in landfills (there probably already is)? Updatability can save devices for much longer, and now people are upgrading less often, there's a huge opportunity for impact there.
Disclosure: I work for Google, but not on the Android OS or Fuchsia.
I'm skeptical of this. People buy new phones because they are faster, or because they did update and the new version of the OS is very slow on old hardware. People buy new hardware because they want new hardware.
Most non-tech people I know actively avoid updating their phones because it's annoying. They will ignore the notifications and choose older software over the inconvenience of updating and rebooting their phone.
Avoiding updates and ignoring notifications could stem from a different reasons. People may not want to take the time and maintain their phones. I consider myself a techy person, but I also put off updating my phone, taking good care of it, upgrading it. I also dread tidying up my room, getting a hair cut, shopping for clothes, eating healthy, sleeping well etc. It could be a personality trait.
Avoidance conserves energy :)
These days Linux has better hardware support (imo) than Windows. Solving it for laptops was about creating the right incentives for hardware manufacturers. It can happen for mobile too.
For example, as of now, the hardware sensors on my x590 board are not recognized.
LED control is not a thing, even on most old/established boards (you can argue if LEDs are nice or ugly, but if they are there I want to control them).
Even enterpriseish devices, like Lenovo's X1 laptops, that are CERTIFIED by both Red Hat and Ubuntu, have limited hardware support at best. Fingerprint scanners on 3 year old models are still not recognized, and there seems to be zero will from synaptic to ever support it. Sleep states were terrible for a long long time, finally fixed in a fashion that requires different firmware for optimal sleep performance on Windows or another one for Linux.
So no, my experience is that still hardware vendors are not giving me as a Linux user the support and value for the good money I pay for their products. Obviously they don't deliver the expected level of support any reasonable consumer would expect, and most probably won't deliver it in the future either, since they get away with it so easily.
I agree, and hence my claim - Linux have excellent support for the hardware it supports, but in general it is not lagging behind Windows in that dimension due to restricted access to required information.
> any improvement that could be added to Fuschia could be added to Linux
This is not necessarily true. Some things certainly. But linux is constrained by keeping a backwards compatible user-space interface, and being mostly posix-compliant. For example, fuchsia doesn't have fork or exec (it has a single spawn function/syscall instead). Linux could add a new spawn syscall, but has to keep fork, clone, execv, etc. forever. And even if most new code moves to use the new syscall, the complexity around the old ones will be around forever.
But it has.
* I remember having major issues with printer drivers on Linux 10 years ago. Nowadays thanks to IPP support I don't need any drivers any more. I had to help my dad with installing a windows driver while on my Linux laptop it just worked.
* My Laptop from 13 years ago didn't have free network drivers. I had to jump through hoops to install them. Now they are all free.
* AMD has started maintaining really good open source driver support for their GPUs
* Even for Android there is improvement, with e.g. free Mali drivers being built. It's slow and not enough, but improvement.
I believe its meant in context of Android.
Still waiting for them to reach parity for my laptop GPU, it used to be OpenGL 4.1 with hardware video decoding, nowadays I just get OpenGL 3.3 with the open source driver, the antithesis of really good.
Not easily. If Linux has gone down a path far enough, it may be hard to reverse, especially if it is of fundamental design. For example, the separation of kernel space and user space is different. I am not an operating system engineer, but I would bet that certain things would be hard to change --- deep structural decisions mentioned in the article, like:
- the kernel primitives are exposed to applications as object-capabilities
- applications can interact only with the objects to which they have been granted access explicitly
- applications interact with each other and the system using message passing
> use proven ideas
I would say in the realm of software there are still competing ideas, even if you narrow it to the subset of ideas that are good (secure, maintainable, fast, etc.). Linux chose some good ideas, but if you want to try out different ones, you may have to start from a clean slate.
my wife do not care about updates, she will not hesitate a second to get iPhone once she knows her social media or pictures is not safe on her android device, this is the issue Android have and Fuchsia have to fix.
Windows has a stable binary ABI which means that my drivers don't go stale when Microsoft pushes out a minor rev to the NT kernel. Windows does its updates and my peripherals [mostly] work just fine.
Certainly not as good as Apple, but I believe that's the best you can find in Android land.
An open source driver written once will work for all future versions of Fuschia. Right? That reduces the effort for open source developers enormously.
Most security flaws come in above the driver level. Right? Being able to update the OS, despite the hardware manufacturer's laziness, is a huge boon for everyone.
Fuschia is open source. Drivers written for one Fuschia (say, the one Google controls) should work for another Fuschia (say, the one you and your friend forked.) Right? That's a huge win for you.
Whatever incentives you have imagined that hardware manufacturers have, time has proven those incentives don't work. It's far better to take as much control away from them as possible. They will do the minimum amount of work necessary (write new drivers). Then we can all exploit the hardware + driver + Fuschia system.
It has always, and will always, be possible to build propriety drivers. This is minimizing the blast radius of them never being updated, as much as possible.
For these reasons and more, we should all hope Fuschia is successful.
The Android developers who have tried to live on top of Linux are sick of the problems that Linux brings them. Fuschia is an open source direct response to those limitations. It's stunning to me that you would wish them to fail.
"then any improvement that could be added to Fuschia could be added to Linux". Explain to me why we still have BSD? Not all problems are solved by Linux. The sooner you accept that, the better off we will all be.
It's like you're wishing Clang would die, because we can always just improve GCC. That's demonstrably false. Just like saying everything good in Fuschia can be added to Linux. No, it can't.
"We don't need a new operating system whose only advantage is that it's easier to write proprietary drivers."
Wait, if it's easier to write propriety drivers, doesn't that lower the barrier to making low-cost phones? Well, Christ, sign me up. Do you have any idea how many billion people have a low-cost smart phone as their first computing device? If we lower the cost even more, that will broaden the reach even more.
Do you seriously not get that the other major phone OS is completely closed source? Maybe put a little faith in the people who have developed the most successful competing operating system that's open source?
Lost you already. Since Fuchsia uses a pushover license instead of a copyleft license, the vendors' drivers aren't going to be open source. Look how many companies today don't open-source their Linux drivers, and they're breaking the law by not doing so. It's going to be so much worse when there's "nothing" wrong with keeping them proprietary.
This is great term for it, thank you.
So, when an open source driver exists, Fuschia will make it useful for a long time.
Further its entirely possible for a device to require signed drivers and their is even a security incentive to doing so. They don't have to ever let you have your own drivers for their hardware.
Hardware running software that is either proprietary or based on permissively licensed software is everywhere. It's usually impractical or impossible to run your own software on such devices. There is no particular reason to trust Google any more than any other big company. Corporate persons judged by the moral standards one would apply to people are nearly always bad people even wherein most of the people therein are OK to good. Trusting them beyond their own self interest is nearly always a mistake.
Therefore, your criticism is completely without merit, and should be ignored entirely.
1) Fuschia doesn't have a property. (It doesn't compel hardware vendors to provide open source drivers.)
2) No other operating system can possibly have that property either.
3) Therefore Fuschia should die, to help one of those other operating systems succeed.
Do you not see the flaw in this argument?
As an alternative I suggest you look at actual Linux devices even if they are objectively worse if they are more open.
Linux has not compelled Nvidia to produce good OpenGL drivers.
No, really, walk me through this.
I think the principal is that if Google had licensed Fuchsia in such a way as to require release of source code to kernel modules that companies would rightly fear being sued for violating the copyright of a mega corp like google in a way that GPL violators don't fear say the free software foundation.
I think this proves GP's point.
You wonder if you can install a new android or other Linux based OS can be installed on your hardware unfortunately no gpu drivers exist for Linux so again you are forced to give up. The only software you can run is the official software from your OEM. In theory the OS you run is open source but if anyone who isn't a major OEM builds an alternative version it works as expected without proprietary bits and binaries signed by the manufacturer your device wont talk to your email provider, your bank, netflix, spotify. Instead of free as in beer or free as in libre its free as in bullcrap.
The point is without the onus being on OEMs to provide source for their drivers people have only as many options as OEM's opt to give them.
Creating a new OS, that is also GPL will not encourage Nvidia more to do the thing they already aren't doing.
I'd love to see a list of the problems you have with Fuschia or how Fuschia is being managed. Maybe as a new top-level post on HN?
They have a lot more leverage than we FOSS supporters do.
In a competitive market, open source drivers win. Look at the desktop market -- nearly everything is open source, and the biggest holdout is nVidia, because for a while there nobody was challenging them on performance. Now that AMD has competitive GPUs again, not only does that provide a competitive option with open source drivers, nVidia is now losing market share to them.
OEMs don't really like proprietary drivers. They're a pain. Whenever new driver versions come out, it becomes the OEM's problem to test and distribute them instead of having the Linux kernel team deal with that hassle. The open source drivers also generally have fewer bugs (because anybody can fix them), which leads to fewer support calls and more satisfied customers who make repeat purchases.
And customers naturally prefer hardware with longer hardware support, when it's available.
What we need is more competition for Qualcomm. Google could do that if they wanted to -- throw some money at making competing phone chips. Apple does it, why can't they? And then publish open source drivers and sell the chips to anybody.
We also have AMD as a dark horse now. The Ryzen 4000 series goes down to 10 watts -- it's so power efficient you could squeeze it into an Android tablet as-is (and then be a lot faster than most tablets), and it wouldn't take much on AMD's part to do something that could work in a phone. Android is an open source system with apps that run on the JVM, so the architectural difference shouldn't matter much.
Or we could get the antitrust authorities to stop letting Qualcomm buy every competitor that springs up, which they've been doing for years.
But you solve the competition problem and you get open source drivers. Along with all the other benefits of real competition.
Meanwhile the low end is more sensitive to price than quality, so competition there pushes things towards things cut costs rather than things that improve the experience, or even things that reduce long term costs at the expense of short term costs.
Android apps run on ART, not the JVM (different bytecode, similar idea): https://en.wikipedia.org/wiki/Android_Runtime
Many apps have native code as well, and Intel put a lot of time and money into automatic binary translation some years ago to make such apps work on x86 Android: https://www.anandtech.com/show/5770/lava-xolo-x900-review-th...
AMD might be able to build on that, but it was probably specific to Intel's mobile CPUs of the time (which didn't really succeed), and I don't know what's happened since.
And yet I find this idea total BS.
The reason I could even migrate to Linux when I was a teen was compatibility. It's because free softwares (VLC, Firefox, OOo...) were ported to Windows, a proprietary plateform, so that I could then feel at home later on Linux. And I made a definitive switch thanks to Ubuntu, because it made using most hardware easy, by accepting to use proprietary drivers when required.
Strong arming the industry into Libre never worked. The GPL is one of the least popular licences for this very reason. I, myself, never uses it.
Representing close source as evil doesn't work either.
It's like being vegetarian (which I am) and guilt triping people about meat. It's completly counter productive.
The result we got is that the year of Linux on the desktop never happened, because playing on Linux is hard, because the last cool gadget doesn't work, because you have to carefully chose your laptop to be sure it will work with it (E.G: my XPS 2-in-1 webcam doesn't work on Linux).
It also adds a lot of work to the kernel devs to try to keep up with the outter world, but they have a limited bandwith.
So Linux BT still sucks (even more than regular BT). Wifi is still not on part with the XP on other OS. Batter life is abysmal (I'm dual booting, and the difference is X2).
All for an ideal we never reached anyway.
Help and encouraging for FOSS makes a better world.
Being pushy about it hurts us.
More broadly though: what kind of world do you want to live in? A world where it's easy for companies to create new proprietary software, or a world where it's easy for the users to shape their computing experience?
Look around you, at the consumer devices you own. Can you name one that's: 1) aimed at consumers (i.e. not a dev board, Raspberry Pis and such don't count here) and 2) that you have most or all of the source code to?
Look, if your goal is just "make better software" in general, maybe permissive open source has been a success. But if your goal is to increase practical user freedom, it's been an abject failure. It's just helped companies to make proprietary software more cheaply. And sure, there's some interesting technology that comes out of that for developers, but in the vast majority of cases the users don't see the benefits! Surveillance capitalism marches on, bolstered by the free labor of the community.
This is why I've been so disheartened that parts of the community have turned so anti-copyleft recently. In a world of permissively licensed software, the incentives are stacked against free software for end users. In a world of GPL'd software, you can release your code as GPL too, or you can pay more to write it all yourself.
Of course, but I think you can thank phones, the internet and the economy of scale for that. Not strong arming.
You will always find examples of times where something worked. But each one I can see 10 examples of companies that said "nope" during one of my mission.
> what kind of world do you want to live in? A world where it's easy for companies to create new proprietary software, or a world where it's easy for the users to shape their computing experience?
It's a false dichotomy. It's not us vs them.
There is no them. It's just all us.
> Surveillance capitalism marches on, bolstered by the free labor of the community.
That's a sociological problem, you won't solve that with software. Or licences.
For that you need to get into politics or business.
> This is why I've been so disheartened that parts of the community have turned so anti-copyleft recently.
I haven't see that at all. Open source has never been so popular. Creative common as well.
What I do see is a complexification of software, that requires more and more resources, which the FOSS world has a hard time to keep up with.
What I do see is a mass of people comming to software that don't care at all about those topics, but only about usability, which the FOSS world has a hard time to keep up with.
I'm glad VLC didn't decide that they couldn't read DVD, or OOo read .doc because there were proprietary formats, otherwise they wouldn't have been the popular softwares of today.
Today LibreOffice is replacing MS office in many administrations and schools. The alternative would have been Google doc.
You think making Linux more restrictive would have forced industrials to be more conciliant?
No, they would just have used more proprietary softwares. The entire stack if necessary, and we would never have had Linux on mobile. Instead, we would have had a black box.
The open source mouvement is not "free to everyone to use and modify, except the ones that don't contribute and profit from it".
That would be a very bitter point of reaction, not positive action.
In many contexts I would agree, but not here. Say I buy a device, and people discover later that it has surveillance code in it. Why can I not just remove it myself? Who do I need to talk to? The developer of that proprietary code. That's "them."
>That's a sociological problem, you won't solve that with software. Or licences.
>For that you need to get into politics or business.
There are many different angles you can take to approach a problem. One of which is politics, sure: we could outlaw software that surveils its users without consent. That's one approach. But a technical approach is also valid: if all software were free, do you really think users would just accept big tech companies surveilling them? Don't you think we'd have people removing the tracking code, and telling their friends how to do the same?
And by the way, one of the things we see over and over again from the business world is that incentives matter. No, I don't think all companies would have freed their code if the GPL were prevalent, but if it's significantly easier to make their code free than it is to make it proprietary, certainly more of them would. Just look at the state of Linux drivers on x86: how many of them are free these days, and how many of them are proprietary? There are a few high-profile proprietary drivers, but by and large most of them are free. That's meaningful progress! How many of your drivers are free on Windows?
>I haven't see that at all. Open source has never been so popular. Creative common as well.
"Open source" has had a surge in popularity, sure, but its current popularity has more to do with corporate interests than an interest in user freedom - which, of course, was why the term was coined in the first place. As a percentage of that software, the use of copyleft licenses has declined in recent years.
>I'm glad VLC didn't decide that they couldn't read DVD, or OOo read .doc because there were proprietary formats, otherwise they wouldn't have been the popular softwares of today.
Of course supporting existing proprietary formats for the purposes of drawing users to free software is a good thing! I just don't think we should be contributing to the development of more proprietary software. VLC and LibreOffice are both extremely valuable free software projects. (And by the way, they're both copyleft - OpenOffice isn't, but most development has shifted to LibreOffice these days.)
>The open source mouvement is not "free to everyone to use and modify, except the ones that don't contribute and profit from it".
Of course not! Anyone is free to use and modify any free software, including copyleft software. But I think copyleft is a valuable tool to help us build a software commons.
GPL is the only reason Linux still exits, not for long though, when even Linux Foundation has decided to go with something else for IoT, namely Zephyr, which is neither Linux based, nor under GPL license.
In about 20 years we will be back at shareware and public domain, enjoy what is left while it lasts.
It doesn't matter if Fucschia is a success, Android is already like this, since Project Treble, Linux drivers are "legacy" drivers on Android, all new drivers use a microkernel approach with Android IPC, basically how Fuschia drivers work.
Whatever non-copyleft licenses allow for, it was already available via public domain and shareware like licenses.
Yes, GPL makes is very hard for certain kinds of business models like games or desktop software in general, however when people complain about its existence, most seem to blind to the fact that they only have Linux and GCC because of GPL, and clang wasn't around until 2007.
Had it not been for them, and most likely all commercial UNIXes would still be around.
If I was Linus, I might also avoid raising a stink because the Linux foundation does a few things that need to be done, and the damage it is doing might be less bad than what happens after discrediting it.
Linux is full of security bugs. It is ludicrous to suggest Linux is high quality. OpenBSD, maybe. Not Linux.
Seriously, all software has bugs, how do you judge the quality of an operating system that is not finished?
https://events19.linuxfoundation.org/wp-content/uploads/2017...
https://outflux.net/slides/2019/lss/kspp.pdf
Slides from 2018 and 2019 talks.
I think it is a horrible thing and a reason to deter hardware vendors from supporting Linux at all. Even with the best intentions and open source drivers, it adds maintenance burdons to the hardware manufacturers. And some hardware vendors cannot go open source at all, as they might have licensed other code to implement their drivers or have other valid concerns not to open up their drivers entirely, like for IP protection.
>> This would allow for a much more competitive, and higher quality, software, and hardware ecosystem on mobile platforms.
I have no idea why you think that. Any proof? How would you measure it?
>> It makes it possible to build proprietary drivers
End users do not care about opensource vs closed source, they care about the user experience. Based on your thesis, Linux would be the best operating system with the most market share out there because it features everything you say, yet it has a negligible share on desktop. Empirically proving your thesis being wrong.
Even worse, Fuchsia aims to be BSD License, not GPL. Fuchsia is a complete disaster for hobby OS makers.
In a couple of years the same people will understand why it exists in first place.
I guess they are having fun running FreeBSD on their PS4s, thanks to Sony, hence why they aren't paying attention.
This is an interesting statement given how many relatively unpopular OS concepts it integrates. I am interested in seeing this succeed. I hope that Fuschia helps drive capability-based sandboxing of end-user software.
Application sandboxing from first principles and the very bottom
Like they did to Android with Google Play Services.
[1] https://cla.developers.google.com/about/google-individual
Disclaimer: I'm not a lawyer, this is not legal advice, etc.
I'm not sure what you mean by "you grant a license to Google to use it in non-proprietary code" — was that a typo and did you mean "proprietary"? In any case, Apache/BSD/MIT licensed code can already be used in proprietary code, the CLA does not change that.
The Google ICLA you cited [1] is basically the same as the ASF ICLA [2]; the gist is that you retain copyright of your contributions, you're not giving up your copyright — i.e., it's a copyright license, not a copyright assignment (as some other CLAs are).
And, naturally, anyone can fork it if they wish, or distribute proprietary, non-open-source versions of an Apache/BSD/MIT-licensed project, subject to appropriate attributions, if required, by the relevant licenses.
However, neither you (nor Google) can claim copyright over the entire project, because the copyrights are held by the relevant contributors. Changing the license for the entire project requires agreement from all copyright holders — for example, see what LLVM had to do when they chose to add a clause to their license [3].
[1] https://cla.developers.google.com/about/google-individual
> it's a copyright license, not a copyright assignment
>> So, at some point, once users and developers are locked in, Google can make later versions closed and proprietary enough to stop clones.
> you're welcome to fork it if you wish, or distribute proprietary, non-open-source versions of the code
It sounds like you're agreeing completely with everything the parent said.
> Not really open. If you submit code, you grant a license to Google to use it in non-proprietary code.[1] So, at some point, once users and developers are locked in, Google can make later versions closed and proprietary enough to stop clones.
The CLA does not change anything about the license, and does not prevent or make it possible (or easier) to make proprietary versions of the software (or your contributions) — all those conditions are in the license itself, the CLA does not override or amend any terms of the license.
In other words, you can make the same argument about any Apache, BSD, or MIT software, while the poster is claiming that it's the CLA that enables making future releases proprietary, which is why I pointed out that the Google CLA is the same as the ASF CLA.
If the argument is that Apache/BSD/MIT licenses are "not really open" because they allow incorporating them into proprietary software without releasing code, that's a different argument and is really a distinction between the "permissive" licenses like Apache/BSD/MIT and the "copyleft" licenses like GPL, but again, that has nothing to do with the CLA.
so, basically you submit free labor for the use by for-profit corporations, but you dont get those same freedoms to do so on your own devices, got it
personally, i wouldnt mind so much if users of submitted code were payed "dividends" for ones labor when used in propriatary for-profit services/products, but seing as that is not the case, well, i cannot abide...
The sheer size of the response above, let alone content, is what creates the tone of “talking past the customer” which is what has alienated so many people from Google. The problem I’ve repeatedly experienced in Google open source and as a Google Cloud customer (contract with Google FDEs on-site) is that Googlers just don’t listen. You can’t trample the customer with your own narrative no matter how correct and elegant it is. You can disagree, but you can’t deny the feelings of others. It just doesn’t work that way.
I've added a clarification separately, please take a look there first: https://news.ycombinator.com/item?id=23365469
> The point is that when a non-Googler contributes code, it’s non-proprietary since the non-Googler is by definition a non-Googler.
I think we are using different definitions of "proprietary". I'm using it to mean "non-open-source" [1], and you're using it to mean "employed by a specific company" (or something else); can you please clarify what you mean or rephrase what you're trying to say?
> What the CLA does not prohibit is proprietary use—- your lengthy answer. The OP makes the point that Google will find a way to use public contributions for Google’s own profit.
That's not the purpose of a CLA; that's the purpose of a project's license. That was the point of my post. Anyone can take a project with an Apache/BSD/MIT license (whether or not the project has a CLA, it's orthogonal), make a proprietary product from it, distribute it, sell it, etc. and they would be just fine doing it, without also sharing any of the source.
To put it another way, a CLA cannot restrict proprietary or commercial use of a patch or contribution, if the underlying project license is Apache/BSD/MIT, because all those licenses already allow commercial use, incorporating software into proprietary / closed-source products, etc. Such a CLA would be incompatible with the project's license.
I've never seen an Apache/BSD/MIT project where the CLA (and only the CLA) prohibits commercial / proprietary / closed-source or any other use cases — if you have an example or two, could you please point them out? I'm very curious to see how this would work in practice, because this seems like a strong contradiction, so I would be interested to see how this plays out in practice.
> 2.3 Outbound License
> Based on the grant of rights in Sections 2.1 and 2.2, if We include Your Contribution in a Material, We may license the Contribution under any license, including copyleft, permissive, commercial, or proprietary licenses. [...]
However, please note that my original comment [2] was asking for a CLA which prevents usage in a proprietary setting, while the project is under a permissive license like Apache/BSD/MIT (emphasis added):
> I've never seen an Apache/BSD/MIT project where the CLA (and only the CLA) prohibits commercial / proprietary / closed-source or any other use cases — if you have an example or two, could you please point them out?
It was an example of a case where a CLA could have caused what was imputed by the original comment.
> The OP makes the point that Google will find a way to use public contributions for Google’s own profit.
That's an opinion on motivations, not a statement of fact, so I am not agreeing or disagreeing with that. My comment was only about CLAs and open-source licensing, and what each of them enables you to do (or not) with someone else's source code, and how your contributions may be used by others after you submit them, not a statement or response to their opinion.
> The sheer size of the response above, let alone content, is what creates the tone of “talking past the customer” which is what has alienated so many people from Google. The problem I’ve repeatedly experienced in Google open source and as a Google Cloud customer (contract with Google FDEs on-site) is that Googlers just don’t listen. You can’t trample the customer with your own narrative no matter how correct and elegant it is.
I'm sorry you've had negative experiences in the past, and I'm sorry to read that my response on the distinction between CLA & open-source licenses came across as not listening or talking past the customer — that was not the intent at all.
If you're open to it, I'm happy to chat with you separately (you can easily find me on Twitter or LinkedIn and send me a message) whether you want to discuss this topic, or your other experiences with Google open-source projects, or Google Cloud, and I can try to help, or just listen. If not, that's fine, no worries.
> You can disagree, but you can’t deny the feelings of others. It just doesn’t work that way.
I'm sorry that came across as not listening; my comment was only to clarify the notion of CLAs and how they relate to open-source licenses, without delving into business goals and future roadmaps (which I have no visibility into, nor control of, in this case).
Everyone is entitled to their opinions or feelings on how a company might or might not use open-source software or their motivations for open-sourcing (or not) of a project, and I'm not here to debate, explain or defend any company's decision in that regard. Again, my comment was limited to the scope of what a CLA brings to an open-source license of a project.
That's what I didn't want to say explicitly in my other comment: they made a long-winded comment that appeared to express a negative statement about what the poster said, while technically agreeing. To me, it's a perfect example of a lawyer's yes-that-sounds-like-no.
Edit: glad I didn't say this in the other comment. Shouldn't have jumped to conclusions.
People said the same thing about Android in its early days. It was wrong then, still wrong now, and will likely be just as wrong in the future.
His claim was more along the lines of: Google Play Services has over time subsumed more and more of core functionality, enough to stop the creation of clones.
Which is true.
1. Code submitted by third parties to android 2. was moved into Google Play Services 3. And this was possible only due to the CLA.
This isn't true for a couple of reasons. 2 is unsubstantiated (it's possible this is true, but I don't think it is). Functionality certainly moved, but I don't think there's reason to believe that code was copied.
3 just isn't true. Android is Apache licensed, so code in android can be reused in proprietary code without a CLA. What you can't do is relicense Android without a CLA. Another user mentions that the Fuschia CLA doesn't allow relicensing anyway, but I'm not an expert and don't have knowledge of that.
That's really not true, and not how it worked. Chrome was very late to the mobile game (first released 2012, a year after Android 4.0 / ICS was released) and its first few attempts on Android sucked. It was incredibly slow & laggy when it first finally came to Android.
It's obviously not a good use of resources to make two webkit-based browsers both targeting the same market, but it was a complete swap out from one to the other over a relatively short time-frame. It's not like the mail vs. gmail situation where it was actually two "competing" apps for quite a long while.
Not many people still consider non-copyleft open source licenses not "open" (even the FSF disagrees on the need for copyleft to be considered libre) and MIT, BSD, and Apache 2.0 in particular are widely considered proper open source, so I think you just mean "Not really copyleft", which, sure.
It has always been closed source and can be replaced in any AOSP build. Google has no obligation to provide open sources apps and services on top of AOSP.
That's f'ed up.
People have guessed that Fuchsia is some successor to Android or unification of Chrome OS and Android. However, this statement makes me wonder if it is meant to run their backend hardware and not consumer products.
I can't find anything from Google using both the “Nest” and “Home” bits as part of the same product name, though some third party sites seem to have mixed the old and new names that way.
The official stable APIs are the Java/Kotlin frameworks, NDK native libraries, ISO C and ISO C++ standard libraries.
Exactly to cut down on misbehaviours of developers getting hold of unofficial Linux syscalls or non public .so, Google has started to use LinuxSE and seccomp to lock out such kind of apps.
So any Android application that only uses public APIs will have no trouble migrating to Fuchsia.
https://en.m.wikipedia.org/wiki/File:Diagram_of_Mac_OS_X_arc...
It's important to look at Fuchsia through the lens of what problems it solves in Android/Linux because that tells you a lot.
As we know, receiving updates in Android is, well, a clusterfark. There are two key problems:
1. Phone manufacturers need to write or update drivers essentially with each Android release; and
2. Those drivers are by nature of Linux being a monolithic kernel, written in kernel space. Kernel space code by third-parties is going to be inherently more unstable to your device than if they were written in user space.
So when Google talks about Fuchsia having a stable binary ABI for drivers, they're talking about solving both of these problems (at least as they see them).
So the question I've always had about the justifications for pouring billions of dollars into Fuchsia (I mean that quite literally) is: could this really not have been solved in Linux, even if it's just the limited context of Android?
I'm not a driver or Linux expert by any stretch of the imagination. I'm sure there are people here who are so this is my question to you: could you have created a system for ideally user space drivers with a stable ABI in Linux and avoided all the costs of completely reinventing that wheel?
My other question about Fuchsia is: does Google foresee themselves adopting the same vertically integrated solution that, say, Apple does? It's worth noting that Apple by not providing iOS to third parties is somewhat paradoxically immune to antitrust investigations (I mean really... how does that work?).
Evidence against Google adopting the Apple model is the fact that Fuchsia is open source, which is a curious decision. This seems to imply that Google either wants to maintain an Android-like ecosystem or they simply see it as their only viable option.
I don't know how anyone can expect that Samsung is going to move to Fuchsia. Samsung already chafes under the yoke of their Google dependence with Android. They've tried to get out from under it (ie Tizen) but luckily for Google, Samsung is terrible at software (at anyone with Samsung crapware on their Galaxy can attest; Bixby anyone?).
Maybe Google thinks the insurance of Fuchsia being open source is necessary for third-party adoption to have any chance but still, the only way I see Samsung going along with this is that there's absolutely no other alternative.
[1]: https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_deb...
Linux drivers are considered legacy on Android, all new drivers should follow the Project Treble architecture, which is basically the genesis of how Fuchsia drivers work.
Every driver has their own process and uses Android IPC to talk with the kernel.
The stable ABI is Android HIDL, similar to Fuchsia FIDL, a protocol buffer based IPC for fast communication with the kernel, that also allows for passing references to hardware buffers across processes.
You can read all about it at AOSP web site.
One of the things it explicitly calls out is that Fuchsia is not a microkernel.
It doesn't seem so easy to make a new OS/kernel.
The linux kernel is not perfect, but at least it works well, it's mature, and developers know how to work on it.
I'd say they learned a lot from Android, the use cases and problems arising from supporting such a giant project on so many different devices (and non cooperating vendors). So it's not a surprise they're taking their time. I imagine there must have been a long and in-depth analysis at Google of Android and other operating systems before Fuchsia came to be, considering the money they're going to spending on it.
AFAIK Android was a quick hack and the ecosystem, if you know anything about it, you know it's a mess.
It's not always that appears a new software that is very well thought out and designed. In general things are hacked together and made in somewhat a hurry and it ends up causing a lot of problems afterwards.
It's also not everyone, meaning companies in practice, that could aford time to analyse, design, test and iterate such a software like an operating system and all its needed subsystems for the modern needs...
Did they improve the initial steps to get up and running too?
(I remember it took hours to clone all the subprojects and most of the times something failed along the way, even worse than downloading the Android sources)
And, well "For details, see the Google Developers Site Policies."
And it's still logical of me to criticise the idea on principle.
Regarding supported platforms
"Fuchsia has good support for a few different hardware platforms including the Acer Switch 12, Intel NUC, and Google Pixelbook (not to be confused with the Chromebook Pixel). The install process is not currently compatible with ARM-based targets."
Looks like the 2 laptops can be had used/new for between 660-1k+ while the NUC can be purchased as a bare board with cpu for as little as 290
https://www.intel.com/content/www/us/en/products/boards-kits...
"Fuchsia is designed to let developers bring their own runtime, which means a developer can use a variety of languages or runtimes without needing to change Fuchsia itself"
UNIX has always been the snowflake, and even there, commercial UNIX SKDs are pretty much C, C++ and Fortran, followed by the usual POSIX scripting languages.
To create a good developer experience in OS SDK IDE and platform APIs, there are only so much one can support.
Unless we are doing UNIX ABIs and the best one can hope for are 70's C style bindings.
(Submitted title was 'Fuchsia overview – “Fuchsia is not a science experiment”')
I'd be surprised if any vendor adopts Fuchsia thinking it has anything better than a 10-20% chance of being mainstream.
Today we have Android and iOS as the dominant Mobile phone OSs. Don't forget about all the attempts to dethrone those two by: Symbian, WebOS, Windows phone, Blackberry, Tizen, Ubuntu Touch, kaios, firefox os, PureOS, LiteOS,...etc.
They need to just fix Android.
I write about Flutter in our company blog every now and then. I can confirm, Flutter posts currently receive their all time high impression counts and time retention rates.
Android apps compatibility 'appears' to be being supported via a mix of using Android's ART ported to Fuchsia and hardware assisted virtualisation of the Linux kernel, called 'Machina'.
The sort of transitioning Apple did between PowerPC -> x86 and now to ARM.
Also Google needs to move away from the Java ecosystem thanks to Oracle v. Google. That means dumping Android, which was built on Java entirely. Creating a new OS based on their language would seem to be in their best interests.
Then figure out which random sequence is a good fit for what's happening, as opposed to just looking for it in a random chain.
It really should be noted that this was published in 2005.
I'm an Android developer learning Flutter and Dart out of both curiosity and an gamble that it will likely be a faster-improving way to make cross-platform apps than other approaches (like Kotlin + Swift, or React Native, or the others)
Google projects that get killed are either retail products that gain insufficient traction (for Google) or expensive projects that stall for technical or logistical reasons.
Different marketers?
Oh, wait
This one however will give Google full control of the devices it runs on (no more Linux kernel related obligations), so they have zero incentives to kill it, unless they write something else that does the same things. Google will rather abandon Android a few years after Fuchsia is launched.
Do you have any sort of evidence for this statement or is this pure speculation?
If Fuchsia manages to have audio performance like iOS, then they definitely rearchitected rather than just slapped lipstick on a different pig.
There are several years of Google IO stuff going into this, until you finally reach the talk done together with a Samsung representative and a couple of DJs using the new demo app on stage to prove Android was finally ready for music professionals.
It is just a matter to go down the Google IO archive.