这一节我们编写第一个eggos的应用程序。
eggos是一个 unikernel,但不妨碍在里面加上功能子模块。
一些简单的命令放在app/cmd
目录下,稍微复杂一点的命令需要单独放一个目录。
第一个子程序 #
打开编辑器,在app/cmd
目录下新建hello.go
,写入如下代码:
package cmd
import (
"fmt"
"github.com/icexin/eggos/app"
)
func helloMain(ctx *app.Context) error {
fmt.Fprintln(ctx.Stdout, "hello eggos")
return nil
}
func init() {
app.Register("hello", helloMain)
}
运行 mage -v qemu
,等待终端出来之后,键入 hello
,如果能顺利输出如下内容,则证明我们的程序已经被顺利编译并运行。
welcome to eggos
root@eggos# hello
hello eggos
代码解释 #
每个子程序都有一个入口,函数签名为func (ctx *app.Context) error
,最终在init
函数里面调用app.Register
即可注册子程序,
之后就在命令行里面调用这个子程序了。
app/cmd
目录下还有很多其他子程序可以参考。