Linuxプロセスの基礎概念とメモリ管理

オペレーティングシステムの役割 オペレーティングシステム(OS)はハードウェアとアプリケーションの間で動作する基盤ソフトウェアです。主な機能は以下の通り: ハードウェアドライバを通じて物理デバイスを管理 システムコールを介してアプリケーションにサービスを提供 リソースの効率的な配分と保護を実現 システムコールとライブラリ関数 システムコールはカーネ ...

7月22日 17:13 投稿

Linuxストレージ管理とシステム運用の基礎

RAID技術の比較と適用シナリオ RAID(Redundant Array of Independent Disks)は複数の物理ディスクを論理的に統合し、冗長性と性能向上を実現する技術です。主要なRAIDレベル比較: タイプ 構成 耐障害性 利用効率 RAID 0 ストライピング なし(1台故障で全データ損失) 100% RAID 1 ミラーリング 1台故障可 ...

7月22日 00:53 投稿

Linuxカーネルにおける文字デバイスドライバの開発

一、文字デバイスドライバの概要 文字デバイスはLinuxドライバの中で最も基本的なデバイスドライバの一つです。文字デバイスはバイト単位で、バイトストリームとして読み書き操作を行うデバイスです。読み書きデータは前後の順序に従います。例えば、私たちが最もよく知っているLED点灯、ボタン、IIC、SPI、LCDなどはすべて文字デバイスであり、これらのデバイスのドライバ ...

7月16日 21:24 投稿

ARPプロトコルの仕組みと実装

ARPの基本概念 ARP(Address Resolution Protocol)はIPアドレスから対応する物理アドレス(MACアドレス)を解決するためのネットワークプロトコルです。IPv4環境で使用され、IPv6ではNDP(Neighbor Discovery Protocol)が代替機能を提供します。 ARPの必要性 データ通信において、送信元と宛先のIPアドレスに加え、フレームのカプセル化にはMACアドレスが必要です。ARP ...

7月14日 16:39 投稿

x86_64アーキテクチャにおけるカレントスレッド情報取得の仕組み

Linuxカーネルのcurrent_thread_info実装 x86_64アーキテクチャにおけるcurrent_thread_info関数は、現在実行中のスレッド情報を取得する重要な機能です。この関数の実装は、CPUごとのデータ管理とスタック構造に依存しています。 実装コードの分析 static inline struct thread_info *get_current_thread_info(void) { unsigned long stack_base; struct threa ...

7月10日 03:04 投稿

RTL8723BS WiFiドライバのRV1103移植

1. 概要 本稿では、Rockchip製RV1103チップにRealtek RTL8723BSモジュールのWiFi機能を移植する手順について解説します。同様の手順はRV1106、RV1126、RK3588などRockchipシリーズ全般に適用可能であり、ARMアーキテクチャのLinuxベースデバイスにおけるRTLシリーズWiFiドライバ移植にも参考になります。 SDKの使用例については最後のセクションを参照してください。 使用 ...

6月26日 23:43 投稿

Linuxカーネルソースコード解析:プロセススケジューリングAPIのシステムコールケーススタディ

kthread_create_on_node関数 kthread_create_on_node関数の機能:指定されたメモリノードに新しいカーネルスレッドを作成します。ソースコードは以下の通りです。 実践例 #include <linux/module.h> #include <linux/pid.h> #include <linux/sched.h> #include <linux/kthread.h> #include <linux/wait.h> int KernelWorkerFunction(void* ...

6月26日 18:03 投稿

Linuxカーネルにおけるプロセス管理の詳細分析

プロセス、軽量プロセス、およびスレッドの概念 プロセスは、プログラムが実行される際のインスタンスであり、カーネルの観点ではCPU時間やメモリなどのシステムリソースを割り当てるための基本単位です。新しいプロセスが生成されると、そのアドレス空間は親プロセスのコピーとして作成され、次の命令から実行を開始します。 現代のUnix系システムでは、マルチスレッドア ...

6月5日 21:28 投稿

eBPF可観測ツールの開発:ゼロから始める

この記事で解決する課題 ゼロからeBPF(拡張Berkley Packet Filter)を用いた可観測性ツールを開発する完全なプロセスを解説します。 結論 eBPFツール開発の鍵は、要件の明確化、適切な技術スタックの選択、段階的な反復、十分なテストです。 背景 2024年5月、プロセスのファイルアクセス動作を監視するツールが必要となりました。 要件 プロセスが開くファイルを記 ...

5月30日 12:26 投稿