Golang版のbusyboxを探していたら、gokrazyの方に行っちゃった。 [プログラミング]
最初はGolangでbusyboxがないかと探していたら、gokrazyの方に目がいってしまった件。
作ろうとしたこと。
・Golang版のbusybox
割と簡単に実装できそうだが、出来上がるバイナリがでかいのでモバイル用のユーザーランドとしてはダメかも。
・Rust版のbusybox
書き方がむずくてやる気にならない。というかすんなりコンパイルが通らなくてストレスが溜まりそう。Golangほどバイナリが大きくならないので、使うには問題なさそうな気はする。
実はGolang版のbusybox的なことは作られていて、gokrazyというものらしい。ファイルサイズもGoにしては小さくて実用に足る感じではある。しかし、先にやられてしまうとはなぁ。人が考えることは大体似たようなものではあるのだな。なんかラズベリーパイに使っているところを見るとなかなか見込みはあるようである。
https://qiita.com/tetsu_koba/items/aa2d245a61db98299a89
ん?よく見たらBusyboxのような部分は含まないらしい。ユーザーランドという名前に騙された。よく考えるとユーザーランドという呼び名は結構あいまいに使われている気もするな。カーネルに対するユーザーランド的な。
ユーザーランドという言葉を調べてみると、カーネル以外のすべてみたいなことが書いてあった。基本的にカーネル以外の実行環境のことを言うらしい。Linuxカーネル以外全部じゃん! 結構いい加減な分け方なんだけど、実際そうなんだから仕方がない。
上のサイトを見ていると「libc や busybox のコマンドを含んでいない」とあるので、ログインして何かできる状態ではないようである。そもそもbusybox自体かなり限られたユーザーランドであるので、gokrazyを入れただけでは何もできないんじゃないかと思われます。
カーネルモジュールを含んでいない、ということなので、カーネルの一部ですらない。結局何やってるんでしょうね…。initとかの作業をしているみたいですが、initはカーネルの中身ではなかったんだ…。
https://www.slideshare.net/tetsu.koba/linuxinitgolang
やはりshさえも入っていなかった。これは本当に特定通信をやり取りするだけのもので、シェルに入って云々というものではなかった。ということは、立ち上げてそれ以上手を入れることができないような状態みたいですね。ラズパイのコンソールがどうなのかは知らんけど。
カーネルモジュールのロードもできないし(スタティックに組み込めという話)、デバイスの抜き差しすらできない(uvev?)。カーネルがやっていそうなところもカーネル自身が結構やっていないことも多いんかなと思ったり。こういうことをしない限りは、カーネルとの境を意識することもないわけだよね。
それと依存性とかもいろいろ関係して単体では動かないことが結構あるんやね。Golangがわりと単体で実行できるという性質を持っているけど、その他のツールが依存性をがっつり持っているので、簡単にミニマム構成にできないってことなのか。
gokrazyはGolang版busyboxではなかったのだが、goで書いたbusyboxライクなものもあるみたい。それはファイルの大きさとかどうなのかなぁ。依存性は少ないのだろうけれども。gokrazyが終わった後ぐらいには、ちょっとみてみたい気もする。というか、初めはそっちが興味があったんだけれども。
gokrazyはラズパイ依存のものみたいなので、ケースワークとしてはminimumgoの方がわかりやすいかも知れない。
https://qiita.com/tetsu_koba/items/059849c0871a7e3bd94f
ソースを見てもしんどくならない程度に短い。バイナリが小さいというのも分かろうもの。というか、Golangのネックはバイナリがデカくなるというところだと思っていたのだが、用途によってはそうでもないのですね。
gokrazyはGolang版busyboxではなかったのだが、goで書いたbusyboxライクなものもあるみたい。それはファイルの大きさとかどうなのかなぁ。依存性は少ないのだろうけれども。Goのいいところの一つはlibcなどに依存しないところなので、こういう環境の方がワンバイナリになっていていいのではないかと思ったり。まぁC言語とかでもスタティックにリンクすればいいんだろうけど、そうする人は少ないよな。
作ろうとしたこと。
・Golang版のbusybox
割と簡単に実装できそうだが、出来上がるバイナリがでかいのでモバイル用のユーザーランドとしてはダメかも。
・Rust版のbusybox
書き方がむずくてやる気にならない。というかすんなりコンパイルが通らなくてストレスが溜まりそう。Golangほどバイナリが大きくならないので、使うには問題なさそうな気はする。
実はGolang版のbusybox的なことは作られていて、gokrazyというものらしい。ファイルサイズもGoにしては小さくて実用に足る感じではある。しかし、先にやられてしまうとはなぁ。人が考えることは大体似たようなものではあるのだな。なんかラズベリーパイに使っているところを見るとなかなか見込みはあるようである。
https://qiita.com/tetsu_koba/items/aa2d245a61db98299a89
ん?よく見たらBusyboxのような部分は含まないらしい。ユーザーランドという名前に騙された。よく考えるとユーザーランドという呼び名は結構あいまいに使われている気もするな。カーネルに対するユーザーランド的な。
ユーザーランドという言葉を調べてみると、カーネル以外のすべてみたいなことが書いてあった。基本的にカーネル以外の実行環境のことを言うらしい。Linuxカーネル以外全部じゃん! 結構いい加減な分け方なんだけど、実際そうなんだから仕方がない。
上のサイトを見ていると「libc や busybox のコマンドを含んでいない」とあるので、ログインして何かできる状態ではないようである。そもそもbusybox自体かなり限られたユーザーランドであるので、gokrazyを入れただけでは何もできないんじゃないかと思われます。
カーネルモジュールを含んでいない、ということなので、カーネルの一部ですらない。結局何やってるんでしょうね…。initとかの作業をしているみたいですが、initはカーネルの中身ではなかったんだ…。
https://www.slideshare.net/tetsu.koba/linuxinitgolang
やはりshさえも入っていなかった。これは本当に特定通信をやり取りするだけのもので、シェルに入って云々というものではなかった。ということは、立ち上げてそれ以上手を入れることができないような状態みたいですね。ラズパイのコンソールがどうなのかは知らんけど。
カーネルモジュールのロードもできないし(スタティックに組み込めという話)、デバイスの抜き差しすらできない(uvev?)。カーネルがやっていそうなところもカーネル自身が結構やっていないことも多いんかなと思ったり。こういうことをしない限りは、カーネルとの境を意識することもないわけだよね。
それと依存性とかもいろいろ関係して単体では動かないことが結構あるんやね。Golangがわりと単体で実行できるという性質を持っているけど、その他のツールが依存性をがっつり持っているので、簡単にミニマム構成にできないってことなのか。
gokrazyはGolang版busyboxではなかったのだが、goで書いたbusyboxライクなものもあるみたい。それはファイルの大きさとかどうなのかなぁ。依存性は少ないのだろうけれども。gokrazyが終わった後ぐらいには、ちょっとみてみたい気もする。というか、初めはそっちが興味があったんだけれども。
gokrazyはラズパイ依存のものみたいなので、ケースワークとしてはminimumgoの方がわかりやすいかも知れない。
https://qiita.com/tetsu_koba/items/059849c0871a7e3bd94f
ソースを見てもしんどくならない程度に短い。バイナリが小さいというのも分かろうもの。というか、Golangのネックはバイナリがデカくなるというところだと思っていたのだが、用途によってはそうでもないのですね。
gokrazyはGolang版busyboxではなかったのだが、goで書いたbusyboxライクなものもあるみたい。それはファイルの大きさとかどうなのかなぁ。依存性は少ないのだろうけれども。Goのいいところの一つはlibcなどに依存しないところなので、こういう環境の方がワンバイナリになっていていいのではないかと思ったり。まぁC言語とかでもスタティックにリンクすればいいんだろうけど、そうする人は少ないよな。
タグ:Golang
Twitterまとめ投稿 2021/04/17 [Twitter]
carbonhydrat献血できる体は価値があるんだけど、ずいぶん前に自分が献血を使う時にその恩恵は受けられなくなっちゃったんだよね、たぶん。自分のために献血してた人だっていたはずで、それをふいにする仕組みはどうかと思うんだけど。献血は売血じゃないんだし… https://t.co/Fwue020mX204/16 08:59 carbonhydratデーブ・スペクターのツイートのリプライが駄洒落ばかりでキツいw04/16 09:02 carbonhydrat筑波大の授業DBがメンテ、困った新入生が代替ツールを“爆速開発” その背景を本人に聞いた(2/2 ページ) - ITmedia NEWS https://t.co/pAJ2Frht4l ツイッターで見てたけど詳細はこういうことか。… https://t.co/JmCVAcdb6504/16 10:01 carbonhydrat中華ウイルスでいいやんとずっと思っていたが、確かに英国とかブラジルとか名前使ってるんだから、元となった中国の名前を使うのはもっともすぎるとは思う。 https://t.co/Q2hi0C4YAy04/16 10:03 carbonhydrat自民党は非常事態宣言を解いたけど、「まんぼう」で実質続けているのも同じだ。そういう意味では、自民党政治の敗北と言えるし、そういう状態でGoToがなんだとか言っていた二階の政治生命が問われて当たり前の事態。非常事態宣言にしたって政治的にはほとんどなんもしてないんだけどな。04/16 10:20 carbonhydratRT @engadgetjp: iPhone 15(仮)はやはり大改良機に? 画面下Face IDに望遠性能大アップとのアナリスト予測 / 04月15日 03:30 PM #engadget日本版 https://t.co/GKbJMYRyqV04/16 10:21 carbonhydratひろゆきさん「読解力のない人は、ゆたぼんさんのお父さんが書いてることが正しいと思っちゃうんですよ」今回の論争について動画で語る | https://t.co/xklZgBWb6k @getnewsfeed ゆたぼんパパもひろゆきも悪人というところは共通している04/16 12:21 carbonhydratmvnoというかmineo。昼休みめっちゃ遅くて厳しい。テレワークだと気付かないが久しぶりに遅いのを味わった。04/16 12:40 carbonhydrat痛みや疲れの原因となる癒着した筋膜を解きほぐす。筋膜リリースガン「O'Yeet NEX」 https://t.co/3BFHpLQLQX @engadgetjp 水注射で筋膜剥がしするのはやってみたい気がする04/16 12:58 carbonhydratリアルゴールドはカフェイン入ってないのか~。眠気には効かないのな。04/16 15:16 carbonhydratRT @marei_de_pon: 先日のQJ webの「陰謀論の効用」の話、文春オンラインさんに転載していただきました! そう、問題の核心は「正しいか嘘か」「信じるか否か」ではなかったりするのです。 #文春オンライン https://t.co/plFYXlhAtv04/16 15:19 carbonhydratRT @_pseudoctor: 【週間PseuDoctor】【震災】【社会】「菅政権は処理水の海洋放出を決定 https://t.co/O5Udq6Nu8F 」:菅政権は色々とダメダメな所ばかりだし、全く遅きに失した感はあるが、それでもこれは英断と言えよう。そこでこの機会に改…04/16 15:38
2021-04-17 05:01
コメント(0)