2011/10/17
uIPがフリーで使える
google:"プロトコルスタック open source"
ネットワークチップはデバイスごとに違うので、VM上で開発することで統一。
VMには、Xen,VMware,VertualBox,
QEMUがあるが、今回はQEMUを利用。
今後は、QEMU上でOSを動作させる。
VNC(リモートデスクトップソフトウェア)
RFB(画面転送プロトコル)が使われてる。
変化のあった矩形領域(ビットマップ)だけ転送するとか、やってる。
マルチタスクの"可視化"
→どう見せるか、が重要で頭の使いどころ
リアルタイムOS班とのコラボ
<<持って行った資料>>
◎リモートデスクトップOS
自作OSのPCをネットワーク上の他のPCから操作できる(リモートデスクトップ)機能を持ったOS。他のPCにはWindowsを想定している。
Windowsでもリモートデスクトップはできるが動作が遅く使い勝手が悪いので、OSレベルでリモートデスクトップを実装することで操作感や使い勝手の向上を目指す。さらに、この自作OSならではのアプリケーション(例:OSの動作が見える、ある特定の動作が早い、リモートデスクトップを有効利用しているなど)が出来ればWindowsからリモートデスクトップをする意味が出てくる。Evernoteみたいな使い方もできるかも?
(2段落目の機能はおまけ^^;)
1.ネットワーク通信するためには?
OSに
プロトコル・スタックを実装する。
~プロトコルスタックとは~
ネットワーク上である機能を実現するために必要なプロトコルを選び、階層状に積み上げたソフトウェア群。例えばTCP/IPの場合、一番下にネットワークカードを制御するデバイスドライバがあり、その上にEthernetフレームなどを制御するデータリンク層のソフトウェア、その上にIPなどのネットワーク層を実装したソフトウェアがあり、その上にTCPやUDPのトランスポート層が積まれる形になっている。
参考図書:Linuxカーネル解析入門[増補版] / 平田豊 / I/O BOOKS
の第6章「ネットワーク・ドライバを読む」
→ネットワーク・カードを操作する。今のネットワーク・カードはほぼEthernet。
ネットワーク・カードは「
PCIカード」として売ってたり、「オンチップ」でマザボに載ってたりする。
搭載されてる「Ethernetチップ」の仕様書を入手。レジスタ一覧などが載ってる。
Linuxの8139tooドライバは2600行くらいと規模が小さいので、参考にしやすいかも。
Ethernet, TCP(UDP)/IPを実装するというのは、「ネットワーク・カードを通じて送られてきたデータをそれぞれのフレームフォーマットで解釈して、それに応じた動作をさせる」ということ?あとは、ソケットとかを0から作ったり?
参考図書:マスタリングTCP/IP入門編第4版
理屈とか仕様とかは詳しいが、これだけでは実装の壁を越えられない?
参考図書:基礎からわかるTCP/IPネットワーク実験プログラミング第2版 村山公保
参考になる?
参考図書:オレ流プロトコル実装入門
厚すぎて参考になるんだかならないんだかわからない。
?問題点?
- RealTekのネットワークチップの仕様書が手に入りにくそう(秘密保持契約をしないと見せてもらえない)
- そもそも、デバイスドライバを作成できるか。
最終更新:2011年10月18日 02:25