タグ

kernelに関するnezukuのブックマーク (10)

  • A Heavily Commented Linux Kernel Source Code

    nezuku
    nezuku 2019/08/21
    Linuxカーネル0.12のソースコード解説。1000ページを越え、その内容ゆえ最初のターゲットアーキテクチャであるi386、当時1992年のPC/AT互換機や80386のアーキテクチャの概要解説も広範囲に避けられずか。
  • linuxカーネルで学ぶC言語のマクロ - Qiita

    はじめに 記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。

    linuxカーネルで学ぶC言語のマクロ - Qiita
  • Linuxカーネルハックに興味があるけど特にネタが無いんだよな〜って人向けの小ネタ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    Linuxカーネルに興味があるんだけど特に作りたいものってないんだよなーなんて割とあると思う訳です。俺とか。。。 まあ、kernelnewbiesのメーリングリストでもよく見る話題かと思います。この辺なんかもそうですね。 で、そんな時にオススメできるのがkmemleak。カーネルに組み込まれたメモリーリーク検出ツールです。 使い方は至って簡単でカーネルのコンフィグレーションにあるKernel memory leak detectorを有効にしたカーネルを普通に使えばOK。カーネルはメインラインのrcでもtipでもlinux-nextでも何でも良いと思います。 設定の場所はKernel Hacking -> Memory Debugging -> Kernel memory leak detectorにチェックをするのと、 その下のMaximum kmemleak early log ent

    Linuxカーネルハックに興味があるけど特にネタが無いんだよな〜って人向けの小ネタ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • Linux Kernel Updates の Kindle 版が出ました!

    おまたせしました! コミックマーケット83で頒布した Linux Kernel Updates 2012.12版と、コミックマーケット84で頒布した Linux Kernel Updates 2013.08版のKindle版を出版しました。 Linux Kernel Updates 2012.12 目次 What's New in Linux 3.7? TCP Fast Open Load Average の落とし穴 Completely Fair Scheduler

    Linux Kernel Updates の Kindle 版が出ました!
  • Linuxで3万(10万)プロセスを同時に起動させてみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といっても、きちんとした検証をしたわけではないので、あくまで「こういう環境でこういう事をやるとこうなる」という参考程度のものと理解してい頂ければ幸いです。 Linux上でプロセスは同時に何個起動できるのか 数年前にC10K問題が流行りました。これは、簡単に言うと、万のオーダーでプロセスを立ち上げる事になると、現状のOSではそれを想定した設計になっていないためまともに動かなくなる、といった問題でした。 だったら、「10万プロセス位を同時に立ち上げてみて、どうなるか試してみようぜ!」と思い、会社のエンジニアと一緒に試してみました。検証環境は、メモリ48GでCPUはHyperThreading込で24コアです。そこで動いていたOSはDebianでL

    Linuxで3万(10万)プロセスを同時に起動させてみた
  • Linux kernel word count

    Swearing Companies People Filesystems Love&Hate Blooeans 64bit archs Garbage Hacks *nix Custom If you enable Javascript, you can get nifty, interactive graphs! Otherwise, you're stuck with this old version that just shows an outdated, static png. How many times are words, names or functions found in the Linux kernel source code? Browse an example or write your own comma-separated list to find out!

  • sched_clock() overflow after 208.5 days in Linux Kernel

    えーっと、久しぶりに Linux Kernel にダメダメなバグが発見されて、よりにもよってうちの製品も影響を受けたので、ここに詳細を書くことにした。 つーか。新しい Kernel を使うなら皆で使おうよ。なんだよその「1つだけ」影響を受けて残りは「影響も受けないぐらい古い」ってのは… 概要 大雑把に 208.5日連続運転した Linux Kernel が突如として reboot する。 実機でなおかつ Time Stamp Counter を内包している必要があるので、Pentium4以降のプロセッサ(が、それはようするに今ある Intel 系CPU全部)か、その互換CPUである必要がある。32bit モード、64bit モードの区別はない。 逆に VMware や Xen など、仮想マシン上で動いている kernel に影響はない。これはそもそもバグを内包したルーチンを、仮想マシンで動

    nezuku
    nezuku 2011/12/31
    2.6.28は2008年のクリスマスリリースか リリースして早いうちに更新、そのまま動かし続けたシステムがあったら、翌年のうちにはクラッシュしたとみられるが、どのようにして発覚したのだろうね
  • コメントから読む Linux カーネル

    Sano Taketoshi <kgh12351@nifty.ne.jp>$Date: 2000/06/27 13:57:52 $ NLUG (名古屋 Linux ユーザーグループ) 第 3 回勉強会のために 作成した資料です。 今回読むのは Linux カーネル 2.2.5 です。 主に PC/AT (i386) 上で、電源 ON のあと、カーネルのロード、 ブートアップから /sbin/init が実行されるまでをソースコード中の コメントを頼りに追いかけていきます。 1. はじめに 1.1 「カーネル」とは 1.2 Linux カーネル 1.3 コード作成に貢献した人々 1.4 担当者一覧 2. システムの起動:概要 2.1 カーネルのロード 2.2 BIOS 情報の取得 2.3 カーネル体の展開 2.4 デバイスドライバーの設定 2.5 init の起動 2.6 システム起動 3

  • 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がデバイスドライバをロードした時の挙動を追ってみようと思います。例として(?) # modprobe r8169 した場合の挙動を追うことにします。 # 少し長めなので結論を急ぐ方は こちら をどうぞ。 まずは drivers/net/r8169.c の rtl8169_init_module() が呼ばれるところからスタートします。 static int __init rtl8169_init_module(void) { return pci_register_driver(&rtl8169_pci_driver); } static void __exit rtl8169_cleanup_module(void) { pci_unregister_driver(&rtl8169_pci_driver); } module_

    デバイスドライバロード時の動作 - や
  • 1