It isn't actually terribly difficult, the most difficult part being driver support. By using Linux as a base, Google gained a lot of driver support by default, among other things like a well-known base environment.
> explain if a micro kernel makes his job easier or harder
Well, a microkernel usually has well-defined interfaces that allow drivers to communicate with the kernel, instead of these interfaces being decided by the compiler at compile-time. This in turn offers the guarantees of "ABI/API stability" that the Linux kernel usually offers to userspace programs: drivers don't need to be recompiled to work with a new kernel, so you can actually have binary drivers that continue to "work" long after the vendor stopped working on them. This also offers more room for stability guarantees (a driver that crashes can be restarted, as it's not the kernel panicking), and security (drivers don't have access to each other's data).
On the other hand, you trade a bit of performance and flexibility (from the developer's perspective) for this, by committing not to break compatibility. By now, advantages and inconvenient of microkernels vs monolithic ones are well understood and documented.
What's in for Google is mostly licensing-related: since they're making it; they are free to pick their favourite license. And I am pretty sure Google has been uncomfortable with the GPL for a while now. The same could be said about its hardware partners, and manufacturers that have to provide the source code for their drivers (when they comply at all).
Since a GPL kernel is one of the best things that happened to Android so far (allowing custom roms, open source projects, more transparency), I am extremely weary of fuschia, and looking forward to postmarketos as an alternative to android.
When I asked Tanenbaum at FOSDEM why he didn't pick L4 for Minix 3, he just got annoyed and seemed to think I was asking why he didn't just use the L4 OS (which doesn't exist) instead of creating Minix 3 - or something. In any case I didn't get a good answer. He could have created his own implementation if he wanted, L4 is just a specification with a few existing high quality implementations that prove the concept...
They made a step in the right direction with Project Treble though.
There's some discussion of it already on HN: https://news.ycombinator.com/item?id=16813796
Some advantages of the Fuchsia architecture over Linux for Android:
* Capability based system; applications only get access to objects, including files, directories, other processes, etc via capabilities, so they can only affect those objects they have been given access to directly. This is much better for security and isolation of applications.
* Userspace drivers with a stable ABI, or with the possibility of versioned ABIs. This could allow them to ship updates to the underlying system without waiting for vendors, reducing fragmentation.
I'm curious about this kernel, honestly making something new from the ground up doesn't seem like a good idea.
I wonder how much of an advantage it was for android to use linux as a kernel, but I guess it was a gigantic advantage, which let them focus on what mattered in the development of android.
Other question: any kernel/OS developer here to explain if a micro kernel makes his job easier or harder? Having the flexibility of a micro kernel seems good, but I'm not sure it's that much important.