タグ

ブックマーク / lv4.hateblo.jp (2)

  • Linuxネットワークドライバの開発 - Handwriting

    この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ

    Linuxネットワークドライバの開発 - Handwriting
  • 任意精度算術ライブラリGMP - Handwriting

    今までGCCをコンパイルするとき何となしにビルドしていたGMP。 このライブラリ、なんなのかようやく知る機会を得た。 (そもそもビルドするときに何なのか疑問をもつべきではあったが) そもそもこのライブラリ、 GNU Multiple Precision Arithmetic library というらしい。つまり任意精度算術ライブラリだ。 数値の精度 知る人にとっては当然のことだが、普段プログラミング言語で扱う数値には精度の限界がある。 たとえば、いちばんわかりやすい例で言うとC言語のint型は32bitであるため、2^32通りの数値しか表せない。 int型は正数と負数の両方を表せるため、-2^31〜(2^31)-1の値を取り得る。 -2147483648〜2147483647のようだ。 つまり、10桁程度までしか扱うことができない。 これをunsigned intに変えたところで、2倍程度

    任意精度算術ライブラリGMP - Handwriting
  • 1