タグ

ブックマーク / zenn.dev/satoru_takeuchi (3)

  • Linuxカーネルから見た「コマンド名」

    はじめに Linuxを使っているみなさんは普段からLinux上で様々なコマンドを実行していると思います。それらを識別するときに「コマンド名」という単語を使っていると思いますが、文脈によってこの単語が意味するものは異なります。記事ではLinuxカーネルがいうところのコマンド名がどういうものかについて書きます。 一番最初に短い結論、その次に具体的な説明、そして最後にこれについて調べようとしたきっかけ、およびその後の調査プロセスについて書きます。 結論 Linuxカーネルから見たコマンド名は実行ファイル名のbasename(ファイル名からディレクトリ部分を除いたもの)の先頭15バイト カーネルのメモリ内のプロセス(正確にはカーネルレベルのスレッド)ごとに存在するtask_structという名前の構造体の中のcommという16バイトのフィールドにNULL終端文字列として格納されている カーネルの

    Linuxカーネルから見た「コマンド名」
    S0R5
    S0R5 2022/09/04
  • Kubernetesのつらいところ

    はじめに 記事はKubernetesの嬉しいところではなくてつらいところについて書きます。Kubernetesを少しは触ったことがあって基礎的な用語がわかるくらいの人であれば読めると思います。 Kubernetesのよく言われる売り文句は「Kubernetesを使うと自分でぽちぽちコマンドを叩かなくても、あるべき状態を宣言しておけば後はKubernetesが勝手にその状態になるように保ってくれるのですごく運用が楽」でしょう。これはその通りで自分もKubernetesのおかげで楽をしているなあと感じることがかなりあります。 しかし、何年も実際に使い込んできた経験からいうと、前述の売り文句には「大体の場合は」という但し書きが付きます。では「大体は」じゃないときにどうなるかというと、つらくなります。ここからはどんなときにどんなふうにつらいのかを簡単な例を使って説明します。 冗長度を自動回復して

    Kubernetesのつらいところ
  • ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)

    記事は書きかけなので内容(タイトルすらも)は随時書き換わっていきます。ドラフトのうちは内容の正確性や文書全体としての整合性についても荒っぽい部分が多々あります。ご容赦ください。 はじめに 記事はソフトウェア開発者がハードウェアに近い低レイヤといわれる領域に入門するとき、とくにアセンブリ言語に出会ったときにつまずきがちなことを紹介します。主な対象読者はJavaScriptPythonなどのスクリプト言語などによるアプリ開発からソフトウェア開発に入った、それより下のレイヤになじみのない人です。 筆者は常々アセンブリ言語は技術的にものすごく難しいわけではないものの、学習につまずく人が非常に多いという印象を持っています。その主な原因の一つは、みなさんが普段慣れ親しんでいる人間に使いやすいように作られた高級プログラミング言語(以下高級言語)と、機械に解釈させやすいように作られているアセンブリ言

    ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)
  • 1