Linux10 件の記事

Linux の記事

ファイルシステムの仕組み 徹底解説 - inode・ジャーナリング・ページキャッシュ

ファイルシステムの仕組み 徹底解説 - inode・ジャーナリング・ページキャッシュ

63

ファイルを開いて書き込んで閉じるまでにカーネルとディスクで何が起きているのかを、VFS・inode・ディレクトリエントリ・エクステント・ページキャッシュ・ext4のジャーナリング・CoWファイルシステムまで順に追います。man7.orgとkernel.orgの一次情報に加え、実機のext4とmacOSで測った出力例を添えて解説します。

ノンブロッキングI/OとI/O多重化 - select/poll/epoll から io_uring までの歩き方

ノンブロッキングI/OとI/O多重化 - select/poll/epoll から io_uring までの歩き方

47

C10K問題を出発点に、select/pollの限界、epollが速い理由(赤黒木とレディリスト)、レベルトリガとエッジトリガの違い、kqueueやIOCPとの対比、io_uringのSQ/CQリングとセキュリティ上の扱い、libuv/nginx/Redisの実装までを一次情報と実測で整理します。

zram 実践入門 - 圧縮スワップの効果測定と「優先度でティアリング」の落とし穴

zram 実践入門 - 圧縮スワップの効果測定と「優先度でティアリング」の落とし穴

30

メモリ2GBのVPSにzramを導入し、mm_statの実測値で効果を検証しました。337MBのページが97MBに圧縮され実効235MBのRAMを取り戻せた一方で、よく紹介される「zramを優先度100、ディスクswapを低優先度」という構成にはLRU反転という設計上の問題があります。カーネル文書とzramctlの実出力をもとにzramの仕組み・mm_statの読み方・swappinessの決め方を整理し、記事後半では実際に同じサーバーをzswapへ切り替えた手順と、916MBのswapoffにかかった時間・zswapの圧縮率3.43倍という実測値も記録しました。

Linuxコンテナの仕組み入門 - namespaceとcgroupsから理解するDocker

Linuxコンテナの仕組み入門 - namespaceとcgroupsから理解するDocker

47

コンテナは軽量な仮想マシンではありません。Linuxカーネルのnamespace・cgroups・capabilities・seccomp・overlayfsという既存機能を組み合わせた「普通のプロセス」です。man7.orgのmanページ、kernel.orgのcgroup-v2ドキュメント、OCI仕様、Docker公式ドキュメントを一次ソースに、8種類のnamespaceの役割、cgroup v1とv2の違い、unshareやlsnsで手を動かす確認手順、runcとcontainerdの関係、そしてコンテナがセキュリティ境界として弱い理由までを積み上げて整理します。

SSH の仕組み - 鍵交換・ホスト鍵検証・公開鍵認証を一次ソースで理解する

SSH の仕組み - 鍵交換・ホスト鍵検証・公開鍵認証を一次ソースで理解する

18

リモートサーバー運用の土台である SSH プロトコルを、一次ソースの RFC 4251/4252/4253/4254(SSH-2 の Architecture / Authentication / Transport / Connection)を軸に整理します。TCP 接続からバージョン交換、KEXINIT による鍵交換と Diffie-Hellman、ホスト鍵の検証(known_hosts と TOFU の弱点)、公開鍵認証(authorized_keys と署名)、チャネルの多重化とポートフォワーディング(ssh -L / -R / -D)まで、その仕組みと OpenSSH での確認方法をインフラ担当者・開発者向けにまとめます。

lftp で SFTP サーバーに接続する - 鍵認証・ポート指定・mirror での同期まで

lftp で SFTP サーバーに接続する - 鍵認証・ポート指定・mirror での同期まで

12

コマンドラインの高機能ファイル転送クライアント lftp で SFTP サーバーに接続する方法を、基本の sftp:// URL、パスワード/公開鍵認証、ポート番号や踏み台の指定、ホスト鍵の確認、mirror での一括ダウンロード/アップロード、リトライやタイムアウトの設定、bash スクリプトでの自動化まで実例つきで解説します。lftp の SFTP は内部で ssh を呼ぶ(sftp:connect-program)ため、ssh の設定や鍵がそのまま効くのがポイントです。

Bad Epoll(CVE-2026-46242)とは - Linux カーネル epoll の権限昇格脆弱性と、AI が見逃した競合バグを読み解く

Bad Epoll(CVE-2026-46242)とは - Linux カーネル epoll の権限昇格脆弱性と、AI が見逃した競合バグを読み解く

18

Linux カーネルの epoll サブシステムに見つかった use-after-free 脆弱性 Bad Epoll(CVE-2026-46242)を、NVD などの一次〜準一次情報ベースで整理します。ep_remove() の競合状態からローカルの一般ユーザーが root を奪える仕組み、影響するカーネルバージョンと Android への波及、そして「同じ 2023 年のコミットが混入させた隣の競合バグを Anthropic の Mythos が見つけ、Bad Epoll だけを見逃した」という話題性のある経緯まで解説します。2026 年 7 月時点の続報(実際の悪用は未確認・CISA KEV 未掲載、修正が公開開示に先行、ディストリのバックポートは配布途上)も追記しました。

Linux のスワップファイルは fallocate で速く作る - dd との違いと「has holes」の罠

Linux のスワップファイルは fallocate で速く作る - dd との違いと「has holes」の罠

7

Linux でスワップファイルを作るとき、dd で /dev/zero を全書き込みする代わりに fallocate を使うと一瞬で確保でき、I/O 負荷も小さく稼働中サーバーでも扱いやすくなります。一方で fallocate は穴あき(hole)/未書き込みエクステントのファイルを作るため、btrfs や古いカーネルでは swapon が「has holes」で失敗します。fallocate と dd の違い、ext4 / btrfs / XFS でのファイルシステム別の使い分け、作成からマウント・/etc/fstab 永続化までの手順を、man swapon など一次情報をもとに整理します。

set -euo pipefail とは何か - Bashスクリプト冒頭の「おまじない」を正しく理解する

set -euo pipefail とは何か - Bashスクリプト冒頭の「おまじない」を正しく理解する

11

Bashスクリプトの冒頭でよく見る set -euo pipefail を、-e(errexit)・-u(nounset)・-o pipefail の3つに分解して解説します。それぞれの意味、set -e が効かない落とし穴、IFS との組み合わせ、実践的なテンプレートまで、bash 5.3 での実挙動を確認しながら整理します。