今回はメモリ管理にまつわるお話です。
C++の非同期IOライブラリであるAsio(Boost.Asio)の解説シリーズの最終回として、 ライブラリが提供する各種クラスやI/O機能をサンプルコードとともに網羅的に紹介します。 辞書的な活用を想定した構成となっておりますので、皆様の参考になれば幸いです。
17年ぶりにFAIRクラスのタスクスケジューラが刷新され、CFSからEEVDFに置き換わりました。 今回は、この新しいEEVDFに焦点を当て、「どのタスクをどの程度実行するか」というタスクスケジューラの最重要機能を解説したいと思います。 スケジューラやEEVDFに…
本記事ではIsaac Gym入門の実践編として、Isaac Gymの強化学習のフレームワークについて解説し、独自の学習環境を作成する方法を紹介します。
本記事では、C++の非同期IOライブラリであるAsio(Boost.Asio)を解説します。 第4回では、Asioライブラリを利用する上で重要なライブラリ機能、完了トークンと`async_compose`について紹介していきます。
CiliumサービスメッシュのmTLSについて解説編と実装編の2本立てで紹介します。本編では、解説編で説明したCiliumの相互認証と暗号化の両機能を有効化してmTLS通信を実装してみましょう。
CiliumサービスメッシュのmTLSについて解説編と実装編の2本立てで紹介します。Ciliumは従来のサービスメッシュの手法とは異なり、eBPFを活用してL4/L7ネットワークのパケットを操作することで、従来のサイドカープロキシを不要とするのが特徴です。Ciliumのm…
本記事では、C++の非同期IOライブラリであるAsio(Boost.Asio)を解説します。 第3回では、Asioライブラリのコアとなる概念やいくつかの用語について紹介していきます。
本記事では、C++の非同期I/OライブラリであるAsio(Boost.Asio)を解説します。 第2回では、Asioで採用されている重要なデザインパターン「Proactor」について解説し、関連する簡単なサンプルコードを紹介します。
本記事では、C++の非同期I/OライブラリであるAsio(Boost.Asio)を解説します。 第1回では、ライブラリの基本導入と、採用されている非同期デザインパターンの1つであるReactorについて説明します。
Linuxカーネルをリアルタイム化するための最後の拡張機能が、カーネル v6.12にて取り込まれました。 本ブログでは、Linuxカーネルの応答性を向上させるために行われてきた様々な施策について解説していきます。
今回もファイル管理にまつわるお話の続きです。
今回から、OS実装の知識を基にハイパーバイザー「SageVisor」の仕組みを解説していきます。
今回は、ファイル管理にまつわるお話です。
今回は、カーネルモジュール機能を見て行きます。 Linuxカーネルは、機能の一部をカーネルモジュールとして生成し、必要に応じて組み込む方式を採用しています。これらをどのような仕掛けで実現しているか解説します。
今回は、パケット受信処理 ~Ethernetドライバ 概要編~の3章「ポーリングハンドラ(NAPI)による受信処理」で解説したポーリングハンドラの処理を深堀します。
今回から数回に分けて、タスクスケジューラについて解説します。今回は、基本的な概念や全体像を中心としたお話です。
今回は、前回の続きでマルチプロセスにまつわるお話です。
今回はデバイス(NIC)がパケットを受信し、パケットがIPレイヤーに渡るまでの過程を解説します。
連載「RISC-V OSを作ろう」で作ってきたOS(Sophia OS)を、Linux KVM上のゲストOSとして動かしてみましょう!
NVLINK Bridgeで接続した2台のRTX6000 GPUをFalcon 4205 を介して2台の1Uサーバから接続して LLM + RAG を動作させる実験です。
今回はCPUの効率的な活用を目指す「マルチプロセス」や「スケジューリング」にまつわるお話です。
「RISC-V OSを作ろう」の番外編スタートです! RISC-V のハイパーバイザー拡張機能 (Hypervisor Extension) を使って、実際に動作する小さなハイパーバイザーを実装し、動かしてみましょう。
本稿では、Linuxの排他制御の仕組みである読み書きスピンロック(RWロック)とRCUについて、netfilterにおける排他制御を具体例として、実際にLinuxでどのように使われているのかを解説します。
これまでの連載では、ベアメタル上で直接RISC-V OSを動かす仕組みを解説してきました。今回は、RISC-V OSをモニタプログラムOpenSBIの上で動作させる方法を見ていきます。RISC-V OSはスーパーバイザーモードでの動作となります。
今回は仮想空間を巡るお話です。仮想空間というものは、OSを語る上で外せないものですので、本稿が仮想空間を理解するための助けになれば幸いです。
前回はRISC-V OSがマルコチアOSとして立ち上がるところを解説しました。 今回は、RISC-V OSがマルチコアを意識したタスクスケジューリングを行なう仕組みを見ていきます。
前回までは、シングルコア環境を前提にしたOS実装を見てきましたが、今回からRISC-V OSをマルチコア環境に対応させます。コアが複数になると、複数のコアが同時にひとつのデータ構造を操作しようとすることがあります。OSは複数コアから同時操作が行われても…
OSの開発をしていると、必然的にシステムコールを使用したプログラムを作成することになります。誰しも始めたての頃は、fork(2)システムコールを不思議に思うのではないかと思います。 forkの復帰値が親と子で違っていて、それで自分が親か子かを区別できる…
本稿では、タスクの切り替えに伴うレジスタの切り替え処理の内、前編 (7月11日公開: https://www.valinux.co.jp/blog/entry/20240711) では解説しきれなかった部分について解説します。