タグ

ブックマーク / udzura.hatenablog.jp (15)

  • RustでBPF CO-RE - とりあえずビルドしてみるの巻 - ローファイ日記

    2020年は色々やったんですが、不甲斐なさも残りました。2021年も頑張ります(1行で去年の総括と今年の抱負)。 で、RustとBPF CO-RE、2つのsota(2020年末に覚えた言葉の一つ) をブログに書いて気炎を上げていきたい。 (はじめに: 半分自分メモのつもりなんです! という言い訳をしておきます。認識や用語など間違いがあれば突っ込んで...) BPF CO-RE、コレってなんですか itiskj.hatenablog.com 上記記事に書いてある通り(さらに言えば Why We Switched from BCC to libbpf for Linux BPF Performance Analysis | PingCAP の通り)、BCCのプロダクション利用には、コンパイラやヘッダファイルなどたくさんの依存、実行時にコンパイルをすることによるオーバヘッドなど多くの問題があった

    RustでBPF CO-RE - とりあえずビルドしてみるの巻 - ローファイ日記
    y_uuki
    y_uuki 2021/01/06
    うづらさん、やっていってる。libbpf-toolのCのツールをワンバイナリにしたい動機から始まって、lddの結果をみるかぎりはワンバイナリでないのは、どう理解したらいいのかな。
  • WSA研究会 第7回 でCRIUとMiehistöの発表をしました #WSA研 - ローファイ日記

    wsa.connpass.com ふりかえります。 予稿 www.notion.so スライド speakerdeck.com デモ動画 当日時間がなく披露できなかった、今動いてるところまでのデモです youtu.be Miehistö(öはoの口でe)はもともとGrenadineという名前で、RubyKaigi 2019などで発表していたツールのアーキテクチャを見直し、拡張性などを高めたツールです。 udzura.hatenablog.jp udzura.hatenablog.jp スライド15枚目にある ように、サービス(Miehistöが管理するチェックポイント・リストア可能なデーモンの単位)とイメージの管理を独立させ、それぞれで拡張性を高めたりしています。 いただいたフィードバックなど Kubernetesで動かしたい Q: 長時間かかる計算の途中状態を保存しておけば、スケジューラ

    WSA研究会 第7回 でCRIUとMiehistöの発表をしました #WSA研 - ローファイ日記
    y_uuki
    y_uuki 2020/11/19
    うづらさんに感想書いてもらってた。
  • initのお仕事〜tiniのコードを読んでみた - ローファイ日記

    急にinitが何をしているのか、何をすべきなのかが気になったので調べてみた。一緒に600行強のinit実装であるtiniのソースコードをざっくり読んだ。この場を借りてメモしていく。 the PID 1 problem RubyコミュニティなどではPassengerで有名なPhusion社のブログに、Docker and the PID 1 zombie reaping problemという記事が掲載されている。 blog.phusion.nl ゾンビプロセスをreapしてくれないと困る SIGTERMなどでPID=1が先に死んだらその子プロセスを処理してくれないと困る みたいな内容が書いてある。詳細は読んでみてほしい。 システムコンテナ(参考)と呼ばれる種類のコンテナを作る場合、任意のプログラムをコンテナ内部のPID=1とするのではなく、上記のような振る舞いをする軽量なinitプログラムを

    initのお仕事〜tiniのコードを読んでみた - ローファイ日記
  • Linux Capability - ケーパビリティについての整理 - ローファイ日記

    Man page of CAPABILITIES を読んで自分なりに整理する。メモ気分で書いているので言葉足らず/用語が曖昧 のところがあればご指摘ください。 3つのケーパビリティセット Inheritable execve(2) (以下、単にexecveと呼ぶこともある) の前後で引き継がれるケーパビリティ Permitted 実効ケーパビリティセットに追加することができるセット。ここから落ちたケーパビリティはどう頑張っても実効状態にできない Effectve 実効ケーパビリティセット。実際にそのスレッドで利用できるケーパビリティの集合 Permittedのセットの中から、実際に有効になっているEffectveのセットをピックアップするイメージ。 また、Inheritableはexecveしなければ関係することはない。 スレッドケーパビリティセット それぞれのスレッドは上述の三つのケーパ

    Linux Capability - ケーパビリティについての整理 - ローファイ日記
  • straceがどうやってシステムコールの情報を取得しているか - ローファイ日記

    興味があって調べていたら、少しだけ分かったのでまとめておきます。当然間違った箇所もある、あと考慮が漏れている箇所もあるかと思いますのでツッコミをお願いします… ptrace(2) システムコール strace の核となるシステムコールは ptrace(2) である。ptrace(2)を用いることで、あるプロセスを別のプロセスから監視し、シグナルごとに停止してレジスタやメモリの状態を観察したり変更したりできる。gdbのようなデバッガのブレークポイント、あるいはまさにstraceのような目的で利用される。 大まかな利用方法としては、親プロセスの ptrace(PTRACE_ATTACH, pid, ...) (または子プロセスの ptrace(PTRACE_TRACEME, 0...))によりトレースが開始し、wait()などで停止を待ってから様々な設定を親から送り、 ptrace(PTRAC

    straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
  • 第9回フクオカRuby大賞を受賞しました - ローファイ日記

    www.digitalfukuoka.jp 去年より開発している、mrubyでコントロールできるLinuxコンテナランタイム Haconiwa で、第9回フクオカRuby大賞・県知事賞をいただきました。 写真は受賞決定直後の様子です。 今日の福岡Ruby大賞で @udzura さんが大賞で100万円とったという速報とともに送られてきた写真見て「うづらさん怒られてるの?」ってslackに書いた自分の書き込みがツボって仕事にならなかった。おめでとうございます! #udzura_sushi pic.twitter.com/7zGKUyvj5K— 松 亮介 / まつもとりー (@matsumotory) 2017年3月1日 Haconiwaの開発にあたって 去年の振り返り で書いた気もするんですが、そもそもの大きなきっかけとして福岡開催された 第9回 コンテナ型仮想化の情報交換会@福岡 の存在が

    第9回フクオカRuby大賞を受賞しました - ローファイ日記
    y_uuki
    y_uuki 2017/03/22
    もううづらさんのほうが遥かにコンテナに詳しくなってしまった “勉強会で初めてお会いし、またスライドで自作コンテナの世界に誘ってくださった id:y_uuki さんに感謝します。”
  • Linuxプログラミングインターフェースを読んだ(一周目) - ローファイ日記

    読みきった。一周目の所感を書く。 Linuxプログラミングインタフェース 作者: Michael Kerrisk,千住治郎出版社/メーカー: オライリージャパン発売日: 2012/12/01メディア: 大型 クリック: 14回この商品を含むブログ (7件) を見る モチベーション ぼくは、小さい会社でWebサービスの開発もしつつLinuxのサバ管も少ししつつ、という人間だったので、Linuxに開眼して真髄を会得したい、という欲求が長らくあった。例えば青木さんのであったり、なるほどUnixであったり。 ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 作者: 青木峰郎出版社/メーカー: ソフトバンククリエイティブ発売日: 2005/07/27メディア: 単行購入: 35人 クリック: 450回この商品を含むブログ (150件) を見る tatsu

    Linuxプログラミングインターフェースを読んだ(一周目) - ローファイ日記
    y_uuki
    y_uuki 2017/03/07
    すごい
  • 2016年をまとめる - ローファイ日記

    前回の記事で2015年までの振り返りを振り返るなどしたので、いよいよ今年を振り返ろうと思う。割とお仕事寄りで振り返る。 udzura.hatenablog.jp 人間たちへの研修との関わり ペパボの新卒研修はおかげさまで一定の評判を得ているようだが、一環として5月に「福岡研修」というものを行う。今年はその取りまとめをした。 これはその時に行った海です。 www.instagram.com 「番長」という漠然とした立場でかかわったが、その実態は: 研修のゴールを決め、各メニューの大枠を考え、効果を測定するプロダクトオーナー的何か さらにメニューの各枠について福岡支社の人々を巻き込み、指示を出してるくってもらうプロジェクトオーナー的何か さらに新卒一年目の人々の様々な思いをフォローアップするメンター的何か こうやって書くとどうやって一人でやったのかよくわからない感じもするが、結果は反省点はあれ

    2016年をまとめる - ローファイ日記
    y_uuki
    y_uuki 2016/12/31
    うづらさんのhaconiwa開発のきっかけの一つになれたらしいことが今年の成果です
  • 私のロールモデル: エンジニア立ち居振舞い番外編 - ローファイ日記

    お題「エンジニア立ち居振舞い」 pepabo Advent Calendar 2016 24日目の記事です。 割と飲みの席とか、某ポエムサービスでは語ってはいるんですが、そういえばブログで書いたことがないような気がしたので父の話をします。 実は今年の福岡での新卒研修で同じような話を若者にしていて、でもまあ、あまりに個人の話なのでとスライドも公開していなかったのですが、せっかくなので内容を加えて書き下します。 僕の父は欄間職人をやっていて、6X歳を超えるいまも自営で東三河の片隅に店を持ってやっていってるわけだけど、僕は子どもの頃からそういう背中を見て育ってきたからか、今の自分を振り返ってみると随分自分の仕事ぶりが影響を受けているなと思ったりする。 今日は、6X歳のいまも職人の父を見ていて思ったこと、あるいは直接言われたことなどいくつかをしたためてみる。 生涯、勉強すること これは僕の父の仕事

    私のロールモデル: エンジニア立ち居振舞い番外編 - ローファイ日記
    y_uuki
    y_uuki 2016/12/24
  • Haconiwa のrpm/debパッケージを配布開始しました - ローファイ日記

    packagecloud を使っております。 udzura/haconiwa - Packages - packagecloud.io | packagecloud 便利です。一応 CentOS >= 7 / Ubuntu Trusty / Ubuntu Xenial / Debian jessie で利用できると思います。 パッケージをインストールすると3つのバイナリが入ってきます。 haconiwa haconiwa コマンド体です。READMEにあるようなhacoファイルを解釈してコンテナを立ち上げたりできます。まあ 例 の通りです。debootstrapなどでルートファイルシステムを作っておためしください。 hacorb haconiwa コマンドと大体同じmgemが入った、mrubyのバイナリそのものです。個々のmgemの機能を直接組み合わせて、Rubyでプログラムを書いたりで

    Haconiwa のrpm/debパッケージを配布開始しました - ローファイ日記
    y_uuki
    y_uuki 2016/07/26
    便利
  • IPC Namespaceをまたいだプロセス間で、pipeでやりとりする。mrubyで。 - ローファイ日記

    Introduction to Linux namespaces - Part 2: IPC | Yet another enthusiast blog! こういうブログ記事があって、元記事はC言語なんだけど、これと同じことをmrubyでもやってみたサンプル。なお元記事は clone(2) だけど今回はforkしてから unshare(2) している。clone未実装なんで。。 reader, writer = IO.pipe puts " - Hello ?" p = Process.fork do Namespace.unshare(Namespace::CLONE_NEWUTS | Namespace::CLONE_NEWIPC) writer.close reader.read # blocking system "hostname 'In-Namespace'" puts " -

    IPC Namespaceをまたいだプロセス間で、pipeでやりとりする。mrubyで。 - ローファイ日記
  • haconiwaの室内楽 - Re: 自作Linuxコンテナの時代 - ローファイ日記

    haconiwa という、いわゆるLinuxコンテナに関する様々な技術を組み合わせて、自分のためのコンテナを作ることができるRuby製のツールと、そのDSLを作った。ひとまずこれぐらいはやりたいということができていそうなので、バージョン 0.2.0 としてリリースした。 github.com 使い方 ほぼREADMEの日語版。 前提として、以下のライブラリとコマンドが必要になるので入れておいて欲しい。 libcap (libcap.so.2 を FFI 経由で使う) nsenter (yum install util-linux とかそういう感じで入れる) ひとまず動かしたい場合は、rbenvなどが整った環境で、gemとして入れるのがいいと思う。多分Ruby 2.0 以降で動く気がする。 $ gem install haconiwa $ rbenv rehash そして、現在のhacon

    haconiwaの室内楽 - Re: 自作Linuxコンテナの時代 - ローファイ日記
    y_uuki
    y_uuki 2016/06/03
    “「自作Linuxコンテナの時代」を読んでめっちゃ影響された”
  • 第9回 コンテナ型仮想化の情報交換会@福岡 やっていきました - ローファイ日記

    ct-study.connpass.com お疲れ様でした。 同僚のものも含め、素晴らしい発表ばかりだった中、個人的には、tahira氏の発表が、いろいろな意味でよかったなあと思って感動していました。ホスティングカジュアルにも期待しています。 あと、 id:y_uuki さんの存在を確認し、老害として若手に倒される任務を果たしてきました。 *** 僕も発表をさせていただきましたが、間違った内容があるそうなので確認しようと思います。会場に来ていただいた皆さんには大変失礼しました。 一旦、そういう資料として公開します。 speakerdeck.com

    第9回 コンテナ型仮想化の情報交換会@福岡 やっていきました - ローファイ日記
    y_uuki
    y_uuki 2016/04/26
    大変そう “ id:y_uuki さんの存在を確認し、老害として若手に倒される任務を果たしてきました。”
  • 2015年にリリースしたやつらの紹介 - ローファイ日記

    octochan github.com curlで叩くとGitHubのIssueにコメントするやつ。Ikachan for GitHub。 Sinatraベースで、以下のように config.ru を書くと動く。アクセス制限とかは別のRack Middlewareでやってください。 require 'octochan' module PB class GitHub < Octochan::App set :access_token, '......' end class GHE < Octochan::App set :access_token, '.....' set :api_root, 'https://your.ghe.local/api/v3' end end map '/github' do run PB::GitHub end map '/ghe' do run PB::GH

    2015年にリリースしたやつらの紹介 - ローファイ日記
    y_uuki
    y_uuki 2016/01/04
    octochan便利そう
  • プログラマ念能力の系統 - ローファイ日記

    個人的に勝手に考えてる奴 放出系(フロントエンドUIとかユーザ体験とかに強い。JavaScript好き。HTML/CSS、あとゲームのクライアント作る人もここに入る 強化系(アプリケーション) ビジネスロジックをコードに落とすのが好きな人。フロント〜アーキテクトまでをつなぎ込んで形にするのが好きな人。なんかRubyとかPerlとかLL系が好き。ここは割と雑多…… 変化系(アーキテクト) データベースとか構成とか設計するのが好きな人。ER図とかデプロイメント図とか図が好きな傾向がある 具現化系(インフラ) 一度デプロイされたシステムをお守りしたり改善したりチューニングしたりする。低レイヤで頑張る人もここっぽい? 特質系(QA) いわゆるテストエンジニア。良いコードとは何かを決めてそれを確実に作れるような各種環境を整備、ツッコミをしていく人たち 操作系(アジャイル・開発手法) 特に上のフロ

    プログラマ念能力の系統 - ローファイ日記
    y_uuki
    y_uuki 2013/03/05
  • 1