Kernel
Meltdown・Spectreについて報告されている Project Zero: Reading privileged memory with a side-channel の内容について、自分なりに理解した自分メモを記録として残しておきます。
本記事はDebian/Ubuntu Advent Calendar 2017の12/17(日)向けに書いてみた小ネタです。 Debian Jessieを今だに抜け出せず、使い続けているのもアレなのですが、Jessieでmake-kpkgで最近のLinuxカーネルをビルドしようとすると"missing REPORTING-BUGS"という…
久々のLinuxの記事です。一つ前のリリースですが、Linux 4.12でライブパッチ(livepatch)へ機能追加がなされ、 適用したライブパッチを無効化することができるようになりました。サンプルに記載のとおりですが、試してみたので記事にしてみます。 なお、ライ…
LinuxカーネルにはCPUやメモリといったリソースをプロセス単位で制限できるcgroupという機能があります。 cgroupの使い方を紹介する多くの記事ではaptやyumでlibcgroupをインストールしていますが、 組み込みなどでは、apt/yumを使えず、ライブラリの追加が…
Linuxカーネルのバージョン4.0から追加されたライブパッチ(Livepatch)機能を今更ながら、試してみました。 (Linux4.0の記事でライブパッチに触れていますが、32bitのマシンしか無く、試せなかったんですね。。) なお、本記事は「CLR/H #clrh101」のLTで発表…
旧聞ですが、ESTで3/26の19時半頃、 日本で3/27の9時半頃にLinux 4.6-rc1がリリースされました。 Linux-Kernel Archive: Linux 4.6-rc1 かなり大きなマージウィンドウとなりそうで、1日早くクローズしたとのことです。LKMLをちゃんと追っているわけでもなく…
やや旧聞ですが、 リーナスのロサンゼルス時間では3/13(日)の22時頃、 日本時間では3/14(月)の14時頃にLinux 4.5がリリースされました。 LKMLでの告知内容を要約すると以下のとおりかと思います。 rc8は実施せず、4.5をリリースすることに決めた 問題点もあ…
リーナスのロサンゼルス時間で昨日(3/6)の15時頃、 日本時間で今日(3/7)の朝8時頃にLinux 4.5-rc7がリリースされました。 前回のリリースでは「rc7が落ち着いてこなければ、rc8のリリースもあり得る」といったことが書かれていましたが、 どうも落ち着いてき…
リーナスのロサンゼルス時間で昨日(2/28)の朝9時、日本時間では今日(2/29)の午前2時に Linux 4.5-rc6がリリースされました。 https://lkml.org/lkml/2016/2/28/207 いつも通り、リーナスのアナウンスメールを翻訳してみました。 なお、要約すると以下のとお…
昨日(2/24)の記事の続きです。 2/24に、LKMLで流れていた以下のパッチについて、 http://article.gmane.org/gmane.linux.kernel/2159632 昨日(2/24)は、以下の1.と2.まで紹介しました。 1. getcpu_cache()について、主にメール本文やコミットメッセージから…
今日(2/24)、LKMLで以下のパッチが流れていました。 http://article.gmane.org/gmane.linux.kernel/2159632 「getcpu_cache()システムコールを追加する」パッチで、Linux 4.6に向けたものなので、 もう少し先のパッチです(現在は4.5のrc期間)。 まだ、パッチ…
リーナスのロサンゼルス時間では2/20の14時頃、日本時間では今日2/21の朝7時頃に、 Linux 4.5-rc5がリリースされました。 https://lkml.org/lkml/2016/2/20/168 要約すると、以下のとおりかと思います。 通常どおり VM THP(transparent huge-page) cleanupが…
日本時間で今日、ロサンゼルスでは2/14バレンタインに、 Linux 4.5-rc4がリリースされました。 http://article.gmane.org/gmane.linux.kernel/2151840 ※ lkml.orgでメールが見れない(?) パターン化してきてしまっていますが、 要約すると以下のとおりかと思…
旧聞ですが、日本時間で2/8の朝9時(Linusのロサンゼルス時間では2/7の16時)に、 Linux 4.5-rc3がリリースされました。 LKML: Linus Torvalds: Linux 4.5-rc3 また例によって、LKMLでのアナウンスを訳してみました。 要約すると、以下のようなところかと思い…
日本時間で今日(2/1)の朝11時にLinux 4.5-rc2がリリースされました。 (Linusのロサンゼルスの時間では1/31の18時)また例によって、以下のLinusのLKMLのアナウンスを訳してみました。 LKML: Linus Torvalds: Linux 4.5-rc2 要約すると、 プルリクエストの数に…
Linux 4.5-rc1が本日(1/25)、LKMLで発表されました。 今回は、自分の英語の勉強の意味も兼ねて、LinusのLKMLでの発表を訳してみました。 要約すると、以下のとおりかと思います。 マージウィンドウが終了したので、テストしてほしい 特に変わったところのな…
昨日、Linuxカーネル4.4がリリースされました。 Linux-Kernel Archive: Linux 4.4 Linuxカーネル4.4はLTS(Long Term Support)で、今後2年間サポートされます。 https://plus.google.com/+gregkroahhartman/posts/WMEWz4noxFm いつもの確認事項 ビルド〜起動…
昨日(11/2)、Linuxカーネル4.3がリリースされましたので、 例によって、ビルド・動作確認とバージョン間の変更差分を簡単に見てみました。 ビルド・起動確認 ビルド環境は、前回同様、以下のとおりです。 マシン: ThinkPad E450 CPU: Intel Core i7-5500U Me…
Kprobesは、レジスタ情報ダンプなど任意の処理を、アセンブラの命令単位で実行できる機能です。 利用するにはカーネルモジュールを作成する必要はありますが、 カーネルの再ビルド無しで、カーネル内のすべての命令をデバッグできます。
ftraceの使い方については、以下の記事でも紹介しましたが、 ftraceを試してみました - へにゃぺんて@日々勉強のまとめ 過去には紹介しなかった使い方も分かったので、あらためてまとめます。 過去に紹介したときは、 「関数単位でカーネルの実行状況のトレ…
printk()はデバッグ出力無効化の際には、コメントアウトするなりして再ビルドする必要があります。 何度もビルドを繰り返すのは面倒なので、デバッグ出力の有効/無効を実行時に動的に切り替えられるようにする機能が dyndbg(dynamic debug)です。
昨日(8/30)、Linuxカーネル4.2がリリースされましたので、 例によって、ビルド・インストールしてみました。 なお、やっと64ビットマシンを購入しましたので、 今回からは、X86_64でビルドします。
Linuxカーネル4.1が公開されましたので、 さっそく、ビルド・インストールしてみました。 毎度のことなので、ビルドまでを行うシェルスクリプトを作ってみました https://github.com/cupnes/sandbox/blob/master/build_kernel.sh 「初期設定(ここから)」から…
今回は、Linuxのシグナルについて、自分なりにちゃんと調べてみましたので、 記事にまとめてみます。ほとんどUNIXシグナルと変わらない話だとは思いますが、ソースコードは Linuxのものを参照しているので、Linuxに限った話も混じっているかと思いま す。
今日(4/13)、Linux 4.0がリリースされました。 LKML: Linux 4.0 released https://lkml.org/lkml/2015/4/12/178 何度かこういうネタを記事にしていますが、 今回も、自分のマシンでビルドと起動を試してみました。 また、それだけだと記事としてあんまりなの…
Linux-0.01を最近のLinux上でビルドできるようにする「Linux 0.01 remake(linux-0.01-rm)」というプロジェクトがあります。 Debian 7.7(wheezy)上で試してみました。 https://github.com/cupnes/linux-0.01-rm-3.5 結論としては、以下のエラーでブートは完了…
CentOS(x86_64)の環境でもビルドを試したのでメモ。 作業環境 $ cat /etc/redhat-release CentOS release 6.5 (Final) 作業過程 必要なパッケージのインストール $ sudo yum groupinstall "Development tools" $ sudo yum install ncurses-devel ダウンロー…
Debian(i686)の環境でLinuxカーネル 3.16.1をビルドしました。 自分用にも、作業過程をメモ。 作業環境 $ cat /etc/debian_version 7.6 $ uname -a Linux dyna 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux 作業過程 ダウンロードから.con…
確認してみたら、Linuxカーネルのトレーサ「ftace」が使える状態になっていたので、ftraceを支援するコマンド「trace-cmd」もインストールして試してみました。 ◆ 2015/09/06 追記 ftraceの使い方について、以下の記事でまとめ直しました。 ftraceの使い方 -…
Ubuntu10.04(Lucid)でLinux標準カーネルのバージョン2.6.37.1をインストールをしてみました。 以下は2/20の作業ログをまとめたものなのですが、今 The Linux Kernel Archives を確認してみたら最新の安定バージョンとして「2.6.37.2」が2/24にリリースされて…