タグ

linuxに関するpunitanのブックマーク (41)

  • [レポート]LinuxCon Japan 2011開幕 Linus Torvalds氏が基調講演「20年間の開発者の労力の先に今がある」 | gihyo.jp

    LinuxCon Japan 2011 Preview [レポート]LinuxCon Japan 2011開幕 Linus Torvalds氏が基調講演「20年間の開発者の労力の先に今がある」 6月1日~3日、パシフィコ横浜にて開催される「LinuxCon Japan 2011」が開幕した。初日最初の基調講演はLinux生みの親Linus Torvalds氏が登壇。「⁠20 Years of Linux」(⁠Linuxの20年)と題し, Greg Kroah-Hartman氏との対談形式でキーノートが進められた。 開会の挨拶に立ったのはLinux Foundation ジャパンディレクタの福安徳晃氏。東日大震災の影響から、一時はLinuxCon中止も検討されたが、開催を願う励ましの声やスポンサー、関係者の協力を得て開催に至ったことを明かした。そして、電力消費量が逼迫する中、開会中の電力の

    [レポート]LinuxCon Japan 2011開幕 Linus Torvalds氏が基調講演「20年間の開発者の労力の先に今がある」 | gihyo.jp
  • @IT:全貌を現したLinuxカーネル2.6[第1章](3/3) - AIO

    ファイルI/Oの効率化 ■Multi page block I/O カーネル2.4は、ページキャッシュ層からブロックI/O層へリクエストを渡す際、複数ページから成るバッファをそのまま渡すことができず、いったんブロックサイズに分割したバッファをブロックI/O層で再びつなぎ合わせるという無駄な処理を行っていた。 カーネル2.6では、複数ページから成るバッファに対するI/Oを効率的に行うため、bioと呼ばれる構造体が新設された。これは従来のBuffer headに相当するものだが、ページの配列を持つようになっており、複数のページをまとめてブロックI/O層へ渡すことができる。また、これに合わせた各デバイスドライバの修正も行われた。これに伴い、Direct I/Oのコードもbioを使用するように大幅に書き直された。 カーネル2.6にも従来のBuffer headは残されているが、その処理はbioを使

    @IT:全貌を現したLinuxカーネル2.6[第1章](3/3) - AIO
  • [unix] Linux SYNパケット取りこぼし (2) 2007-05-21 - LowPriority

    前回の続き。 パケット自体を零さずに処理に入った後にSYNを落とすのは以下3パターン。 syncookie無効時にsynのbacklog(tcp_max_syn_backlog)が溢れている listenのbacklogが溢れている(3way-handshake完了後のaccept待ち接続) net.ipv4.tcp_tw_recycleの制限に抵触 で、今回問題になっていたのは最後のtcp_tw_recycleへの抵触だった。 現象として発生しうるのは、以下の条件をすべて満たす場合 サーバ側でnet.ipv4.tcp_tw_recycleが有効 TCPタイムスタンプオプションを使用 同一IPからの接続でセッションを跨ぐとセットされるTCPタイムスタンプの値が戻る場合がある 最後の条件が微妙だが、TCPタイムスタンプの値としてセットされる値は起動時を 起算時にしていたりと実装によって初期値

    [unix] Linux SYNパケット取りこぼし (2) 2007-05-21 - LowPriority
  • JSLinux - Technical Notes

    History This emulator has a long history. The current version is based on TinyEMU and compiled to Javascript or WASM with emscripten. In 2011 I wrote the initial version of JSLinux, the first PC/x86 emulator in Javascript running Linux. I reused parts of another of my emulators (QEMU) for the x86 helpers and the devices. After some time (2015), I modified it to use the asm.js Javascript subset so

  • Scientific Linux | Information about the Scientific Linux distribution

    Scientific Linux is an Enterprise Linux rebuild sponsored by Fermi National Accelerator Laboratory. For more information about Scientific Linux please review our About page. For information about how to get help or get involved see the Community page. For information on our support policy, see our Support page. Questions? See our FAQ. Latest Releases of Scientific Linux: See the Fermilab/CERN reco

  • JSLinux

    Run Linux or other Operating Systems in your browser! The following emulated systems are available: CPUOSUser InterfaceVFsync accessStartup LinkTEMU ConfigComment

  • バッファキャッシュとAIO(4) - O'Reilly Japan Community Blog

    前回はPOSIX AIOとLinuxカーネルのAIOサポートについて解説しました。今回は、このAIOの使い勝手を良くするため、POSIX AIOインタフェース準拠のライブラリを作成しています。 LinuxネイティブAIOライブラリliblaioの試作 Linux AIOを使用する場合、現在では前述のlibaioの利用が第一候補になりますが、やや使い勝手が悪いため、記事でPOSIX AIOインタフェース準拠のライブラリを試作してみます。Linux AIOではO_DIRECTが前提となるため、この点もやや使い勝手が悪いのですが、SSDなどメモリベースのファイルシステムもありますし、動作は非同期になりませんがio_submit(2)はO_DIRECTがなくとも使用可能ですから、まぁ試しにやってみましょう。 ライブラリ設計要点を挙げます。 Linux AIOにPOSIX AIOインタフェースをか

  • バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog

    前回までファイル I/O 全般について簡単に振り返りました。いよいよ題のAIOに取り掛かります。今回は、POSIXのAIOインタフェースと、LinuxカーネルのAIOサポートについて紹介します。 POSIX AIO インタフェース バッファキャッシュにより緩和されるとはいえ、ファイル I/Oの最終到達地点はディスクですから、同期的なI/Oはやはりその時間が問題視されることがあります。まだバッファキャッシュに存在しないデータを読み取る場合には遅いディスク必ず待たなければなりません。この動作を非同期に行い、待っている間に他の処理を進められるようにするのが非同期 I/O、AIO(Asynchoronous I/O)です。POSIXではaio_read(3)、aio_write(3)、aio_suspend(3)、aio_fsync(3)、aio_return(3)、aio_cancel(3)、

  • バッファキャッシュとAIO(2) - O'Reilly Japan Community Blog

    プロセスがブロックする要因の一つにファイルI/Oがあります。これを同期I/Oと言いますが、POSIXではAIO(非同期 I/O、Asynchronous I/O)も定義しており、I/O中でもプロセスがブロックせず他の処理を進められるようになります。 今回は、バッファキャッシュを意識したさまざまなファイルI/Oについて解説します。 メモリマップ I/O ファイルI/Oの一種にメモリマップI/O、mmap(2)があります。mmap(2)(およびmmap2(2))はオープンされたファイルをプロセスアドレス空間へマッピングするもので、例えばアプリケーション内に領域を用意し、ファイルを読み取る動作は次のようにも実装できます。 3mmap.c 要約 { char a[N]; fd = open(path, O_RDONLY); read(fd, a, N) printf("%.*s\n", N, a)

  • バッファキャッシュとAIO(1)

    プロセスがブロックする要因の一つにファイルI/Oがあります。これを同期I/Oと言いますが、POSIXではAIO(非同期 I/O、Asynchronous I/O)も定義しており、I/O中でもプロセスがブロックせず他の処理を進められるようになります。 記事ではバッファキャッシュからファイル I/Oを解説し、Linuxのio_submit(2)を用いたPOSIX準拠のAIOライブラリを試作してみます。 ファイルI/Oとバッファキャッシュ io_submit(2)ではDirect I/Oを用いますが、ライブラリの試作へ進む前にまずファイルI/Oのバッファ(バッファキャッシュ)について整理します。実は単にバッファと言ってしまうと誤解される場面が多くあり、例えばプログラミング入門一般としてファイルI/Oを取り上げる際には、 CPUの動作は速い。ディスクの動作は遅い。 両者の間に速度差を緩和する緩衝

    バッファキャッシュとAIO(1)
  • epollインタフェースとsignalfd(2) - O'Reilly Japan Community Blog

    >> (1)よりつづく 記事のサンプルコードは、以下のリンクよりダウンロードすることができます。記事と合わせてご参照ください。 [ サンプルコード ] 子プロセスの同期/非同期 4epoll、5epoll-multiへのダミー処理追加には、いくつかの注意点があります。1baseと同じように、epollによるイベントループがその場で子プロセスの終了を待つようにすると、1つのダミー処理の終了を他のセッションが待つことになってしまいます。 これはepollによる、イベントループのI/Oの多重性を損なう大きな問題です( 図1.9 )。 図1.9 epoll の多重性を損ねるダミー処理追加 (セッションCは割愛) この問題はマルチスレッドを用いず、シングルスレッドで自らI/Oを多重化する構造に由来します。 epollによるイベントループを用いた構造では、子プロセスの終了を同期的に待ち合わせることは

  • epollインタフェースとsignalfd(1) - O'Reilly Japan Community Blog

    「インターネットサーバでのPthreadとepoll」の記事(以下、前記事と呼びます)を書いた時点では、手元の環境がプアなためマルチプロセス/マルチスレッドを採用したサンプルプログラムの真価を発揮させられず、適切に比較できませんでしたが、その後デュアルコアマシンを借りることができたので、改めて比較してみました。 また、比較の際にサンプルプログラムに追加したダミー処理ではシグナルも使用したので、やはりLinuxに追加された signalfd(2) もepollによるイベントループで処理してみました。 記事のサンプルコードは、以下のリンクよりダウンロードすることができます。記事と合わせてご参照ください。 [ サンプルコード ] 前記事のサンプルプログラム 前記事 ではHTTPサーバを例に並列性/多重性のサンプル実装を5種類提示しました。簡単に振り返ります。サンプルプログラムがデュアルコアシス

  • インターネットサーバでのPthreadとepoll(2)

    >>(1)よりつづく 前回は単純な実装からマルチスレッド、スレッドプールと順に見て行きました。今回はいよいよepollを使った実装を紹介します。 epoll例- 4epoll.c 多重I/Oすなわち select(2) / poll(2) によるイベントループはマルチスレッドが普及する以前から利用されていました。 select(2) / poll(2) は複数のファイルディスクリプタ(ソケット)を調べ、I/O可能なものを返すシステムコールです。ソケットに対する読み取りはデフォルトではデータがなければブロック(データが到着するまで待つ)しますが、事前にI/O可能かを確認しておけばブロックすることはありません。1システムコールで複数のソケットを調べられる点も重要で、1プロセスで複数のクライアントに並行して対応できるようになります。しかし当然ながら、対象ソケット数の増加に応じて処理量が増えます。

    インターネットサーバでのPthreadとepoll(2)
  • インターネットサーバでのPthreadとepoll(1)

    連載ではシステムコールプログラミングの例も掲載していく予定ですが、記事ではLinuxに追加されたepollを採りあげ、インターネットサーバでのPthread利用と比較してみます。 はじめに マルチスレッドプログラミングが普及し、POSIX threadも制定され、Pthreadの利用は目新しいものではなくなりましたが、スレッドにまつわる迷信や誤った認識を、だいぶ減ったとはいえ、今でもたびたび耳にします。例として、 スレッドはプロセスよりも軽いので、多数作成しても軽快に動作する スレッドはプログラミングを簡単にしてくれ、1つの処理だけに集中できる などがあります。しかし、これらは常に真であるとは限りません。記事ではマルチスレッドの概念や入門を繰り返すのではなく、その利用方法をHTTPサーバのサンプル実装を基に考察します。更にLinuxに追加された独自機能のepollインタフェースを用い

    インターネットサーバでのPthreadとepoll(1)
  • 超期待の新機能cgroups

    こんにちは。CTOの馬場です。 今回もインフラエンジニア向けにちょっとした情報を紹介します。 今回は、先日参加した レッドハットフォーラム 2010 で紹介されていた cgroups について紹介します。 ※注:ざっくりとした理解で書いているので、誤りがあれば指摘してもらえると嬉しいです! ここが理解が違う、こんな使い方もあるよ!などの情報は、twitterで @heartbeatsjp @hbstudy @toshiak_netmark あたりに教えてもらえると嬉しいです。 cgroupsとは? cgroupsは Control Groupsの略で、 Linux kernelに組み込まれているリソース割り当て管理機能です。 「期待の新機能」とかタイトルつけましたが、 マージされたのは2.6.2xの頃のようなのでかなり時間は経っていますね。 RHEL的に新機能なので、ご愛嬌ということで。

  • cgroups - Wikipedia

    cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O, etc.[1]) of a collection of processes. Engineers at Google started the work on this feature in 2006 under the name "process containers".[2] In late 2007, the nomenclature changed to "control groups" to avoid confusion caused by multiple meanings of

    cgroups - Wikipedia
  • grsecurity - Wikipedia

    grsecurity は、コンピュータセキュリティ強化のためのLinuxカーネル用パッチセットである。ユーザーをログイン可能にしているWebサーバなど、信頼できるかどうか不明なリモートからのコネクション要求を受け付けるシステムで主に利用される。 grsecurity は GNU General Public License でリリースされているフリーソフトウェアである。 PaX[編集] grsecurity に含まれる主要コンポーネントは PaX である。これは、スタックなどに使われているメモリを実行不可能とし、プログラムコードが書かれているメモリを書き込み不能と設定する。これによってバッファオーバーランなどの脆弱性を利用した攻撃に対する防御とする。また、ASLR (Address Space Layout Randomization) によって仮想空間内の配置を無作為に変化させ、特定の内

  • マジックSysRqキー - Wikipedia

    マジックSysRqキーは、Linuxカーネルでシステム状態に関する低レベルコマンドを発行するキーシーケンスである。 SysRqとその他のキーとを組み合わせて使用する。これはカーネル開発におけるデバッグ用であると同時に、しばしばシステムがフリーズした際に、その状態からの回復やファイルシステムを破損させることなくコンピュータを再起動させるために使用される。 用途[編集] サン・マイクロシステムズのOpen Firmware(OpenBoot)と同様のこのキーシーケンスは、ソフトウェア開発やトラブルからの回復を行うための以下のようなツールへのアクセスを提供する。 強制的なファイルシステムのアンマウント プロセスの強制終了 キーボード状態の回復 書き込みキャッシュのフラッシュ(ディスクへの書き込み) システムの再起動 コマンドキー[編集] キーシーケンスは、Altキー、SysRqキーおよびその他の

  • UNIXの達人によるセックス:Geekなぺーじ

    パターン1 #!/bin/sh unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep; パターン2 who | grep -i blondie | talk; cd~; wine; talk; touch; unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp; umount; make clean; sleep パターン3 gawk; talk; nice; date; wine; grep; touch; unzip; strip; touch; gasp; finger; gasp; mount; fsck; more; yes; gasp; umount; make clean; make mrproper

  • ワンライナー「linux sex」を美女Linuxで再現してみた - このブログはURLが変更になりました

    commandlinefu.comで「linux sex」と題されたワンライナーが紹介されていたが削除されてしまったようなので、美女Linuxを使って再現してみた。 stripとyesとumountは画像がなかった。残念。 美女Linuxのサイトに無断転載禁止って書いてなかったので使ってみたが、怒られたら消します。 コマンド再掲。 $ date ; unzip ; strip ; touch ; grep ; finger ; mount ; fsck ; more ; yes ; umount ; sleep 追記:このネタ2007年にgeekpageさんで紹介されてましたね。 Geekなページ : UNIXの達人によるセックス まぁ美女Linuxを使ったところが新しいということで。