
Fuchsia, a new operating system - helloworld517
https://github.com/fuchsia-mirror
======
pavlov
The repo at
[https://fuchsia.googlesource.com](https://fuchsia.googlesource.com) reveals a
rather interesting UI story for this new operating system.

It seems like the intention is to use Flutter [1] as the UI layer. Flutter
uses the Dart language, so there's a Dart environment included in Fuchsia too
[2].

For rendering, Fuchsia includes a project called Escher [3] which is described
as a physically based renderer that supports soft shadows, light diffusion and
other advanced effects. Looking at the source code, Escher is designed to use
either OpenGL or Vulkan as the underlying graphics API. (There's an iOS
example project included in Escher's source tree. Would be interesting to
build that.)

It's not immediately obvious why a lightweight operating system would need a
renderer that can do realtime soft shadows and light effects...! But I think
the idea here is to build an UI layer that's designed from scratch for
Google's Material design language. Shadows and subtle color reflections are a
major part of that "layered paper" aesthetic.

So, the stack seems to be: Dart is the language for GUI apps, Flutter provides
the widgets, and Escher renders the layers.

The underlying application framework is called Mojo [4]. It already offers
bindings for Go, Java, JavaScript, Python and Rust in addition to Dart, but
maybe those languages are meant for services rather than GUI apps. (At least I
can't see an easy way to create Flutter widgets from something like Rust
without loading the Dart VM.)

[1] [https://flutter.io](https://flutter.io)

[2]
[https://fuchsia.googlesource.com/dart_content_handler/](https://fuchsia.googlesource.com/dart_content_handler/)

[3]
[https://fuchsia.googlesource.com/escher/](https://fuchsia.googlesource.com/escher/)

[4]
[https://fuchsia.googlesource.com/mojo/](https://fuchsia.googlesource.com/mojo/)

~~~
themodelplumber
> Shadows and subtle color reflections are a major part of that "layered
> paper" aesthetic.

They're a part of design language, raw elements of design. This can get much
bigger than the Material Design of now. It can make sure that the subtle or
even zany, domineering design of tomorrow has just the right level of
refinement for its intended audience.

IMO as a graphic designer and as someone who has been doing 3D rendering as a
hobby for 15 years, it's pretty awesome to think about PBR moving into the
area of UI.

~~~
ash
PBR == Physically-based rendering?

~~~
Namrog84
Yes

------
ansible
I'm calling it now: this is for augmented reality displays and similar. You
want an RTOS for loss and predictable latency. And current GUIs aren't really
suited to 3D environments you can walk around inside.

This is Google's next Android, with a low latency rendering pipeline for the
next generation of mobile devices.

~~~
eggy
Wouldn't that be nice after Google has affirmed again and again that Java
would be the only supported way to develop Android apps, even though they keep
Dart funded internally...

Hey, I'll bite. Let's see.

~~~
plexicle
When did they "affirm" that? They've said a couple times that "Java at this
time is the only way to build apps," etc. They never ruled it out for the
future, AFAIK. Please feel free to prove me wrong, but I would honestly be
surprised if you found anything.

Having been to the last several I/Os where the question is asked at the
fireside chats, the answer has always been "right now...". No one is saying
dump Java, but if we could get some native hooks through something like Dart,
that would be pretty awesome.

~~~
Zigurd
"Java at this time is the only way to build apps" is the right answer for
Android OS, because the Android OS is a combination of an app runtime and a
Java middleware layer. Adding another runtime to Android would make it a
second class citizen, or it would involve building a parallel middleware. What
they really mean is that the result would be messy, and it wouldn't be
Android-as-we-know-it.

You can, of course, move the Android middleware layer to other OSs, for
Android compatibility. Which is how you can run Android apps alongside Tizen
apps: [https://youtu.be/nmiHPcHGgSM](https://youtu.be/nmiHPcHGgSM)

Android was designed for one runtime, Dalvik and later ART. But there is
nothing preventing a new OS being designed for multiple runtimes that includes
runtime support for Android apps.

I'm generally not sympathetic to Java complainers. If you have Android Studio,
or any other decent IDE, verbosity isn't a problem. But an OS built for Dart
apps and a Dart UI stack would be the logical next step.

------
c3534l
Fuchsia is not a combination of pink and purple. It is the color your brain
comes up with when it sees contradictory color signals (such as very high and
very low wavelengths without the appropriate middle stimulation). It's the
only color not in the rainbow. As you can see from this additive color program
([http://trycolors.com/?try=1&ffb5d9=0&c31cff=0](http://trycolors.com/?try=1&ffb5d9=0&c31cff=0)),
pink and purple create a lavender color. Whereas fuscia is what happens when
you combine colors in an unusual way
([http://www.exploratorium.edu/sites/default/files/ColoredShad...](http://www.exploratorium.edu/sites/default/files/ColoredShadows_DSC_9965_H1v2.jpg)).
Normally I wouldn't be this pedantic, but this _is_ hackernews after all.

~~~
snarfy
A rainbow starts at red and ends a violet. In your brain, the rainbow wraps
around in a circle, connecting red and violet. This is not the reality of the
wavelengths, so your brain makes up a color that fits between red and violet.

~~~
Ericson2314
It's also almost an octave of color---I cut my brain some slack

------
ocdtrekkie
Some useful bits from IRC:

[16:21] <ocdtrekkie_web> Why's it public (mirrored to GitHub even) but not
announced or even documented what it's for?

[16:22] <@swetland> ocdtrekkie_web: the decision was made to build it open
source, so might as well start there from the beginning

[16:22] <lanechr> ocdtrekkie_web: things will eventually be public, documented
and announced, just not yet

[16:23] <@swetland> currently booting reasonably well on broadwell and skylake
NUCs and the Acer Switch Alpha 12, though driver support is still a work in
progress

[16:24] <@travisg> yeah and soon we'll have raspberry pi 3 support which
should be interesting to some folk

Sidebar comment: I wonder how much more activity this thread would be getting
if the subject line had "by Google" in it. LOL

~~~
cm3
Hmm, Travis Geiselbrecht of NewOS, Danger and BeOS fame and Brian Swetland of
BeOS fame as well? Interesting.

~~~
swetland
I did also work on this Android thing that shipped on a few phones over the
years, as well as on Danger/HiptopOS.

(Not that I'm not proud of my BeOS work, but that was almost 20 years ago
now...)

Travis should get credit for work on iOS and WebOS too, if we're keeping
score, I suppose!

~~~
cm3
Hehe, sure, and you could say Android is HiptopOS-the-next-generation. FWIW,
I've also omitted Travis's Jawbone work. I mean, it was very public where
Travis worked after Be, but I didn't really know what you have been up to,
sorry that I didn't know more.

BeOS stands out to me, and I honestly don't care how long ago it was. WebOS
was nice, but Android and iOS don't even register on my personal radar of cool
tech. I hope you're not offended by that. For instance, while it was possible
to do low-latency audio on BeOS in 1998, it's only possible with a lot of
trickery on Android. You can do low-latency audio on Linux and Windows too,
but again it needs special tooling and config, though not as hard as on
Android's Java-based stack.

Think of it like this: people will remember artists for certain work during
specific periods because it touched them in a special way. BeOS was that
during my formative years, and you could say it was the Amiga of the 90s.
Sadly, there's nothing that replaces the innovative features of it, even
though we've improved other parts of the stack.

It's just such a shame that BeOS is locked in some IP locker in Japan (Access
Ltd) now.

~~~
swetland
Not at all offended. BeOS did a lot of neat stuff and was ahead of its time in
many ways. It had its warts too and sadly did not survive, though the Haiku
folks have been working hard to re-create it over the years. Much of that has
surfaced in other platforms since then (node monitoring and a true device
filesystem were big features of BeOS I liked a lot that are available in Linux
today, for example).

BeOS got me out on the west coast and doing OS development for a living. I
learned a ton of stuff while working at Be and got to work with a bunch of
amazing people (some of whom I still work with today).

~~~
orion77
Pink = mobile, Purple = PC

Warm?

------
fixmycode
I remember a post earlier today about how open source projects needed better
marketing. prime example. I had to dive in to know what was the project all
about...

~~~
aiyodev
The problem isn't marketing. It's culture. While there are many benefits to
free and open source software it encourages a take-it-or-leave-it attitude
where software is released that's user unfriendly, full of bugs, and has
little to no documentation. If someone dare ask about a problem they are
having, often the closest thing to help they receive is "Why didn't you just
use [esoteric Linux command]? Are you an idiot?"

~~~
jdoliner
Maybe the cultural problem is actually that people like you expect open source
projects to be like companies except that you don't have to give them money?
Most open source code is written by someone because they want it and then they
release it so others can see the code. Of course there's a take-it-or-leave-it
attitude... why would they care if you take it? They don't get anything if you
take it, you taking it was never their goal. You're just some entitled guy on
the internet who decided he wanted to use the software, had a problem and now
thinks the developer should do some free work for him.

~~~
aiyodev
That's a huge problem. Some times we end up shitty solutions to problems
because the people who wrote the software do not care to fix its bugs and
there's a lack of investment in creating better solutions because the free,
open source solutions exist. Just look at the state of version control
software.

Other times we end up with a good, expensive commercial product and a free,
crappy open source product with a huge gulf in quality and price between.
Examples: Photoshop and GIMP, MS Office and OpenOffice.

~~~
jdoliner
You're always going to end up with shitty solutions to some problems. Making
open-source projects good requires several people to devote their lives to it.
Very few projects achieve critical mass and all the other ones languish in
obscurity. There's always going to be way more failed projects than successful
ones. If you consider their existence a huge problem in open-source then it
seems the only fix would be to stop trying. I don't think crappy solutions
dissuade people from making better ones, if anything all they do is cause
people to think: "These guys obviously got nowhere with this project and I
don't see what I'm going to do better." But given the amount of duplication in
open-source I don't think people really even think that either. It's just that
they attempt to make a better version and fail leaving the world with another
shitty project. Or, in rare cases they actually succeed and we do wind up with
something great. But we wouldn't ever get there if we didn't make 10 of those
"shitty solutions" along the way.

------
pavlov
_> Pink + Purple == Fuchsia (a new Operating System)_

Pink [1] and Purple [2] were both Apple codenames for operating systems.
Probably not a coincidence, but I don't see an obvious connection...

[1]
[https://en.wikipedia.org/wiki/Taligent#Pink_and_Blue](https://en.wikipedia.org/wiki/Taligent#Pink_and_Blue)

[2] [http://www.phonearena.com/news/Did-you-know-that-the-
codenam...](http://www.phonearena.com/news/Did-you-know-that-the-codename-for-
the-original-iPhone-was-Purple_id57876)

~~~
mckillop
Purple - A system with high performance graphics, low-latency input, and a
beautiful UI.

Pink - An incredibly modular system for developers and users.

If you hang out on #fuchsia long enough you will realize that we are all a
bunch of OS nerds that have worked on many, many systems in the past (BeOS,
ChromeOS, Android, webOS, QNX, DangerOS, iOS, MacOS, ...).

~~~
pavlov
That explains it. Thanks, congratulations on the release, and welcome to HN!
:)

------
helloworld517
Hosted on
[https://fuchsia.googlesource.com/](https://fuchsia.googlesource.com/) is what
looks like an early in development operating system.

Mirrored on Github where it's described as Pink + Purple == Fuchsia (a new
Operating System)

The kernel component 'Magenta' reveals it "targets modern phones and modern
personal computers with fast processors, non-trivial amounts of ram with
arbitrary peripherals doing open ended computation." [1]

[1] [https://github.com/fuchsia-
mirror/magenta/blob/master/docs/m...](https://github.com/fuchsia-
mirror/magenta/blob/master/docs/mg_and_lk.md)

------
kevin_thibedeau
> It is good alternative to commercial offerings like FreeRTOS [1]

FreeRTOS is GPL with an exception for static linking making it effectively
free if you make no modifications. There is, however, an onerous clause
prohibiting the publication of comparative benchmarks. [2]

[1]
[https://fuchsia.googlesource.com/magenta/+/HEAD/docs/mg_and_...](https://fuchsia.googlesource.com/magenta/+/HEAD/docs/mg_and_lk.md)

[2] [http://www.freertos.org/license.txt](http://www.freertos.org/license.txt)

~~~
emmelaich
There doesn't seem to be much point to that benchmark clause.

If it's GPL the source is effectively mine to do what I like.

I could make a trivial change to the source (or not perhaps), and call the
result a FreeRTOS derivative and publish my derivative's benchmarks.

~~~
slavik81
No, you couldn't because it's not GPL. It's a license that is nearly identical
to the GPL, but slightly different.

I think that added restriction actually makes it GPL incompatible, and
disqualifies it from being an actual open source license.

~~~
cyphar
> No, you couldn't because it's not GPL. It's a license that is nearly
> identical to the GPL, but slightly different.

Then they actually are not allowed to call it the "GNU General Public License"
(or in fact, they are not allowed to modify the license terms). It's the first
condition in the license text of the GPL, I'm surprised their lawyers didn't
notice that little chestnut.

~~~
slavik81
You clearly have a better understanding of this issue than I do.

My reading was that they were calling theirs the "FreeRTOS open source
license", and it just referenced the GPL.

~~~
cyphar
Hmmm. I'm not sure what the FSF's opinion on it would be. Since they don't
call it the GPL (I must've skipped over that part) then they might be in the
clear -- though they're still modifying the license text by prepending
restrictions to it that make the rest of the license text contradictory.

~~~
pfalcon
I'm very glad to have found this discussion, as I have concerns (as expressed
above) with FreeRTOS for some time. I would be really interested what FSF
would say too. cyphar, emmelaich, slavik81, et al. - would anyone of you be
interested enough in this case to actually try to follow with FSF/related
parties? Please reply here if you're interested, or feel free to get in touch
at pfalcon-at-users.sourceforge.net.

~~~
cyphar
I emailed RMS. His response was that he will investigate it. If it becomes a
thing there'll probably be a post on HN describing what went down.

~~~
pfalcon
Thanks for response cyphar, and thanks for taking an action. And glad to hear
RMS reads email and even replies, I'd think one would need to chase FSF's
legal advisers to bring up this matter.

------
mcirsta
The only thing that really bothers me with this new OS is that the kernel is
no longer GPL. With a GPL kernel like Linux we had a chance of getting the
kernel source code ( some companies don't care if it's GPL anyway ) for our
devices but if it's Apache or BSD good luck with that.

~~~
ocdtrekkie
I suspect that's intentional. Google seems to prefer Apache-style licensing,
as that's what they used with Android. By not relying on the Linux kernel,
they get to avoid the whole copyleft kerfuffle.

------
colemickens
Written in C. What a shame.

edit: Thank you to all of the repliers, I had no idea that most OSes were
written in C. Er, actually, I'm more than well aware of that fact and I'm
familiar with the number of CVEs that have occurred over the years because of
the lack of memory safety involved in that C code.

Sorry, I simply don't get the appeal of writing more operating systems and
network-exposed code that isn't written in a safer language. Say like Rust;
see Redox.

~~~
oshepherd
I love Rust immensely, and it is perhaps my favorite programming language as
of late.

However.

This is a microkernel. There is very, very little code inside a microkernel
which, if written in Rust, would not end up inside an unsafe block. You are
building the safe abstractions here; that code is inherently unsafe.

You could use Rust as a C replacement, but it is a worse C than C, and unsafe
rust contains more perils (i.e. UB) than C.

~~~
steveklabnik
Redox is microkernelish, and used to have a lot of unsafe, but has cut it down
significantly. You'd be surprised :)

That said, this is pretty much an open research question at this point, so
you're right to be skeptical.

(I would also argue that unsafe Rust has more _unspecified_ behavior than C,
but not more undefined behavior, but until we get those semantics truly nailed
down, can't say for sure. See above "open research question" comment)

~~~
oshepherd
I took a quick peek at the redox source code and found kernel mode audio and
network drivers. This is not a microkernel.

As for UB: Maybe it has less, but that which exists (e.g. noalias on mut refs)
is very dangerous.

~~~
steveklabnik
Yes, they're in the middle of some refactoring stuff; they had to put some
things back in the kernel. Should be back out when they're done.

------
fredgrott
Its a new RTOS...

Basically that means more than just cell phones as you have embedded systems
in vehicles that use RTOS, watches, medical devices, etc.

Its the operating system that runs the baseband cpu/chip other wise known as
the BaseBandProcessor.

~~~
helloworld517
Is it? I'm not so sure. Certainly the presence of LittleKernel, a lightweight
real-time kernel suggests it's an RTOS but that kernel is wrapped by something
called 'Magenta' which says "Magenta targets modern phones and modern personal
computers with fast processors, non-trivial amounts of ram with arbitrary
peripherals doing open ended computation." [1]

[1] [https://github.com/fuchsia-
mirror/magenta/blob/master/docs/m...](https://github.com/fuchsia-
mirror/magenta/blob/master/docs/mg_and_lk.md)

------
bobajeff
Does anyone have an idea of what kind of technical problems this is trying to
solve?

It sounds like it's trying to be a RTOS for phones and modern hardware. But I
know there has to be more to it than that.

------
lwis
There's a distinct lack of information in their repos README's.

------
merb
Actually this compiles pretty easy. It however only runs on the provided qemu.
And actually without adding some user space tools you only can use kilo which
is akward to handle under a MacOS terminal :( But it's really really easy to
setup and even integrate userspace programs. kind of extremly simple to do
useful stuff on it.

~~~
mckillop
It runs on some Broadwell and Skylake hardware. Docs are coming for
[http://www.acer.com/ac/en/US/content/series/switchalpha12](http://www.acer.com/ac/en/US/content/series/switchalpha12).

~~~
merb
actually I don't have had a Broadwell / Skylake which I can play with. I have
a MacBook Pro 2013 Late (Haswell). But I wouldn't try out something on my
production laptop anyway ;)

I also have a two Xeon Sandy Bridges lying around, but I didn't tried em, but
I guess even with some changes it would run on it. I just didn't had time,
after it compiled it already was 2 o Clock at night.

~~~
swetland
It will likely boot on earlier Intel platforms, though some tinkering may be
necessary. The focus has been on Qemu and on some modern UEFI based systems
(and the latter booting with gigaboot20x6, also part of the Fuchsia repos).
Debugging early boot / bringup issues is massively easier if the machine has a
standard serial port.

------
zfrenchee
Put Fuchsia and Android green on a color wheel. I dare you.

~~~
antod
Heh. As a young kid, "pink and green" was how I'd describe how I felt to my
parents when I was nauseous.

(they still 'bring that up' 40+ yrs later)

------
merb
Apache2 and MIT. Sounds interesting

------
united893
Would someone most kindly provide a VM?

~~~
zbowling
It's fairly easy to build one on Mac and Linux.

~~~
united893
Not sure why I'm being down voted here.

Its nontrivial to build it. I see the developers saying it's got a beautiful
UX, and I'd love to play around with it, but Not everyone can devote as much
time.

------
dart_user
>> It seems like the intention is to use Flutter [1] as the UI layer.

Flutter already ready for use? If Flutter is not ready for use then how it can
be used?

~~~
mckillop
There are people using it already. Inside and outside of Google.
[http://flutter.io/](http://flutter.io/)

~~~
afsina
Probably you mixed Flutter with Dart.

~~~
mckillop
Nope. I also don't think that our statements are at odds with each other.
Flutter isn't done yet but that isn't preventing a lot of folks from using it
for real work.

------
lotsoflumens
I'm (not) eagerly awaiting the day when some IoT thing "Fucks ya".

------
whyagaindavid
No screenshots?

~~~
swetland
Not terribly exciting, but here's a shot of virtual console 0 with the tail
end of the boot log on an Acer Switch Alpha 12:
[http://i.imgur.com/LqDRoyG.jpg](http://i.imgur.com/LqDRoyG.jpg)

------
aezell
I'm working on a Twitter client that only runs on this OS. Wait a sec... Oh, I
see. Time machine was NOT set to 2010.

Working on a Pokemon GO client that only runs on this OS.

~~~
zedadex
Twit Plays Pokemon (GO)? :)

(no slur intended)

------
shankardelta
Fuchsia = deep mind + Ai

(Getting to there Ultimate goal) we can also expect updated Google glass too

------
vacri
Well, if it takes off, it'll have the side-effect of getting more people to be
able to spell 'Fuchsia' correctly...

~~~
hinkley
Easy to remember if you know that fuchsia is named after a German botanist by
the name of Leonhart Fuchs.

(Lionheart Fox, how badass is that name?)

~~~
vacri
It's a hell of a lot classier than the mnemonic I currently use: "trying to
spell fuchsia really 'fucks ya'"...

Thanks!

------
hackaflocka
I consider myself fairly tech savvy, and have done a little programming here
and there.

But from the linked page I couldn't figure out where any of the documentation
of this "thing" is, nor how to install it, nor what platforms it's for.

Was it just me?

~~~
abarth
Instructions for getting and building the code are here:

[https://fuchsia.googlesource.com/manifest/+/master/README.md](https://fuchsia.googlesource.com/manifest/+/master/README.md)

It runs on arm, arm64, and x64.

~~~
arprocter
I tried the Ubuntu instructions on a Debian box but it errors out with:

fuchsia/.jiri_root/tmp/src/v.io/x/lib/cmdline/cmdline.go:236: undefined:
os.Unsetenv

I suspect it is because the version of go in the repo is too old, I tried
manually installing the newer version but still no joy

------
HoopleHead
Well, it may be difficult to fathom what this project is all about but, at
least, I've learned one thing. I've been spelling FUCHSIA wrong all these
years. I always thought it was FUSCHIA.

[As I have several growing in the garden, this is an important development]

------
empressplay
-

~~~
desdiv
That's basically the non-endorsement clause from the BSD license. Nothing
unusual about that.

~~~
cpeterso
The license is not unusual. What _is_ unusual is that Google appears to be
writing a new mobile operating system. Is this someone's 20% time project?
What is the use case for Google?

~~~
evv
Google needs an OS that works better for realtime applications like VR/AR and
robotics. Note how they spelled out how it is designed for a non-trivial
amount of RAM. This is in contrast to the tiny hardware that a realtime OS
would typically run on.

Personally, I'm hoping that this is a cleaner foundation for Android that we
can all use to build more advanced AR and robotics applications.

~~~
erelde
I'd like to see another big player in the os market. Something really new, not
based on UNIX (don't get me wrong people...).

Just for the sake of diversity. And maybe the illusory desire of a clean
slate.

------
thekevan
I have not looked in to this and don't have expertise, but my first split
second thought was "how are they going to keep up with security exploits?" Sad
when my first thought it that someone's going try to steal from people using
it.

