LinuxでWindows Mobileアプリを作成する
参考:Monoで.NET Compact Framework向けのアプリケーションをコンパイルする - ヒビノキロク
コンパイルに必要なもの
- GAC_*.dllファイル 参考:http://www.saturn.dti.ne.jp/~npaka/dotnet/ / Emoneから持ってきた
- cf-cecil-patcher / DownLoad:http://evain.net/public/cf-cecil-patcher.cs.html
- cf-cecil-patcherが使うdll / DownLoad:Redirecting…
コンパイル
コンパイル方法は,上記リンクを参考に.
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
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 の記事で OpenBSD は malloc に mmap を使うと読んだことはあったんですが,
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.
メモリ管理(ハードウェア&ソフトウェア)資料
"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.
来週までに読んでおきたい.