タグ

Programmingとlinuxに関するjjzakのブックマーク (70)

  • unix のシグナル処理あれこれ - Emacs ひきこもり生活

    Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in

    unix のシグナル処理あれこれ - Emacs ひきこもり生活
  • Plan 9

    目次 0.0.1  注意事項 1.0.0 ニュース 2.0.0 Plan 9 とは 2.1.0 誕生 2.2.0 現在のコミュニティ 2.3.0 ホームページの目的 3.0.0 目次 3.1.0 Plan 9 のインストールと運用 3.2.0 Plan 9 の香り 3.3.0 プログラミング 3.4.0 UNIX との違い 3.5.0 Pegasus プロジェクト 3.6.0 その他 4.0.0 Plan 9 第四版 マニュアル 5.0.0 Plan 9 関係へのリンク 5.1.0 海外(団体) 5.2.0 海外(個人) 5.3.0 国内(俺のもあるよと言う人は知らせて下さい) 5.4.0 Web 上の記事 5.5.0 News Group 改訂: 2008/01/07 Plan 9 とは 誕生 Plan 9 は1995 年に Bell 研究所によってリリースされた新しいオペレーティングシ

  • Super Technique 講座~m4 チュートリアル

    m4 はUNIXの標準コマンドの1つであり、古い歴史を持つマクロプロセッサである。しかし、やや使い方が難しく、しかも古典度が高く専門的なために、どうしても紹介のプライオリティが下がる傾向があって、日語でマトモに書かれた解説にお目にかかったことがない。そこで、m4 に多少の経験値がある筆者があえて m4 のチュートリアルを書いて見せる。基的な情報は m4 の info から仕入れており、それにいろいろな実例を加えて書いている。 マクロプロセッサ m4 とは? m4 の使い方 m4 のディレクティブ マクロ定義に関するディレクティブ マクロ置換の原則 マクロ引数 undefine と include 条件分岐 ループ メタ文字の入れ換え 組み込み文字列処理関数 その他 マクロプロセッサ m4 とは? m4 はマクロプロセッサである。つまり、Cプリプロセッサ cpp (今時だと gcc -E

  • 『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
  • OProfileを使ってCPUプロファイリングをとる - PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう

    OProfileとは Linuxシステムで使えるプロファイラです。 カーネル内で発生したイベントごとにサンプリングを行うので、カーネル内も含めたシステム全体のプロファイルを取れるのと、ハードウェアパフォーマンスモニタの値を取得できるのが特徴です。 ハードウェアパフォーマンスモニタが実装されていないシステム上でも、タイマ割り込みごとのサンプリングが利用できます。 このタイマ割り込みを使ったプロファイラはアーキテクチャに依存しないため、PS3 Linuxでも使用することが可能です。 なお、以下の解説は、バージョン0.9.1をもとにしています。 OProfileのインストール OProfileを使うには、OProfileツールのインストールと、Linuxカーネルに含まれるOProfileモジュールのコンパイルが必要です。 OProfileツールは Fedora、もしくはFedora Core

  • Google Groups

    Content unavailable Click here to try again. If you've seen this page more than once, try switching accounts.

  • libtorrent

    introduction libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability. It runs on embedded devices as well as desktops. It boasts a well documented library interface that is easy to use. It comes with a simple bittorrent client demonstrating the use of the library. The main goals of libtorrent are: to be CPU efficient to be memory efficient to be very e

    jjzak
    jjzak 2009/11/14
    [][][p2p][opensource][api][bittorrent][library][code]
  • Assembly Programming Linux

    はじめに. アセンブラを使って Linux のプログラミングで遊んでみます.アセンブラには NASM を使用して,カーネルを直接利用することにします. いまさらアセンブラでプログラムを作成することは,時代錯誤と感じる人も 多いかもしれません.「アセンブラでプログラミングなんて職人芸でしょう」 と思うかもしれません. 20年前では趣味のプログラミングは BASIC か アセンブラしか選択肢がありません でしたが,今ではPerl, Ruby からアセンブラまでの間に非常に多くの言語があって, アセンブラは普通では不要な最下層の知識となっていると思います. 10BaseT のツイストペアケーブルのインピーダンスを気にする人はほとんどいない ようなものでしょうか? アセンブリ言語の学習で最も困難なのは,最近では書籍が見つからないこと かもしれません. …と書いていましたが、また増えてきているようで

  • Amazon EC2/S3を使ってみた - まとめ (Amazon Web Services関連エントリ目次) - RX-7乗りの適当な日々

    Amazon EC2/S3および、その他Amazon Web Servicesについて、具体的な使い方を中心に、これまでこのブログ内で色々とエントリを書いてきたので、このエントリに目次代わりとしてまとめておきます。 今後も関連エントリを書いた際に、以下に追記していきますが、場合によっては記載されている情報が古い場合もありますので、その点はご了承ください。(できるだけ気づいた時点で修正しています。) # 尚、ここで紹介しているエントリは、全て私(id:rx7)自身が書き記したものです。 基の流れを知る Amazon EC2/S3を使ってみた - 1.AWSへの登録〜S3を使う Amazon EC2/S3を使ってみた - 2.EC2が起こすイノベーション Amazon EC2/S3を使ってみた - 3.EC2起動後〜AMI作成 Amazon EC2/S3を使ってみた - 4.EC2で固定IP

    Amazon EC2/S3を使ってみた - まとめ (Amazon Web Services関連エントリ目次) - RX-7乗りの適当な日々
  • UNIXのinode番号 - 中年SEのありふれた生活

    inode番号を理解する UNIXファイルシステムで使用するシンボリックリンク(または、ソフトリンク、symlinkなど)はとっても便利なファイルです。Windowsのショートカットファイルに似ていますね。 このシンボリックリンクファイルに「出会ってよかった!」って思います。 特に、システム構築時に各ファイル、ディレクトリの配置を設計する人は、よく理解しておくことをお勧めします。 でも、その前に。。。 UNIXのファイルシステムの特徴、inode番号、ディレクトリの仕組みをざっくり理解しないと、なかなか難しいかもしれません。 ls-lの結果はinodeの情報 UNIXのファイルシステムでは、1つのファイルを、データ部分と属性部の2つから構成して管理します。 Linuxでは、この属性部のことを、inodeと呼んでいます。 このinodeもハードディスクに書き込まれています。データ以外にこのi

    UNIXのinode番号 - 中年SEのありふれた生活
  • linuxの話 (ELF ローダ) — ありえるえりあ

    Recent entries sysfs tips 02 ohyama 2010-09-09 sysfs tips ohyama 2010-09-02 Haskell で周波数スペクトルを得る ohyama 2010-07-29 Haskell で線形識別関数の学習を行う ohyama 2010-07-19 Haskell で逆行列を求める ohyama 2010-07-16 Recent comments Re:vim に lisp 機能をつける t.mimori 2010-12-16 Re:Haskell で周波数スペクトルを得る H.OHYAMA 2010-08-01 Re:lkml でお勉強 (その1-1) Hiroyasu OHYAMA 2009-08-21 Re:lkml でお勉強 (その1-1) kosaki 2009-08-20 Re:vim に lisp 機能をつける o

  • Linux スレッドプログラミング

    GNU/Linux でのスレッドプログラミング NPTL (Native POSIX Thread Library) Programming. 以前から GNU/Linux でスレッドプログラミングをするための簡単なガイドを書きたいと思っていました。今更スレッドプログラミングについて書いても目新しいものになるとは思えないのですが、初めて NPTL (Native POSIX Thread Library) を使ったプログラムをするという方には、もしかしたら役に立つ情報かもしれません。はじめは怖々小さなプログラムを書いて動かしてみる。思ったより簡単なことに驚かれるでしょう。スレッドプログラミングと言っても難しいことはなにもありません。ライブラリが沢山仕事をしてくるおかげで快適に使うことができます。 文中では glibc のバージョンによる違いについても触れます。参照したバージョンは gli

  • 賢人鳥 - あどけない話

    分かった! 分かった! 分かった! 自己言及 ものまね鳥(M)は、自己言及する鳥なんだ! Haskell では、型推論がジャマして、ものまね鳥を実現できない。 -- Mx = xx m x = x x -- エラーになる ヒバリ(L)も実現できない! -- Lxy = x(yy) l x y = x (y y) -- エラーになる 当然の帰結として、Haskell では再帰を使わないと賢人鳥(Y)を実現できない! 賢人鳥1 wikipediaの Y コンビネーターに書かれている最初の賢人鳥はこう。 (define Y (lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y))))))) これは SLL だ! ;; Sxyz = xz(yz) (define S (lam

    賢人鳥 - あどけない話
  • 内装はオフィスデザイン設計をすべき理由|こだわりたい!オフィスデザイン

    企業にとってオフィスデザインは重要な要素で、あらゆる部分に影響を及ぼします。適切なデザイン設計すれば、仕事効率をアップすることができます。 さらに家具を搬入するときも楽になるのでメリットは多いです。ただやみくもにデザインをしても、うまくいきません。また素材なども考慮しないといけないので、計画的にデザインを練る必要があります。 そこでどのようなデザインをすれば使いやすいオフィスになるのかを紹介しましょう。 オフィスデザインをすれば仕事効率をアップできます。例えば動線を確保することができるので、他のスタッフの通行の邪魔にならずスムーズな行き来をすることが可能です。 また家具を搬入するときも、すでに設置している家具の邪魔をせず置くことができるので便利です。オフィスデザインはやみくもにするのではなく、業態に合った設計をする必要があります。 例えば打ち合わせの多い会社なら、社員のデスクはつくらず自由

  • Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー

    Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184

    Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー
  • x86系アーキテクチャ上におけるLinuxのメモリ保護機構

    x86系アーキテクチャ上におけるLinuxのメモリ保護機構 近永 智之 著 (Chikanaga) メモリーパーミッション:はじめに メモリーパーミッション:メモリパーミッションの確認 メモリーパーミッション:セグメント機構 メモリーパーミッション:ページング機構 メモリーパーミッション:mapsファイルの実体 参考文献 [1] はじめて読む486−32ビットコンピュータをやさしく語る 蒲地 輝尚 (著) 出版社: アスキー 出版年 1994/09 ISBN: 4756102131 [2] Linuxのブートプロセスをみる 白崎博生(著) UNIX MAGAZINE (アスキー) 2002/05号 [3] Linuxのブートプロセスをみる 2 白崎博生(著) UNIX MAGAZINE (アスキー) 2002/06号 [4] Linuxカーネルインターナル Michael Beck 他 (

    jjzak
    jjzak 2009/06/22
    Liinuxにおけるメモリ管理、ページング機構の解説
  • The Linux Kernel

    David A Rusling david.rusling@arm.comv0.8-3 January 25, 1999 JF Projectv0.8-3 December 2000 *フレーム表示* 書は、Linux カーネルの仕組みを知りたい Linux 愛好家のためのものです。これは 内部構造のマニュアルではありません。むしろ Linux で使用されている原理や メカニズムを解説したものであり、Linux の動作原理とはどういうもので、なぜそれ が採用されているのかを説明するものです。 Linux という対象は常に変化しています。書がベースにしているのは現在の安定 版である 2.0.33 のカーネルソースですが、これは個人や法人の大部分で使用されて いるのがこのバージョンだからです。 また、書は自由に配布してもらってかまわないので、一定の条件のもとにではあり ますが、複製や再配

  • Todotaniのはやり物Log

    前回の「PYNQ-Z1のOverlay読み込みとPythonからのFPGA PLの制御」の続編です。前回のポストでは、Overlayのダウンロードに"/dev/xdevcfg"というデバイスファイルを叩いたり、LEDの点滅のためにmmapを直接叩いたりと非常に低レベルな処理になっていました。今回は、PYNQらしく、PythonのOverlayクラスを使ってOverlayをダウンロードし、LEDの制御もMyLEDクラスを使って、より抽象化した処理で動くようにしてみました。 Overlayクラスを使えるようにする Overlayクラスを使ってOverlayをダウンロードするためには、カスタムOverlayのbitstreamを作った際のVivado tclファイルが必要になります。まず、カスタムOverlayのVivadoプロジェクトを開いて、Block Designを表示します。 「File

    Todotaniのはやり物Log
  • オブジェクトファイルについて

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

  • Gitを使いこなすための20のコマンド | OSDN Magazine

    LinuxカーネルやRuby on RailsPerlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。記事では、Gitを使いこなすために覚えるべき20個のGitコマンドを紹介する。 LinuxカーネルやRuby on RailsPerlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。記事では、Gitを使いこなすために覚えるべき20個のGitコマンドを紹介する。 なお、Gitの基的な考え方や使い方については分散バージョン管理システムGit入門でも紹介しているので、そちらも参照してほしい。

    Gitを使いこなすための20のコマンド | OSDN Magazine