「RISC-V用の小さなOSを実装してみよう」の連載記事第7回目となります。 前回は、タスクを協調動作させるための仕組みとして、セマフォによる同期機構を実現してみました。 今回は、アプリケーションのコードをユーザモードで、OSコードをマシンモードで動作…
「RISC-V用の小さなOSを実装してみよう」の連載記事第7回目となります。 前回は、タスクを協調動作させるための仕組みとして、セマフォによる同期機構を実現してみました。 今回は、アプリケーションのコードをユーザモードで、OSコードをマシンモードで動作…
Linuxカーネルコード解析プロジェクト立ち上げ Linuxカーネル成長の歴史 カーネルの大きさ バージョン番号 SCM導入 カーネル機能の変遷 執筆者 : 高橋 浩和 ※ 「新Linuxカーネル解読室」連載記事一覧はこちら Linuxカーネルコード解析プロジェクト立ち上げ 弊社内にて若手技術者が中心となり、最新のLinuxカーネルコード全体を読み解くプロジェクトが進行中です。 解析したコードのうち興味を惹かれたもの、重要そうなものを中心にブログ記事にまとめていく予定です。 詳解LinuxカーネルやLinuxカーネル2.6解読室を執筆していたころよりLinuxカーネルは大きく膨れ上がっています。 どこまで辿り着けるかは分かりませんが、気長にお待ちください。 対象Linuxカーネルのバージョンは6.8 ブログ執筆中に興味深い機能が取り込まれたら、より新しいバージョンのカーネルについて解説する
「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 本稿では、旧版1章で解説されていた「プロセススケジューリング」の内、プロセスディスパッチャ(タスクの切り替え処理)について、カーネルv6.8/x86_64のコードをベースに解説します。 1. 前提知識 1.1 スタック 1.1.1 概要 1.1.2 PUSH/POP命令 1.1.3 CALL/RET命令 1.2 task_struct構
はじめに 利用した環境 cgroup の階層構造 例:CPU やメモリの制限 例:PID 数の制限 例:CPU コアの排他的割り当て まとめ 執筆者 : 山下雅喜 はじめに cgroup とは、Linux カーネルの機能の1つであり、プロセスやスレッドが利用するリソースの制限や分離を行うための機能です。 cgroup は名前空間の機能と共に、Linux コンテナの根幹を成す技術の1つでもあります。 Kubernetes において、名前空間は PID 名前空間、ネットワーク名前空間、マウント名前空間などで利用者の目に触れやすい存在ではありますが、cgroup は相対的に目に付きにくいもののように感じています。 そこで今回は、Kubernetes のいくつかの機能を例に挙げ、cgroup がどう利用されているか見ていきます。 利用した環境 利用したソフトウェアおよびバージョンは次の通りです。
1. vmlinuxのELFセクション 2. .parainstructionsセクション 2.1. PV_SITEマクロ 2.2.paravirt_altマクロ 3. .altinstructions、.altinstr_replacementセクション 4. apply_paravirt()、apply_alternative() 5. 休憩 執筆者 : 箕浦 真 1. vmlinuxのELFセクション 前回記事では、vmlinuxのinitセグメントに含まれる、.percpu、.init.text、.init.dataなどのセグメントについて調べた。今回はその続きで、そのinitセグメントに含まれている.parainstructions、.altinstructions、.altinstr_replacementの各セクションを取り上げる。これらは、初期化時にLinuxコード自体を書
1. vmlinuzの怪 2. vmlinuxの入手 3. ELFファイル 4. ELFセクション 5. セクションの意味 6. Linuxのセクションとldscript 7. .cpuidle.textセクション 8. おわりに 執筆者 : 箕浦 真 1. vmlinuzの怪 Linux (カーネル) のファイル名といえば、/boot/vmlinuz-<version>だ。なんでlinux-<version>とかじゃないのだろうか。 vmの方は、これはおそらくBSD Unixのカーネルvmunixに倣ったものだろう。ベル研究所のResearch Unixを、VAXのハードウェアを生かして仮想記憶 (Virtual Memory) 機能を大幅に強化したため、vmunixとした。 zの方は、これは圧縮されていることを表す。なぜZで圧縮なのかはよくわからないが、圧縮の意味なのだ *1。 現在一
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く