タグ

ブックマーク / valinux.hatenablog.com (8)

  • 新Linuxカーネル解読室 - netfilterにおける排他制御 - VA Linux エンジニアブログ

    Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 1. はじめに 1.1. RWロックとRCUのおさらい 2. netfilterについて 2.1. netfilterのデータ構造・実装 2.2. ルールの参照 2.3. ルールの追加・更新 3. RWロック・RCUの比較 3.1. RWロックで保護した場合 3.1.1. 競合区間の保護 3.2. RCUで保護した場合 3.3. 更新処

    新Linuxカーネル解読室 - netfilterにおける排他制御 - VA Linux エンジニアブログ
  • ローカルLLMとRAGで自分の外部記憶を強化しよう - VA Linux エンジニアブログ

    はじめに 自宅PC編 会社サーバ編 感想等 執筆者:佐藤友昭 ※ 「ディスアグリゲーテッドコンピューティングとは何か?」連載記事一覧はこちら はじめに 作業ログや検討メモ、参照した定型論文や書籍、ネット上の記事、視聴した講演やウェビナーのメモ等、日常を記録する情報は日々増えていく。これらの情報はできれば後に役立てたいと思うが、筆者の場合、なかなか上手くいかない。自分の外部記憶を紐解いてみると、記録したことすら忘れてしまっている項目が大半である。稿では、ローカルLLMとRAGを用いて自分の外部記憶にいろいろと質問できるようにする方法を入門的に紹介する。決してベストプラクティス的な内容ではない。 自宅PC編 まずは、普段自宅で使用しているLinux PCを実験台として使えそうか試してみてから会社のサーバに適用してみることにする。 第一の要件は、ローカル環境で動作することである。情報の性質によ

    ローカルLLMとRAGで自分の外部記憶を強化しよう - VA Linux エンジニアブログ
  • 新Linuxカーネル解読室 - ソケットインターフェース(データ構造と概要編) - VA Linux エンジニアブログ

    Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト稿では、旧版第21章で解説されていたソケットインターフェースについて、カーネルv6.8のコードをベースに主にデータ構造を中心に解説します。 はじめに ソケットの実体と概要 ソケット操作関数の実装 ファイル操作関数によるソケット操作の実装 次回予告: ソケット生成編 執筆者 : 須田 哲志、稲葉 貴昭 ※ 「新Linuxカーネル解読室」

    新Linuxカーネル解読室 - ソケットインターフェース(データ構造と概要編) - VA Linux エンジニアブログ
  • Linuxカーネル解読室 再び - VA Linux エンジニアブログ

    Linuxカーネルコード解析プロジェクト立ち上げ Linuxカーネル成長の歴史 カーネルの大きさ バージョン番号 SCM導入 カーネル機能の変遷 執筆者 : 高橋 浩和 ※ 「新Linuxカーネル解読室」連載記事一覧はこちら Linuxカーネルコード解析プロジェクト立ち上げ 弊社内にて若手技術者が中心となり、最新のLinuxカーネルコード全体を読み解くプロジェクトが進行中です。 解析したコードのうち興味を惹かれたもの、重要そうなものを中心にブログ記事にまとめていく予定です。 詳解LinuxカーネルやLinuxカーネル2.6解読室を執筆していたころよりLinuxカーネルは大きく膨れ上がっています。 どこまで辿り着けるかは分かりませんが、気長にお待ちください。 対象Linuxカーネルのバージョンは6.8 ブログ執筆中に興味深い機能が取り込まれたら、より新しいバージョンのカーネルについて解説する

    Linuxカーネル解読室 再び - VA Linux エンジニアブログ
    fumikony
    fumikony 2024/06/14
  • Qemuのしくみ (の一部) - VA Linux エンジニアブログ

    1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション 1.2 QemuのCPUエミュレーション 1.3 Qemuのスレッド 2. 追加のI/OスレッドとAioContext 2.1 追加のI/Oスレッド 2.2 AioContext 2.3 Big Qemu Lock 3. AioContextの各種イベント処理 3.1 AioHandler 3.2 event_notifier 3.3 タイマー、Bottom half 3.5 スレッドプール 執筆者 : 箕浦 真 こういう 仕事をしていると、ときどきQemuの仕組みや内部動作をお客様に説明する必要があることがあるが、そういう時に「Qemuの〜についてはここを見てね」と言えるような文書があるといいなぁと思って自分で作ってみることにした。 1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション Qemuはコンピ

    Qemuのしくみ (の一部) - VA Linux エンジニアブログ
    fumikony
    fumikony 2023/01/13
  • 詳説 eBPF 概論編 - VA Linux エンジニアブログ

    1. はじめに 2. BPFとは 3. BPFで実現できること 4. BPFの仕組み 4.1 BPFプログラムを開発しClang/LLVMでコンパイルしてバイトコードにする 4.2 bpftoolでバイトコードからスケルトンヘッダを作成し、BPFアプリケーションで読み込む 4.3 BPFプログラムの結果を保存するmapを作成 4.4 BPFプログラムをカーネルにロード 4.5 イベントが発生したらBPFプログラムが実行され結果をmapに保存 5. BCCとは 5.1 BCC-Tools 5.2 BCCを使った開発 6. CO-RE 6.1 BPFプログラムをCO-RE対応する場合 6.2 CO-REの仕組み 7. おわりに 執筆者:稲葉貴昭 1. はじめに 記事は近年注目されているeBPFについて、概論編と実装編に分け解説を行います。 概論編となる今回では、以下のことを解説します。 (1

    詳説 eBPF 概論編 - VA Linux エンジニアブログ
    fumikony
    fumikony 2022/08/26
  • 詳説 eBPF 実装編 - VA Linux エンジニアブログ

    1. はじめに 2. 使用環境 3. コンパイル 4. opensnoopとは 5. opensnoop.bpf.cの解説 5.1 mapの宣言 5.2 BPFプログラムのメイン処理 5.2.1 33-68行目 5.2.2 88-124行目 5.2.3 プログラムタイプとコンテキスト 5.3 opensnoop.bpf.cのコンパイル 6. opensnoop.cの解説 6.1 ヘッダファイルのインクルード 6.2 BPFアプリケーションのメイン処理 6.3 231-232行目 6.4 opensnoop_bpf__open 6.4.1 bpf_object__init_maps 6.4.2 bpf_object_init_progs 6.5 241-245行目 6.6 opensnoop_bpf__load 6.6.1 bpf_object__create_maps 6.6.2 bpf_

    詳説 eBPF 実装編 - VA Linux エンジニアブログ
  • vmlinuxのヒミツ - VA Linux エンジニアブログ

    1. vmlinuzの怪 2. vmlinuxの入手 3. ELFファイル 4. ELFセクション 5. セクションの意味 6. Linuxのセクションとldscript 7. .cpuidle.textセクション 8. おわりに 執筆者 : 箕浦 真 1. vmlinuzの怪 Linux (カーネル) のファイル名といえば、/boot/vmlinuz-<version>だ。なんでlinux-<version>とかじゃないのだろうか。 vmの方は、これはおそらくBSD Unixのカーネルvmunixに倣ったものだろう。ベル研究所のResearch Unixを、VAXのハードウェアを生かして仮想記憶 (Virtual Memory) 機能を大幅に強化したため、vmunixとした。 zの方は、これは圧縮されていることを表す。なぜZで圧縮なのかはよくわからないが、圧縮の意味なのだ *1。 現在一

    vmlinuxのヒミツ - VA Linux エンジニアブログ
    fumikony
    fumikony 2020/09/13
  • 1