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 投稿