Live data from Hacker News

Fuchsia: a new operating system

lwn.net

41–50 of 324 posts

Re: Fuchsia: a new operating system

#42
post #22

That whole handle idea of the 'capability' system, but especially its implementation with 'handles', sounds exactly like Win32 to me. I haven't looked at the source, can anyone confirm or explain what exactly is different?

Roughly put: in a capability based system, if you have a valid handle for a service, then you can use that service. But the only way you can get a valid handle is to ask your parent process for one --- handles are unforgeable. So your parent gets to check that you're legitimate. ...but your parent, in turn, has limited permissions, because the only way it can get a handle is to ask its parent. And when you ask your p…

So, going back to Win32, it's as if OpenFile also took a HANDLE that represented your abilities (or capabilities if you will ) within the security model, with the explicit ability to forward these handles (or new handles that represent a subset of the original's capabilities) to other processes if you choose.

Re: Fuchsia: a new operating system

#43
post #22

That whole handle idea of the 'capability' system, but especially its implementation with 'handles', sounds exactly like Win32 to me. I haven't looked at the source, can anyone confirm or explain what exactly is different?

I'm no Windows expert, so I didn't know that windows handles were used as security primitives.

I thought they were just a bit like file-descriptors or X11 window ids, or indeed pointers. Such handles do have a kind of role in authorization: once a process has convinced the system to give it some resource, then the (handle, processid) pair is all the system needs to check access.

However you typically gain the handle through something like `open()`, i.e. an ACLed request for a named resource. But with true capabilities you just inherit authorisation from some other capability -- possibly one granted to you by a different process.

That said, the difference from existing systems might be small. Namespaces are really useful, and are probably here to stay. But as long as things can be accessed by names, the access will need to be controlled by something like an ACL.

Re: Fuchsia: a new operating system

#44
post #22

That whole handle idea of the 'capability' system, but especially its implementation with 'handles', sounds exactly like Win32 to me. I haven't looked at the source, can anyone confirm or explain what exactly is different?

Roughly put: in a capability based system, if you have a valid handle for a service, then you can use that service. But the only way you can get a valid handle is to ask your parent process for one --- handles are unforgeable. So your parent gets to check that you're legitimate. ...but your parent, in turn, has limited permissions, because the only way it can get a handle is to ask its parent. And when you ask your p…

That's actually really beautifully simple.

Thanks for this explanation, it really helped the idea "click"

Re: Fuchsia: a new operating system

#45
post #25

Earlier quoted context omitted.

It's because all the stupid vendors refuse to share anything, and won't publish their sources for the various device drivers needed. So every time there's some new flash chip or whatever, there's a custom closed-source device driver for it which doesn't get mainlined or updated for newer kernel revisions, and devices with that chip are forever stuck on an ancient kernel version. There's only two ways around this: 1)…

> won't publish their sources for the various device drivers needed. And how is Fuchsia supposed to help that?

It will go down the Windows model of having a stable kernel ABI (I assume). And suffer/enjoy the same trade-offs as Microsoft.

That model is not perfect, but it worked for MS -- and Google is in a similar enough position.

Re: Fuchsia: a new operating system

#46
post #10

Are there enough clues to figure out if this is intended to eventually displace Android, ChromeOS, the Ubuntu distribution most googlers use on their company machines, or the Linux they run their data centers? As far as I know, Google hasn't telegraphed the purpose of it. I can't tell if it's targeted at all, none, or some of the above.

Your guess is as good as mine, but there are some clues:

https://techspecs.blog/blog/2017/2/14/googles-not-so-secret-...

https://techspecs.blog/blog/2017/2/15/proof

Re: Fuchsia: a new operating system

#47

While this is a cool project, I can't really see it making financial sense... > Lets throw away the last 20 years development on the linux kernel by thousands of people, and rewrite our own. > How much will it cost? > Ooh - I dunno - If you lend me 1000 engineers, we should be done in about 10 years, cos we're really smart and don't need to implement legacy SCSI support...

A few days ago somebody posted a link to some very old UNIX documentation from the early 70s. Something that struck me was how similar it was to modern UNIX systems. A lot of abstractions underpinning Linux, the BSDs, and OSX have not changed much in the 45 years since UNIX V1 was developed. It wouldn't hurt to take a fresh look at things. Your argument could have been used against almost every project Google's worke…

Of course that's largely because those abstractions were good ones.

Someone in a comment above noted that Rob Pike thinks Unix is obsolete. But then he was probably thinking about Plan9 which was indeed better than UNIX -- because it even more unixy. Filesystems all the way down.

Capabilities are the first new abstraction I have heard of that really go beyond the Unix model.

Re: Fuchsia: a new operating system

#48

While this is a cool project, I can't really see it making financial sense... > Lets throw away the last 20 years development on the linux kernel by thousands of people, and rewrite our own. > How much will it cost? > Ooh - I dunno - If you lend me 1000 engineers, we should be done in about 10 years, cos we're really smart and don't need to implement legacy SCSI support...

>Lets throw away the last 20 years development on the linux kernel by thousands of people, and rewrite our own.

Chrome has more code than the Linux kernel.

The numbers I see for 2012 (way back) are: "4,490,488 lines of code, 5,448,668 lines with comments included, spread over 21,367 unique files."

Linux, on the other hand, was ~ 200K lines of code for the kernel (the rest is 7 million for drivers, about which the new OS doesn't need to concern itself, as it will on custom hardware) and 2 million lines for various architectures (ditto).

Don't overestimate the complexity of building a complete kernel -- even teams as resource lacking as NetBSD can do it.

And with other parts of the stack, they already have tons of experience (e.g Skia for graphics etc).

Re: Fuchsia: a new operating system

#49
post #39

What makes Fuchsia different then so many other attempts at writing a new OS? They aren't writing a new OS, at least, not in the complete sense. They are using the IPC system developed in and extracted from Chrome. They are drawing everything in userspace with fast graphics render but the logic for all system components written in Dart from the Flutter project. They use musl for the libc. They are using the little ke…

>They are drawing everything in userspace with fast graphics render... Dumb question, does this mean that it's limited to software rendering only? You need to go through the kernel to talk to the GPU, right?

No. GPUs typically work over the PCIE bus, and one can talk to PCIE via user space as well. In legacy systems like Linux the mapping of virtual to physical address and generation of scatter-gather-lists (SGLs) resided in the kernel. If one moves the same functionality to the user space without loss in performance (which is what magenta seems to do), there's no benefit to kernel GPU drivers.

Then there's the whole "GPL mafia" in the Linux world who'd like to force vendors to open up their drivers by moving as much of the critical pieces to the kernel as possible. In theory, you cannot write a kernel driver without violating the GPL. Fuchsia will have no such impositions. If someone wants to open their driver up, they could. If they believe their offering is superior, and a secret sauce needs protecting, they can keep it closed

Re: Fuchsia: a new operating system

#50

What makes Fuchsia different then so many other attempts at writing a new OS? They aren't writing a new OS, at least, not in the complete sense. They are using the IPC system developed in and extracted from Chrome. They are drawing everything in userspace with fast graphics render but the logic for all system components written in Dart from the Flutter project. They use musl for the libc. They are using the little ke…

Curious on advantages besides being secure. I normally have garbage computers so I like to run lean on stuff. Not to the point of using Arch but Ubuntu with i3. Also will "regular" programs still run. Like as a developer I need VS Code, Filezilla, file manager, Kate, LAMP stack installed.

Are there concerns on non-dedicated graphics cards, or running say an ARM-based processor.

Also I'm not sure what you mean by '...easy to compile...' How do you compile this? I'll have to read up on it. Get that checksum bruh.

I remember trying to use Slackware and for me that was a lot of work.

Edit: Oh I see at this time it is limited to three physical machines. Interesting on the Pi 3 part. I wonder if I could try it in Virtual box. But why try it in the first place?

Post reply on HN