タグ

Linuxに関するnharukiのブックマーク (176)

  • カーネルモジュールを作る

    ○ はじめに Linux® でのデバイスドライバは、カーネルに静的にリンクする形式と、動的にロードすることができるモジュール形式で作成することができます。 Webではカーネルモジュールの作成方法を説明します。 "C 言語によるプログラミングでは main() 関数から実行される" という約束事があるように、モジュールプログラミングにもこうしなければならないという約束事があります。 ここでは、簡単なモジュールを作ってみることでモジュールプログラミングに最低限必要な知識を説明します。 サンプルプログラム サンプルプログラムの説明 複数ファイルに分割して作成する printk の使い方 kmalloc / kfree によるメモリの確保 / 解放 module_init / module_exit マクロについて ○ サンプルプログラム カーネルへのロードおよびカーネルからのアンロードの

  • FAQ - Linux Kernel Newbies

    If you are working on answering a frequently asked question, please add it to FAQsInProgress. How do I ...? /KernelCompilation How do I compile a kernel? /KernelCrossCompilation How do I cross compile a kernel? /DisklessImages An Introduction to Diskless Booting. /CodeBrowsing How to browse through the code? /HowToApplyAPatch How do I apply a patch? KernelHackingTools Are there any good IDEs? How

    nharuki
    nharuki 2010/07/19
    Kernelに関するFAQ
  • オブジェクトファイルについて

    はじめに Binary Hacks の校正大会にて、あーセクションの話が少し説明不足で不親切だね、っていう話が出ました。あった方がいいかな、と思ったので、宣伝を兼ねて、ここに私が知っていることを書いておきます。 内容としては、 Binary Hacks に比べてかなりいい加減に書いています。例えば調べものは一切せずに書きます。著者の中で最もいい加減な私がよりもいい加減に書いたということで、 Binary Hacks の全ての文章はこれよりはレベルが上、というようなサンプルだと思って下さい。宣伝を兼ねるということで、これ単体ではフォローせずに Binary Hacks のここを見てね、というポインタだけ示す部分が多いです。『』で囲まれた文字列は Binary Hacks の中のハック名に対応しています。 書いてる最中なので、気が向いたら内容を追加します。 詳しい参考文献としては Linke

    nharuki
    nharuki 2010/07/14
    ELF内の各セクションの解説
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Linux 動的ライブラリーの徹底調査

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Linux 動的ライブラリーの徹底調査
  • [PDF]Linuxカーネルの読み方

    Linuxカーネルの読み方 Naoya Ito 担当章  リバース proxy  キャッシュ  Linux  Webサーバー Linux カーネルを読む  「よーし、Linux カーネル読むぞー」 早速カーネルを読む!  「なんとかわいいバイナリ」  「0x000000c4 は俺の嫁」  「いやいや、そこは 0x0000006d でしょ う? なおや氏」 ... という話ではなく  Linux カーネルの読み方  Linux カーネルのソースコードの読み方 お話したいこと  Linuxカーネルを読む  カーネルのソースを読んで良かったこと  Linux カーネルに触れたきっかけ  カーネルソースの読み方 カーネルのソースを 読んで良かったこと 以前の私#1  負荷が過剰  「このサーバーはディスクが重そう」  (実際どこが正確な原因なんだろう...) 

  • Apache で同一IPからの接続数を制限する mod_limitipconn 設定方法

    Apache で同一IPからの同時接続数を制限するためのモジュールで有名なのが mod_limitipconn です。決められた値以上の同時接続に対しては 503 のステータスコードを返します。 CentOS であれば EPEL から RPM を導入できます。EPEL の利用設定がしてあれば yum でインストールできます。 # yum install -y mod_limitipconn 設定ファイルは /etc/httpd/conf.d/limitipconn.conf です。これを修正します。 MaxConnPerIP 10 <Location /somewhere> MaxConnPerIP 3 NoIPLimit image/* </Location> <FilesMatch "\.(zip|mp?g|iso)$"> MaxConnPerIP 1 </FilesMatch> この

  • Linux のメモリキャッシュをクリアする | futuremix

    Linuxtop コマンドや free コマンドで表示される cached は、勝手にどんどん増えていきます。free がなくなるとこの cached が少しずつ解放されて使われます。 cached も buffers も空きメモリの一部ですので、これらが溜まっているからといって無理やり解放させる必要は通常はありません。cached を溜めているのはパフォーマンスのためなので、解放させると通常使用時のパフォーマンスが落ちます。逆にこれを解放しておかないと、パフォーマンスの測定などで、正しい計測ができません。 kernel の 2.6.16 以降では、解放をコマンドから解放できるようになりました。root で # echo 1 > /proc/sys/vm/drop_caches のように /proc/sys/vm/drop_caches に1~3の値を書き込みます。値によって解放され

  • Kozupon.com - wtmpログを改ざんする!

    予め、断っておく。ここで紹介するネタは、クラックな方々がやりそうな事を事前に紹介して、鯖管理者に認識して欲しいが為に紹介するネタである。決して悪用してはならない! ところで、クラックな方々が行う手法に、「侵入した形跡を抹消する。」ということが上げられる。この行為は、侵入した場合には必ずと言っていいほど悪人は行うに違いない。むしろ、これを行わないクラッカーは相当まぬけであるとも言える。自分の侵入した形跡も消すが、故意にその他のログも改ざんして管理者を困らせる愉快犯的な事も行う場合も有る。もし、俺が悪人だとして、無防備な鯖へ侵入したとしたら帰り際、痕跡を消すために真っ先にwtmpファイルを改ざんするだろう。 そこで、ここではwtmpファイルの改ざん方法を試してみる。 1.現在迄のリモートによるlogin履歴を見る wtmpファイルは、/var/log直下に有り、wコマンドとかwhoコマンド

  • KMC Staff Blog:Android SDKのgoldfishのCPUをarm1136に置き換える方法

    2009年08月05日 Android SDKのgoldfishのCPUをarm1136に置き換える方法 AndroidのSDKではgoldfishという仮想ハードウェアをqemuで動作させています。この環境は実際のハードウェアがなくても動作させることができるのでとても便利です。goldfishはCPUがARMv5TEアーキテクチャのarm926なのですが、これをARMv6アーキテクチャのarm1136に置き換える実験をしてみたところ意外にすんなり動きました。 その手順をここで紹介します。 2009年11月のEclairのソースリリースでだいぶ状況が変わっています。こちらも参照してください。 以下の作業はUbuntu 9.04上で行いました。Androidのビルドの方法はこちら(http://d.hatena.ne.jp/embedded/20090510/p1)を参照してください。 きん

  • LD_PRELOADで他プロセスのバッファリング無効化 - murankの日記

    pipe や popen を使っていると、来なら出力済みのはずの他プロセスの出力がなかなか取得できないことがある。 最初はpopenやpipeのせいかと思っていろいろ調べたけど、どうも出力時のバッファリングの影響のようだ。 自分のプログラム中でバッファリングの方法を変更するのは setvbuf でできるわけだけど、 これを LD_PRELOAD と組み合わせると他プロセスのバッファリング方法を変更できそう。 というわけで、以下他プロセスに読み込ませる共有ライブラリのソース。 #include <stdio.h> namespace { struct NoBuffer { NoBuffer() { setvbuf(stdout, NULL, _IONBF, 0); } } instance; } おそらく大抵の Linux 環境で動くと思うけど、未保証ということで。 後はこれを適当なファイ

    LD_PRELOADで他プロセスのバッファリング無効化 - murankの日記
    nharuki
    nharuki 2010/06/28
    静的初期化を使ったpreloadライブラリ内でのグローバル関数呼び出し例
  • ついカッとなって実行バイナリにパッチ - memologue

    とある都合で、ソフトウェア開発の際にソースコードの提供されていないツールを使うことになりました。x86なLinux上で動く、ちょっとしたtoolchainです。が、そのツールの処理速度が遅く、入力サイズに対して、結果が出てくるまでの時間がどうもO(N^2)かそれよりひどい。遅くてイライラするので、昨晩ついカッとなってパッチを当てました。そのメモです。また、ありがちな事態(?)な気もするので、みなさんどうしてるのかなー的なお伺いも兼ねて。 ボトルネックの特定 そのツール(以下A)の実行バイナリはstripされておらず.symtabが残っていました。のでまず、どこが遅いのかgoogle-perftoolsをLD_PRELOADしてそのソフトウェアを実行し、実行プロファイルを取りました。すると、嬉しいことにある一つの関数(以下F)で全体の90%以上の時間を消費していることがわかりました。関数Fは

    ついカッとなって実行バイナリにパッチ - memologue
  • Linux Wiki

    このWikiは今年度中で閉じる予定です。何らかの形のアーカイブは残します -- 奥村? 2021-08-10 (火) 20:04:42 PHPが使えないブラウザがあります。 -- morinet? 2021-08-10 (火) 18:07:38 あ -- あ? 2021-08-10 (火) 18:05:39 Vine Linux 6 がリリースされています。http://vinelinux.org/ -- detch 2012-07-27 (金) 13:01:18 気がつけば Vine Linux 5 がリリースされています。http://vinelinux.org/whatsnew.html -- よっけ 2009-09-01 (火) 22:33:58 2007-12-25 に Vine Linux 4.2 がリリースされています。 -- よっけ 2008-01-01 (火) 19:10

  • ブートローダー「GRUB2」とは?どんな設定変更が、どのように可能か? | Viva! Ubuntu!!

    パソコンの起動処理は一般的には以下の手順で行われます。 (1)体の電源をON。 (2)マザーボードに搭載されているROMに記録されたBIOSが起動。ここでは主に3つの処理が行われます。 PCの自己診断 周辺機器を認識 ブートローダーを起動 このブートローダーという起動処理を受け持つソフトウェアは、ハードディスクなどの記憶装置の「マスター・ブート・レコード=MBR」という領域に格納されています。 (3)このブートローダーにより、OSが起動されます。 大型の船を引っ張るタグボートのような役割といえばいいでしょうか。 このブートローダー、Linuxでは旧くはLILO(=Linux Loader)が搭載されていましたが、その後、多くのディストリビューションが「GRUB」(=Grand Unified Bootloader)を採用するようになりました。 このGRUB、LILOに比べて、高度な管理

  • Stray Penguin - Linux Memo (パーミッション)

    このサイトは、もともと作者の自分用メモとして書き始めたものです。書いてあることが全て正しいとは限りません。他の文献、オフィシャルなサイトも確認して、自己責任にて利用してください。

  • CentOSで自宅サーバー構築

    ルーター経由接続によるインターネット常時接続環境である(当サイトはIIJmioひかりによるインターネット常時接続環境) 固定または非固定のグローバルIPアドレス環境である(当サイトはGMOとくとくBBの固定グローバルIPアドレス環境(逆引きも可能)) ※メールサーバーを構築する場合は逆引き可能な固定グローバルIPアドレス環境が望ましい(非固定グローバルIPアドレスや、固定グローバルIPアドレスでも逆引きしたホスト名とメール送信元ホスト名が異なる場合にメール受信を拒否するメールサーバーがまれに存在するため) OSのインストール時を除き、サーバーの操作はWindowsからコマンド操作で行なう ■コンテンツ ※ホスト名やドメイン名、IPアドレスは各自の環境に置き換えること ※各目次に表記してあるバージョンは、当サイトで確認をとったCentOSのバージョンを示しており、そのバージョンでないとできな

  • VMWareがクソ重くて殺したくなる時に読むべきもの - いつまでもブタだと思うなよ

    冗談抜きでキレそうになって、悪いのは林檎なんだけどWindowsXPとかいう何年も前のOSを動かすのにこんなにクソトロイのは何でだ。とディスクアクセスとか調べまくってたら何かゲストOSがHDDにアクセスしてないタイミングでもアクセスが発生しまくっている事を発見し、色々と検索した結果見つけたのが下記のテキスト。http://wizardbible.org/49/49.txt該当部分について、何かtxtとかそういうファイルなので消えてしまわないように転載しておく。しかし当にこの金床って人は凄い人だ。Blogなんかに何の確証もなく「この設定を.vmxにすりゃいいよ! ○○○ = "xxxx"」とか書いているだけの何の価値も無い情報でなく、自分の調査方法を合せて読みやすくまとめてくれている。こういう記事をブログに書いていきたいと思ったね。 x0xXx0xx0xXx0xx0xXx0xx0xXx0x

  • PANEN138: Daftar Situs Judi Slot Online Gacor Terpercaya

    nharuki
    nharuki 2010/05/26
    邦題:FroYoが来るヨ!
  • fam.cx

    This domain may be for sale!

  • Linuxでシステムに対して意図的に高負荷をかけたい場合 - 元RX-7乗りの適当な日々

    今更感があるかもしれませんが紹介。 stressコマンドを使うと、CPUやメモリ、ディスクに対して意図的に負荷を与えることができます。 どこで使うかというと、、、高負荷時のシステムの挙動を見たい場合、AutoScaling等の負荷状況に応じて自動でスケールアップ/アウトさせるための仕組みのテストをしたい場合、部屋が寒いときにPCに発熱させたい場合wwwなどで使えるのかな、と。 Stressをインストール CentOSやRedHatの場合は、DAG(rpmforge)のリポジトリがあるので、ここのパッケージからインストールしましょう。 DAGをyumのリポジトリに追加する場合は、以下リンクから(CentOS5[x86_64]系の2010/05/14時点の最新版は)"rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm"をダウンロードして、rpmインストールしま

    Linuxでシステムに対して意図的に高負荷をかけたい場合 - 元RX-7乗りの適当な日々