タグ

kernelに関するdaisukebeのブックマーク (26)

  • 『Linuxカーネル解読室』輪講 #1「プロセススケジューリング」 - Kentaro Kuribayashi's blog

    Linuxカーネルの話を知りたいなーってんで、『Linuxカーネル解読室』の輪講を始めました。とりあえず、カーネルのソースをがりがり読み込むというよりは、ざっくりと動作を把握しようという感じで。今日の初回は、第1章「プロセススケジューリング」を読みました。この分野にまったくもって不案内なので、難しい……。少しづつでも理解を進めたいです。 以下に資料を貼り付けておきます。実際には、id:naoyaをはじめとした参加者によるフォローに助けられて進めた感じなので、資料だけだといろいろとアレな面もあるとは思います。 Linuxカーネル2.6解読室 作者: 高橋浩和,小田逸郎,山幡為佐久出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/18メディア: 単行購入: 13人 クリック: 189回この商品を含むブログ (116件) を見る [24時間365日] サーバ/インフラを支

    『Linuxカーネル解読室』輪講 #1「プロセススケジューリング」 - Kentaro Kuribayashi's blog
    daisukebe
    daisukebe 2010/06/07
    status:D は TASK_UNINTERRUPTIBLEか。よってシグナルを受け付けない
  • LD_ASSUME_KERNELを設定すると何が変わるのか

    LD_ASSUME_KERNEL=2.4.19が必要とか、2.2.5が必要とかといった話がありますが、これらの値が具体的にどう影響するのかよくわかってませんでした。 pthreadのマニュアルによれば LinuxThreads と NPTL の両方をサポートしているシステムでは、 LD_ASSUME_KERNEL 環境変数を使うことで、動的リンカがデフォルトで選択するスレッド実装を上書きすることができる。 とは書かれているのですけどね… こちらにある説明がわかりやすかったです。 Explaining LD_ASSUME_KERNEL どこのライブラリが使われるのかこれで決まるということだったのですね。以下はCentOS 3.8でいろいろ確認した結果です。 # eu-readelf -n /lib/tls/libc.so.6 Note segment of 32 bytes at offse

    LD_ASSUME_KERNELを設定すると何が変わるのか
    daisukebe
    daisukebe 2009/10/16
    /lib/tls/libc.so.6が要求するのは2.4.20以上
  • 初めて読むMASMはとっても良い本。 - big-eyed-hamster’s diary

    私の所属する研究室内では、Linuxカーネル読書会なるものをやっている。教材は詳解Linuxカーネルの第3版。このは-読んでみると分かるが-x86依存の話が非常に多い。スケジューラの話のあたりになると、Gnu Assemblerなどという暗号(!)でガシガシ書いてあるので、もう訳がわからない。この辺のソースコードの様子は、id:naoya さんのLinux カーネルのコンテキストスイッチ処理を読み解くを見ていただければ分かると思う。そうなってくると、必然的にx86の副読を買わねばならぬ、となるわけだが、x86を知らない人がいきなりはじめて読む486―32ビットコンピュータをやさしく語るを読むと、多分多くの人が挫折してしまうだろう。というか、私がした。確かに良い(だと思われる)んだけれど、前提知識が足りないと、所々でつまってしまって、読むスピードが落ちて、あああ、、、僕はダメな子だ、、

    初めて読むMASMはとっても良い本。 - big-eyed-hamster’s diary
    daisukebe
    daisukebe 2008/08/28
    MASM
  • How to read linux kernel

    4. 早速カーネルを読む ! 「なんと かわいい バイナリ」 「0x000000c4 は 俺の嫁 」 「いやいや、そこは 0x0000006d でしょう? なおや 氏 」

    How to read linux kernel
    daisukebe
    daisukebe 2008/08/10
    「ただ知りたかった」
  • The Linux Foundation Japan - イベント案内 | 2008-07-09 (水): The Linux Foundation Japan Symposium #8

    The Linux Foundation Japan リナックスファウンデーション・ジャパン The Linux Foundationは、Linux® の普及、保護、標準化を推進する非営利のコンソーシアムです。 第8回 The Linux Foundation Japan Symposium 開催概要 English 日 時 2008年7月9日(水曜日)9時30分 〜 17時30分(9時00分受付開始) 場 所 大手町KDDIホール         http://www.kddihall.co.jp/info.html     東京都千代田区大手町1-8-1 KDDI大手町ビル2F Tel.03-3243-9301 テーマ The Latest Kernel and Security 参加費 無料 (事前登録制) 定 員 160名(定員となり次第 受付終了) 対 象 Linux に関

    daisukebe
    daisukebe 2008/08/06
    スケジューラについて。動画あり
  • Linuxシステムプログラミング

    書には、Linuxの概要、カーネル、Cライブラリ、Cコンパイラなどプログラミングの基礎知識から、ファイルI/O、バッファサイズ管理、メモリマッピング、最適化技術、システムコール、メモリ管理まで、プログラマの観点から実践的なトピックが多く盛り込まれています。Linuxカーネル動作についても、その内部実装よりもプログラマがソースコードを書くために必須の知識が凝縮されています。実践的なプログラミング能力の習得に役立つ一冊です。カーネル2.6対応。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。 1、2刷正誤表

    Linuxシステムプログラミング
  • 【特別】エミナルクリニック池袋東口院の気になる口コミまとめ&行く前に知りたい口コミ5選まとめ

    最近オープンしたエミナルクリニックの池袋東口院がめっちゃ気になるなぁ。 医療脱毛なのにすごい安くていい評判も聞くけど、ほんとに痛くないのかな? 通っている人の口コミをみてみたいなぁー。 なんて気になったので、エミナルクリニックの池袋東口院についてSNSやネットで調べてみました。 そう思ってSNSを中心に調べてみたら、、、口コミや評判も良いじゃない♪ ちなみに、似たようなサービスや商品があるかも?なので、今回調べてみたのはこちらになります。 オープンしました! エミナルクリニックの池袋東口院ですが、すでにオープンしています!(2021年10月6日オープン済) もちろんですが、オープンしたてなんでめっちゃ予約が取りやすいです。 ただし!!人気のある医療脱毛院なので早めの予約が良いかも?!

    daisukebe
    daisukebe 2008/03/01
    list_head型ptrをメンバに持つオブジェクトのポインタを割り出す
  • Where is the socket()?

    INET Sockets Tour: Where is the roots of socket()? Last updated 2002-01-31 10:43 am SUMMARY socket(), a glibc-2.0 library function, execute a system call (software  interrupt 0x80) with a function number of 102 and a sub-function number of 1. Finally, the system call branches to sys_socket().

    daisukebe
    daisukebe 2008/02/29
    socket()深追い
  • ルーティングテーブル - Linuxカーネルメモ

    IPv4のルーティングテーブルに関するメモ 1. 概要 Linuxではルーティングテーブルのことをフォワーディングインフォメーションベース(FIB)と呼ぶ(以下でルーティングテーブルと呼んだ場合はFIBのことを指す)。また、パケットの送受信で参照されたルーティングエントリはルートキャッシュにキャッシュして次から素早くルーティングエントリを検索できるようになっている。 2. フォワーディングインフォメーションベース 2.1 FIBの構造 FIBの構造を図1に示す。 FIBはハッシュ構造をしている(*1)。 ルーティングエントリは宛先のプレフィクス長(サブネットマスク長)毎に分けて管理される。各プレフィクス長(0〜32)毎にZone(struct fn_zone)が存在し、プレフィクス長(Zone)毎にハッシュテーブル(fz_hash)を持つ。宛先のプレフィクス長が同じルーティングエントリは、

  • 第7回 ネットワーク処理はモジュール処理と上下が逆

    前回は,カーネルにモジュールを追加する処理をデバイス・ドライバを例に解説しました。デバイスに依存しない上位層の共通関数と,デバイスに依存する下位層の実関数を結び付けているのが構造体でした。今回は,下位に共通関数,上位に実関数がくる場合をネットワーク処理を例に見ていきます。 前回は,カーネルでよく使われている構造体の利用方法を紹介しました。デバイスに依存する処理を記述した「実関数」と,どのデバイスでも共通に使える「共通関数」を別々に定義しておき,構造体を使って,実関数と共通関数を同じものとして定義するというものでした。これにより,いかなるデバイスを使うときでも同じ共通関数名が使えるようになり,デバイスを物理的に差し替えたときも,上位層のプログラムのソース・コードを書き換えずに済みます。この方法はデバイス・ドライバだけではなく,カーネルのモジュール一般でよく用いられています。 今回も,同じよう

    第7回 ネットワーク処理はモジュール処理と上下が逆
    daisukebe
    daisukebe 2008/02/18
    IPのバージョンによる関数の使い分け。関数ポインタ
  • Linux identfier search

    Version: ~ [ linux-6.4-rc3 ] ~ [ linux-6.3.4 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.30 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.113 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.180 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ]

    daisukebe
    daisukebe 2008/01/26
    手元にカーネルソースがないときに便利だ
  • http://www.rtmach.org/index-j.html

    daisukebe
    daisukebe 2008/01/23
    あとで読む
  • OSの働きとMachの機能の概要

    ステラクラフト 東京支社 佐藤 徹 tsato@stellar.co.jp 最初に ご存じのようにNEXTSTEPはOSの一番基礎になる部分にMachというUNIXから派生したシステムを使っています。 この章ではMachの紹介とNEXTSTEPの縁の下の力持ちとしての役割をシステムの立ち上げを題材にして説明します。まず最初にNeXTがMachを採用した理由を事実を元に推測します。用語の説明はいたしませんので、後に続く記述を参考にしてください。 なぜNeXTはMachを採用したか? まず、NeXTが高等教育分野のためのワークステーションを目指した時にOSはUNIXにして欲しい、しかもBSDがいいという意見を多く聞き、それを採用しました。 しかし、BSD UNIXをそのまま採用するのでは不十分です。NeXTはすべての面いおいて画期的な物である必要がありました。BSD UNIXを採用し、X W

    daisukebe
    daisukebe 2008/01/23
    あとで読む
  • http://www.freesoftwaremagazine.com/articles/drivers_linux

    daisukebe
    daisukebe 2008/01/22
    「A quick and easy intro to writing device drivers for Linux like a true kernel developer!」
  • Linux Kernel Module programming (Kernel 2.4, デバイスドライバ)

    ○ はじめに 文書では、筆者が Linux® でデバイスドライバを作成しようとした際に、カーネルに動的に追加機能を組み込むことが出来るカーネルモジュールの書き方について勉強したことを説明していきたいと思います。 筆者は、コンピュータでハードウェアを制御するプログラムを作りたいと思いながら社会人になったのですが、会社でそういう仕事がどんどん減ってしまって全然機会がありませんでした。しかし、雑誌等でデバイスドライバを作成して自作のハードウェアを制御する記事を読む度に、自分もやりたいという気持ちが大きくなっていきました。 そしてある日、「電子工作を勉強して自分のハードウェアを作り、それを動かすためのソフトウェアを書こう!」と決意しました。Linux でデバイスドライバを作成するには、カーネルに最初から組み込んでしまう方法と、動的に追加機能を組み込むことが出来るカーネルモジュールという形式で作成

    daisukebe
    daisukebe 2008/01/22
    デバドラ、カーネルモジュール。禿参考
  • ディバイスドライバをハックしよう!

    1 :login:Penguin:02/01/31 01:14 ID:t3s191ys ディバイスドライバの改造、製作にまつわる情報交換、質問、 噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。 2 :login:Penguin:02/01/31 01:15 ID:t3s191ys とりあえず、オライリーのお馬さん2杯目へのリンク。 http://www.xml.com/ldd/chapter/book/bookindexpdf.html 3 :login:Penguin:02/01/31 01:30 ID:o+EauUH6 イーサネットドライバの仕組みが知りたいですわ。 4 :login:Penguin:02/01/31 01:32 ID:WoiBhbQB 何故?Kernel仕組みスレのリンクを張らないの? ☆Linux カーネルの仕組みを勉強するスレ☆ ht

    daisukebe
    daisukebe 2008/01/22
    カーネルのバージョンが違うと作法も変わるようだ
  • Linux Kernel 2.6.x プログラミングガイド

    ドライバをつくる前段階として、ドライバを組み込むための方法であるモジュールについて述べ、その作り方と簡単な例を示します。 Kernel Module とは 【カーネル(Kernel)】 アプリケーションからハードウェアを容易に操作したり、また、ハードウェアの資源管理やアプリケーションのプロセスを管理・制御していたりするものです。 【モジュール(Module)】 要求に応じてカーネルに取り外しや交換を簡単にできる部品やプログラムのことです。 【カーネルモジュール(Kernel Module)】 カーネルの機能の一部を部品として取り出した (モジュール 化した)もので、必要に応じてメモリへのロード/アンロード が自由に行えます。 Linux ではデバイスドライバはモジュールとして用意されています。従来は必須だったカーネルの再構築をすることなく、モジュールの組み込みだけで各種デバイスを使えるよう

    daisukebe
    daisukebe 2008/01/22
    モジュールプログラミング
  • Linux Kernel Hacking

    システムコールの追加 LKMによるシステムコールのフック システムコールの制限 システムコールの追加 各システムコールは arch/i386/kernel/entry.S の system_callという関数か ら呼ばれる。ユーザプログラムからレジスタを使って渡されたシステムコール への引数はスタックに積まれ、システムコールを実現する関数の引数としてア クセスできる。 新しいシステムコールを追加するには以下のようにする。 arch/i386/kernel/entry.Sに新しいエントリを追加する。 ENTRY(sys_call_table) .long SYMBOL_NAME(sys_ni_syscall) .long SYMBOL_NAME(sys_exit) : .long SYMBOL_NAME(sys_new_syscall) /* 新しいエントリ */ .rept NR_sysc

    daisukebe
    daisukebe 2008/01/20
    「システムコールの追加」あとでじっくり
  • Assembly Programming Linux (system call)

    付録 B. システムコールの仕組み すでに説明した(4. Linux カーネルとシステムコール) ように Linux の システムコールはレジスタに引数を設定して int 0x80 によるソフトウェア 割り込みで呼び出します. ここでは linux-2.2.16 のソースから実際にシステムコール呼び出しの 仕組みを次の3つの部分にわけて解説します. 割込みによるシステムコールをカーネルが初期化する部分 システムコールが呼び出された場合に実行される部分 システムコールの実装 【注】 ソースリスト中で行頭の数字は行番号を示しています. カーネルのバージョンによって差がありますが目安にはなるでしょう. 1. 割込みによるシステムコールをカーネルが初期化する部分 最初にカーネルの起動部分で割り込みテーブルの設定をしています. /usr/src/linux/init/main.c: 1350 as

    daisukebe
    daisukebe 2008/01/19
    「 asmlinkage は 『引数が確実にスタックで渡されるように gcc に指示』しているだけでる」
  • Linuxカーネル2.5 最新開発動向(2/2)

    Linuxカーネル2.5 最新開発動向 後藤正徳 <gotom@debian.or.jp> 2002/4/9 カーネル2.5に取り込まれた機能と改良点 ■ブロックI/Oキューの改良 開発版カーネル2.5で最初の大きな変更となったのが、Jens Axboe氏によるブロックI/Oキューの改良である。 カーネル2.4まで、ブロックI/O(ディスクI/O)への処理要求をためておくキューはio_request_lockと呼ばれる1つの大きなスピンロック(BKL:Big Kernel Lock)によって保護していた。この方法では、ブロックI/O処理を行うといつでもロックされてしまうため、ほかのブロックI/O処理はロックが外れるまで待たなければならず、スケーラビリティを十分に伸ばすことができない。 また、アプリケーションから発行された大きなブロックI/O要求を、カーネル内部でいったん個々の小さなブロック

    daisukebe
    daisukebe 2007/12/07
    2.4からの改良点。スケーラブル