OSS の開発支援や障害解析サービスなどの仕事柄、Qemu の仕組みや内部動作をお客様に説明する必要がある場合があります。そんな時に「Qemuの〜についてはここを見てね」と言えるような文書があるといいなぁと思い、自分で作ってみることにしました。
2022年10月24日から開催された KubeCon + CloudNativeCon NA 2022 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
ARMv8-A アーキテクチャでの 64bit 環境 (AArch64) でのブートプログラム作成についてまとめます。 今回のブート処理では AArch64 ステートで実行し例外レベルを EL1 にして特権プログラムの実行の準備までを行います。
OpenStack は IaaS 環境を構築するためのソフトウェア群で、簡単に AWS の様なクラウドサービス環境を作成する事ができます。本記事では OpenStack-Ansible を用いた OpenStack 環境を構築してみます。
前回の概論編では、eBPFがどんなもので、どのように実現されているかを中心に解説し、eBPFの技術要素 (BCC、BCC-Tools、CO-RE) にも触れました。 実装編となる今回は、BCC-Toolsの後継となるlibbpf-toolsよりopensnoopコマンドに着目してソースコードレベル…
近年注目されているeBPFについて、概論編と実装編に分けて解説します。 概論編となる本稿では、eBPFとは何か、eBPFで実現できる事、eBPFの仕組み、eBPFの技術要素 (BCC、BCC-Tools、CO-RE) についてまとめました。
Linux のリアルタイムスケジューリング実装である SCHED_DEADLINE の概要に触れた後、最適化問題 IAP (Incremental Assignment Problem) を核に据えて Unrelated なマルチ・プロセッサモデルでの SRT-optimality を証明した Unr-EDF をベースに、SCHED_DEADL…
2022年5月16日から開催された KubeCon + CloudNativeCon Europe 2022 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
これまで様々なvmlinux特有のELFセクションを見てきました。今回は`__ex_table`セクションを取り上げ、実際のコードがどうなっているのか、という方向からこのexception tableを見ていきます。
OAuth 2.1 について、今あるシステムやこれから作るシステムをグッド・プラクティスに沿った形にするために、OAuth 2.1 のドラフトの内容を把握してプラクティスを学んでみます。
前回記事では、vmlinuxのinitセグメントに含まれる、`.percpu`、`.init.text`、`.init.data`などのセグメントについて調べました。今回はその続きで、そのinitセグメントに含まれている`.parainstructions`、`.altinstructions`、`.altinstr_replacement`の…
前編では、NAPI とそれに関連するソフトウェア割り込みの仕組みについて解説しました。 本稿では、前回の最後に触れた通り、Linux kernel に組み込まれている、NIC をソフトウェア割り込み以外で polling するための仕組みである、Busy Poll Socket と kthre…
1年半前に投稿した「vmlinuxのヒミツ」(https://valinux.hatenablog.com/entry/20200910) の第2弾です。 今回は、コード例もなく、単にLinuxという巨象の枝葉末節をああでもないこうでもないと闇雲に撫で回してみました。
Linux におけるネットワーク受信処理で利用されている、NAPI (New API) と呼ばれる仕組みについて、実装レベルで解説します。
2021年10月11日から開催された KubeCon + CloudNativeCon NA 2021 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
自動で分散トレーシングができるライブラリ OpenTelemetry Instrumentation for Java のソースコードを読み解いて調査を行ってみました。
FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目ではUltra96-V2にPYNQ環境を構築し使える状態となりました。今回は、ボード上のLEDの点灯制御を行うオーバーレイを作ってみたいと思います。
「RISC-V用の小さなOSを実装してみよう」の連載記事第6回目となります。 前回は、指定時間だけタスクをスケジューリング対象から外す「タスクの時限待ち機能」を実現してみました。 今回は、タスクを協調動作させるための仕組みとして、セマフォによる同期機…
FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目はUltra96-V2にPYNQ環境を構築する導入編です。
「RISC-V用の小さなOSを実装してみよう」の連載記事第5回目となります。 前回は、タイムシェアリングスケジューリング機能を実装してみました。 今回は、指定時間だけタスクをスケジューリング対象から外す「タスクの時限待ち機能」を実現してみましょう。
VA Linux が昨年7月から技術ブログを始めて1年余りが経ちました。 そこで今回は、これまで公開した技術記事の紹介や、技術ブログを始めた目的、開設までの準備、運営スタイルなどについて書き留めておきたいと思います。
Intel Optane Persistent Memory を使うにあたり必要な、基本的な概念や Linux 上での使用方法などを説明します。
「RISC-V用の小さなOSを実装してみよう」の連載記事 第4回目となります。 第3回では、割り込みハンドラを動作させるところまで実装してみました。 今回は、タイムシェアリングスケジューリング機能を実装してみましょう。
「RISC-V用の小さなOSを実装してみよう」の連載記事 第3回目となります。 第2回では、複数のタスクが切り替わりながら並列動作できる仕組みを作りました。 今回は割り込みハンドラを動作させるところまで実装してみましょう。
Ubuntu のコアファイル書式が変わっている事を知り、現在の書式を司る Apport について障害情報の収集に関わる話を含め調べてみました。
「メモリセントリックアーキテクチャ」や「ディスアグリゲーテッドコンピューティング」とはどのようなものなのか、従来のアーキテクチャやコンピューティングに対してどんなメリットがあるのか、実現に向けた課題にはどんなものがあるのかを、GigaIO社製品…
「RISC-V用の小さなOSを実装してみよう」の連載記事 第2回目となります。 第1回では、boot プログラムが動くところまできました。今回は、複数のタスクが切り替わりながら並列動作できる仕組みを作っていきます。
2021年5月3日から開催された KubeCon + CloudNativeCon Europe 2021 Virtual について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
RISC-VはMIPSアーキテクチャの流れを汲むRISC CPUです。 Linux上で利用できるRISC-Vツール群も揃ってきたので、それらを使ってRISC-V用の小さなOSを実装してみようと思います。
Kubernetes v1.20 のリリースノートにおいて、CRI として Docker (dockershim) の利用が非推奨となり、v1.23 では dockershim が Kubernetes から除去されるとの予告がされています。 また、Kubernetes v1.21 のリリースノート には、kubeadm の標準の Cgrou…