Live data from Hacker News

Fuchsia: a new operating system

lwn.net

281–290 of 324 posts

Re: Fuchsia: a new operating system

#281
post #245

Earlier quoted context omitted.

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…

> To make a memory safe language capability secure, you simply remove all sources of ambient authority. Isn't this more or less what Sun tried to do with Java applets, which in practice turned out not to be so simple while providing a rich API?

http://www.cs.cornell.edu/home/chichao/sip99.ps

http://www4.cs.fau.de/Projects/JX/

Note: JX takes a different route but shows POLA can be done simply and performant.

Re: Fuchsia: a new operating system

#282
post #175

Earlier quoted context omitted.

Thanks, but would sooner recommend my third article: https://techspecs.blog/blog/2017/3/15/fuchsias-hypervisor .

The link in the bottom of your first article was very helpful, and seems to confirm ChromeOS and Android would be the likely targets. https://fuchsia.googlesource.com/magenta/+show/master/docs/m...

Thanks. Yeah, they really could not be more transparent about that. Most of the bring-up is on mobile + PC silicon as well.

There's no need to kill Chrome OS for the education, mind.

Re: Fuchsia: a new operating system

#283
post #81

Earlier quoted context omitted.

You are confusing things that derive naturally from a microkernel architecture with Plan 9.

I dont understand your point. I may be mistaken,but my understanding is that userspace servers accessible through the use of the fopen/fread/fwrite, etc. system calls was an idea that originated in Plan 9. Furthermore, some people who worked at Bell Labs at the time now work at Google.

I'm not sure Plan 9 was first with it. It was inspired by UNIX which was a watered-down version of MULTICS. That was a microkernel-based system with generalized I/O with open/read/write:

http://multicians.org/rjf.html

Now, the question is when was same concept applied to user-space servers? It was possibly Mach that was UNIX-like with all processes communicating through ports that were like standardized pipes.

https://en.wikipedia.org/wiki/Mach_(kernel)

You got user-space components to open them, read them, write them, etc. That was 1985 whereas Plan 9 hit universities in 1992. Both models had security and performance issues that led reliability- and security-oriented OS's to go different routes on purpose. Plan 9 was a step up from UNIX but a step down from high-assurance (eg KeyKOS, NonStop) and high-flexibility systems (eg SPIN OS, LISP machines).

Re: Fuchsia: a new operating system

#284
post #238

Earlier quoted context omitted.

A lot of differences are pretty superficial.

You mean like package formats, audio subsystems, configuration files that didn't exist on original UNIX, window managers, init systems, ...

Lets start with package formats, people discuss this matter as if it were building an app for ios vs android. 99.999% of the work is the application. Package formats are just different sets of instructions for building the same source code the works ultimately on any system so long as its required libraries are present.

Continuing on with audio, virtually everyone uses pulseaudio. JACK is pretty much reserved for audio production and is its own animal.

The majority of configuration files are similar/the same, most differences are minor. For good or ill most distros are adopting systemd.

Window managers or desktop environments are just components virtually all of which are able to be run on any distribution.

Got any more?

Re: Fuchsia: a new operating system

#285

Earlier quoted context omitted.

Is there a reason not to use Flutter? From what I've seen of Flutter it seems like a very competent cross platform UI toolkit. In fact, I wouldn't be surprised if they announced that you can start using Dart/Flutter to write cross platform Android/iOS apps at I/O 2017.

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

read on the flutter site that text input still wasn't implemented, so i'll probably wait some more.

I didn't find a doc on how low level is this framework going. Or to put it differently , where does it plug itself on the iOS stack ? opengl ? calayer ? uiview ? webview ? etc...

Re: Fuchsia: a new operating system

#286

Earlier quoted context omitted.

> The biggest thing Linux had going for it in terms of winning market share was running on commodity x86 parts in a time period when the commercial Unices weren't touching it From the 1980s to 1993 there were: v7 ports: Microsoft Xenix (later became SCO), Venix, Coherent System III ports: PC/IX (later 386/ix) SVR3 ports: official Intel, ESIX from Everex SVR4 ports: Dell UNIX, Novell UnixWare, Microport

Microsoft abandoned Xenix when AT&T decided to commercialize Unix with SVR4. OS/2 was, in fact, created to be Microsoft's Xenix replacement (and then when Microsoft fell out with IBM, we got NT as Xenix's replacement's replacement).

"Microsoft abandoned Xenix when AT&T decided to commercialize Unix with SVR4."

They not only kept supporting it via SCO Group but even used that company to bankroll an attempt to kill Linux in court. IBM, dependent on Linux, promised a billion dollar battle. Company eventually went bankrupt but its "real UNIX" is still in use by Fortune 500 companies as legacy systems. That they sold inventory-management solutions on top of SCO Server means quite a few are mission-critical. That money coming in is probably why they keep fighting over whether it should stay bankrupt or not.

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

Microsoft truly abandoned UNIX when they went with OpenVMS:

http://windowsitpro.com/windows-client/windows-nt-and-vms-re...

Note: Fun to remind UNIX/Linux users about that when they joke about an OpenVMS desktop. One dominates the market. ;)

Re: Fuchsia: a new operating system

#287
post #224

Earlier quoted context omitted.

Not only Windows, the majority of operating systems are like that, even the old time commercial UNIXEs, only GNU/Linux forces an unstable driver ABI on developers.

Except that the "stable ABI" thing doesn't work in practice. Look at all the people who have to throw away perfectly good hardware every time a new Windows version comes out, because the hardware maker doesn't care about updating their drivers and just tells customers to buy a new version.

It works if it's architecturally designed to work. Mainframes and AS/400 does that. On System/38 (AS/400 predecessor), apps compiled down to a microcode against standardized interfaces. These got converted by special compilers to actual hardware. That's why apps written decades ago still run. You also got modern stuff as updates came in.

https://homes.cs.washington.edu/~levy/capabook/Chapter8.pdf

OpenVMS gave customers binary translation tools plus let clusters run with multiple, CPU architectures. That migration wasn't as painless but at least happened. Microsoft eventually applied this strategy at application level combined with OpenVMS's cross-language programming in the form of .NET CLR. It can work at much lower level as IBM showed in the 70's or 80's, though.

Re: Fuchsia: a new operating system

#288

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…

"The little kernel" appears to be a popcorn brand FWIW.

Re: Fuchsia: a new operating system

#289

Earlier quoted context omitted.

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 a…

I wouldn't use SEL4 as an argument. It is completely unreasonable to build a production kernel the way they did - it took them ages to get what they had. Google is probably looking to develop features/ move code a lot faster than is possible using their technique. Good coding practices take no time to implement, you learn it once and you write that way. It is not bullet proof, neither are capabilities. Still, at leas…

I think you miss the point of a microkernel! The point is to keep all your "features" outside of it, and to use it only to implement the core set of functionality necessary to have secure shared access to the hardware. The general L4 concept has proven industry use, so there's no reason you can't take advantage of the already accomplished work on seL4 to bootstrap your own secure OS.

It's true that seL4 is not a magic safety or security bullet; in particular, their FAQ says that they haven't completed extending their proofs to DMA safety via VT-d or SystemMMU on ARM, so DMA-accessing services would have to be separately verified. And its particular feature set may not be appropriate for all situations. But if its API does work for you, it would be foolish not to at least consider using it.

It is really unreasonable to dismiss seL4 simply because it took them a lot of effort to create it. That effort is now done and can be re-used and magnified by further effort.

Re: Fuchsia: a new operating system

#290
post #222

Earlier quoted context omitted.

Given the amount of shipped embedded systems and the hybrid designs from OS X and Windows, I would say Tanenbaum won. The majority of embedded OSes have a microkernel design. Also Windows and OS X have a kind of hybrid design, even if not a proper mikrokernel. On Windows case,there are now a sandboxed kernel and drivers. https://channel9.msdn.com/events/Ignite/2016/BRK4010 https://channel9.msdn.com/Blogs/windowsserve…

Even with new features like Device Guard, Windows is all but a microkernel; parts of the GUI high-level primitives (like fonts) are in WIN32K.SYS. Even OS X moved a lot of drivers to kernel space, it's not a pure microkernel design like the Hurd. If anything, the closest thing to a microkernel that is in wide use is Xen, or Hyper-V.

If you mean wide use on a desktop, sure. QNX is definitely microkernel-based, though, and it's used widely in automotive head units and now Blackberry devices. Way nicer to write device drivers for than Linux!
Post reply on HN