Live data from Hacker News

Fuchsia: a new operating system

lwn.net

141–150 of 324 posts

Re: Fuchsia: a new operating system

#141

I don't understand what the value is in writing a new original microkernel from scratch in this day and age when sel4* is free and open source, performance tuned for 20ish years, is security hardened, and is provably correct for both security and features? This doesn't seem like a wise path to take. * See http://sel4.systems/

I know nothing about differences between fuchsia and sel4 but it would be rather strange if something as complicated as a OS kernel wouldn't have many parts where you have to make trade-offs. People compete fiercely in the field of todo applications, I don't see why there shouldn't be competition in microkernel space.

Things changed in hardware in last 20 years and maybe we've learned something about software as well.

Not to mention that sel4 is GPLv2, which is kind of problematic for a commercial company.

In the end, the micro-kernel is a very small part of the whole stack.

Re: Fuchsia: a new operating system

#142

I've been waiting for this to be released. I suppose everyone has been. Capabilities . Like fine grain locks, these are very powerful and very hard to get right. That's the lesson from Hydra, the 432, .... No, it's not a hard mechanism for the microkernel to get right; it's a hard policy for the application programmer to get right. However, that's probably more of an opportunity rather than meant as a criticism. Our…

To be fair, this is not the entirety of C++ but C++ following the Google C++ Style Guide, which limits use to a more manageable subset of the language. For instance, exceptions, which can be especially hairy in a language with manual memory management, is prohibited. Take a look at the Fuchsia codebase. The code is really quite clean and readable.

Re: Fuchsia: a new operating system

#143
post #127

I've been waiting for this to be released. I suppose everyone has been. Capabilities . Like fine grain locks, these are very powerful and very hard to get right. That's the lesson from Hydra, the 432, .... No, it's not a hard mechanism for the microkernel to get right; it's a hard policy for the application programmer to get right. However, that's probably more of an opportunity rather than meant as a criticism. Our…

>C++. Oh lord. Why are you writing a microkernel in C++? If there was anything they learned from L4 (Xen, Linux, ...) it is that C is sufficient. Why do you want to implement something small with something that is large? This one is a real head scratcher. Because if there was anything proven from years and years of using C, it's that it is woefully insecure and should not be trusted to write a kernel with. You can st…

Yes, we know that C is not secure. We also know that C++ is not secure and moreover it definitely isn't C, now with security. It's just more bigger C. So use your phrase, you can still fuck up with C++. You can just do it in more clever and insidious ways.

seL4, a third-generation microkernel is 8,700 lines of C code and 600 lines of assembler.

http://web1.cs.columbia.edu/~junfeng/09fa-e6998/papers/sel4....

So we also empirically know that you can formally verify a microkernel written in C. Now if the Fuchsia folks had gone ahead and formally verified their microkernel, this issue would be moot. But they haven't. So we are instead left with std::shared_ptr offers more guarantees than *. While this isn't nothing, it isn't much either.

Re: Fuchsia: a new operating system

#144

Capability-based operating systems must be the future. If they are not, then we are all doomed to continue to exist in a messy world where security problems crop up every minute. Capability-based access controls are one of the best options for getting out of our current mess, but they're also the type of thing that must be implemented very low in the system in order to work. Hopefully, when we start ripping out *nix…

Capabilities? FreeBSD, and other Unix flavors have had caps for decades.

No one uses them. Security is useless if no one uses it. Capabilities are too hard, too complex, to manage.

Great idea. Horrible implementation.

Re: Fuchsia: a new operating system

#145

Earlier quoted context omitted.

That's actually really beautifully simple. Thanks for this explanation, it really helped the idea "click"

And for another beautiful convergence: nowadays most software development is done in languages that naturally express capability patterns, namely memory-safe languages. That is, if you have a reference to an object or value, you have the authority to invoke any of the methods on that object or call any functions that accept such a value. So object references are capabilities. Most such languages only go too far by al…

And as an even deeper correspondence: Once your language is memory-safe and capability-secure, you don't even need a kernel, let alone a microkernel. Rather than use hardware address spaces to separate and modularize components (the primary idea behind microkernels), you just pass capabilities around to your components. One component can't crash the whole system, because all it can access is the APIs you pass in to it. If you want to add isolated processes to your OS, just implement actors in your language: They're equivalent.

Of course, you can always have a bug in your APIs that allows an attack or bug to propagate. But that was always the case even without capability-safety. Capabilities can't give you everything for free. :)

Re: Fuchsia: a new operating system

#146

Earlier quoted context omitted.

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 "GP…

You make open source drivers sound like a bad thing.

offering no alternative but "open source" on Linux is certainly not the most business friendly way to go about it.

Re: Fuchsia: a new operating system

#147
post #61

Capability-based operating systems must be the future. If they are not, then we are all doomed to continue to exist in a messy world where security problems crop up every minute. Capability-based access controls are one of the best options for getting out of our current mess, but they're also the type of thing that must be implemented very low in the system in order to work. Hopefully, when we start ripping out *nix…

> If they are not, then we are all doomed to continue to exist in a messy world where security problems crop up every minute. Side-tangent, but security enthusiasts need to calm down on the "world is ending" talk. Those of us who lived through Windows ME, where logging on IRC basically gave you a 25% chance of having your computer hijacked by some random script kiddie, think it's laughable to say that security is any…

Security practices may be better now, but applications are a lot more complicated (meaning much more attack surface area) and there's a lot more at stake now.

Re: Fuchsia: a new operating system

#148

Earlier quoted context omitted.

You make open source drivers sound like a bad thing.

offering no alternative but "open source" on Linux is certainly not the most business friendly way to go about it.

Being business-friendly is not a goal, and shouldn't be a goal.

Re: Fuchsia: a new operating system

#149

Earlier quoted context omitted.

(disclaimer: I work on the Flutter team.) You can use Flutter today to write an app that runs on iOS and Android. :)

How is it in turns of speed? On one hand, the website says that it's compiled to native code (so it can be same speed/faster than Java), but on the other hand, it's based on a soft-type language, which makes optimization difficult (even with V8, JS is still slower than native code). Side question: I understand that Dart was soft-typed because it was supposed to replace/compile to JS, but what advantage does soft-type…

You might want to watch this talk on AOT compiling Dart, I'll link right to the perf benchmarks: https://youtu.be/lqE4u8s8Iik?t=9m28s

I think it's a work in progress, but main benefit at least at the time was faster startup.

Re: Fuchsia: a new operating system

#150

People that question the existence of Fuchsia need only remember why Chrome was created. A lot of people thought Google was wasting their time by building a browser, including Eric Schmidt, and look how that turned out. Now, I'm not saying that Fuchsia will have the same success as Chrome, but it's clear that they think that having an OS that they can control the direction of is important to them.

Yeah, look how that turned out. Now we have Chrome, which is slow, uses shitloads of memory, needs to be restarted constantly, has been bad for web standards, is controlled by Google, constantly phones home, etc.
Post reply on HN