2012-01-01から1年間の記事一覧
自分はDELL XPS15をメイン機に使っています。 こいつはNVIDIA GT540Mを積んでいるのですが、面倒なことにGPU切り替え技術「Optimus Technology」が採用されています。普通にはNVIDIAの公式ドライバーは使えず、Bumblebeeというオープンソースプロジェクトを…
この記事はC++ Advent Calendar 2012 12日目の記事です。Boost.Asio、みなさんもお使いのことと存じますが、あれこのソケットなかったっけ? とかこれもAsioで使いたいなぁと思ったことはありませんか? そんな時のためにこの記事ではBoost.AsioのProtocol, so…
結構前の話でUbuntuでgccのビルドをしようとした時multiarchの関係でldが「crti.oが無い」って死んでしまう自体が発生。 それで解決したんですが今また同じ事に嵌ったのでメモ。たぶんこれと同じ http://gcc.gnu.org/ml/gcc/2012-02/msg00210.html export CP…
Linuxでデバイスドライバを作るとき標準出力が無いので代わりにカーネルバッファに情報やエラーを出力します。 普段はprintk()を使っているのですが、思いたちでLinuxのメーリングリストに投げるパッチの体裁をチェックするscripts/checkpatch.plに書けてみ…
Linux bridge of my own making: arp request never succeeds - stackoverflow http://stackoverflow.com/questions/13082706/linux-bridge-of-my-own-making-arp-request-never-succeeds
前の記事でイーサネットフレームを非同期に受信するプログラムについて書きましたが、 あれを起動している最中、イーサネットフレームのtypeが0x26なものが出てきました。 この値はarex::ether_typeのどの値にも該当しません。 ちょっと気になったので調べて…
pfpacket / libarex https://github.com/pfpacket/libarex引き続いて、libarexにethernetのサポートとその他変更を加えたので、 これを使って簡単に何か作ってみようと思ったのでパケットレシーバーを作ってみました。イーサネットフレームを受信してその中…
前からやろう、やろうで先延ばしにしていたBoost.Asioでのpacket socket対応をしてみました。pfpacket / libarex https://github.com/pfpacket/libarexpacket socketの説明は`man 7 packet`か http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/packet…
自分のラップトップにArch Linuxをインストールして1ヶ月以上たちました。 自分がプログラミング用に使うサブ機なんですが、性能が低いのでXなんか重くてストレスがたまるだけなので、 いつもXなしのコンソールで作業します。しかし、調べものやメールを見る…
最近Arch Linuxがお気に入りで、ずっと使ってるんですが無線LANの調子が悪い。 無線LAN子機としてUSBWLAN(WLI-UC-GN)を使っていて、何もせずすんなりと認識してくれたのは良いんですが、 wicd使ってるとなぜかDHCPでアドレスがもらえない。ということでwicd…
一ヶ月ぶりの投稿です。 自由課題でクワインマクラスキー法を実装すれば点数がもらえるという事で早々に実装。 pfpacket / Quine-McCluskey https://github.com/pfpacket/Quine-McCluskey ・クワインマクラスキー法とは 実際のところwikipedia http://ja.wik…
昨日、[グラフ理論 Welsh-Powellの頂点彩色アルゴリズムを実装してみた] http://d.hatena.ne.jp/devm33/20120616/1339811432 という記事を書いたが、教科書に載ってあった例はどれも彩色数になるものばかりだったのでいい問題がないか ぐぐってみたがなかな…
そこら辺にあった離散数学の教科書をペラペラめくってるとグラフ理論の話があったので 「これBoost.Graphつかえば...」 と急に思い立ってBoost.Graphをいじり始めて、 Welsh-Powellのアルゴリズムという手頃な問題を見つけたので実装してみた。(頂点)彩色と…
SYN floodのコードをgithubで公開しました。 gitはやっと「一人」で作業するには問題ない程度になりました。Linux Kernelが送信先からの[SYN,ACK]セグメントに対し[RST]セグメントを送信するのはIP_HDRINCLを設定していない うんぬんかんぬんでは無く、[SYN,…
Boost.Asioでsocketのsocket optionを有効にする方法は2つあるんですが(もっとあるかも)1. socketのnative_handle()を呼び出す。 native_handle() http://www.boost.org/doc/libs/1_49_0/doc/html/boost_asio/reference/basic_socket/native_handle.html を…
図書室にはAndroid HacksなどのAndroid本がいくつかあったのでサラっと読んでみて ネットで調べながらいろいろいじくりまわすこの頃。ついに今日「作ればわかる! Androidプログラミング」を買ってしまった。Javaなのは微妙だが(慣れてないから)、なんだかと…
自分の携帯電話(ガラケー)が壊れたので、先週、auショップにてAndroidスマートフォンに機種変更した。 LinuxカーネルということもありAndroidに興味があり、さっと調べた感じでは概ね評価が良かったので、機種はiPhoneではなくXperia Acro HDにした。クラウ…
最近、思い立ったようにCASL2シミュレータつくってます。 CASL2はとっても仕様が簡単なので。x86とかやり出したら死ぬ...勉強のためにコンパイラにバイナリコード吐かして、シミュレータで実行する形になる予定。 ただ、自分の乏しい知識と技術では: 命令コ…
4/1に行われた「カーネル/VM勉強会@関西 其の参」に参加してきました。 駅から京大とは真逆の京都御所まで行ってしまい、最初の発表を半分くらい聞きのがしてしまいました。 初勉強会だったのでちょっと緊張しました。 - 以下敬称略@mayahu32「マルウェアの…
ー追記,結論ー の enum file_descriptor_flags { never_close_handle = 0, close_handle = 3 }; をつかって、 boost::iostreams::stream<boost::iostreams::file_descriptor> iosfd(fd, boost::iostreams::close_handle); という風に使う。 http://www.boost.org/doc/libs/1_49_0/libs/iostreams</boost::iostreams::file_descriptor>…
ファイルディスクリプタをストリームで扱いたいと思い、Boost.Iostreamsを使おうとおもいたったはいいが、 コンパイルがことごとく通らない。ファイルディスクリプタ や FILEポインタ を C++ iostream から使う http://ameblo.jp/topazbc/entry-10095665489.…
またもやTwitterネタなんですが、 「「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな? 」というツイートが流れてきて、C++erの方々…
TwitterのTLにMACアドレスがなんとかかんとかとあって、ふと思い出したのでメモ。 #include <iostream> #include <string> #include <algorithm> #include <stdexcept> #include <cstring> #include <cerrno> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <net/if.h> #inc…</net/if.h></netinet/in.h></sys/ioctl.h></sys/socket.h></sys/types.h></unistd.h></cerrno></cstring></stdexcept></algorithm></string></iostream>
前にnon-staticなメンバー関数をシグナルハンドラとして実行する汚いクラスをネタに記事を投稿しました。 すると、アキラさんから本ブログ初の「Boost.Asioのsignal_setを使ってみては」というありがたいコメントを頂いたので遅くなりましたが ちょっと作っ…
とりあえず前の投稿の内容 + 下記のtcp_header.hpp とで一応SYN flood らしきものが作れました。 ただシステムコールレベルで socket(AF_INET, SOCK_RAW, IPPROTO_TCP) を使用していて、IP_HDRINCL を有効にしていないためか、 カーネルが勝手にRST を送信し…
久しぶりにPSPSDKいじったのでメモPSPでsocket APIでインターネットにアクセスするために、 まずPSP本体をインターネットに接続するためにWireless LANでAccess Point(AP)に接続しなければならない。そこでpspnet_apctl.h で宣言されているAPIを使用する。ま…
ようやく自分の頭の中でboost.asioのローレイヤーネットワークプログラミングが明らかになってきました。まず基本。 asioではraw socket生成にbasic_raw_socketを使います。 これはLinuxの生のシステムコールを使用した場合の raw_socket = socket(AF_INET, …
ブログ書くの久しぶりですね。最近、boost.asioでrawソケットいじれたれたらいいなぁと思ってずっとicmp/ping.cpp を見てました。 icmpだけできてもあれなんで、他のプロトコルも追加してみたいなと思い資料を探していたのですが、http://www.boost.org/doc/…
この前、hbliatさんからC++でBrainF*ck作ってみろやと挑戦状が届いたので作ってみた。追記: 下記のをC++11のラムダ式でむりやり書いてみた(やっつけコード。眠い...) #include <iostream> #include <fstream> #include <string> #include <vector> #include <map> #include <stdexcept> #include <iterator> #include <functional> clas</functional></iterator></stdexcept></map></vector></string></fstream></iostream>…
CTRL-Cやkillコマンド等でプロセスへシグナルを投げるとそのプロセスのシグナルハンドラが実行されます。ここではシグナルハンドラとしてオブジェクトのメンバー関数を実行してみようと思います。結論を言うと「無理」です。いやstaticなら行けそうだけど。…