タグ

kernelに関するpalm3rのブックマーク (8)

  • Linux Kernel Watch 5月版 Firefoxのプチフリーズ問題から始まった大論争(1/2) − @IT

    5月版 Firefoxのプチフリーズ問題から始まった大論争 小崎資広 2009/6/1 今回メインのネタとして取り上げたFirefoxの「プチフリーズ問題」ですが、その後調べたところ、WindowsMacでも問題になっているようですね。「firefox sqlite」で検索するといっぱいヒットしました。 今回の件は、アプリケーションのミスでもカーネル側で無理やり何とかしてしまうLinuxの実利主義の真骨頂が表れたんじゃないかと僕は思っています。皆さんはどう思いますか? それでは、どうぞ! それはFirefoxのプチフリーズ問題から始まった すでに各方面で話題になっていますが、2.6.30のマージウィンドウでext3のトピックが荒れに荒れ、とんでもない騒ぎが起こっていました。 問題の発端は、あるFirefoxのbugzillaエントリから始まりました(注1)。「Linux版Firefoxを

  • Linuxカーネルの作り出す世界 − @IT自分戦略研究所

    連載は、ソフトバンククリエイティブ刊行の『ふつうのLinuxプログラミング』のうち第1部「Linuxの仕組み」の中から「第2章 Linuxカーネルの正解」と「第3章 Linuxを描き出す3つの概念」を、同社の許可を得て転載するものです。 書は、LinuxにおけるC言語プログラミングの入門書です。「Linuxの世界が何でできているのか」に着目し、「ファイルシステム」「プロセス」「ストリーム」という3つの概念を紹介しています。 なお、連載は転載を行っているため@IT自分戦略研究所の表記とは一部異なる点があります。ただし、Webで掲載するに当たり、(例えば「書は」としている部分は「連載は」としていること、図版などの省略など)、表現を若干変更している点がありますが、その点ご了承ください。 ■オペレーティングシステム 今どきのコンピュータにはオペレーティングシステム(OS:Operatin

  • Linuxメモリ管理の最先端を探る(1/2) - @IT

    小崎 資広 2008/5/22 この記事では、Linux Kernel Watchの番外編として、Linuxの最近のメモリ管理周りの動きと、その背景のモチベーションについてお伝えしたいと思います。 メモリ管理は変更時のインパクトが大きいため、通常、Stable Tree(安定ツリー)ではあまり変更はなされません。しかし、Linuxカーネルメーリングリスト(LKML)の議論では「もうカーネル2.7は出ない」ともいわれており、十分なテストがなされたものであれば、アグレッシブなパッチでも受け入れられるようになっています。 また、メモリの急速な大容量化により、いままで問題にならなかった部分にスケーラビリティ上の問題が発生したという報告もちらほら出てきました。それを解消するためのさまざまな改善が提案されています。 こうした背景により、2007年から2008年にかけては相当面白いパッチが出てきました。

  • Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる

    Linux は fork で子プロセスを作成した場合、親の仮想メモリ空間の内容を子へコピーする必要があります。しかしまともに全空間をコピーしていたのでは fork のコストが高くなってしまいますし、子が親と同じようなプロセスとして動作し続ける場合は、内容の重複したページが多数できてしまい、効率がよくありません。 そこで、Linux の仮想メモリは、メモリ空間を舐めてコピーするのではなく、はじめは親子でメモリ領域を共有しておいて、書き込みがあった時点で、その書き込みのあったページだけを親子で個別に持つという仕組みでこの問題を回避します。Copy-On-Write (CoW) と呼ばれる戦略です。共有メモリページは、親子それぞれの仮想メモリ空間を同一の物理メモリにマッピングすることで実現されます。より詳しくは コピーオンライト - Wikipedia などを参照してください。 この CoW に

    Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる
  • Linuxカーネル2.6系にroot権限を奪われる脆弱性が発見される | スラド Linux

    Linuxカーネル2.6.17が公開されたのが、まぁぐぐると一瞬で分かるのですが 昨年……じゃないや一昨年の2006年6月17日ですね。(いまだに2007年脳) 2.6.24.1は今年の2月8日(ってまだ3日前か)にリリースされた最新版。 で、The Linux Kernel Archives [kernel.org]を見ると2.6.25 RC版が出ている模様。 参考:2.6.25 RC版のChangelog [kernel.org] これには件の修正も含まれているようです。 以下にChangelogから該当部分と思われる部分を、メールアドレス等の行は削除して引用。 >commit 8811930dc74a503415b35c4a79d14fb0b408a361 >Date: Fri Feb 8 08:49:14 2008 -0800 > > splice: missing user p

  • 革命の日々! MALLOC_TRIM_THRESHOLD_ と MALLOC_MMAP_MAX_ パラメタについて

    どうもあまり有名ではないらしいので、ここで書いてみる。 http://mkosaki.blog46.fc2.com/blog-entry-241.html で書いた事とほぼ同じだけれど。 Linuxにおいて、CPU負荷を測定するベンチマークでは以下の環境変数を設定すると往々にして性能があがる。 % setenv MALLOC_TRIM_THRESHOLD_ -1 % setenv MALLOC_MMAP_MAX_ 0 MALLOC_TRIM_THRESHOLD_ はOSに未使用になったメモリを返却する契機をあらわしていて、-1は決して返却しない事を表す。 MALLOC_MMAP_MAX_ は最大mmap数で0は決してmmapせず、どんなに大きなメモリでもbrkを使ってメモリを取る事を意味する。 で、性能に効くのは(たいてい)MALLOC_MMAP_MAX_のほう。 glibcはアンチフラグ

  • Linuxのネットワークスループット改善法教えます - builder by ZDNet Japan

    Linuxのカーネルやそれを含むディストリビューションでは、ネットワークのパラメータに影響を与えるような設定の一部は、デフォルトでは非常に控えめに設定されていることが一般的である。このような設定をチューニングするには、/procファイルシステムを使用する方法やsysctlプログラムを用いる方法があるが、どちらかというと後者の方がよい場合が多い。なぜかというと、後者の場合は/etc/sysctl.confファイルの内容を読み取るため、リブートを行っても設定が保持されるからだ。 /etc/sysctl.confで行える設定のうち、ネットワークのパフォーマンスを向上させる可能性がある設定を以下に示そう。 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_syncookies = 1 net.core.rmem_max = 16777216 net.core

  • Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー

    UNIX でプロセスを一時的にスリープさせるには sleep(3) が使えます。sleep() は引数に秒単位でしか時間を指定できないので、より短い時間を指定したい場合は usleep(3) (マイクロ秒) や nanosleep(2) (ナノ秒) を使うことになります。sleep(), usleep() はライブラリ関数、nanosleep() はシステムコール*1です。 この usleep() や nanosleep() で 1ms 程度の短い時間プロセスを停止したとして、正確にその時間だけ停止させることはできるでしょうか。http://shiroikumo.at.infoseek.co.jp/linux/time/ にあるコードを参考に、実際に動かしてみます。カーネル 2.6.19 x86_64、CentOS 5 で試します。 まず、nanosleep() で 1ms のスリープを行

    Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー
  • 1