LinuxでWindows Mobileアプリを作成する

参考:Monoで.NET Compact Framework向けのアプリケーションをコンパイルする - ヒビノキロク

コンパイルに必要なもの

コンパイル

コンパイル方法は,上記リンクを参考に.
cf-cecil-patcherについては,

MONO_PATH=./cecil-0.6 mono ./cf-cecil-patcher.exe HelloForm.exe

のように,dllが置いてあるパスを指定する必要がある.

POOM(Pocket Outlook Object Model)

GAC_Microsoft.WindowsMobile.PocketOutlook_v1_0_0_0_cneutral_1.dll を使うことで,Pocket Outlookのデータを操作できる.つまり,「予定表」や「仕事」をいじることができる.
参考:
Windows Mobile 5.0 アプリケーション開発 POOM – 高橋 忍のブログ
Microsoft.WindowsMobile.PocketOutlook Namespace | Microsoft Docs

EM・ONEα(S01SH2)を購入しました

昨日,岡山のビックカメライー・モバイルの契約を行い,EM・ONEα(S01SH2)を購入してきました.以下,購入時に気になった点です.

  • 保証は1年間のメーカ保証のみ.ビック長期保証などをつけることはできない.
  • 支払方法をクレジットカードにすると,身分証明を求められない.
  • 契約書の記入後,1時間もかからず開通.

帰宅後,ワンセグの視聴とHSDPAによるネットワークへの接続を確認しました.

sys_unshareとnamespace

2.6.24-rc*ではVPS(Virtual Private Server)/コンテナの実現のためにnsproxyを利用した改良がいくつか入っている.
例えば,nsproxy->net_nsが追加されている.このnet_nsネームスペース/コンテナを共有するプロセスは同じloopbackデバイスを用いる.net_nsネームスペースが異なれば異なるloopbackデバイスを用いることになる.
sys_unshare時にCLONE_NEWNETフラグを立てると,おそらく異なるnet_nsネームスペースを用いることが可能となる.
また,nsproxy->pid_nsを用いたプロセスネームスペース独立の実装が追加されている.find_task_by_pid_type_ns(),find_by_pid_ns()とこれらを用いるfind_task_by_vpid()だ.
プロセスネームスペース独立にはカーネルコンフィグでPID namespaceを有効にする必要がある.
sys_unshare時(unshareシステムコール時)にCLONE_NEWPIDフラグを立てると,実行したプロセスのpid_nsが新たに確保される.pid_ns毎に/procのvfsmount構造体であるproc_mntを持つことで,pid_nsが異なるプロセスをprocfsを用いて見ることができなくなる...はす.
各pid_ns毎のpidはvpid(virtual pid)として扱われる.pidからtask_structプロセス構造体オブジェクトを取得する際に用いるハッシュのキーに(従来はpidだけだったのに対し)pidとpid_nsを用いることで,pid_ns毎にpidとプロセスを関連付けている.つまり,pid_nsが異なれば同じpidでも異なるプロセスと関連付けられる.

メモリ管理(glibc malloc)資料

twitter で話題になっていたので,読んでた.
glibc malloc 資料
革命の日々! の kosaki さんの資料.
LWN の記事OpenBSDmallocmmap を使うと読んだことはあったんですが,

  o malloc(3) has been rewritten to use the mmap(2) system call,
    introducing unpredictable allocation addresses and guard pages, which
    helps in detecting heap based buffer overflows and prevents various
    types of attacks.

glibc でもサイズによっては mmap 使うんですね.参考になります.

メモリ管理(ハードウェア&ソフトウェア)資料

"What every programmer should know about memory" - the PDF version [LWN.net]

Abstract
...
This paper explains the structure of memory subsystems
in use on modern commodity hardware, illustrating why CPU caches were developed, how
they work, and what programs should do to achieve optimal performance by utilizing them.

来週までに読んでおきたい.