All Projects → PanQL → zircon

PanQL / zircon

Licence: other
从fuchsia官方目录中分离出来的zircon代码

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
RPC
45 projects
assembly
5116 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Zircon

这是从Fuchsia官方的20190715版本代码仓库中分离出来的Zircon代码,用于进行Zircon内核学习。可以通过简陋的Makefile脚本进行编译并在qemu上运行。
目前支持在ubuntu 18.04和Mac上编译运行。
一些我们关于zircon的分析放在这里,欢迎补充!

关于代码分析工具

  • 这里是适用于fuchsia仓库的文档(需要科学上网)。我们使用vscode,相关的vscode设置在仓库中的.vscode目录,希望有所帮助。
  • 解析代码依赖的compile_commands.json将会随build过程生成到out文件夹,建议先成功build再用vscode打开zircon目录。

关于编译运行

为了减小仓库体积,我们将prebuilt目录进行了大幅调整;因此运行之前请下载google预编译好的clang,解压后放到某个权限合适的位置,然后在代码的这个位置绝对目录修改为对应位置。

当前只支持在Mac OS及Linux x64上进行编译。

默认的make runmake build是针对x64架构的,如果希望编译运行arm架构的zircon,那么需要:

  • 修改out/args.gn中的legacy-image-x64legacy-image-arm64
  • 重新make build
  • make runarm

Zircon is the core platform that powers the Fuchsia OS. Zircon is composed of a microkernel (source in kernel/...) as well as a small set of userspace services, drivers, and libraries (source in system/...) necessary for the system to boot, talk to hardware, load userspace processes and run them, etc. Fuchsia builds a much larger OS on top of this foundation.

The canonical Zircon Git repository is located at: https://fuchsia.googlesource.com/zircon

The Zircon Kernel provides syscalls to manage processes, threads, virtual memory, inter-process communication, waiting on object state changes, and locking (via futexes).

Currently there are some temporary syscalls that have been used for early bringup work, which will be going away in the future as the long term syscall API/ABI surface is finalized. The expectation is that there will be about 100 syscalls.

Zircon syscalls are generally non-blocking. The wait_one, wait_many port_wait and thread sleep being the notable exceptions.

This page is a non-comprehensive index of the zircon documentation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].