内容简介:I’m happy to announce a new ZFS boot environment manager written completely from scratch in C -In 2018 I wroteFor a summary on what a boot environment manager is, and how it can be used seemy previous post.
I’m happy to announce a new ZFS boot environment manager written completely from scratch in C - zectl .
In 2018 I wrote zedenv
, a ZFS Boot Environment manager, I’ve taken what I learned from zedenv
and added improvements in workflow, performance and reliability.
For a summary on what a boot environment manager is, and how it can be used seemy previous post.
Why the Rewrite
I had been having misgivings about writing my original implementation in Python. At the time of writing there was no libzfs library interface for python and I wrote my own “wrapper library” - pyzfscmds
- that simply called out to the zfs
binary. While the wrapper has worked, it meant a lot of extra work was done parsing string output from zfs
subcommands. Directly using the libzfs
library allows for more robust code, significantly better performance, and error handling. I was considering porting the python tool to use py-libzfs
, or writing it in C when the tool bectl
came out for FreeBSD. Seeing bectl
’s impressive implementation I was inspired to do the rewrite in C.
Plugins
Part of the reasoning behind writing the original tool in Python was to facilitate a plugin interface. Having a way to extend the codebase in key so that I, and potentially others, could write plugins for additional bootloaders without requiring them to be part of the core tool. I wanted to carry over the plugin functionality to the C tool, I felt this would be possible using dynamically linked libraries, and have implemented a similar plugin interface using dlopen
. As of now a plugin exists for the systemd-boot
bootloader, and one is in the works
for GRUB.
Contributing
zectl is Open source (MIT-licensed) and looking for contributions.
If you’d like to help out with the project, please reach out to us on GitHub , via email, or on #zectl:matrix.org .
Thanks to
- Markus Kessler who has been a big help reviewing the code, helping brainstorm, and adding improvements.
- Zach Himsel for beta-testing and feedback.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB HSV 转换
RGB HSV 互转工具
HSV CMYK 转换工具
HSV CMYK互换工具