タグ

binaryとlinuxに関するWackyのブックマーク (89)

  • keepalivedの運用ノウハウお見せします 〜 割当管理を簡単にしたい : DSAS開発者の部屋

    keepalivedの設定ファイルは、以下のようなエントリをひたすら並べなくてはいけないので、規模が大きくなるほど可読性が落ちます。 virtual_server_group SITE1 { a.b.c.d 80 } virtual_server group SITE1 { delay_loop 3 lb_algo wlc lb_kind DR nat_mask 255.255.252.0 protocol TCP persistence_timeout 0 real_server 192.168.8.1 80 { weight 1 inhibit_on_failure HTTP_GET { url { path /s/health.jsp status_code 200 } connect_port 80 connect_timeout 5 nb_get_retry 1 delay_be

    keepalivedの運用ノウハウお見せします 〜 割当管理を簡単にしたい : DSAS開発者の部屋
    Wacky
    Wacky 2006/10/06
    MATRIXという名の割当管理設定ファイルを定義し、これを元にしてkeepalived.confを生成する仕組みにしてみました。
  • Xlib Programming Lectures

    Imlib を使った画像表示 画像のグレースケール/ネガティブ/エッジ検出 フェードイン/フェードアウト Appendix ( 付録 ) FAQ Rio's Laboratory Contents 【デバイスドライバ/組み込み系】 Linux Kernel Module programming (Kernel 2.4)(@nifty) Android SDK programming (@nifty) AVR (ATmega8535) programming (C言語)(@nifty) 【UI/サウンド】 Xlib Programming Lectures (@nifty) Linux Sound programming with OSS API (@nifty) 【Java】 EJB3.0の勉強 (@nifty) Java LDAP client programming (@nifty)

    Wacky
    Wacky 2006/09/22
    X Window System 上において、最も低レベルな API である Xlib を使用した GUI プログラミングについて解説していきます。
  • 革命の日々! SMPマシンでプロセスを特定のCPUにbindする

    taskset 0x00000001 ls taskset -p 0x00000003 12345 のように使う。 第一引数の0x00... というのがCPUマスク。 0x00000001 ならCPU#0のみ、 0x00000003 ならCPU#0とCPU#1. -p オプションでpidが指定できる。

    Wacky
    Wacky 2006/09/18
    taskset 0x00000001 ls, taskset -p 0x00000003 12345のように使う。 第一引数の0x00... というのがCPUマスク。
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    Wacky
    Wacky 2006/09/17
    Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。
  • Linux Memory Overcommit - memologue

    かなり昔ですが、或日さんのSolaris8におけるmemory over commitの話題に触発され、Linuxの場合について調べた事があります。正しさは保証しませんが当時のメモを貼っておきます。 memory overcommit? メモリ資源の非常に限られた環境でLinuxを使用しているとよく遭遇する現象なのだが、kernel 2.4までのLinuxでは、"mallocが成功を返したにもかかわらず、その確保した筈のメモリ領域にアクセスすると、SIGKILLによってkernelから強制終了させられてしまう" という現象が 発生することがある。これは、「全プロセスがnew/mallocしたメモリの総量」に対して物理メモリ量が少なすぎる瞬間に於いては常に発生し得る。 何に困っているかといえば、C++でオブジェクトをnewした時に、メモリの枯渇をstd::bad_alloc例外送出という形で

    Linux Memory Overcommit - memologue
    Wacky
    Wacky 2006/09/17
    デフォルト設定の kernel 2.4 では、ユーザがnew/mallocでメモリを要求した時、kernelはその要求(brkシステムコール)を受け入れるかどうかを「経験的手法」で判断する。
  • IBM Developer

    IBM Developer
  • Interface 特集記事 特集「Linux徹底詳解 ― ブート&ルートファイルシステム」

    特集「Linux徹底詳解 ― ブート&ルートファイルシステム」 FDブートできるほど小さなLinuxシステムを構築する プロローグ なぜLinuxは難しいのか? 第一章  標準Cライブラリを使わないプログラミング 第二章  BIOS版「Hello,world!」プログラムの作成 第三章  Linuxオリジナルブートローダの作成 第四章  オリジナルルートファイルシステムの構築 追補   x86エミュレータBochsの使い方 記事中で使用したソースツリー(3.2MB) とその解説 記事中で作成したフロッピーディスクイメージ(3.3MB) とその解説 読者の皆様からの質問&訂正コーナー 私がインターフェースに初めて出会ったのは、今から20年近く前でしょうか。当時のインターフェース誌は黒い表紙を身にまとい、私にとっては憧れの雑誌でした。今でも当時の雑誌を大事に保存していますが、今回の特集記事もま

  • デバイスドライバ開発入門

    これは、私が仕事でたまたまやることになった、最初で(多分最後の?)Linux によるデバイス・ドライバ開発の経験から、学んだことを抜粋しています。これを読んだからといってすぐさまドライバが書けるようになるとは思わないでください。ただ、この手の文書はあまり見たことがなかったので、少しはインパクトあるかなあ、ぐらいの軽い気持ちで書きました。 実際のコードや関数仕様書などはお見せできませんが、雰囲気くらいは分かると思います。 カーネルのソースを読む際の参考になれば幸いです。 前提 SCSIについて 開発の必要条件 入門 デバイスドライバに関する一般的な考慮事項 UNIXでのアプリケーション開発に関する一般的な考慮事項 UNIXでのデバイスドライバ開発に関する一般的な考慮事項 ドライバとカーネルのインターフェース プロセス・スケジューリング関連サービス タイマー機能 メモリ操作関連 リソース関連

    Wacky
    Wacky 2006/08/13
    これは、私が仕事でたまたまやることになった、最初で(多分最後の?)Linux によるデバイス・ドライバ開発の経験から、学んだことを抜粋しています。
  • __FUNCTION__と__LINE__の文字列化 - firewood's diary

    Linux kernel用に自作の簡易トレーサを使っている。 1つのチェックポイントあたり、16バイトの情報を記録しておいて、あとでダンプするというもの。16バイトというのは、 u32 timestamp; // タイムスタンプ const char *message; // メッセージ u32 param[2]; // データA、データBという内容で、「いつ」「どこで」「どんなデータを」処理したかを記録できる。 messageは、ここ(数値の文字列化)のように msg " at " __FUNC__ ":" num_to_str(__LINE__)連結して、静的に保持したもの。 __FUNC__と__LINE__それぞれを記録するより、文字列化しておいて一つのポインタにした方が、トレースデータが節約できる。 なのだが、kosaki氏のエントリのコメント欄で、GCC 3.4以降はこの技が使

    __FUNCTION__と__LINE__の文字列化 - firewood's diary
    Wacky
    Wacky 2006/07/01
    Linux kernel用に自作の簡易トレーサを使っている。
  • 負荷対策概論 - Y-110's Wiki - (ひ)メモ

    # トラックバックうてるといいのに。 DB接続のプーリング PHPの*_pconnect系だとhttpdのプロセス分だけ接続が必要で、無駄といえば無駄。 なので、SQL Relayなんかを使うのもアリかと。 ロードバランサ Poundやmod_proxy_balancerもいいけど、Linuxマシンでlvsすればお高いロードバランサ要らずっす。 all in oneならUltra Monkeyがいいけど、中身を理解して弄りたい向きにはkeepalivedがおすすめ。 I/Oパフォーマンス 3wareのハードウエアRAIDカードなんかには、割とでかい(128MBとか)ライトキャッシュがついてるす。これ、ちょー強力。しびれるぐらいI/Oが早くなります。ライトキャッシュ使うときはBBUもお忘れなく。

    負荷対策概論 - Y-110's Wiki - (ひ)メモ
    Wacky
    Wacky 2006/06/05
    Poundやmod_proxy_balancerもいいけど、Linuxマシンでlvsすればお高いロードバランサ要らずっす。
  • opentechpress.jp - このウェブサイトは販売用です! - opentechpress リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    opentechpress.jp - このウェブサイトは販売用です! - opentechpress リソースおよび情報
    Wacky
    Wacky 2006/06/03
    開発キットのCDイメージには、デバイス・ドライバの作者がLinuxドライバを作成するために必要とするもの全部が含まれる
  • WebOS Goodies は移転しました

    WebOS Goodies は以下のアドレスに移転しました。 10秒後に自動的に移動します。 http://webos-goodies.jp/ 今後ともよろしくお願いします!

    Wacky
    Wacky 2006/05/14
    APM を有効にしていたときはタイマー割り込みの取りこぼしが頻繁に発生して時刻が大幅に遅れていたわけです。APM を無効にした後は、最後の「不正な補正」が時々発生して、徐々に時刻が進んでしまった
  • 革命の日々! PIE(位置独立実行ファイル)で遊んでみる

    いやなブログさんのPIE (位置独立実行形式) を作成する を読んで。 PIEという形式についてまるで聞いたことがなかったので色々と遊んでみた(いやなブログさんはこういう情報をどこから入手しているのかしら?) まず、readelfコマンドで実行ファイルのヘッダを読んでみると $readelf -h pie_hello ELF ヘッダ: マジック: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 クラス: ELF32 データ: 2 の補数、リトルエンディアン バージョン: 1 (current) OS/ABI: UNIX - System V ABI バージョン: 0 タイプ: DYN (共有オブジェクトファイル) マシン: Intel 80386 バージョン: 0x1 エントリポイントアドレス: 0x4dc プログラムの開始ヘッダ: 52 (

    Wacky
    Wacky 2006/05/03
    PIEとは・PICと違い、自分の再配置に必要な情報だけが入っている(とinfoには書いてあるな)・エントリポイントを持った共有ライブラリ
  • IBM Developer

    IBM Developer
    Wacky
    Wacky 2006/05/03
    gprofを使用して、ユーザー空間およびLinuxR? のシステム呼び出しの双方において、性能のボトルネックになっている部分を突き止める方法を説明します。
  • いやなブログ - 実行時のスタックの消費量を調べる

    実行時のスタックの消費量を調べる 先日の記事では checkstack.pl を用いて個々の関数がどのくらいスタックを消費するか調べる方法を紹介しました。今回は、実行時の実際のスタック消費量を調べてみます。 以下のコードでは次のような方法でスタックの消費量を調べます。x86_32 の Linux 用です。 最初に max_num_pages 分だけスタックを伸ばす 伸ばした分をすべて mprotect でアクセス不能にしてしまう SIGSEGV を拾って 1ページずつアクセス可能に設定する 最後に、何ページ使ったかを表示する このような処理を行う共有オブジェクトを作成して LD_PRELOAD してやれば、実行時のスタック消費量をページ単位で調べられるのではないか、という試みです。 #include <asm/page.h> #include <assert.h> #include <er

    Wacky
    Wacky 2006/05/03
    実行時の実際のスタック消費量を調べてみます。
  • http://tokuhirom.dnsalias.org/~tokuhirom/tokulog/1605.html

    Wacky
    Wacky 2006/05/03
    memcached は、分散オブジェクトキャッシングシステム,memcached はサーバ型の gdbm のようなハッシュ型データベースです。
  • DARE - Linux Data Recovery System - kinneko@転職先募集中の日記

    http://project.terminus.sk/dare/ Linux kernelのVFS機能にパッチして、どのようなファイルシステムでもゴミ箱機能を実装してしまうもの。 削除ファイルは/deletedの下に格納される。このディレクトリは自動作成はされないため、あらかじめ作っておく必要がある。 削除ファイルは指定された時間ごとに作られるディレクトリ下で、削除された時間のUNIX Timeが付けられたディレクトリ配下に置かれ、指定された時間が経過すると削除される。これらの時間指定はkernelコンパイル時に行う必要がある。 このディレクトリ下には、ファイル情報を格納した*.infファイルも作られる。このファイルには、削除されたファイル名、ディレクトリ名、オリジナルのパス、パーミッション、削除された時間、削除作業をしたuidが記録される。 また、この環境で利用するための4つのユーティリ

    DARE - Linux Data Recovery System - kinneko@転職先募集中の日記
    Wacky
    Wacky 2006/05/03
    Linux kernelのVFS機能にパッチして、どのようなファイルシステムでもゴミ箱機能を実装してしまうもの。
  • Linux PCMCIA HOWTO: デバッグのヒントとプログラム情報

    次のページ 前のページ 目次へ 7. デバッグのヒントとプログラム情報 7.1 有益なバグレポートの送り方 最も好ましいバグレポートの送り方は、Linux PCMCIA 情報サイトにある HyperNews のメッセージリストを使うことです。この方法なら、現状の問題 (そして、もしあれば修正方法や回避方法)が他の人にも見えるからです。 バグレポートに必須の項目を以下に示します: お使いのマシンの品名とモデル お使いの PCMCIA カード Linux のカーネルのバージョン(``uname -rv'' の実行結果)と PCMCIA のドライバのバージョン(``cardctl -V'' の実行結果) /etc/pcmcia にある起動ファイルや PCMCIA 起動スクリプト に加えて変更全て システムのログファイルに記録された PCMCIA に関わる内容全て。 これは起動メッセージとカー

    Wacky
    Wacky 2006/05/03
    どのモジュールでフォールトが起きたのかを調べるために、``ksyms -m | sort'' の出力を調べましょう:
  • IBM Developer

    IBM Developer
    Wacky
    Wacky 2006/05/03
    /procシステムの有用性は、カーネルの多くの要素がそれを使用して、情報を報告したり、動的なランタイム構成を有効にしたりできる点にあります。
  • Virtual Multiprocessor

    For English Version News (May 15, 2006) Version 0.3 が公開されました.(Changelog). (July 6, 2005) 新しいデモムービーが公開されました.仮想 8-way マルチプロセッサマシンが起動しています. (May 31, 2005) Version 0.2 が公開されました.(Changelog). (Dec 20, 2004) Version 0.1 が公開されました.(Changelog). Overview Virtual Multiprocessorは,単一システムイメージを提供するための 仮想マシンモニタです.このシステムは,ネットワークで結合された複数のマ シン上に,共有メモリ型マルチプロセッサマシンを仮想的に構築します. 例えば,N台のシングルプロセッサマシン上に,Nプロセッ サからなる仮想マルチプロセッサ

    Wacky
    Wacky 2006/05/03
    N台のシングルプロセッサマシン上に,Nプロセッサからなる仮想マルチプロセッサマシンを構築することができます