Google is officially releasing Fuchsia OS, starting with a first-gen Nest Hub
9to5google.com
9to5google.com
Today, instead of excitement, I am wondering how this thing is going to push me in some walled garden, how I will be tracked, how my data will be fetched and sold, what will be the trick used to move people away from free Web...
Maybe I am wrong, I hope I am wrong.
What scared me quite a bit was Apple blocking all services when an Apple Card wasn't paid. That leads me to believe that Google could via an algorithm's decision disable a Nest thermostat during winter. I don't see IoT as anything but a risk.
I'm not trying to sway your opinion of Apple, but you should know that Mr. Curtis's Apple ID problem was discovered to be unrelated. Apple doen't disable Apple ID services because of missed Apple Card payments.
https://9to5mac.com/2021/03/03/apple-card-apple-id-unrelated...
Or imagine, they can ban your because of speech their don't like i.e political opinions
"Alexa, turn on Living Room."
"I'm sorry, I'm having trouble understanding now."
I mean, yeah, I can toggle the light switch to get it to turn on, but then it gets screwed up and I need to go into the app to reset it when the internet comes back on.
I don't even want to think about a smart thermostat. My dumb thermostat from 10 years ago let's me set timers which is all I really need.
"Smart" devices should, wherever possible, function as dumb devices if for whatever reason they can't be smart. There are a whole lot of devices that simply become bricks.
For practically anything that involves using code words to tell the computer what to do there are better input methods, like physical switches, or purely automated.
This is slightly off-topic, but in your opinion what are some of the reasons people prefer to use voice input with code words over the other options ?
When the light is off, the switch is invisible and you have to guess at where it is, or where you need to be walking (hitting your shins on things, or stepping on lego)
Using a non-light based interface means it works just as well when the light is on and off, vs being a broken experience for half of the usecases
Another point, the cognitive load of speaking a command is different than pecking through menus on a phone or finding the right button on the remote/device. It may be easier to just speak out load depending on your state if mind.
This would definitely be a problem in cold climates where a dead furnace could lead to frozen and burst pipes.
No need for an internet connection or mega corp data collections.
> No machine learning needed
Now this reminded me of the windows 10 update announcement proudly declaring that they were going to start using ‘machine learning’ to figure out if you were using your computer to minimise the disruption from their automatic updating. I’m still baffled by it. Why not solve the actual problem at hand - updates being really slow, risky/buggy, settings altering, and very disruptive even when scheduled, and users not having enough control over updating? I’m pretty sure ‘machine learning’ isn’t needed to determine whether a computer is being used.
And they're fully offline, the router has an API I can control them from (HomeAssistant instantly picked up both thermostats and lets me control them), pretty much everything I want.
AVM's smarthome story is miles ahead of Google/Apple/etc. Same for IKEA's smarthome stuff. If you need offline capable things, use those.
I just read yesterday that Home Assistant is now automatically included in Raspian (Raspberry Pi targeted OS). I run my home and shop automation on Pi's but ultimately a NUC is probably a better long term solution.
It sounds like endless minor annoyances and aggravation more than anything.
If done right, though, the system just degrades gracefully to a normal set of switches.
I'm in a rental, so instead of smart switches I just use smart bulbs. For like <$10/bulb, I've got full RGB/colour temperature adjustable.
Most are configured so turning them on turns them on full brightness and pleasantly warm. The one in the bedroom and the baby's room are configured to turn on dim and warm, and if you do another quick off-on flick of the switch they'll come on at full brightness.
So they... work like normal light bulbs. Except they're all remote controllable from your phone. So if the baby falls asleep on top of you and the light's on you can turn it off without getting up and waking her up.
From there, I added some basic z-wave sensors in a few spots in the house. If you get up in the middle of the night to use the bathroom, as soon as you step in the hall the motion sensor picks up that (1) someone is moving in the hallway and (2) the hallway is currently really dark; and it turns the hall light on a really dim red. Enough you can see where you're going without killing your night vision. Then a minute after it stops sensing motion it turns off.
If you walk into the one end of the basement where the washer/dryer/workshop/storage/etc are, all of the lights will come on for you, and a couple minutes after it stops sensing motion they all turn back off. If you want them to stay on you can just flip the switch off-on to turn them all on and keep them on. So now if you just wander over to let the dog out, grab a tool from the shop, throw a load of laundry in, etc, the lights are just automatic. No need to try and balance a laundry basket while you screw around with light switches.
The room my office is in does the same thing except uses my computer's lock state for presence detection. So when I walk in the lights come on, when my computer unlocks it keeps them on. When I lock my computer it goes back to the regular program. At any point I can pull my phone out and flip them over to the super bright, super harsh light when I need it for doing fine work instead of working at my computer.
Just a lot of little, basic conveniences. And it's amazing how futuristic it feels to just wander around the house and have lights turn on and off for you as you do.
It all runs locally in a VM on my server, with all the smart devices entirely isolated from the internet. If the internet's out... nothing changes. If my server/WAP/whatever dies, then my house just goes back to working like a normal house.
That doesn't sound right. All the Zigbee/Z-Wave switches I use maintain proper state through HA, even if they lose connectivity for a period of time.
Since Chrome came along, the 'Web' became less free from the start and the moment Google forked WebKit (called Blink) to use it in their own browser, it has turned the web more into a walled garden each time apps use specific Chrome features and it is getting worse. Even in that early decade, we knew about how Google and others were tracking us since the PRISM program leaks.
Later DRM was added with reasons and votes unknown, devs have to keep telling users to switch from any other browser to Chrome to use their apps and now this forked engine is in tons of Electron apps with Microsoft jumping in and using it in their Edge browser. The time to complain was 10 years ago and now it is almost too late.
Now Google is doing it again with Fuchsia which will eventually replace ChromeOS and Android. Fuchsia is highly dependent on Flutter and those apps will run on Fuchsia devices on day 1. There is an extremely low chance of that being abandoned so I'm afraid it will continue.
When Chrome came along, the dominant browser was Internet Explorer 7. It had been out for two years when Chrome 1.0 was released. Before IE7, the world ran IE6 for five years. Web development was largely stagnant. That was the world that Chrome came into.
Before DRM support was added to browsers, you needed to install plugins to watch protected content. Despite what detractors might think, the content producers were never going to go YOLO and release their content without any protection. There are a lot of us that are happy that we can watch Netflix, Prime or whatever in our browsers.
That a ton of desktop apps use Electron is an indictment of the state of native toolkit. Saying that Fuchsia is highly dependent on Flutter is like saying Linux is highly dependent on GTK. With that said, maybe your crystal ball on the future of Fuchsia isn't so clear.
The alternatives have no chance in doing anything about it. Firefox is entirely dependent on Google for funding (and has been for years), Microsoft recently switched to Chromium for Edge and Safari is again years behind (Just like IE.). There are only really two competitors here. (Apple and Google once again!)
So let's sit back and just watch Google continuously adding more superfluous features into the Web like Web(USB, Bluetooth, NFC, etc) and the web-devs will force you to use Chrome again (which indirectly helps Electron apps); leaving the rest of the non-Chromium browsers in the dust.
> Saying that Fuchsia is highly dependent on Flutter is like saying Linux is highly dependent on GTK.
False equivalence.
You're the one that just compared a kernel with full operating system. Oh dear. I'm definitely sure that the device in the article is running Flutter right now.
> With that said, maybe your crystal ball on the future of Fuchsia isn't so clear.
Given that Fuchsia also has the intention of running unmodified Android apps as well, my crystal ball could not be any more clearer of its future. Perhaps you getting confused on your last sentence was an indication that your crystal ball has just malfunctioned.
There's a massive difference. Back then you had a single company that kinda-sorta didn't care about the web. They already had an application platform they were happy with. There wasn't really an incentive for them to evolve it once they had the dominant position. The web was stagnating for years.
Nowadays we actually have multiple players that are very active in the development of the web. The situation is not at all comparable.
> So let's sit back and just watch Google continuously adding more superfluous features into the Web like Web(USB, Bluetooth, NFC, etc) and the web-devs will force you to use Chrome again
Superfluous to you. If developers are using it, then it's obviously filling some need. What do you say to developers who are asking for those features? "Sorry, that's not compatible with my idea of what the web is. Go write a {Windows,Linux,MacOs} application and tell your users to download it".
It always comes back to this. People want progress in the areas they care about, but no progress in other areas.
Firefox is getting irrelevant and the latest news show their focus isn't surely in turning the tide, UI revamp, really?
The issue is how long google keeps up "perpetual".
I wonder how much of it is driven to supplant Linux's "viral" GPL-ness
I assume things will only get worse now.
(Disclaimer: I work on Fuchsia at Google.)
Android "open sourced" as well, but literally nobody runs AOSP, stock OSS apps are staled for years, Google makes a lot to make system barely usable without proprietary parts from Google Services.
What I really meant to say, though, is that Fuchsia is taking an approach to inclusiveness and open source which is much more similar to the one of Chromium than Android. You may find out more on https://fuchsia.dev/fuchsia-src/concepts/principles/inclusiv...
As for bootloader locking, Google releases some Android devices with unlockable bootloaders. Can we expect the same of Fuchsia devices?
Fuchsia is built with a minimal core (sometimes called a microkernel) and many user-space services interacting with each other over an IPC protocol (called FIDL). The open-source part of Fuchsia, available on fuchsia.dev, is a standalone system which you can build and run on supported architectures. It contains all the services required to start a user interface, interact with the network, etc. Currently, the main supported hardware architecture for people wanting to build their own version of Fuchsia is the Intel NUC: https://fuchsia.dev/fuchsia-src/development/hardware/intel_n....
For a retail devices, such as the Nest Hub, vendors can build a custom system with additional or different services from what is found in the open-source release. Thanks to stability of the FIDL interfaces, those closed-source services do not prevent the core system from being updated. For more information on services and packages, you can read https://fuchsia.dev/fuchsia-src/concepts/software_model and the pages linked from it.
Some of those services are drivers; others may be in charge of communicating with Google Services or customizing the UI; and not all of them are necessarily open-source. So if you wanted to build your own version of Fuchsia for a Nest Hub, you'd need to replace the closed-source components. As far as the Nest Hub is concerned, I'm not sure what the exact status is. I believe a significant part of the drivers have been developed in the open (which is how 9to5google was able to guess in the past that we would be targeting this platform), but take this with a grain of salt, I didn't work on drivers. The part that interacts with Google Services is closed source. I'm not sure this is much different from the situation with Android: not all drivers or UI used on Android devices are open source, are they?
Finally, as you note, the bootloader can be locked on retail devices, preventing you from reflashing the system with your own build unless it is signed by an authorized key (mostly for security reasons, as far as I understand it). This is a product decision that is not related to Fuchsia itself, it depends on each manufacturer. I don't think it has ever been supported to reflash a Nest Hub, and the migration to Fuchsia shouldn't change that.
> For a retail devices, such as the Nest Hub, vendors can build a custom system with additional or different services from what is found in the open-source release. Thanks to stability of the FIDL interfaces, those closed-source services do not prevent the core system from being updated.
This is helpful so long as the interface does not change; do you anticipate ever having to change it or do you think it's pretty final at this point?
Regarding drivers, it's interesting that they're userspace services interacting with the rest of the system via IPC. Are there any sort of security guarantees to protect against malicious services? (Obviously a proprietary driver could do its job incorrectly, but if they can't otherwise mess with other parts of the system that's helpful.) EDIT: I suspect that as it's a capability-based system, there is a decent amount of isolation between drivers and the rest of the system, but I just want to be sure.
> I'm not sure this is much different from the situation with Android: not all drivers or UI used on Android devices are open source, are they?
Regarding Android drivers: my understanding is they sometimes do have proprietary userspace components. Any kernel-side components are necessarily FOSS however, as they are derivative of the Linux kernel and therefore GPL. (This doesn't mean that they're always easy to use though, as manufacturers seldom upstream them and the Linux kernel is a huge project.)
On the Android UI, you're correct; most often the UI on an Android phone is not FOSS. I suspect this is because, as that part of Android is permissively licensed, the device vendors don't have to release it. So they don't.
I've had mixed feelings with Fuchsia from a licensing perspective for that reason. On one hand, having a stable interface might make it easier to deal with proprietary drivers, provided that interface is locked in amber and never changes. On the other hand, Fuchsia's permissive licensing makes it more likely that manufacturers will make all their drivers proprietary, because they clearly do whenever they can. (At least the ARM vendors do; the x86 vendors seem to be a lot more open to working in public.)
Fuchsia has no GPL so it's unlikely any of the driver source will be available to you.
The open-source repository already contains over 50 directories named `drivers`: https://cs.opensource.google/search?q=f:drivers%2F$&sq=&ss=f...
Hm. I think it is about bootloaders that can be unlocked.
Even as a native speaker, it can get awkward explaining 'unlockable bootloaders' because the impliction is that they're first locked if they can be later unlocked... when there are also locked bootloaders that CANNOT be unlocked.
It's better to just assume 'unlockable' means 'not restricted.'
- https://fuchsia.dev/fuchsia-src/contribute/roadmap/2021/work...
- https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0...
And as mentioned elsewhere, you can already build Fuchsia for an Intel NUC, with keyboard, mouse, ethernet and external screen support: https://fuchsia.dev/fuchsia-src/development/hardware/intel_n...
Are you regularly reviewing code submitted by your colleages at Samsung?
The fact that you're confused by the concept of working with people outside your company doesn't bode well for the open-sourceness of this project.
https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGoo...
This PSA is proudly brought you by Google's Bureau of Prop... ehrm Truth.
*: independence neither implies nor contains freedom.
RTOS, Azure RTOS, mbed, NuXX, Zephyr
For sure it isn't a coincidence.
And most of the systems you listed aren't even aiming for POSIX-compatibility.
Can you please clarify what your intent was by using the word "clones"?
There's no need to wonder. Fuchsia's been designed to do all those things and more.
https://beebom.com/what-fuchsia-os/
Starting with a modular design that caters to device manufacturers that allows them to provide only part of the operating system. The days of devices with full os's are coming to an end.
Cloud based constant device syncing between all devices
>Dependency on Web Apps
Google and device manufacturers will have full control over the microkernel and bootloader
Honestly, I'm not excited at all. I've been dreading fuchsia since it was first announced. Everything about the os is designed around google having complete control over the os itself and everything on your device.
Eventually you'll be able to buy Google devices that run Android, Google devices that run ChromeOS, and Google devices that run Fuchsia. It will be confusing, but that's fine, because it will all work great as long as you stick to Google's cloud-based services, which is what really matters.
Directly or indirectly, OS fragmentation actually helps Google's business model.
When their control your email (GMail), business infrastructure (Google Business Apps / Servers etc.), Google Play (matters if you're a developer)... basically your entire digital existence.
I really hope we add more regulations to protect people online. While it's not clear for everyone, your digital existence is an essential part of being part of the society.
I've been worried about it since they announced it which feels like it was 10 years ago.
There is however a huge issue of being locked-in to only officially-sanctioned OS versions, and I fully expect Google to try and completely replace everything that is still open in Android with proprietary replacements, making the Fuchsia-based phone OS the only accepted version.
As an example of the lock-in, the primary mobile payments app where I live has the following list of requirements/restrictions:
- Android or iOS only (there is no PWA or other web-based version)
- Minimum version is currently Android 6.0 or iOS 11
- Device must not be jailbroken or rooted
- Device must not run a non-official ROM, such as LineageOS
The use of this app is pervasive in society here, if you buy/sell anything second-hand, people will expect you to use it and will be surprised, annoyed, and/or suspicious if you prefer to use cash instead.And this is by far not the only app with these restrictions. Banking apps, streaming services, there are a large number of apps with these restrictions, all under the guise of security concerns. Thankfully most of them have web-based versions or alternatives, but it can present enough of a hurdle that even tech-savvy people either will not or cannot use anything but a recent Android or iOS device.
Almost as bad are websites that would work perfectly well in a mobile browser, but practice "soft" lock-in by condescendingly pointing you towards the official Play Store/App Store if you try to load the site in a mobile browser. Facebook Messenger is a huge and obvious offender here, there is nothing about instant messaging that wouldn't work perfectly well in a browser, after all the desktop version at messenger.com works just fine.
But yes, the license would allow Google to close the system down whenever they want. Still curious to know how Fuchsia would be a better choice for a system.
Nest seems to be powered by Fuchsia...
Like cell phones. Wow, over a decade of them and if you had one 15 years ago you were considered a early adapter, and 20 years ago you were way ahead the curve. If you had one in the 90's, wow.
Still, mobile computer in your pocket, wow.
it really bothers me, you know?
we've got so much storage and so many/good sensors, yet the software kinda pushes you to use the device for watching dumb videos and/or to argue worthlessly with other random people, so that you can get served ads in the meantime.
- Calculator
- Bill-paying device
- Flashlight (soooooo much use as a flashlight)
- Thermostat adjuster ("smart" thermostats saved us running a wire for a second-floor zone, so, whatever, we've got them, they're OK)
- Level
- Document scanner
- Note taking/reading device
- Timer (kitchen; any board or party game that has an hourglass that you've misplaced)
- iPod-alike for the car (replaces burned CDs)
- Alarm clock
- Takeout/delivery orderer
- Check depositing device
- Shopping list displayer
- Navigation aid
- Taxi hailer
- Probably other stuff I'm forgetting
I don't think I'm even particularly "in to" using it as much as some people do—I can't bring myself to trust Apple Pay to work, so it doesn't replace my wallet and in fact I think I've only used that feature once ever; I don't really game on it; I read on an e-ink reader or on a huge iPad, not my phone; I don't do any "smart home" stuff aside from the thermostat; my use of Siri is limited to setting reminders and alarms, and putting addresses into navigation to save having to type them; in about a decade of smartphone ownership I think I can count the movies or episodes of something that I've watched on my phone on one hand; I don't do workout tracking or any of that sort of thing.
[EDIT] oh, right, camera, obviously. It replaces the family camera and camcorder of my youth, completely.
Only in terms of storage and 'hive mind' spam detection. The UI was pretty shitty, and not much better than Hotmail.
UI performance was great due to early use of ajax. If you had bad connection, which was extremely common in 2000's, then it worked way better than any alternative.
Of course, now it's the other way around, static websites are fast and SPAs can be dogshit slow.
it's immensely fast when compared to modern crapware-gmail.
and btw I remember hotmail too... the nicest thing was that you didn't have to refresh the whole page, e-mails just appeared (ajax probably).
and the conversation view, that was really innovative. i mean, mail clients had been doing threading for like forever, but wemail mostly didn't.
It does 'grouping' at maximum. Try reading a mailinglist in the gmail webinterface. A reply on a reply should be indented one level, not being shown at the same level as the mail it replies to.
That was an example where a simple change in a number turned into a qualitatively different service.
It's still my preferred method of dealing with email to this day. I never want to deal with POP/SMTP local client email ever again.
Is there a social justice forum I can visit where I may be able to have a technical discussion about Fuchsia?
But as for the microkernel approach, I think the advantages are on the table, but they are theoretical. Until now, no OS with a micro architecture was successful at getting significant market share.
What would your requirements at an OS like this be? For me, it would be extensibility and the minimalist approach.
Don't know the implementation details, but it sounds a lot like a time when people loved OOP too much, or later disliked it just as much.
QNX, Switch OS, INTEGRITY OS, L4.
To a certain extent, all Android OS services after Project Treble.
I might try it for embedded devices some day.
OS X and Windows are much better in this regard than GNU/Linux/BSDs with their ongoing efforts to move all drivers to userspace, even though they will never be fully pure microkernels when done with it.
Other than improved security that may also be protected by a hypervisor, you might still gain more stability when pushing drivers to user mode. Or your hypervisor has a bug and allows a guest to gain privileged kernel access. Not a security expert, so this is mainly guess work.
Not sure in what sense you mean this. Minix may be the most common OS on the planet. Intel embedded it in an quite a number of its products.
Some things that Fuchsia was able to do thanks to starting from scratch:
- The system is based on capabilities, a security model which is based on explicit tracking of permissions. It wouldn't be possible to change Linux to be capability-based because the ambiant-authority model has been used pervasively since it was conceived 30 years ago.
- Fuchsia provides a stable binary interface (like Windows, but unlike Linux). This lets you update your system while keeping some components unchanged, eg. binary drivers from a hardware manufacturer that wouldn't provide updates for them anymore. I think Linux could technically change this, but they have historically been unwilling to, and it is unlikely to change in the future.
Linux tried different things to reload dynamically the drivers & core stuff, without rebooting the computer, but I always had diverse issues after some hours...
Thanks for the link + info :)
Linux does provide a stable binary interface, to userspace.
> eg. binary drivers from a hardware manufacturer that wouldn't provide updates for them anymore
That can be seen as much as a downside as an upside, because it makes life a lot easier for hardware manufacturers to ship more binary blobs
Which is essentially the point of this approach for Google, to exert greater control.
Does it?
Fuchsia is a brand new OS, at least from the perspective of the world. One reason my interest in it died quite early on, despite being an aficionado of new operating system designs my entire life, was finding stuff like this in the docs:
https://fuchsia.dev/fuchsia-src/development/components/v2/mi...
It's brand new and there are already migration guides for core parts of the design. Also:
https://fuchsia.dev/s/results?q=deprecated
That's a lot of deprecated stuff for a project that started with a blank slate.
But now with the official release - I do expect some stability.
https://fuchsia.dev/fuchsia-src/contribute/community/get-inv...
Firstly, there is little technical discussion of Fuchsia here because there's actually very little to discuss. Fuchsia is, design wise, a pretty ordinary operating system differentiated from Linux mostly by using a microkernel. If you've ever looked at SEL4 then you've got the gist of what's going on here. I'm not aware of any obvious ways Zircon differs from any other microkernel design. Like all such systems it has an inter-component RPC layer (called FIDL) which if you've ever used the Android Binder will look familiar. And it's got a component system. In some ways these upper layers are reminiscent of COM and the whole OS has a bit of a Windows NT 3.1 architectural vibe. That's about all there is to say on the matter.
Fuschia is an oddly unambitious platform. Here's a representative quote from the docs:
"There is no concept of inter-package dependencies because transitive dependency closures have unbounded resolution time"
This statement is technically correct but practically incorrect: when users complain about dependency resolving package managers, they are complaining about out of date packages, broken dependency graphs, centralized repositories and other things. The fact that dependency resolution can be NP-complete in artificially constructed worst case scenarios never comes up because in the real world, dependency resolution takes a few seconds and the problems surface elsewhere. But they found an excuse to avoid doing anything hard or new in the world of software distribution, so they took it.
Elsewhere people promote its ABI stability compared to Linux. Maybe, but this is Google we're talking about. Constantly obsoleting stuff is literally built into their incentive structures, so we should double check that right?
https://fuchsia.dev/s/results?q=deprecated
120 results for deprecated already! Nobody even uses this OS yet and they already changed their mind about APIs all over the place.
The same lack of ambition is visible if we look at the Architectural Principles section of their site. Their principles are: "Secure, Updatable, Inclusive, Pragmatic". That's it. "Secure because capabilities" is a very old discussion with not much to add, and the rest is vague or just not that interesting.
Those principles brings us to the final reason the HN discussion is so lacking in technical depth.
The OP complains that the discussion here is all about politics and wonders in jest if there's a social justice forum where they might find technical discussion of the project. Amusingly the OP's wish is easily satisfied by the Fuschia website itself. Fuschia is by far and away the most ideologically biased operating system project you will have ever had the misfortune to encounter. It is something the world has never seen before, an entire operating system controlled by the hard left. Every single page in the docs has a giant banner across the top saying "Google is committed to advancing racial equity for Black communities". Note the demand for equity, not equal opportunity. Classical liberalism is dead here, tokenism is in. Of only 4 so-called architectural principles one of them is "Inclusive". They make a brave effort to pretend this is actually about technology by claiming that being just a microkernel+RPC is inclusive because they don't provide any language runtimes for the users (i.e. spinning missing features as a form of moral purity). Then it all falls apart and they go back to talking reducing harm and bias via language control - another tenet of hard left thinking.
So let's imagine we're looking for something better, fresher, bolder than Linux, macOS or Windows. We look at Fuschia. What we see is an extremely conservative OS design in which the most modern ideas in it pre-date Linux itself. We see an overwhelmingly political project, run by a company that has in the last year been systematically erasing from its platform crazy wack-jobs like, er, doctors and professors simply because they disagreed with the WHO. And we see that there's no discussion, anywhere, of any features that end users might actually care about.
That's why there's no discussion of technology in this thread.
I really wonder what caused this kind of ideological entitlement. Was it a company culture that never said "no"? Was it the constant talk of how Googlers are just smarter and more brilliant than everyone else? Genuinely curious.
What is someone to think when every time their work is presented publicly the comments are all completed unrelated to what was presented? You too would conclude that group is unlikely to present meaningful feedback or thoughts.
(I have never, and will never, work for google).
In general it is, but I too have noticed this trend more specifically in Google-related threads. Most other subjects don't suffer from this as much, but almost every Google one devolves into jokes about when X will be canceled.
Google offers things with the left hand while slapping you with the right and you seem surprised that people only want to talk about the slapping.
I wonder where Fuchsia will be in 5-10 years. Will it thrive? If so, in what space will it thrive?
When a new component is added to the critical path, its vital to ask “What happens if my account gets flagged? How much of my life can Google shut down with a single bit flip?”
You cannot separate a work from the context in which it operates.
Why not try?
This thread is about Fuchsia OS - so you're separating your statement from the context in which it operates?
Things are made by people and each individual person has their own background, circumstances and ideas. The culture of Bell Labs abetted (but did not cause) Unix and the sharing of source code. The lack of pressure to generate profit within Bell allowed Unix to use an unusual licensing model, which led to it being widely available in universities.
Context does not totalize - it allows and directs. Google has a business plan and a culture that promotes some things and prevents others. It's not a conspiracy - they're quite public about most of it. There are things that are possible at Google that are less possible elsewhere. We can, as participants and observers in culture, speculate about what is more possible and less possible in a Google OS project. To not do so would be blindfolding ourselves.
If you want to talk about something "outside" of its cultural context (if such a thing is possible), you certainly can - but will your conversation partners set the same things outside the context? Better to be explicit than blindly implicit imo.
That's what I have going in my mind and it's going to color any of my opinions on it, no matter how how objective I try to be.
So I think It's important to discuss this openly, so we know where we are at.
Looks like there is a growing minority of tech people who distrust Google and I am among them.
There's a reason the ACM code of ethics has "everyone is a stakeholder" and "avoid harm" as the top two overriding principles.
I can understand arguments about keeping political issues unrelated to your work and working relationships out but you this isn't that.
Writing code to build Fuchsia OS does not involve great violations of morality and ethics that call out for something like the 'Nuremberg defense'.
>I can understand arguments about keeping political issues unrelated to your work and working relationships out but you this isn't that.
Where's the dividing line? Wasn't it Basecamp that had a large portion of their workforce quit because they couldn't be activists at work? Was that them mitigating the 'Nuremberg defense'? What about the recent issue with a principle of an elementary schools calling on parents to boycott Israel [1].
There are very few jobs in modern America that have these great ethical dilemmas. There are, however, plenty of people that are willing to engage in hyperbole and politicize every space they can. That's a much bigger problem.
[1]https://nypost.com/2021/05/24/nyc-principal-apologizes-for-a...
Respectfully, while I don't think that Fuchsia warrants invoking the Nuremberg, I do think that it is highly likely to enable violations of morality and ethics down the line. The way I see Fuchsia, it's basically an effort to undermine the Linux kernel and switch it out for something with an MIT-style license. I see this as objectively immoral.
Linux is the de-facto open source kernel for the majority of people, and the fact that the open source kernel uses GPL (which strongly prefers end user freedoms) is one of the few things that holds the tide of privacy violations, user disempowerment and proprietary tech capture of our infrastructure, institutions and societal conventions. A world without a strong GPL base is a morass that drags down useful developments.
Quite frankly, I see no reason for Fuchsia to exist, and plenty of reasons why it shouldn't exist (not least because Google is in control). It should be boycotted. The society will be better off for it, though it may make a few billionaires cry.
You’re right, writing an OS for Google isn’t some world shaking ethical conundrum and it certainly wouldn’t be enough to turn down a FAANG salary and the experience for. But that doesn’t mean that the company’s corporate strategy for the product (i.e. the entire reason the project is funded) is suddenly irrelevant and you can wash your hands of it. If the business reason for pushing this OS is so that Google can have a desktop OS with lock-in to their services and have data collection at the deepest level like they do with Android then that doesn’t meet the bar for avoiding harm and that as engineers we ought to be empowered to push back or outright say no to to buildings things that hurt our users.
Nothing about this has anything to do with Israel or Pizzagate, or Black Lives Matter. Politics encompasses far far more than the things you see on CNN. I’m not saying that people should be advocating for random political causes they care about in the workplace. I’m saying that people should be able to act politically for things that are literally their work.
* Pushing for accessibility features being a requirement to ship is political.
* Pushing for telemetry to be anonymized is political.
* Pushing for ML datasets to include people with dark skin so they actually work is political.
* Pushing for data collection being opt-in is political.
* Refusing to build a product that interferes with EMT radio frequencies is political.
there's dont be evil
While I am not Google-free at the moment, especially email, I have long ago learned to avoid trusting any Google product to stay stable, or even available.
And that doesn't even scratch the surface of the decades of "everything we do is tuned to collect as much data as we can steal without getting caught, and using it to our benefit in any way we can hide from you, our users."
Cynicism is pretty much the norm now, and is going to color everything Google does forever.
I'm sure there are forums and github sites with actual technical details, but that's only a fraction of what gets traded here. YMMV.
Congrats to the team and looking forward to seeing it work as intended!
I had a brief look at the setup information and there’s nothing that makes it clear why there’s yet another piece of highly Google-specific (though presumably open source) software that people would need to learn to use while they learn about Fuschia.
Today this configuration offers Vulkan support, which will hopefully make it's way back to QEMU eventually.
We use both QEMU and FEMU in our work, if you checkout Fuchsia you will find prebuilts of both in //prebuilt. QEMU provides broader control over hardware and broader emulation features, often useful to the kernel and driver teams. FEMU provides Vulkan graphics, more useful for teams working on GUI applications.
If you want promote Fuschia as a useful, general purpose computing platform (and not just an attempt for Google to avoid the GPL), you probably want to work upstream with existing projects to improve support generally instead of creating your own suite of forks.
The additional feature that FEMU provides us is Vulkan support, which allows you to interact with a GUI.
On the team, we use both. For example, I know many folks on the Zircon team prefer vanilla QEMU.
As Fuchsia is highly dependent on Flutter and the whole ecosystem will be able to run Flutter apps on day 1, I would bet that this is going to be the Android replacement in this decade.
I understand peoples concern about a walled garden situation here, but I'd argue to only become worried if Fuchsia suddenly stopped being committed to openly and someone needed to maintain a fork. The working code for both the microkernel and the OS is all open source.
This could help adoption instead of yet another GUI framework to learn from scratch.
https://cs.opensource.google/fuchsia/fuchsia/+/main:scripts/...
AKA learned experience
It even self-updates, so in some sense it's already ahead of the standard linux distributions!
I read this as "prototype".
And they did all the "from scratch" work. It would be short sighted to not let zircon at least have the potential to replace Linux.
Apple vertical integration strategy recently took a big step forward and googles response may well be this.
We should judge on what has been finished rather than what has been started. After people start to work with it, that's when the real costs will start to be incurred.
Apple are an interesting case in that they have done this very very gradually over many many years - building on top of existing tried and tested platforms where possible.
Google seem to be dominant in android/mobile despite their crappy OS. Whether they're threatened or not, this does need to be improved. This may or may not be due to Linux - to me it seems to be more the case that it's again their failure to stick to things that's the most frustrating aspect of using Android - but maybe using Linux means they spend more development time doing that than dealing with features. Perhaps they're just trying to emulate Apple's strategy alá cargo cult.
Dart? A half-baked language with quite a lot of unexpected gotchas that can cause you to lose days trying to find why something isn't working (only to notice a lib author forgot to add a return for one branch of the code, or the code works differently depending on what runtime it's on).
The Flutter ecosystem is constantly breaking, the plugin system was broken for at least a year and "in migration" where most of the stuff you do is either "broken for future" or "is going to be broken in future". Dependencies are in a circular hell where updating one thing might make you update the whole project, but then your project might not be compatible with the current Flutter version so you'll have to nuke your directories and call 'flutter create' again in the project so it recreates stuff with the new templates.
Also don't get me started on issues. Had a crash span for over 6+ months on all devices with low-budget Adreno GPU-s, most of the issues were "closed automatically" because of inactivity or because they declared it does not follow the template google requires for the issue, altho there is dozens of them reported, they held a hotfix for months on end in a branch with other changes because it was " a lot of work" to merge it downstream. Had a talk with the Flutter team about reconnecting to isolates on one conf, one dev's answer was "oh yea that's problematic, maybe just the best is for the user to restart the app".
It's classic Google behaviour wrapped in a "new cool thing" package.
Flutter is a great thing if you wanna build a cheap app fast and never worry with maintaining it ever again. If you're going for something long-term, avoid it like plague.
[1] https://arstechnica.com/gadgets/2021/05/google-launches-its-...
On the other hand, Google has never seemed particularly shy about starting something new rather than work on something old. I'm thinking of their messaging systems that they start every couple of years.
Also, the branding isn't great. The top image in the linked story immediately makes me think this has something to do with T-Mobile.
Also its not GPL, so we will see actual binary drivers instead of GPL <> proprietary shims in Linux that need to be recompiled on kernel upgrade.
So it solves a lot of problems for Google and can replace Android/Chrome OS/Cast OS.
That could be prevented by hardware manufacturers manning up and releasing their source code in full. If the community cared about that hardware, it'd eventually get upstreamed into the kernel, or at least actively maintained as a patchset.
Fuschsia, being a micro kernel, puts each functional unit (device driver, network protocol driver, file system, crypto functions, yada yada) into its own isolated process, so the damage a rogue function unit can do is more limited. Interaction between functional units must happen via the Fuschsia kernel (they can't talk directly), and surprise surprise Fuschsia heavily polices those interactions using the "capabilities" provided by the kernel. Capabilities are are very similar to user assigned permissions.
That seems obvious and attractive, but keeping those processes isolated and policing those permissions incurs a overhead, or perhaps more accurately the cost of communication between two isolated processes is much higher than non-isolated (think processes communicating with pipes vs memory sharing threads). In Linux that overhead is still visible as the syscall overhead, which is large enough that high performance applications go out of their way to avoid it. io_uring is another attempt to avoid it. Microkernels multiplies that overhead by many times. Possibly worse, that overhead is getting worse with the advent of spectre like cache timing attacks forcing cache's to be invalidated on a context switch.
In my very brief look at Fuschsia is looked refreshingly clean, small and well thought out. But then all many projects do. Sadly it started like as a C++ code that is now moving towards (as in is now 50%) Rust. To be true to it's safety goals it should all be Rust. And it doesn't seem to bring much new stuff to the table. seL4 has been in the same space for the same reasons for years how. So I don't see how Fuschsia's introduction will change the basic equation that's lead to the dominance of monolithic kernels.
What both seL4 and Fuschsia both desperately need is some magical hardware solution to "isolated process communication" overhead, one that also addresses spectre. Mind you, if a way to isolate code with bugger all overhead came along, it's so attractive I suspect they would be in a race with the existing monolithic kernels to exploit it.
Taken to its extremes (which Google has been moving Android towards), unfortunately it also breaks a number of existing workflows.
If you follow the documentation, any multi-file formats (HTML documents with their assorted resources – JS/CSS/images/links to other HTML files/..., playlists, videos with externally stored subtitles, multi-part archives, ...) are broken on recent Android versions if you need to handle them in an external app, e.g. if you're writing a file explorer which then naturally needs to call out to other installed apps for actually opening those files.
───────────────────────────────────────────────────────────────────────────────
Language Files Lines Blanks Comments Code Complexity
───────────────────────────────────────────────────────────────────────────────
Rust 10640 3126941 295777 480090 2351074 125641
C++ 8744 2025857 318786 180185 1526886 174494
C Header 7293 894250 148795 199271 546184 18621
GN 5014 303531 38062 39284 226185 6367
Go 2873 800205 75566 113344 611295 87456
Markdown 2648 288903 74633 0 214270 0
C 1708 365017 49446 53285 262286 46408
JSON 1305 4454311 82 0 4454229 0
FIDL 1303 94290 13433 43888 36969 0
Dart 606 69163 9153 10205 49805 4425
License 545 21628 3271 0 18357 0
YAML 421 10036 784 1882 7370 0
Plain Text 368 127457 14426 0 113031 0
Python 352 56456 4845 5083 46528 4096
Assembly 301 128989 12067 0 116922 828
Shell 281 24032 3022 4754 16256 1971
BASH 234 22508 2795 4752 14961 2117
TOML 65 4043 198 90 3755 1
JavaScript 56 33445 1768 855 30822 3695
GLSL 51 12951 2347 4386 6218 756
SVG 48 8543 1 2 8540 0
gitignore 43 388 31 69 288 0
Perl 41 48582 3874 4185 40523 858
Handlebars 31 556 41 4 511 18
Mako 31 1453 174 0 1279 49
XML 31 1473 16 129 1328 0
Protocol Buffers 28 5160 1068 1562 2530 0
HTML 19 882 40 12 830 0
Makefile 18 527 107 34 386 24
Bazel 17 1493 131 170 1192 37
Dockerfile 17 248 33 19 196 18
C++ Header 14 10691 214 206 10271 103
CSV 13 140350 0 0 140350 0
Autoconf 12 910 34 32 844 7
ReStructuredText 11 1969 659 0 1310 0
Vim Script 10 428 65 0 363 31
Device Tree 9 246 32 43 171 0
Go Template 7 521 80 0 441 5
Module-Definition 5 176 23 0 153 4
Smarty Template 5 74 24 0 50 5
CMake 4 396 45 123 228 38
CSS 4 387 51 13 323 0
JSX 3 355 15 39 301 0
Patch 3 2591 105 0 2486 0
Scala 3 80 13 0 67 3
Fish 2 140 16 40 84 18
LD Script 2 122 4 10 108 0
PHP 2 4 1 0 3 0
AWK 1 97 14 4 79 0
Batch 1 23 3 0 20 2
Emacs Lisp 1 71 14 12 45 2
Meson 1 12 3 0 9 0
Nix 1 7 1 0 6 0
Prolog 1 45 11 0 34 0
───────────────────────────────────────────────────────────────────────────────
Total 45247 13093013 1076199 1148062 10868752 478098
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop (organic) $467,287,312
Estimated Schedule Effort (organic) 142.185717 months
Estimated People Required (organic) 291.973834
───────────────────────────────────────────────────────────────────────────────
Processed 437275620 bytes, 437.276 megabytes (SI)
─────────────────────────────────────────────────────────────────────────────── Estimated Cost to Develop (organic) $467,287,312
Estimated Schedule Effort (organic) 142.185717 months
Estimated People Required (organic) 291.973834
Where does this come from? Does cloc now try to estimate how much time/money would be required to build software?I'd be interested what it thinks of my code. Do you have to give it a lot of code for these numbers to appear?
At least for sloccount, the cost/effort estimation model has very little to do with reality in the modern world though.
C 365017 C Header 894250 CMake 396 C++ 2025857 C++ Header 10691 Rust 3124869
The rest is merely overhead :)
[1] https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/z...
[2] https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/z...
I believe having an open API is an important part of smart home hardware, even if most users don't use it.
As explained in the article, the release of Fuchsia should not change any supported feature (please report a bug via the "send feedback" option if you notice otherwise!).
I'm tempted to buy a first-generation Nest Hub, maybe off eBay, to find out for myself.
Nothing, this release is a field test.
A brand new OS, and... barely anything even on hacker news. No barrage of media leading up to the annoucement.
Is this basically a boondoggle being relegated to IoT?
https://www.quora.com/What-is-the-difference-between-the-col...
(not much)
Now they have control over os. They can do anything.
Safari is the new IE. It's stagnated in the same way IE did, which has slowed the progression of web standards. How long did it take to get input type="date"?
Apple's attack on PWAs also shows they wish to neuter the web to encourage use of their app store (where they take a 30% cut) instead.
> "or that they recently revoked API keys..."
The code is open-source, but they aren't obligated to grant access to their services.
Chrome is not like IE in that it stagnates the web. It's like IE in that it reinforces the dominance of nearly the entire web by a single company - Google.
Chrome, also much like IE, has a stranglehold on what makes it into new web standards and what doesn't. That the web standards are technically open is irrelevant, if Google de-facto rules the whole standardisation process. What they decide goes, goes. What they decide doesn't go, doesn't. The W3C standards process is neutered at best, and corrupt at worst.
Hypothetically, even if they weren't the dominant W3C stakeholder, their market share gives them control over the experience and control of an enormous amount of users. They can trial and enforce FLoC, Manifest v3, and other changes that take away user control. Once user expectations get readjusted, culture around such toxic features shifts and they become acceptable. I'd be surprised if that's the end of it.
Some websites only get tested on/built for Chrome ("works best with IE"), because "everyone only uses, develops and tests on Chrome anyways". Non-Webkit/Blink browsers are collateral damage. Most webby runtimes like Electron, and most third party browsers, will also embed some variant of Blink these days. This leads to browser engine monoculture, and is capital-B Bad. Firefox managed to outmanouver IE by being bug-for-bug compatible enough, but these days, web standards are two orders of magnitude or more complex. The effort needed to build a new, compatible browser engine is more akin to building something like Wine[0] from scratch.
[0] winehq.org
> The code is open-source, but they aren't obligated to grant access to their services.
Of course they aren't. But this is after letting open source projects do it for years. What changed now, all of a sudden? Besides, the open browsers that are more-or-less straight-up Chromium forks usually are not materially different. Just a different logo and maybe some telemetry ripped out, big deal. The kind of person that uses Google sync in a fork is the kind of person who already's in deep into the Google ecosystem. They really don't have a reason NOT to let people use FOSS-specific API keys, especially since any abuse they might get because of these is so miniscule it's not worth mentioning.
I don't trust in anything Google anymore except that internal politics and profit motive will override anything beneficial eventually. Look at Chrome if you're not sure what I mean.
These I think google is more evil that microsoft. But many people enjoy free service thats why they are not complaining.
The resources going into seL4 appear to be nowhere near "similar effort" to what Google is putting into Fuchsia, but it is a legitimate alternative.
/s
Let's not be too quick to forget when Android first started out, all the idealism about the wonders of a free software mobile OS. A decade later, it's almost impossible to buy an Android phone that hasn't been strongarmed (no pun intended) into including Play Services, Chrome and Gmail, often including through threats to the manufacturer's unrelated businesses.
We're older and wiser, avoid this garbage like the plague, and don't fall for all the same old tricks.
I'm pretty sure that Play Services wasn't something Google really wanted to have but were forced to implement because so many OEMs just shit the bed w/r/t their Android forks.
[0]: https://genode.org/
The real community-driven alternative is Linux, which started and still is a monolithic kernel, but the multiple features it got along the years may make the distinction even less clear [2]. It seems it will also accept some Rust code in the future, so the difference may drop even in languages used. [3]
[1] https://www.gnu.org/software/hurd/
[2] https://qconlondon.com/system/files/presentation-slides/thom...
[3] https://lore.kernel.org/lkml/CANiq72khBa2GcB6-PHM3A44Y90d6vz...
Anyone has a (founded) opinion on the subject?
From the user perspective I don't need another toy OS. I was able to develop Linux Kernel modules on my 486dx with 8MB of RAM. I was able to use excel, word on it.
Right now I have a mobile phone with better hardware than my work PC from only few years back (8GB RAM, 512GB UFS storage powerful multicore CPU). Still Android only allows me to click colourful buttons and simple apps, it has not progressed at all in the last decade.
Samsungs of the world, please come together, build a non-profit consortium and develop an open platform with real OS with full capabilities.