パスワードを忘れた? アカウント作成
14863 story

POSIXをサポートするSymbian OS 16

ストーリー by kazekiri
OSSの美味しいところを欲しいようだ 部門より

elfbin 曰く、

ITmediaに「ケータイでLinuxサーバを動かす」というタイトルは意味不明なのだが、Symbian OSに関する記事が掲載されている。Symbian OSと言えば、世界で圧倒的な携帯電話用のシェアを誇るOSであるが、 Symbian OSを理解する技術者が不足しており、SourceForgeでもSymbian OSに関するプロジェクトはあまりないということで、 今後のSymbian OSではPOSIXをサポートし、Cで開発された数多くのエンタープライズ向けアプリケーションの利用を促進したいという考えらしい。ということで、調べてみると既にP.I.P.S.というPOSIXライブラリのページが 公開されているようだ。オープンソースコミュニティを巻き込みたいならオープンソースにすればいいのに、とか思ってしまったが、 これで何か動かしてみると面白いアプリなんかはあるのだろうか?

オープンソースコミュニティに近づきたいというよりも、資産を利用したいということだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • むー (スコア:5, 興味深い)

    by Artane. (1042) on 2007年03月12日 12時47分 (#1124610) ホームページ 日記
    もう、五年以上前のμITron V3ですら、規格には入っていませんが(これはV4でも同じだと思う)POSIX互換のライブラリをOSカーネルや開発環境を提供する各ベンダが用意していて、それを使ってGNU系のプログラムを移植かけたりとか普通だったし(だから一時期GPL VIORATIONが横行して、ばれて叩かれて、逆に企業がGPLアレルギーの傾向になったのですが(;´Д`))、書くにしてもPosixなライブラリがわかっていれば、独自のシステムコールを叩かなくてもきちんと動く物がかけるという利点があったのですが。

    VXWorksなどの有料(と言うか高価な)組込みOSでは最初からスレッド周り以外完璧に互換のPOSIX互換ライブラリが最初からあったから、最悪中間に入るミドルウェアがタコ過ぎて使いものにならなくても、UI関係以外はPOSIX互換レイヤを使って逃げるという手段があったのですが(本当はやってはいけない場合が多いのですが、納期と実機テスト工数を盾に突っ張ったことがあります ^_^;)
    …SYMBIANほどのメジャーなOSが未だに独自のAPIに拘っていた方がびっくりしています。
     開発者が難儀すると言うレベルではなく、(特に携帯の開発で)余りに火を吹くので、ドコモに携帯出しているNECとかが組込みLinux系に移行して移植性を向上させたり、Auのようにカーネルやらランタイムやらタイムクリティカルなドライバの部分は(基本的にQuallcomm社やKDDIが中心になって)別途用意しておいて、メーカが書くアプリ層はBREWで書かせる様にして、問題の所在を明確にさせたりするようになった。と言うのもわかるような(;´Д`)
    • Symbian OS ネイティブの API とアプリケーションプログラミング手順を見た後だと、POSIX 上の C++ を憎んでいたはずなのに、と思います。

      まず、バッファオーバーランを防ぐために Windows や GCC ランタイムが防御機構を作ったところを、オーバーランしたらパニック(例外ではなくアプリ終了)を起こす独自クラス群「ディスクリプタ」を定義して、API がディスクリプタしか引数にとらないのでバイト配列を使うとかえって苦労するようにしました。

      次に、C++ コンストラクタで他の C++ オブジェクトを作ってしまった後に例外を発生させてしまった場合のクリーンアップの問題を解決するために、コンストラクタでは malloc 相当の操作のみ行い、他の C++ オブジェクト等で初期化するのはユーティリティ関数で行い、ユーティリティ関数で例外が発生したらクラス標準のデストラクタ(その中にはインスタンス変数へのデストラクタ呼び出しもあります)でクリーンアップを行う「2フェーズ コンストラクション」を慣例にしました。

      あと、例外発生時にデストラクタを呼ぶところも、ランタイムを小さく保つために独自クラスで行いました。

      互換性を取るどころか、POSIX 上の C++ にダメ出しをした API でした。

      参照記事でも触れられていますが、セキュリティとメモリリークで問題があると主張していたはずの POSIX でソフトを書けるようにするのは、幅が広がるのか自らの存在意義を失うのか、問題をはらんだ賭けに思えます。

      親コメント
      • POSIX を憎む?とかちょっとよくわかんないんですが。そもそもここでいう POSIX ってシステムコールレベルの話で C++ と関係ないし。単に C++ を組み込みで使う場合の問題に対処しただけなんじゃないかなと。
    • Re:むー (スコア:1, 興味深い)

      by Anonymous Coward on 2007年03月12日 15時17分 (#1124698)
      > …SYMBIANほどのメジャーなOSが未だに独自のAPIに拘っていた方がびっくりしています。

          SymbianはAPIどころか、C++を使いながらtry/catch禁止ですから。(それ自体はSymbianなりのポリシーですが、障壁でもあるわけで)
      まあ、それでも以前から一般的なiTRONよりは、相当ましにANSI C相当のプログラムが動作する位の環境はありましたよ。

      ちなみに、下記は誤解ではないかと。

      > NECとかが組込みLinux系に移行して移植性を向上させたり
      > Auのようにカーネルやらランタイムやらタイムクリティカルなドライバの部分は(基本的にQuallcomm社やKDDIが中心になって)別途用意しておいて、メーカが書くアプリ層はBREWで書かせる様にして、問題の所在を明確にさせたりするようになった。と言うのもわかるような (;´Д`)

      NEC/Panasonicが組み込みlinuxに行ったのは、他社との協業を見据えてのことだと思われますが。(Symbianは、開発を委託する相手もライセンス(もち有償)を持ってないとSDKも渡せないし。(NokiaのSDKは例外))

      Brewに関しても、ITメディアの記事 [itmedia.co.jp]等を見る限り、BREWというのはQualcommのベースバンドチップに標準的に乗ってくるCPUアーキテクチャであって、その上の方のOSみたいな部分とメール/ブラウザあたりが共通化されている部分がKCPというAu共通のプラットフォームで、ドライバー等の下回りはOEM層となっているので、逆に各メーカーが作りこむんじゃないかと。(Qualcommチップの関係は当然Qualcomm自身が用意しているでしょうけど)
      親コメント
      • by Anonymous Coward

        前半はともかく、後半は「BREWはCPUアーキテクチャ」とかいってる段階で「ハァ?」な訳だけど、ちゃんと区別付いてる?

        • Qualcommの提供するベースバンドチップのCPUコアは ARMベース [mycom.co.jp]
        • BREWはそのチップ上に提供されるOS
          (というよりはAPI群のような気がするが。参考記事 [itmedia.co.jp])
        • 各社個別に実装してたブラウザやメールなどの基本アプリ部分まで含めてau側がプラットフォームとして提供
        • by nsmrtks (20015) on 2007年03月12日 20時25分 (#1124820) 日記
          前半はともかく、後半は「基本アプリ部分まで含めてau側がプラットフォームとして提供したのがKCP」とかいってる段階で「ハァ?」な訳だけど、ちゃんと区別ついてる?

          KCP にアプリなんて含まれませんよ。
          あるのは KCP 対応アプリ。参考として挙げてる URL の所にもちゃんと書いてあるじゃないの。
          親コメント
    • by monaka (4489) on 2007年03月12日 23時56分 (#1124960)
      互換ライブラリは所詮互換ライブラリ.
      つまらん非互換性に泣くか.その泣き所さえ理解できない廉価なエンジニアの大量投入に頼って,新たな火種を抱えるか.

      APIを替えたところで,ハードウェアの制約は変わらない.組込みに求められる素養ってのは,むしろ制約に対する工学的な理解なのでは?
      APIが鍵ならば,組込みLinux採用現場の生産性や最終成果物の市場支持率は,他のOSに比べて有為に高いはず.
      しかし(すくなくとも現時点では)生産性の高さを誰もが認めるほどでもなく,市場支持率も特筆には当たらないようね.

      POSIXはどこにでも使える万能APIセットというわけではない.
      Symbianの仕様って,古めのものを斜め読みしたくらいしかない(不勉強の至り)のだけれど,直感しては
      他の人が書いているとおり,危険をはらんだ賭けのような気がするよ.私は.
      --
      from もなか
      親コメント
    • Re:むー (スコア:1, 参考になる)

      by Anonymous Coward on 2007年03月13日 5時50分 (#1125032)
      >…SYMBIANほどのメジャーなOSが未だに独自のAPIに拘っていた方がびっくりしています。

      Symbian OSの非同期に対するデザインが他のOSのAPIにマッピング可能だとでも?
      ROM化可能でバッテリ駆動という環境用のOSなんだから、OSとアプリの境界線のありかたが違うのは当然。
      携帯というか(正確には彼らのターゲットはスマートフォンだけど)というのは、単に小さいPCではないのです。WindowsMobileなんかはそんな事考えていないように見えるけど。

      たとえばユーザプロセスのなかで制御を手放さないままループを回し続けると、他スレッドの反応が遅くなる以外にバッテリを使い続けるという大問題があります。X なんかのプログラムではためらいなくループでイベントウェイトしているものを見ることがありますが、あんなのはバッテリ駆動向けの環境では論外です。もちろんそんなプログラムを書いた人も、非同期がきちんと扱える(かつ、各種の事象が統一して待てる)環境があればそんなバカなデザインはしないでしょう。
      つまりSymbian OSにあるAPIの独自さとは、環境の違いから必要とされる機能の違いをマジメに扱った結果でしかないと思う訳です。実際Symbian OSのAPIは、環境に対する仮定を受け入れてさえしまえば非常に整合性のある体系だと思います(だから今回のPOSIX対応なんていうのは、マーケティング上の意味しかないのかなと考えています)。

      付け加えておくと、POSIXはPortable Operating System Interface for UNIXの略なので、あまねくすべてのOSが実装すべき標準だと思われないのですが。

      親コメント
    • Re:むー (スコア:0, オフトピック)

      >(特に携帯の開発で)余りに火を吹くので

      開発段階で炎上現象が観測されているなら、
      リチウムイオン電池が原因 [google.co.jp]じゃないということか(違
    • by Anonymous Coward
      IXの次はXということで。 OS Xが載ってるらしいあのケータイ [apple.com]もそうなのかなあ。
  • ソード (スコア:2, おもしろおかしい)

    by Anonymous Coward on 2007年03月12日 16時08分 (#1124715)
    > 調べてみると既にP.I.P.S.というPOSIXライブラリのページが

    それなんて事務処理用簡易言語?
    • by Anonymous Coward
      そ、それは知っている古いヒトを釣る餌なのかっ
  • by Anonymous Coward on 2007年03月12日 11時38分 (#1124556)
    POSIXに対応するといっても、現状のSymbianはstatic変数が使えなかったり、色々制限やクセがあったりしますから、どれだけOSSのライブラリやモジュールがコンパイルできるか疑問なのですが・・・。

    #次のバージョン(v10だっけ?)ではstatic変数・グローバル変数も使えるようにするらしいですが、どうなんですかねぇ?
    • by Anonymous Coward on 2007年03月12日 13時54分 (#1124662)
      使えます。
      symbian OS を名乗る前の ER3 の頃から 何の問題なく static 変数も使えます。
      使えないのは DLL の中だけです。
      まして、昔から unix系アプリのepocへの移植にはグローバル変数部分を exe 側に持ってくるというのが定石として、本読めば必ずといっていいほど書いてますよ。
      appuifw の上で動くアプリを手軽に作る方法が DLL にすることだったので、static 変数が使えないという誤解が生じやすいのはわかりますが、symbian上でプログラム書いたことがあれば、誤解だということは無理なくわかるはずなんですが、、

      SymbianOS の 9以降は、appuifw の上で動かすアプリも EXE になったので 普通のアプリも普通に static変数を使えます。
      それよりも、SymbianOS9 の悪いところもは、sys/bin 以外に exeを置かなきゃいかんのに、ファイル名の命名規則を決めてないところでしょう
      親コメント
  • by Anonymous Coward on 2007年03月12日 11時39分 (#1124558)
    あの開発環境の煩雑さ、複雑怪奇さ。始める前に挫折してしまう。
    本気で普及させたいのなら、SymbianはPOSIX対応なんかより、
    自前でちゃんとした統合開発環境を用意すべき。

    Eclipseでも利用すればよいのに。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...