はじめに コードの取得 ドキュメント カーネルのビルド 準備 基本手順 .configの作成 ビルド インストール あとがき 執筆者 : 小田 逸郎 はじめに OS徒然草のネタもなくなってきたということで、新しいシリーズを始めることにしました。徒然草の方は、OS一般の話題でしたが、今度は、Linuxに限定した話をしていきます。筆者も昔は、Linuxの障害解析などを実施したりして、Linuxのコードをバリバリ読んでいた時期もあるのですが、最近はとんとご無沙汰で、知らないうちになんだかいろいろな機能が追加されていたりとか、コードの大きな修正が入っていたりとかしているようです。そんな訳で、筆者もあらためてLinuxの勉強をし直そうじゃないかと考えました。もちろん、弊社の若手達が新解読室プロジェクトを始めたことに刺激を受けたというのもあります。 ただし、新しい機能についてどしどし説明しようというの

「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。本稿では、(その1)に引き続き、カーネルv6.8におけるタスクスケジューラの仕組みや実装について解説したいと思います。 はじめに 3. どのタスクをどの程度実行するか 3.1 FAIR(EEVDF) 3.1.1 概要 3.1.2 cfs_rq構造体とsched_entity構造体 3.1.3 V 3.1.4 enqueue 3.1.5

「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 はじめに 応答性に関わる機能 応答性とは 割り込み処理のスレッド化 排他制御における優先度継承 Preemptibleなスピンロック 割り込み禁止区間中のスピンロック取得 RCU参照区間におけるスピンロック Preemptibleなソフト割り込み禁止区間 余談 執筆者 : 高倉 遼 ※ 「新Linuxカーネル解読室」連載記事一覧はこちら

デジタルペンテスト部の北原です。 今回は、Windowsでのツール開発者にとっては重要なハンドルの内部について解説します。Windowsでは、ファイルやプロセスから始まりすべてのリソースはオブジェクトとして扱われ、ファイルの削除やメモリの確保にはハンドルを取得する必要があります。 ツールやアプリケーションの開発者にとっては、日常的にハンドルを操作する機会がありますが、通常の利用者にとってはあまり意識するものではありません。本記事では、Windows OSでのハンドルの役割と、OS内部でどの様に管理されているのかについて解説します。 記事の構成は以下の通りです。 ハンドルの役割とアクセス権限 ハンドルへの情報の問い合わせと操作 カーネル空間でのハンドル管理 応用例1 - オブジェクトをロックしているプロセスの特定 応用例2 - カーネルモードルートキット本記事は以下の読者層を想定してい

TheLinux Storage Stack Diagram shows the layout of the theLinux storage stack.Linux Storage Stack Diagramv6.16 Downloads Diagram forLinux Kernel 6.16Linux Storage Stack Diagramv6.6:PDF (other formats will follow soon)Linux I/O Stack Diagramv6.2 (20250821):ZIP (includes .drawio and .svg)PDF PNG Changelog: zoned loopblock device zloop (Kernel 6.16) NFS Adds LOCALIO Protocol For "Extreme
2 自己紹介GMOペパボセキュリティ対策室 2007年 入社 伊藤 洋也 HiroyaIto ホスティングサービス、技術基盤チームを経て 現在はセキュリティ対策室に所属 •GitHub,Twitter : @hiboma • https://hiboma.hatenadiary.jp/ 4 登壇の打診をいただいたが、私の場合どんな話をできるだろうか ? 🤔 •Linux カーネルコミッターではないしなぁ ... •Linux カーネルの開発業務も経験がないしなぁ ... * •Linux カーネルのトラブルシューティングは時々やってる 💡 『達人に聞く、Linux カーネルコードの歩き方』 注) 検証や調査のカーネルモジュールやパッチを書くことはあリます。でも production で動かすコードを書くことは全然無いです 5 自社サービスの運用でLinux カーネルの

Kernel Queue: The CompleteGuide On The Most EssentialTechnology For High-Performance I/O When talking about high-performance software we probably think of server software (such asnginx) which processes millionsrequests from thousands clients in parallel. Surely, what makes server software work so fast is high-endCPU running with huge amount of memory and a very fastnetwork link. But even the

数十年にわたって修正が加えられ、乱雑さという垢が蓄積されたコードをきれいにするというのは気の弱い人がやる作業ではない。しかし、Linuxのカーネル開発における第一人者であるIngo Molnar氏は自らの持てる力を最大限に傾け、オープンソースのLinuxカーネルに秩序を取り戻そうとしている。Linuxのソースコードは2020年に2780万行に達した。それ以降もその規模は増大する一方だ。Linuxは、30年が経過している他のソフトウェアプロジェクトと同様に、その長い歴史の中でソースコード中にかなりの量の垢をため込んでいる。Linuxカーネルの上級開発者であるMolnar氏はこの問題を根本的なレベルで解決するための初撃となる数カ月におよぶ作業の成果として、「Fast Kernel Headers」(カーネルヘッダー高速化)プロジェクトをリリースした。 その狙いは何だろうか。答えは、Linux

印刷する メールで送る テキストHTML電子書籍PDF ダウンロード テキスト電子書籍PDF クリップした記事をMyページから読むことができますLinuxの生みの親であるLinus Torvalds氏は、LinuxカーネルにParagon SoftwareのNTFS3カーネルドライバーを導入することに同意し、Linuxカーネル5.15ではNTFSファイルシステムのサポートが強化されることになった。ただし同氏は、カーネルにコードをサブミットする際の手順とセキュリティに関する対応に苦言を呈した。 Paragon SoftwareのNTFSドライバーは、LinuxでWindowsのNTFSドライブを簡単に扱えるようにするものだ。NTFSはFATの後継にあたるMicrosoft独自のファイルシステムで、これによって数十年にわたって続いたNTFSがらみの困難が解消されることになる。 To

まえがき HDDやSSDはシステムの中でもボトルネックとなる一番データの転送速度が遅い記憶媒体だ。 オペレーティング・システムには記憶媒体による遅延を減らすためキャッシュを利用するなど I/Oアクセスを最小限に留める工夫が施されている。そんな中でもI/OスケジューラはI/Oリクエストの処理順を入れ替えたりリクエストを一つにまとめたりすることにより応答速度やスループットを向上させる機能だ。ディスク・スケジューリングとも呼ばれることがある。 数年前まではLinuxカーネルは cfq noop deadline と言ったI/Oスケジューラを搭載していたが、昨今のスケジューラはだいぶ変わっているようだ。Linuxカーネル ver 3.13 からCPUの多コア化、SSDやPCIeなどの高速な記憶媒体の普及に対応するために旧来の単一キュー処理からマルチキュー処理をするBlk-mq(Multi-Qu

linux-kernel.vger.kernel.orgarchivemirror help / color /mirror / Atom feed*Linux kernel in-treeRust support @ 2020-07-09 18:41 Nick Desaulniers 2020-07-09 20:52 ` Miguel Ojeda ` (5 more replies) 0 siblings, 6 replies; 28+ messages in thread From: Nick Desaulniers @ 2020-07-09 18:41 UTC (permalink /raw) To: alex.gaynor, geofft, jbaublitz, Masahiro Yamada,Linus Torvalds, Greg KH, Miguel Ojeda
カーネルを再構築することなくカーネルの動作を深く詳細に確認できると便利です。今回紹介するSystemTapを使うと、ちょっとしたスクリプト言語を書くだけで、カーネル上の特定の処理をフックし、必要な情報を収集・分析できます。 SystemTapがあるとうれしい理由 SystemTapは実行中のカーネルの処理をフックして、必要に応じて情報を収集し、出力するツールです。 カーネルのデバッグにおける代表的な手法と言えば「printk()の差し込み」です。printk()関連の関数を使えば多くの問題の状況を把握できますし、その情報がそのまま解決につながる例だってたくさんあります[1]。 いわゆる「printk()デバッグ」は強力な手法ではあるものの、いくつかの弊害も存在します。 printk()を差し込むためにカーネルやモジュールをビルドし直さなくてはならない 環境に合わせたカーネルやモジュールの
TheLinux KernelAPI¶ Basic C Library Functions¶ When writing drivers, you cannot in general use routines which are from the C Library. Some of the functions have been found generally useful and they are listed below. The behaviour of these functions may vary slightly from those defined by ANSI, and these deviations arenoted in thetext. String Conversions¶ unsigned long longsimple_strtoull(cons
はじめに 名前空間 名前空間の利点 名前空間の種類 Mount名前空間 IPC名前空間 UTS名前空間Net名前空間 PID名前空間 User名前空間 名前空間の管理 プロセスと名前空間 名前空間のエクスポート nsfs 名前空間共通データ NSProxy構造体 NSProxyと名前空間 参照カウンタ NSProxyと名前空間の関連 名前空間へのアクセス デフォルトの名前空間 名前空間の共有・分離・移動 名前空間の共有と複製 fork(2) clone(2) fork(2)・clone(2)時の処理 unshare(2) 名前空間の分離処理 名前空間の移動 setns(2) 名前空間の移動処理 Mount名前空間 Mount名前空間の実装 Mount名前空間の初期化 Mount名前空間の分離 IPC名前空間 IPC名前空間の実装 IPC名前空間の初期化 UTS名前空間 UTS名前空間の実
Linuxカーネル5.0ではCFQ, Deadlineと言ったシングルキュースケジューラが全て削除されてカーネルのデフォルトIOスケジューラ設定も無くなっていましたLinux 5.0での変更 5.0での全体の変更はここで見れます. 今回ビックリしたのはblock/cfq-iosched.c とblock/deadline-iosched.c の削除です. CFQが主にSSDで性能が良くないことは知っていましたが, Deadlineが削除されるとは思っていませんでした. まあパフォーマンスの最大化 - ArchWiki を信じるならCFQとDeadlineはマルチスレッドに対応していないので削除は時代の流れでしょう. 言及はコミット上ではここでされています. すごい破壊的変更なのに,Linux 5.0のリリースニュースにもチェンジログをまとめたサイトでも全然取り上げられて無くて, m
概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は割り込み処理について見ていく。(*nは参考文献のn番目に対応する) 割り込み処理 例外ではほとんどの場合その例外の発生元となっているカレントプロセスにシグナルを送信することで処理する。例外処理もシグナルを受け取るまでは遅延される。 しかし割り込みの場合には別の無関係なプロセスが動作している際に発生することがあり、単純にカレントプロセスにシグナルを送信するだけではない。 割り込みは大きく3種類に分類される。 I/O割り込み 当該割り込みでは割り込みに対応する動作を決定するために割り込みハンドラからデバイスに対して問い合わせを行う必要がある。 タイマー割り込み ローカルAPICタイマや外部タイマなどが発生させる割り込みで
この記事はLinux Advent Calendar 2018の1日目ですΣ(゚∀゚ノ)ノキャー イントロ ほんとは別の内容にしようと思ってたのですが、進めてる途中でカーネルのデバッグをするハメになったのでカーネルデバッグをネタにしてみました。カーネルのデバッグと言っても普通のデバッグと変わらないよね〜というところがわかると思います。(`・ω・´)<コワクナイヨー デバッグの環境としてはlibvirt(qemu)で動いてるゲスト環境にホスト側からgdbでデバッグする感じです。ディストリビューションはFedora 29です。デバッグするカーネルはFedoraのカーネルで4.19.2-300.fc29.x86_64です。 テストコード テストコードは↓です。これはdebugfsのディレクトリ(大概は/sys/kernel/debug/だと思います)にopen-testってファイルを作って、その
注意: この記事の内容はわりと危険な部分があります. 使いたくなってもよく注意して理解して使ってください わたしもまだ大して実動テストしてません. Dropboxの中身が消失したり, FSがこわれたり, なんかおもしろいことになっても責任は一切とれません. 技術的な観賞用に留めるのが無難です はじめに Dropboxがext4しか対応しなくなるらしいですね. btrfs愛用者としてはハチャメチャめんどいです. ということで, なんとかしたくなりますね. 1つの方法として, 下の記事のようにbtrfs上にext4のイメージファイルを作ってあげるという方法があります. qiita.com ただこの方法だと, kernelの中で無駄にext4をDropboxのためだけに動かすことになりますね. ext4のmoduleなんか置いておきたくない. そう思いませんか システムコールの結果を書きかえる
All of Percona’s open source software products, in one place, to download as much or as little as you need.

Linux kernelを直接JavaScript上で動かした. つまり,JSLinuxのようにEmulatorをJavaScriptで作成し, その上でLinuxを動かすのではなく,JavaScriptで書かれたLinuxを生成し,それを動かす,ということである. LKL.js Architecture リポジトリは以下の通り. https://github.com/retrage/linux/tree/retrage/em-v2 なお lkl.js Demo にデモを用意した. SharedArrayBufferを有効にして試してみてほしい.Linux Kernel Library (LKL) ここでは,Linux kernelをLibrary OSの形態の1つであるAnykernelにするLinux Kernel Library (LKL)を利用する. LKLはLinux ke

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く