Live data from Hacker News

Comparing Fuchsia components and Linux containers [video]

fosdem.org

181–190 of 191 posts

Re: Comparing Fuchsia components and Linux containers [video]

#181
post #157

Earlier quoted context omitted.

It just feels really cynical to make everything about motivations and incentives. There are plenty of great projects that Google has produced that provide great external value without an interesting internal plan beyond using it to make products better. Golang, flutter, bazel, Gerrit, etc. I understand there are also examples where it uses it with some other intentions, such as the case of tensorflow or kubernetes, b…

It's certainly a bit cynical to view for-profit companies as being solely profit motivated, but I don't think it's _that_ cynical. To me, it almost seems a bit naive to assume that a company like Google would be doing something for purely altruistic motives in the absence of any evidence one way or another. I'm not a subscriber to Friedman's view that corporations are _required_ to maximize profits for their sharehol…

Google's goal is to make good products. That will enable making money. A positive externality of trying to create a good product is creating technologies such as fuchsia. I don't think there is more to it beyond that. If it's more complicated than that, that would probably be news to most people working on Fuchsia.

Re: Comparing Fuchsia components and Linux containers [video]

#182
post #156

Earlier quoted context omitted.

Look I understand the context here but if you're going to go around saying "a great platform for computing" it's not really telling me much about the project.

fuchsia.dev has literally hundreds of pages of detailed content, I’m not going to rewrite it all in an HN comment

Yes, but clearly there is some middle ground between dumping all of Fuchsia's public documentation and providing the marketing slogan?

Re: Comparing Fuchsia components and Linux containers [video]

#183

Earlier quoted context omitted.

I was never that close to the Fuchsia project, but knew quite a few people who worked on it. My understanding from them was, as much as I can remember it now, something like: 1. That yes, Fuchsia was originally intended, by at least some in senior leadership on the team, to replace both Android and ChromeOS. This is why Fuchsia had a mobile shell (or two?) at one point. 2. The Android team wasn't necessarily on board…

Yeah the "was never meant to replace" here sounds exactly like the placation we got with wasm - "it's not meant to replace JavaScript" (it totally is).

As we always joke in Germany nowadays when clearly there is intention even if public denied, we remind ourselves there was never an intention to build a wall, until there was actually one standing there.

Re: Comparing Fuchsia components and Linux containers [video]

#184

Earlier quoted context omitted.

> "it's not meant to replace JavaScript" The word meant is doing a lot of heavy lifting here. Meant - by who? The technology itself doesn’t want anything. Do some people want to use wasm instead of JavaScript for websites? Yes. Will JS ever be removed from web browsers? Probably not, no. Wasm isn’t a grand design with a destiny it’s “meant to” reach. It’s actually just some code written by a bunch of people trying to…

> Meant - by who? The technology itself doesn’t want anything. The people who created the project and who are writing the code, obviously. This is clear from the context; you don't need to nitpick stuff like this. > Wasm isn’t a grand design with a destiny it’s “meant to” reach. Yes it is. The destiny is being able to create dynamic websites with languages other than Javascript. The first step was Asm.js which allowe…

The first step was browser plugins, followed by NaCL, followed by PNaCL, followed by Mozilla's refusal to adopt PNaCL and push asm.js instead.

Active State had plugins to run Python, Tcl and Perl on the browser for example.

Re: Comparing Fuchsia components and Linux containers [video]

#185

Earlier quoted context omitted.

They generally tend to work for a very long time, like for 5 years at least. That’s literally the reason Windows has a stable ABI. Linux generally breaks drivers every 6 months or so.

It doesn't? Try loading a driver written for an old version of Windows. Third party drivers generally won't work for the next version of Windows. I have a printer that had a Windows 7 driver. It won't load on any more recent version than that. The same printer works with Linux the same it has always done. But that's not Windows' fault or to Linux's credit. It's just the result of a really crappy vendor. However the L…

So far Windows has kept driver APIs stable across multiple version.

https://en.wikipedia.org/wiki/Windows_Driver_Model

https://en.wikipedia.org/wiki/Windows_Display_Driver_Model

Naturally, as you point out, it can do nothing against forced obsolence if the the OEM expliciltly tied the driver to check the Windows version.

Re: Comparing Fuchsia components and Linux containers [video]

#186

Earlier quoted context omitted.

Ah, but you’ve moved the goalposts! The original claim was that wasm would replace JavaScript. Now you’re just talking about wasm being another option from JavaScript for web development. This distinction really seems to matter to some people. I suppose there’s something tribal about it. Is rust here to destroy C++? Rust gets a lot of irrational hate in the C++ community, and I think this perception is the reason. Is…

There might have been a time when Fuchsia included some UI/UX elements to it, but that was long ago. For the last half decade there has been basically no overlap in what Android offers vs what fuchsia offers. They don't really compete and there is no one who wants fuchsia to supercede Android. The only people who want this don't understand what fuchsia is and simply want some drama. Comparing it to rust vs c++ is not…

I sincerely hope to see some kind of Fuchsia desktop experience someday.

Even in the form of fuchsia -> Android -> ChromeOS which publicly at least seems those layers are actually converging somewhat.

Re: Comparing Fuchsia components and Linux containers [video]

#187
post #74
post #67

Earlier quoted context omitted.

ios is capabilities based, no? Edit, to explain: in ios, everything revolves around mach ports, which are capabilities. https://docs.darlinghq.org/internals/macos-specifics/mach-po...

Yes. And without over stating it, iOS is an amazingly robust, very secure OS. it has high trust and low trust models, a secure zone, special purpose hardware and an operating system designed around minimum access rights models which manages to keep going, despite app authors worst intentions. At one level, it proves the model. The shame is that Mach otherwise has kind of not taken off. Gnu the OS was going to be Mach…

> despite app authors worst intentions

All app authors must comply with the rigorous App Store guidelines so the technical limitations on what they can do don't really matter anyway.

Add sideloading as an option and we'll get to see how secure iOS really is.

GrapheneOS is definitely secure enough to tolerate sideloading, but I don't know if iOS is or not.

Re: Comparing Fuchsia components and Linux containers [video]

#188
post #156

Earlier quoted context omitted.

fuchsia.dev has literally hundreds of pages of detailed content, I’m not going to rewrite it all in an HN comment

Yes, but clearly there is some middle ground between dumping all of Fuchsia's public documentation and providing the marketing slogan?

Secure: fuchsias kernel is a “practically sized kernel” - many call it a microkernel but it doesn’t take that too far. The kernel retains control over memory allocation, facilitates and enforces IPC and maintains an enumerable set of processes and threads. The kernel does not implement any high level drivers, it contains very few parsers. It has a consistent set of interfaces to userspace that are relatively few. The component system design carves out the “root resource” very early in the boot process and moving pieces down to dedicated delegates with limited access scopes and limited responsibilities. The component system is loosely coupled to, but leans on the package system which along with the content addressed filesystem ensures that code which is executed is _exactly_ what was originally built and specified - if that is violated it does not run. The verified boot path combines these features providing an end to end cryptographic path from signed bootloader images to the fully booted operating system. Builds done by the team apply many modern security practices, with hardened toolchain features, about half the code (as of a few years ago, probably more now) in rust, most of the other half in professionally reviewed c++. Some of the early third party researchers who attacked the system found that while they could identify some bugs (that we fixed promptly), lateral movement through the system was extremely difficult.

Updatable: as mentioned above the package system maintains a content-hard guarantee. It reduces cost of isolation and versioning using artifact sharing (as a result of content addressing) between versions where unchanged. Isolation properties of the design completely eradicate DLL hell. IPC interfaces in the core system provide stable APIs and are designed and reviewed with care to manage the evolution story and enable component interchange due to no invasive unmanaged coupling between components. Many components have been replaced with v2+ over the years with little to no fuss. The preferred deployment design follows an a/b update strategy making updates extremely safe.

Performant: most components in the system are medium sized in terms of responsibility as compared to common alternatives or common extremes. This optimizes for low latency for related task data locality and computation while maintaining a lot of separation between major components. While IPC has a latency cost, a lot of user facing performance amortizes well due to the implicit multiprocessing thah can result. All core components are written in fast systems languages. There’s always more to do on performance with a nascent system, but the architecture is setup in a generally good place for modern computing topologies and some of the implementations are decently strong for their age.

Simple: as it is a whole operating system and it has its own flavors of things, there may seem like a lot to learn which sounds complex, but many of the independent components and/or layers have simple interface boundaries with often fairly clear constraints and boundaries, which simplifies many aspects of understanding as a whole. Similarly the appropriately medium sizing of the kernel, of components, of interfaces with a generally “good taste” of sizing manages the numeracy complexity to a good level also. It’s quite easy to build associative memory for the system architecture and the components. Years on from when I worked on it I still have good recall for a ton of the system - hell I have a better memory for parts of fuchsia than the code bases I work on every day since I left.

Re: Comparing Fuchsia components and Linux containers [video]

#189
post #176

Earlier quoted context omitted.

The difference is that those solutions are mandatory access control. Fuchsia doesn't have a global namespace that everyone shares. Each component gets it's own view of the world based on what is passed to it. This is often easier to work with then MAC. It's similar to writing a program without relying on globals for state, but instead passing everything into every function that it needs.

> Each component gets it's own view of the world based on what is passed to it. But isn’t that exactly the same as MAC with default deny..? Different terms.

Yes it's different because mac implies global understanding. Capability routing decisions are local.

Re: Comparing Fuchsia components and Linux containers [video]

#190

Earlier quoted context omitted.

To wit, starnix has never been cancelled. Source: I work on fuchsia.

So the hope is that Starnix can emulate Linux syscalls well enough, while gVisor has been abandoned in later Google Cloud stuff because it couldn't emulate Linux syscalls well enough. Uh-huh.

Several operating systems successfully provide a Linux emulation mode. gvisor has very different constraints and requirements. It's also still heavily used and under active development so I'm not sure how you determined it is abandoned.
Post reply on HN