タグ

mmapに関するembeddedのブックマーク (7)

  • mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場

    @ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは「mmap(2)」だ。ここでは詳しく仕組みを解説しないが、mmap(2)は、プログラムの処理性能に必ず良い影響を与える。 やはりあった? 高速化に効くシステムコール (1/2):知ってトクするシステムコール(3) - @IT それを真に受けたのか、「Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話 - ryochack.blog」のようなブログエントリも

    mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
    embedded
    embedded 2013/10/10
    シーケンシャルアクセスならread、ランダムアクセスならmmapと理解した。
  • Android 4.0 "Ice Cream Sandwich" の ASLR とその問題 - @a4lg の "続" 準技術的日記

    Android 3.x までは、ASLR が全く存在しなかったことが問題のひとつでした。Android 4.0 "Ice Cream Sandwich" で ASLR が追加されたことにより、どこまで攻撃に強くなったのかを見てみようと考えました…が…エミュレータで試すとランダム要素がないという重大な問題に行き当たりました。 2 つの問題 ASLR がエミュレータ上でうまく働いていないのは、次の 2 つの問題が複合しているものと考えられます。 ARM における mmap のランダム性の問題 app_process コンパイラフラグの問題 ARM における mmap のランダム性の問題 この問題がある場合にはすべてのライブラリは 0x4000_0000 から順番に並び、ランダム性を失います。例えばこんな風に。 40000000-40000fff r-x /library1.so 4000100

    Android 4.0 "Ice Cream Sandwich" の ASLR とその問題 - @a4lg の "続" 準技術的日記
    embedded
    embedded 2011/11/21
    ICSでprelinkingが跡形も無く消えたのはこのためなのかな。
  • 旧えびめも(2003-03-31)

    embedded
    embedded 2010/02/04
    The problem is that jffs2 does not support shared writeable mmap
  • 最速cp on UNIX Systems - moratorium

    ふとしたきっかけで、UNIX上における「最速cp」をやってみようと思い、いくつかの方法を実装してみた。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> mmap -> memcpy -> munmap mmap -> mmap -> memcpy -> munmap with madvise mmap -> write mmap -> write with madvise ソース ソース 環境 Linux ubuntu 2.6.12-10-686 #1 Sat Mar 11 16:22:51 UTC 2006 i686 GNU/Linux glibc 2.3.5-1ubuntu

    最速cp on UNIX Systems - moratorium
    embedded
    embedded 2007/02/23
    [i/o]
  • デバイスドライバを書かずにIOを読み書きする (UserLandIO) - CAT Wiki

    デバイスドライバを書かずにIOを読み書きする † LinuxではI/Oポートの読み書きにはデバイスドライバを書く必要があります。しかしデバック時や簡易的な治具を作るなど、デバイスドライバの作成を省略したいこともあると思います。 このページでは簡易的なI/Oルーチンとして、デバイスドライバを書かずにI/Oポートを読み書きする方法について解説します。ただしこの手法は簡易的なものであり、格的な開発にはあまりお勧めできません。この手法でアプリケーションを開発、デバックし最終的にはデバイスドライバ化することをお勧めします(理由はページの最後に記述します)。 ただ、今までドライバプログラミングが難しそうだからと、せっかくのLinuxボードでもI/Oプログラミングできずに放置されていた方にとっては、はじめの第一歩として学習、研究に大変おもしろい課題と思いますからこれを機にI/O操作の面白さをしってい

  • デバイスドライバに頼らないハードウェア操作

    デバイスドライバに頼らないハードウェア操作 [| ] 最終更新: 2023/02/14 18:32:04 デバイスドライバは要らない? ただ、ハードウェアを操作するだけなら、デバイスドライバは必須ではありません。 なぜなら、Linux は root 権限のあるプログラムであれば、ハードウェア(I/Oポート、メモリ)にアクセスできるからです。 PCIの情報はというと /proc/pci 、 /proc/bus/pci/devices をよむと一通りのPCIデバイスの一覧を得ることができます。 ここでは各デバイスにアクセスするための I/Oポートアドレス、メモリアドレスが得られます。 デバイスドライバを作る利点もいろいろとありますが、ここでは、作らずに済む方法を示します。 デバイスドライバを作らなくともできること デバイスドライバをつくらなくとも、ハードの操作はできます。 I/Oポートに対する

  • http://www-online.kek.jp/~yasu/Kenshu/mmap-driver.html

  • 1