Linux

新Linuxカーネル解読室落穂拾い (2)

Linuxのコードを読むと、つい細部に気を取られて本質から外れてしまうことがあります。本ブログでは「これは何だろう?」と思う部分について、深追いせず理解できる情報を提供し、コード読解の負担を軽減することを目指します。

詳解 ROS2 エグゼキューター (Executor) - 4 -

最終回となる本記事では、過去の記事では触れられなかったエグゼキューターのより高度な概念と詳細について解説します。特に、本記事のEventsExecutorに関する内容はActionの章と関連が深いため、順番に読むことを推奨します。

新Linuxカーネル解読室落穂拾い (1)

Linuxコード解析の初心者向けシリーズがスタート! 本シリーズでは、Linuxにテーマを絞り、これからコード解析に挑戦したい方に向けて"入口"となる情報をお届けします。 筆者の視点から、「ちょっと気になるポイント」や「今さら聞けない基礎知識」をやさし…

詳解 ROS2 エグゼキューター (Executor) - 3 -

3回目となる本記事では、前回までの記事で触れられなかったエグゼキューターに関する少し高度な概念や細かい内容について紹介していきます。

詳解 ROS2 エグゼキューター (Executor) - 2 -

2回目となる本記事では、`rclcpp::Executor`の実装を追っていきながら、スケジューリングメカニズムやエンティティの管理方法について紹介していきます。

OS徒然草 (10)

「OS徒然草」シリーズは今回で最終回です! 仮想化、エミュレータ、ハイパーバイザー、コンテナ技術の進化と課題についてのお話です。

詳解 ROS2 エグゼキューター (Executor) - 1 -

この連載では、ROS2のC++ APIで広く使われているにもかかわらず理解が進んでいない「エグゼキューター (Executor)」について、rclcppライブラリのソースコードを追いながらその仕組みを解説します。

新Linuxカーネル解読室の現在地

ブログ連載1周年を記念して、新Linuxカーネル解読室プロジェクトがはじまった経緯や今後の方針、および執筆の裏側についてお話します。

ROS2とは何か - コンセプトと全体像 -

ROS2(Robot Operating System 2)は、ロボット開発に必要な通信や制御、シミュレーション機能などを備えたフレームワークです。 本記事では、ROS2に初めて触れる方向けに、その基本的なコンセプトを紹介します。

OS徒然草 (9)

今回はマルチプロセッサ (MP) にまつわるお話です。

新Linuxカーネル解読室 - パケット受信処理 ~IPレイヤーにおける受信処理~

今回は、パケット受信処理 ~Ethernetドライバ ポーリング処理編~の続編として、受信パケットがIP層に到達した後の処理、特にルーティング処理を中心に解説します。

OS徒然草 (8)

今回はメモリ管理にまつわるお話です。

Asio (Boost.Asio) C++ライブラリ入門 5 - 実践編 主要クラス群とI/O機能群の紹介 -

C++の非同期IOライブラリであるAsio(Boost.Asio)の解説シリーズの最終回として、 ライブラリが提供する各種クラスやI/O機能をサンプルコードとともに網羅的に紹介します。 辞書的な活用を想定した構成となっておりますので、皆様の参考になれば幸いです。

新Linuxカーネル解読室 - タスクスケジューラ (その2) - EEVDF

17年ぶりにFAIRクラスのタスクスケジューラが刷新され、CFSからEEVDFに置き換わりました。 今回は、この新しいEEVDFに焦点を当て、「どのタスクをどの程度実行するか」というタスクスケジューラの最重要機能を解説したいと思います。 スケジューラやEEVDFに…

Asio (Boost.Asio) C++ライブラリ入門 4 - 完了トークン(CompletionToken)とasync_composeの利用法 -

本記事では、C++の非同期IOライブラリであるAsio(Boost.Asio)を解説します。 第4回では、Asioライブラリを利用する上で重要なライブラリ機能、完了トークンと`async_compose`について紹介していきます。

Asio (Boost.Asio) C++ライブラリ入門 3 -コアとなる概念-

本記事では、C++の非同期IOライブラリであるAsio(Boost.Asio)を解説します。 第3回では、Asioライブラリのコアとなる概念やいくつかの用語について紹介していきます。

Asio (Boost.Asio) C++ライブラリ入門 2 -Proactor-

本記事では、C++の非同期I/OライブラリであるAsio(Boost.Asio)を解説します。 第2回では、Asioで採用されている重要なデザインパターン「Proactor」について解説し、関連する簡単なサンプルコードを紹介します。

Asio (Boost.Asio) C++ライブラリ入門 1 -Reactor-

本記事では、C++の非同期I/OライブラリであるAsio(Boost.Asio)を解説します。 第1回では、ライブラリの基本導入と、採用されている非同期デザインパターンの1つであるReactorについて説明します。

新Linuxカーネル解読室 - リアルタイムカーネル

Linuxカーネルをリアルタイム化するための最後の拡張機能が、カーネル v6.12にて取り込まれました。 本ブログでは、Linuxカーネルの応答性を向上させるために行われてきた様々な施策について解説していきます。

OS徒然草 (7)

今回もファイル管理にまつわるお話の続きです。

OS徒然草 (6)

今回は、ファイル管理にまつわるお話です。

新Linuxカーネル解読室 - カーネルモジュール

今回は、カーネルモジュール機能を見て行きます。 Linuxカーネルは、機能の一部をカーネルモジュールとして生成し、必要に応じて組み込む方式を採用しています。これらをどのような仕掛けで実現しているか解説します。

新Linuxカーネル解読室 - パケット受信処理 ~Ethernetドライバ ポーリング処理編~

今回は、パケット受信処理 ~Ethernetドライバ 概要編~の3章「ポーリングハンドラ(NAPI)による受信処理」で解説したポーリングハンドラの処理を深堀します。

新Linuxカーネル解読室 - タスクスケジューラ (その1)

今回から数回に分けて、タスクスケジューラについて解説します。今回は、基本的な概念や全体像を中心としたお話です。

OS徒然草 (5)

今回は、前回の続きでマルチプロセスにまつわるお話です。

新Linuxカーネル解読室 - パケット受信処理 ~Ethernetドライバ 概要編~

今回はデバイス(NIC)がパケットを受信し、パケットがIPレイヤーに渡るまでの過程を解説します。

RISC-V OSを作ろう (12) ~ KVM上で動かそう

連載「RISC-V OSを作ろう」で作ってきたOS(Sophia OS)を、Linux KVM上のゲストOSとして動かしてみましょう!

OS徒然草 (4)

今回はCPUの効率的な活用を目指す「マルチプロセス」や「スケジューリング」にまつわるお話です。

新Linuxカーネル解読室 - netfilterにおける排他制御

本稿では、Linuxの排他制御の仕組みである読み書きスピンロック(RWロック)とRCUについて、netfilterにおける排他制御を具体例として、実際にLinuxでどのように使われているのかを解説します。

RISC-V OSを作ろう (11) ~ SBI対応

これまでの連載では、ベアメタル上で直接RISC-V OSを動かす仕組みを解説してきました。今回は、RISC-V OSをモニタプログラムOpenSBIの上で動作させる方法を見ていきます。RISC-V OSはスーパーバイザーモードでの動作となります。