zxLinux - みる会図書館


検索対象: UNIX MAGAZINE 2000年6月号
7件見つかりました。

1. UNIX MAGAZINE 2000年6月号

図 5 zxLinux アプリケーションの起里 zxLinux サーバー ①イメージの読込み、 形式変換、展開 zxLinux DOS FS ext2fs イメージ 実行イメージ zxLinux アプリケーション zxLinux アプリケーション ② code—create_file() 0 proc—create() マ 0 proc-start() zxLinux アプリケーション プロセス 現在は、 zxLinux の実行優先度を上位に固定している ため、 zxLinux をバックグラウンドで実行しながら PDA アプリケーションを使うことはできないようにしてありま す。しかし、しつをいうと zxLinux と PDA アプリケー ションは同時に実行できます。将来的には、 zxLinux が バックグラウンドに回ったら優先度を下げるといった手 法で、 zxLinux と PDA アプリケーションとの共存を可 能にする予定です。そうすると、 PDA と Linux の切替 えがさらに高速になります ( ただし、これを実現するには RAM の容量もネックになります加。 現在、 zxL ⅲ ux はキャラクタによるコンソール I / O と、 朱な方式による描画サーバーによるグラフィック画面描 画か基本です。 GUI の必要生は認識していますが、ザウ ルスには RAM が少ししかありません。したがって、 X サーバーや、メモリを大量に消費する X クライアントを そのまま不身直するのは 4 巨見実的です。 zxLinux で GUI を 実現するために、携帯 Linux マシンで共通に使えて少な いメモリて動く新しいウインドウ・システムや Widget の 開発を始めています。 zxLinux は、スタート地点についたはかりです。アプ リケーション開発やカーネルの発展には、ユーサー・コ ミュニティによるカか期侍されています。 zxLinux アプ リケーション開発については、 Linux/x86 でのクロス開 発キットも無償で酒己布しています。 Linux/x86 上の gdb からザウルス上の zxLinux アプリケーションのテンヾッグ ができるリモートデバッガも用意されています。ぜひ、皆 UNIX MAGAZINE 2000.6 さんも zxLinux のアプリケーションを書いてください。 zxLinux の技術にはアメリカ人も興未を示しています。 先日、僕は Red Hat の CTO である MichaeI Tiemann 氏に zxLinux の技術を説明してあげました。 zxLinux に よって、ザウルスの底力をみせることができたと考えてい ます。日本の技術の成果であるザウルスと zxLinux を一 度試してみてください。 なお、 zxLinux の実現にあたって多くの方々のご協力 をいただきました。とくに、シャープモバイルシステム 事業部の羽田部長、清原氏、溝手氏にはお世話になりまし た。末尾になりましたが、厚くお礼を申し上げます。 ( たけおか・しようぞうアックス ) [ URL] [ 1 ] KVM Page (http://www.axe-inc ・ co ・ jp/kvm/) [ 2 ] シャーブザウルス (http://www.sharp ・ co ・ jp/sc/excite/ zaurus/zaurus-index. htm) [ 3 ] K*BUG (http://www ・ kbug ・ gr ・ jp/) [4 レ xLinux (http://www.zxlinux.org/) [ 5 ] アックス (http://www ・ axe-inc ・ co ・ jp/) [ 6 ] Samsung YOPY (http://www.sem.samsung ・ co ・ kr/eng/product/digital/pda/index. htm) [ 7 ] LinuxCE プロジェクト (http://www ・ linuxce ・ org/) [ 8 ] zxLinux 開発ドキュメント V. 0.3.2 (http://www ・ zxlinux ・ org/doc/devdoc.html) 119

2. UNIX MAGAZINE 2000年6月号

Llnux fO 「 ZaUrUS 図 4 イベント里の充れ ザウルス OS APM zxLinux アプリケーション read XTAL Queue XTAL の通信機能を使って zxLinux のテンヾイスドライバ とやりとりします ( 図 4 ) 。入力については、 zxLinux は 割込みのシミュレーションをおこない、デバイスドライバ のコンべンションをそのまま使えるようにしています。 z 旧 00t イ勺なガ去は、開発用のドキュメント [ 8 ] を参照してくだ さい ) 。また、 zxLinux カーネルや、 zxLinux カーネル をプートする zlboot (MORE ソフト ) も DOS FS 上の ファイルとして管理されています。 zxLinux アプリケーションの起動 ネットワーク zxLinux のネットワーク機能は、通常の Linux とは zxLinux カーネルから zxLinux アプリケーション 異なり、ザウルス OS の既存のネットワーク・プロトコ を起動する場合、既存のザウルス環境で動かすために ルスタックを使用しています。つまり、 zxLinux カーネ zxLinux では独自の乍をおこないます。 ルへ向けて発行されたネットワーク関連のシステムコーノレ さきはど説明したように、ザウルス OS ではプログラム は、 zxLinux カーネル内でサウルスのネットワーク機能 コードはフラッシュ ROM などの DOS FS 上に置かれて の呼出しに変換されたのち、サウルス OS の呼出しか実行 いる必要があります。ファイル形式についても、ザウルス されます。 OS の実行形式でなければなりません。 ダイヤルアップ手順などは zxLinux の管理下にはな よって、 zxLinux カーネルは、 zxLinux アプリケーシ く、サウルスのネットワーク機能に任せています。した ョンを実行する前に ex2fs 上の ELF 形式バイナリを読み がって、ユーザーがサウルスの PDA 環境でおこなった 出し、ザウルス実行形式に変換しながら DOS FS へ書き ダイヤルアップ・ネットワークの設定 ( プロバイダの電話 込みます。その後、 XTAL のプロセス起動手順を実行し、 番号、パスワードなど ) は、そのまま zxLinux でも使用 zxLinux アプリケーションが起動されます ( 図 5 ) 。 できます。 おわりに ファイルシステム zxLinux によって、いままでにない形態の Linux か実 zxLinux では、ファイルシステムとして ext2fs を使用 現できました。 しています。しかし、サウルスには ext2fs をオ褓内する記 zxLinux は、立ったまま使える Linux です。キーポー 憶装置がありません。そこで、 ext2fs 本のイメージをザ ドのない携帯マシンに、実用的な Linux を初めて提供で きたと自負しています。既存の PDA 環境を保ったまま ウルスの DOS ファイルシステム (DOS (S) 上に 1 つの 動くので、 PDA と Linux のやりとりもたいへん簡単で ファイルとしてオ巒内し、それをマウントすることで ext2fs す。ザウルスで気軽に Linux を使えます。その点でも、 を見しています。 L ⅲ ux の世界に新たな発想をもたらすことができたと思っ DOS FS 上に作られた ext2fs の管理は、 Linux マシ ンをもう 1 台持っていればとく 0 毆隹しくはありません ( 具 ています。 118 UNIX MAGAZINE 2000.6

3. UNIX MAGAZINE 2000年6月号

を重川させることに成功しています。たとえは、ファイル I/O 処理は Linux タ ) 機能によって処理するため、これ らの処理カ院了するまでは、カーネル内スレッドはたんに ウェイトに入るのみでうまく処理がおこなえるようになっ ています。 カーネル内スレッドは、 XTAL のスレッド機能で実現 していますが、そのスケジューリングは Linux カーネル 自身のスケジューラでおこなっています。 zxLinux 図 3 zxLinux サーパー内でのシステムコール里 スレッド スレッド スレッド レ 0 処理について zxLinux アプリケーションは、基本的に Linux 用のア プリケーションです。当然、デバイスの操作なども Linux でのイ去に従います。つまり、 I/O 操作は、原則として /dev 以下のテンヾイスファイルに対する read/write でお プリケーション " 、また起動された zxLinux アプリケー こなう必要があります。デバイスに対する実際の処理は、 ションを、、 zxL ⅲ ux フロセス " と呼びます。 zxLinux カーネルにリンクされたデバイスドライバの部 zxLinux プロセスは、 Linux システムコーノレを発行し 分カ当します。 ます。そのシステムコーノレは、 XTAL のプロセス間通信 現在のバージョンてサポートしている I/O は、文字出 であるキューを用いた通信に変換されます。 力、キーポード、入力ボタンによる入力です。 zxLinux プロセスは、基本的にユーサーレベルでは シリアルポートは、 zxLinux 用のリモート gdb ( テンヾッ XTAL やサウルス OS のシステムコールを発行しません。 ガ ) カイ吏用します。ただし、リモートデバッガを起動しな ただし、 zxLinux サーバーの管理タ ) 資源 ( おもにメモリ いかぎりは、 zxLinux のアプリケーションが自由に使っ と CPU 時間 ) については、 zxLinux フロセスが XTAL てかまいません。 から妾取得し、その管理は XTAL に「モぜています。 新たにサウルスの機能を利用したいときは、テンヾイスド zxLinux アフリケーションでは、 XTAL のスケジュー ライバを作成する必要があります。ただし、多くの場合、 ラによってスケジューリングをおこなっています。 その作業はザウルス OS の機能を呼び出し、 Linux カーネ zxLinux では、通常の Linux の機能のうち、 mmap() ルとのインターフェイスを作るだけなので、通常の Linux を除くほはすべての API が使用できます。 のテンヾイスドライバとくらべれば簡単な竹喋ですみます。 以下では、 zxLinux の入力処理についてすこし詳しく 説明します。 zxLinux カーネルの内部には、 1 つの zxLinux アフリ ザウルス OS では、キーポードやボタンなどからの入 ケーション・プロセスごとに 1 つのカーネル内スレッド 力はイベントとして処理されます。それぞれの入力は、サ か存在します。カーネル内スレッドは、 zxLinux アプリ ウルス OS に常駐している APM から、イベントとし ケーションのシステムコール処理を実行します ( 図 3 ) 。 て MORE ソフト ( ザウルス用アプリケーション ) に渡 とくに、システムコールによってカーネル内部で、、待 されます。 zxLinux では、これらのイベントを受け取る ち " 2 か発生したとき、カーネル内スレッドはその待ち条件 ために zlboot という MORE ソフトが用意されていま か満たされるまでウェイトに入ります。この構造により、 す。 zlboot は、 zxLinux のプート処理をおこなったあと、 待ち処理を複雑にせす、 XTAL のもとで Linux カーネル MORE ソフトとして存在し続けます。 zxLinux のために ザウルス OS が生成したイベントは、 zlboot か受け取り、 2 nanosleep() システムコールやファイル I/O 処理などてす。 プロセステーブル zxLinux サーバー カーネル内部での処理 117 UNIX MAGAZINE 2000.6

4. UNIX MAGAZINE 2000年6月号

zxLinux 表 1 zxLinux の配布パッケージ パッケージ名 zxLinux バイナリ・キット zxLinux アプリケーション開発キット zxLinux カーネル開発キット zxLinux カーネノレ・ソース zxLinux 基本コマンド・ソース newlib ソース ランタイムライプラリ・ソース zxLinux コマンド・ソース zxLinux 用 gdbserver zxLinux 用リモート GDB バイナリ zxLinux 用リモート GDB ノヾッチ GDB4.18 ソース gdbserver ソース zlboot ソース 説明 zxLinux カーネルのソースコード gcc ライプラリ、インクルード・ファイルなど gcc ライプラリ、インクルード・ファイルなど で可育 zxLinux カーネルのプートプログラム、 ext2fs イメージ (zxLinux の実行はこオ・けごけ gdbserver の実行バイナリ (MORE ソフトのバイナリ ) zxLinux コマンド・ソース (cat. c 、 dbg. c など ) ランタイムライプラリ・ソース (crtO. c など ) newlib ソースコード、 zxlinux アプリケーション開発用ライプラリのソースコード zxLinux 基本コマンド (zxsh 、 ls 、 pwd) のソースコード zlboot のソースコード gdbserver のソースコード GDB) 通常配布版の GDB -4.18 のソースコード ( リモート GDB を make するための GDB ー 4.18 に対するパッチ (GDB のソースは含ます ) zxLinux 用リモート GDB ー 4.18 の実行ノヾイナリ (TurboLinux/Intel てイ CI でしか実行できません。これ↓リ、外の機種は、 RAM 容 量がたいへん小さいので実行不可能です 1 以下では、おもに zxLinux の実装について述べていき ます。 マイクロカーネル管理下の UN Ⅸ マイクロカーネルの管理下で実現されている UNIX と しては NEXTSTEP か有名です。 NEXTSTEP は、マ イクロカーネル Mach のもとで 4.3BSD を実現したもの です。その後、 Mac OS X Server に受け継がれ、つい 描広 Darwin という名称でこれらの技励ゞオープンソー スとなって話題を呼びました。 Power Macintosh 用の Linux では、当初 MkLinux か有名でした。 MkLinux も、 Mach に Linux カーネル を移植したものです。 MkLinux は、 Mach て動作する必 要生が希薄なため、現在では通常のモノリシック・カーネ ルである Linux/PPC (PowerPC 用 Linux) にとって 代わられました。 zxLinux は、サウルスで動く XTAL ( クリスタル ) と いうマイクロカーネルの 1 プロセスとして Linux カーネ ルを樹直したものですにの移植した Linux カーネルは、 しばしば、、 Linux サーバー " と呼ばれます ) 。 1 内蔵 RAM の容量は、ユーザー使用可能な卸或が 5MB とされていま UNIX MAGAZINE 2000.6 す。 Linux アプリケーションは、マイクロカーネルのプロ セス間通信機能を利用して Linux カーネルとやりとりし ます。 XTAL の概要 XTAL は、アックスが 1992 年に開発したマイクロカ ーネノレです。 32bit CPU の SH-3 を初めて使ったカラーザウルス (MI-IO) 以降、すべての 32bit サウルス ( モノクロ 32bit 機も含む ) に入っています。 サウルス内の手書き文字認識や PDA アプリケーション は、それぞれ XTAL の独立したプロセスとして動作して います。 Mach とは違い、 XTAL はみすからメモリ管理 樹冓をもち、外部からイ應課記慮管理のポリシーを操作する 切り口をもちません。糸ムみなどの適用分野では、イ課記 憶樹冓の抽象化は不要と判断したからです。 ザウルス版 XTAL は、メモリ管理について以下に示す ような特徴的なイ」をもっています。 プログラムコードと初期化済みデータ領域の記慮管理 は、基本的にテマンド・ローディングでおこなっていま す。また、スタックもテマンド・ページングてイ申びていき ます。 サウルスでは、アプリケーション・プログラムのバイナ リは基本的に読出し速度の遅い ROM やフラッシュ ROM 115

5. UNIX MAGAZINE 2000年6月号

図 2 zxLinux システム略 ⅱ bc libm アプリケーション zxLinux libzxlinux XTA L Queue Linux for ZalffUS zxLinux サーバー XTAL システムコール ザウルス OS システムコール 116 ウルスではこの機構がすでに動作しています。したがっ このように、 XTAL はイ瓦想記慮メカニズムをもち、サ ステムコールがあります。 ( スタックのために割り当てられたページを返却する ) シ ただし、 XTAL には、自プロセスのスタックを折り畳む れているため、データベージのページアウトは不要です。 どのデータをヒーフ。かスタック上にとることが義務つけら ケーション・プログラムは、静的データは少なくし、ほとん ページはすっと RAM に常駐します。サウルスのアプリ トはサポートしていません。したがって、静的データの ザウルス版 XTAL は言ポリシーにより、ページアウ まれます。 RAM を新たなページに割り当て、そこにコードか読み込 ードのページは捨てらそのページに割り当ててあった 領域カ呆されています。その上限を超えた場合、旧いコ コードについては、あらかしめコードのための RAM ます。 を確保して、対応するべージ内容を ROM から読み込み ります。 XTAL はそのページフォールトを捕らえ、 RAM か不在ベージをアクセスすると、ページフォールトカ起こ は不在ベージとなっています。実行中のアプリケーション ョン・プロセス空間の、 1 回もアクセスされていないページ コードの言囚みはおこなわれません。また、アプリケーシ カワ。ロセスとして起動されても、ファイルシステムからの 上のファイルシステムに配置されます。アプリケーション XTA L ザウルス OS て、 Linux の仮想記應メカニズムを使用すると、メモリ管 理のポリシーがぶつかってしまいます。そこで、 zxLinux では Linux アプリケーション・プロセスのメモリ管理を XTAL にイ壬せているわけです。 ザウルスの GUI やファイル I/O は XTAL の機能で はなく、 XTAL の上に積み上げられています。サウルス の世界では、これら XTAL 、タ ) OS 部分と XTAL を 合わせて、、サウルス OS" と呼びます。 zxLinux は、オ剽勺な lntel 版 Linux カーネル ( バー ジョン 2.3.23 ) をもとに XTAL に樹直したものです。移 植にあたっては、 Linux/SH を参考にし、システムコー ルなども Linux/SH と同等になるように酉己しました。 さきほど述べたように、 zxLinux では Linux カーネル が XTAL のプロセスの 1 っとして動いています ( 図 2 ) 。 これと同様、 zxLinux のアプリケーションも XTAL の プロセスとして動きます。 ザウルスの既存の本咎はみのなかで動き、さらに、実績の ある手書き文字認識工ンジンや、設定の容易なサウルス内 蔵の TCP/IP 、 PPP を使うためには、 Linux カーネルを XTAL 上のサーバーとして実装することか不可欠でした。 Linux 用のプログラムは、 zxLinux の管理下で実行さ れます。以下では、これらのプログラムを、、 zxLinux ア zxLinux カーネルについて UNIX MAGAZINE 2000.6

6. UNIX MAGAZINE 2000年6月号

ザウルスのための Linux zxLinux 竹岡尚三 図 1 ZXL はじめに このところ、僕は PDA のチピ Java (KVM) で遊んで いた [ 1 ] のですが、 PDA で遊ぶといえば避けられないの がシャープのザウルス [ 2 ] です ( しつは、サウルスには僕 が設計したマイクロカーネルが入っています ) 。一方、最 近は Linux カヾ充行っていて、「僕は K*BUG ( 関西 *BSD ューサ会 ) [ 3 } の代表だから BSD しかやらないよ」など とうそぶくことも難しくなってきました。 どうせサウルスで遊ぶのなら、誰もがあっと驚くような オープンな開発環境を作ろう ! ということで、ザウルスに Linux を載せてみました。 でも、平凡なやり方しゃないぞ : ー ) 詳しくは以下を読 んでください。 lease)) "Z?Z3 Sat 月 ar 16 17 0 : ld JST ZO( ル . XSh.C go go. c uf=t/share,•• share,' icon,' share/ icon/ share,'icm レ share/ icmv share/ icon•' 0g0 share/ icon/ ー 0 0 / 06 r じ / icon/ ー 040 / 0 ? share/ ー CO れ / ー 040 / 08 share/ icm レー 0g0 / 09 share.-• icon/ 扣 go / 10 sharez icon/ ー 040 / 11 share/ icon/ ー 0 0 / 12 、① 2 3 6 6 3 ⑨⑩ 0 ①ロ zxLinux 音訓改行 zxLinux[4] は、アックス [ 5 ] か開発したサウルス上で スペース採用 使える Linux です ( 図 1 ) 。開発にあたっては、シャープ 変換入力 に多大なご協力をいただきました。 zxLinux は、商用の PDA 上で重川し、かな漢字の実用 zxLinux は 3 月 21 日にリリースさオ zxLinux カー 的な手書き文字入力ができる世界初、かっ世界最小 ( 2000 ネルのソース / バイナリ、 ext2fs イメージ、アプリケーシ 年 3 月 21 日現在 ) の Linux です。たとえば、韓国の ョン開発キット、カーネル開発キットなどが無償て酒己布さ れています俵 1 ) 。ライセンスは GNUGPL 2 なので、 Samsung から手のひらサイズの Linux マシン [ 6 ] がア ナウンスされていますが、リリースはもうすこしさきで 自由に改変再配布することかできます。 すし、鄲芋点では文字入力については何も示されていませ zxLinux は、サウルスに本来備わっている手書き文字 ん。一方、 LinuxCE プロジェクト [ 7 ] などで ( 対秀帯マシ 認識工ンジンやその他の資源をそのまま使うために、サウ ン用の Linux も数多く開発されています。ただし、こち ルスのマイクロカーネル上のパーソナリティとして Linux ら諺芋点ではコンソールに対してはキーポードによる入 カーネルを実現しています。 zxLinux は、内蔵 RAM 容 カカ揃提となっています。 量の関係でアイクルーズ MI-EXI とパワーサウルス MI- ひカ英 スペース 114 UNIX MAG AZINE 2000.6

7. UNIX MAGAZINE 2000年6月号

RFC ダイジェスト・・・・・・宇夫陽次朗 サイバ - 関西プロジェクト・・・・・新善文、下條真司 N プロジェクト ( 5 ) インターフェイスの街角・ ・・・増井俊之 辞書遊ひ ザウルスのためのし inux ー zxLinux•• ・・・竹岡尚三 154 160 165 News•• Notice NAB2000 ・ ・ " 小林和真 CoIumn ワークステーションのおと・・・・・・坂下秀 97 NetNews 便り・・・・・・みるく NEWS from jus 1 132 138 UNIX MAGAZINE 0 .15 # 6 2000 年 6 月号 ( 通巻 164 号 ) 2000 年 6 月 1 日発行 発行所・株式会社アスキー〒 151-8024 東京都渋谷区代々木 4-33-10 電話 03-5351-8111 ・発行人 / 戸島國雄・編集人 / 土屋信明・編集長 / 大久保讓治 Editor's Network Address: unixmag@ascii.co.jp ・編集 / 川崎通紀岸竜次久保田考長谷川光広 ・出版営業部長 / 松本浩・出版営業担当 / 三田秀雄井上大介藤本典子 ・広告営業 / 山本直吉郎棚橋夏紀志摩和弘・製作購買担当 / 稲垣勢津子 禁転載◎ 2000 ASCII Corporation 1070006 印刷 / 東京書籍印刷株式会社 P 「 inted in Japan Material from Performance Computing in this issue is published in cooperation with Miller Freeman,lnc. U. S. A. 1998. AII rights reserved.