10 ms·
Zircon Kernel, Core Drivers and Services
- mtgx 9y agoOther than using a microkernel, I'd be interested in reading in what ways Google has focused on security with Fuchsia vs Android, if at all.
- Palomides 9y agoI'd be interested in reading any sort of documentation about intent or design goals, but I can't find anything? There's a little about some aspects of it here: https://fuchsia.googlesource.com/docs/+/master/book.md https://fuchsia.googlesource.com/docs/+/master/book.md
- jitl 9y agoFuschia has a capabilities-based permissions model, as reported in https://lwn.net/Articles/718267/ https://lwn.net/Articles/718267/ That article has a good overview. The best place to read about this in the official docs is the page on filesystems [1], and the page on sand boxing [2]: https://fuchsia.googlesource.com/docs/+/master/filesystems.md https://fuchsia.googlesource.com/docs/+/master/filesystems.m... https://fuchsia.googlesource.com/docs/+/master/sandboxing.md https://fuchsia.googlesource.com/docs/+/master/sandboxing.md
- PDR36 9y agoI think at this point, we can be sure that it is optimized to show ads. 80% of the population of software engineers in this world is working on getting people to click on things and how to track people.
- angrygoat 9y agoThe docs refer to 'LK' (Little Kernel) as an inspiration for the lower levels of the design. It's another project started by Travis Geiselbrecht of NewOS fame. https://github.com/littlekernel/lk https://github.com/littlekernel/lk
- seren 9y agoI have never heard of LK before but apparently it used in Android bootloader, so it makes sense that zircon is based on it.
- tyingq 9y agoIt is more than inspired by LK isn't it? I'd seen it more characterized as a fork that evolved. For example...different, but the lineage seems there: https://fuchsia.googlesource.com/zircon/+/master/kernel/kernel/mp.c https://fuchsia.googlesource.com/zircon/+/master/kernel/kern... https://github.com/littlekernel/lk/blob/master/kernel/mp.c https://github.com/littlekernel/lk/blob/master/kernel/mp.c
- abdulla 9y agoSee: https://fuchsia.googlesource.com/zircon/+/master/docs/zx_and_lk.md https://fuchsia.googlesource.com/zircon/+/master/docs/zx_and...
- zokier 9y ago> Travis Geiselbrecht of NewOS fame To save others from bit of googling, apparently NewOS eventually became the basis for Haiku kernel, Haiku being FOSS re-implementation of BeOS. Travis also worked on some kernel stuff for BeOS, so that lineage makes some sense. Not sure if I missed anything? Also see this comment thread: https://news.ycombinator.com/item?id=12271839 https://news.ycombinator.com/item?id=12271839
- biktor_gj 9y agoLK is also Qualcomm's little kernel bootloader, it might also have something to do with that (Pdf) https://developer.qualcomm.com/qfile/28821/lm80-p0436-1_little_kernel_boot_loader_overview.pdf https://developer.qualcomm.com/qfile/28821/lm80-p0436-1_litt...
- 0xelectron 9y agoiirc he works on zircon now.
- lobster_johnson 9y agoNote: It's not a new kernel. This was previously known as Magenta, and it's now been renamed [1] to Zircon. [1] https://www.phoronix.com/scan.php?page=news_item&px=Fuchsia-OS-Magenta-Zircon https://www.phoronix.com/scan.php?page=news_item&px=Fuchsia-...
- snvzz 9y agoThat's helpful. I was trying to figure out whatever happened to Magenta. So it's just a rename.
- pjmlp 9y agoThat is most likely because Magenta now is a Tensorflow project, talk about communication inside the same company! https://magenta.tensorflow.org/ https://magenta.tensorflow.org/
- djsumdog 9y agoNow if only we knew what they hell they are for.
- lobster_johnson 9y agoFrom here [1]: "Zircon targets modern phones and modern personal computers with fast processors, non-trivial amounts of ram with arbitrary peripherals doing open ended computation." It's likely that this is what Google wants to replace Linux with on Android phones. The kernel/OS both seem to be designed to scale down to very small devices and all the way up to full GUI desktops. [1] https://fuchsia.googlesource.com/zircon/+/master/docs/zx_and_lk.md https://fuchsia.googlesource.com/zircon/+/master/docs/zx_and...
- ris 9y agoOne thought on reading those design documents... ...files?
- gue5t 9y agoFiles have awful semantics in just about every way. We should get rid of them ASAP.
- icek 9y agoI'd gladly read up on alternative concepts to file systems if you'd be so kind as to supply some searchable terms.
- jamii 9y agohttp://research.cs.wisc.edu/adsl/Publications/ibench-sosp11.pdf http://research.cs.wisc.edu/adsl/Publications/ibench-sosp11.... > We analyze the I/O behavior of iBench, a new collection of productivity and multimedia application workloads. Our analysis reveals a number of differences between iBench and typical file-system workload studies, including the complex organization of modern files, the lack of pure sequential access, the influence of underlying frameworks on I/O patterns, the widespread use of file synchronization and atomic operations, and the prevalence of threads. Our results have strong ramifications for the design of next generation local and cloud-based storage systems. > The iBench tasks also illustrate that file systems are now being treated as repositories of highly-structured “databases” managed by the applications themselves. In some cases, data is stored in a literal database (e.g, iPhoto uses SQLite), but in most cases, data is organized in complex directory hierarchies or within a single file (e.g., a .doc file is basically a mini-FAT file system). One option is that the file system could become more application-aware, tuned to understand important structures and to better allocate and access these structures on disk. For example, a smarter file system could improve its allocation and prefetching of “files” within a .doc file: seemingly non-sequential patterns in a complex file are easily deconstructed into accesses to metadata followed by streaming sequential access to data.
- zokier 9y ago
- Ajedi32 9y agoLooks like this is just a rename of the Magenta kernel: https://github.com/fuchsia-mirror/zircon/commit/f3e2126c8a8b2ff64ca6cb7818f0606ceb5f889a https://github.com/fuchsia-mirror/zircon/commit/f3e2126c8a8b...
- ungzd 9y agoBTW, this googlesource.com is probably the fastest Google website and much faster than typical website. 7.5 KB of html, 5.2 KB of CSS, tiny images and even 8.7 KB font. And no javascripts at all!
- alxndr13 9y agothe way the internet should be.
- moocowtruck 9y agodoes hn have it's version of reddit gold because i want to give it to you
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- fbnlsr 9y agoAnd it uses markdown instead of html, that's pretty neat.
- xd1936 9y agoHow does that work? Are they using CSS to render and format it?
- ehsankia 9y agoHere's the project for it, which is also on the same site: https://gerrit.googlesource.com/gitiles/ https://gerrit.googlesource.com/gitiles/
- fishywang 9y agoThere are two parts on googlesource.com, the ones without "-review" suffix (like the link in the OP) are on gitiles, and the ones with "-review" suffix are on gerrit.
- kyrra 9y agoIt's interesting the timing on this rename to Zircon going through and the Fuchsia team attempt to get Fuchsia support into Go[0]. EDIT: sounds like the rename was in the works for a while and the Go port was just holding off until it completed: > "this change has been a few months in the works..." "...I delayed this email until it was almost done." [0] https://groups.google.com/forum/#!topic/golang-dev/2xuYHcP0Fdc https://groups.google.com/forum/#!topic/golang-dev/2xuYHcP0F...
- rajathagasthya 9y agoThat's where I got the link for Zircon :) I thought about posting the Go discussion initially which is really interesting on its own.
- pjmlp 9y agoThanks for the link. > In particular, the network stack is implemented Go, so for any program to make a TCP connection on Fuchsia, we need the Go port to be working: It looks like systems programming to me. :)
- puzzle 9y agoSpeaking of unconventional system stuff in Go, Google has a Linux boot FS, which, instead of featuring the usual BusyBox, ships with an init, the Go toolchain and a source tree. The /bin replacements are symlinks as expected, but the twist is that they point to a binary that is compiled on first boot. http://u-root.tk/ http://u-root.tk/
- sanxiyn 9y agoThis reminds me of TCCBOOT.
- mastax 9y ago> The fuchsia kernel is running on GCE, with support for network and disk coming very soon. That's how I intend to run builders for build.golang.org. Wow!
- bitmapbrother 9y agoThis is part of their move to rename layers of the OS after gemstones. Zircon Zircon is the operating system's foundation: it mediates hardware access, implements essential software abstractions over shared resources, and provides a platform for low-level software development. For example, Zircon contains the kernel, device manager, most core and first-party device drivers, and low-level system libraries, such as libc and launchpad. Zircon also defines the Fuchsia IDL (FIDL), which is the protocol spoken between processes in the system, as well as backends for C and C++. The backends for other languages will be added by other layers. Garnet Garnet provides device-level system services for software installation, administration, communication with remote systems, and product deployment. For example, Garnet contains the network, media, and graphics services. Garnet also contains the package management and update system. Peridot Peridot presents a cohesive, customizable, multi-device user experience assembled from modules, stories, agents, entities, and other components. For example, Peridot contains the device, user, and story runners. Peridot also contains the ledger and resolver, as well as the context and suggestion engines. Topaz Topaz augments system functionality by implementing interfaces defined by underlying layers. Topaz contains four major categories of software: modules, agents, shells, and runtimes. For example, modules include the calendar, email, and terminal modules, shells include the base shell and the user shell, agents include the email and chat content providers, and runtimes include the Dart andFlutter runtimes.
- chc4 9y ago100 syscalls for a microkernel sounds like a lot. Is that standard? I thought the reasoning behind microkernels was for dispatching to userland processes to handle things instead of needing a lot of syscalls.
- lobster_johnson 9y agoHere's a list [1]. I count 131 syscalls. Most of them are related to hardware (PCI, timers, CPU, framebuffer), a bunch are related to logging/tracing. There's a small set that address kernel "objects" (processes, ports etc.). [1] https://github.com/fuchsia-mirror/zircon/blob/master/system/public/zircon/syscalls.sysgen https://github.com/fuchsia-mirror/zircon/blob/master/system/...
- swetland 9y agoSome more detailed info here: http://zircon.fyi/syscalls.md http://zircon.fyi/syscalls.md http://zircon.fyi/concepts.md http://zircon.fyi/concepts.md The PCI syscalls and a lot of the other DDK scaffolding stuff will be going away in time (and are not accessible to general userspace processes). I'm hopeful that we'll hit 1.0 with fewer than 100 public syscalls and hopefully not many more than 100 total.
- Animats 9y agoThe GigaBoot20x6 bootloader speaks a simple network boot protocol (over IPV6 UDP) which does not require any special host configuration or privileged access to use. It does this by taking advantage of IPV6 Link Local Addressing and Multicast, allowing the device being booted to advertise its bootability and the host to find it and send a system image to it. Uh oh. Totally insecure remote boot with discoverability. What could possibly go wrong? If this shows up in some IoT device, trouble.
- sounds 9y agoUsing GigaBoot20x6 is intended to support development / debugging. This whole project is still in a very early stage, but it seems unreasonable to assume GigaBoot20x6 will be the preferred / only bootloader when this is ready for production.
- ocdtrekkie 9y agoWouldn't be the first hacky thing done to support development temporarily. At least during one point of Fuschia development (might still be there for all I know), it took unauthenticated keyboard input over the network connection or something like that in case they broke the keyboard driver.
- abdulla 9y agoThere's zedboot too. See: https://fuchsia.googlesource.com/zircon/+/master/docs/getting_started.md#via-zirconboot https://fuchsia.googlesource.com/zircon/+/master/docs/gettin...
- swetland 9y agoVerified boot support will arrive prior to 1.0, and as an earlier reply speculated, leaving the ipv6 boot path enabled at all is a development feature.
- Animats 9y agoSomebody will build some dumb IoT device with that feature enabled.
- okket 9y agoI guess a very big German Telecom objected to 'Magenta'?
- deleted 9y ago[deleted]
- ZenoArrow 9y agoWhat is it with this open-source + patents bullshit. Why can't we just work towards abolishing software patents altogether. They hold back pushing the state of the art.
- bedros 9y agoI'm not a lawyer, but after reading the patent file, it seems to me that it only covers the kernel implementation; unlike facebook patent clause which covers everything.
- bitmapbrother 9y agoIt covers the entire Fuchsia OS.
- Nomentatus 9y agoRight, Facebook wants to be able to do anything to your sister (or IP) it wants and you can't ever sue FB, if you dare use their code. Google just wants to trade any rights you have to the specific implementation of the code you've deciding to use. They won't sue you or you them re that specific code. Not the same universal IP grab at all. On the other hand, change one iota and you have no patent grant from Google of any kind, I believe.
- riffraff 9y agoI don't get why they wouldn't just use the Apache v2 license at this point, it seems the same thing as MIT + patents grant & invalidation-on-suit.
- Nomentatus 9y agoOuch. That would be a worse patent-grab.
- TheMagicHorsey 9y agoI'm curious what the trade off is between a hard realtime kernel like LK and a kernel that only offers soft realtime guarantees. I would presume there are some costs associated with providing hard real time guarantees ... otherwise every OS would be a real-time OS right? And if there are tradeoffs, why did Google choose a hard realtime kernel to be the basis of its new OS? Since Linux and BSD seem to be fine bases for mobile OS (as evidenced by iOS/Android).
- hossbeast 9y agoIs this bad news for Linux?
- sigjuice 9y agoWhy would you think that?
- hossbeast 9y agoBecause I think that Google is a big user of, and contributor to Linux, and the fact that they are developing their own kernel probably means their participation will decline on both counts.
- wiz21c 9y agoI don't know the context very well but according to what I read, Zircon seems quite tuned for its job, so I bet it's technically superior to Linux there. So, does it mean that Linux, like any other technology, could die by obsolescence ?
- edem 9y agoFunny. I also have a program named [zircon](https://github.com/Hexworks/zircon https://github.com/Hexworks/zircon) which is a text gui library.