goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

政府がLinux採用ってことは、OFFICEソフトは一太郎Ark?なら、XMLで便利かもお

2005-10-07 15:25:36 | Linux

 そうそう、「政府のシステム調達指針、ウィンドウズ依存脱却促す」ってことで、政府はLinuxの採用なんかについて、前向きとか。。。

 そーすると、オフィスソフトに、なにを採用するのよ?
 ってことになります。。

 Open Officeと、OSS派?の人は言いたいところなんだろうけど、

 うーん、政府関係って、一太郎つかってなかったっけ?

 つーことから考えると、ソース(たしかJavaだと思う)もダウンロードでき、プラグインの作り方も公開されている一太郎Arkになるのかなあ・・・

 ホームページはこちら 
http://www.justsystem.co.jp/ark/index.html


 一太郎ArkはJavaで動くし。。たしか。。

 で、一太郎Arkになると、確かに政府関係のお仕事、おもしろくなるかもお。。。
 結局、プラグインという形で、政府関連のドキュメントを開発できる。
 これが、何が便利って、
 ・印刷を任せられること
 ・いろんなフォント出力に煩わされない
 ・XMLが、いろいろと扱えそう
 とかとか、いろんなメリットがありそうだ!

 ただ、いま、これ、売ってるの?

 もしかして、ソースから、コンパイルしろ!ってこと(>_<!)

 やっぱ、OpenOfficeのほうが。。??

 でも、でもお、フィスコの昨日のぷらっとホームのコメントにはターボL <3777> やテンアートニ <3744> 、ジャストシス <4686> など他のリナックス関連も一斉高となっている。って書いてあるけど。。。!?


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linux上でWindowsソフトを動作させるDavidの独占販売契約をターボがとったみたい

2005-09-21 17:34:09 | Linux


世界初!ターボリナックス、リナックス上でWindowsソフトを動作させる
「David」の独占販売契約を締結
らしい。元ネタは、ここ

 で、しくみについてなんですけど

Davidは、動作させるWindowsアプリケーション共通モジュール(Davidエンジン)と、アプリケーションごとに異なるプラグイン型モジュール(Davidイネーブラー)で構成され、Turbolinux上でWindowsアプリケーションを動作させることができます。


 つーことは、たぶん、共通モジュールで、システムコールの呼び出しをおこない、プラグインモジュールのほうで、EXEファイルから、システムコール変換をするのかなあ??

 問題は、このてのやつって、ちゃんと動くかどうか、どこまでテストしてくれるかどうかだよね。。
 文書作成系は、すぐに、おちてもらっちゃ、困るわけだし。。。

 ただ。。。

Linux上でWindowsアプリケーションを違和感無く共存させる同機能の実現により、ユーザーのリナックス利用が格段に容易になり、今後ビジネスとコンシューマの両市場においてリナックスの採用が加速されると期待しています。


 あのー、Linuxべんちゃーのお偉いさんと話すと、そう思ってる人、多い印象受けるんだけど、WindowsのソフトがLinuxで動いても、Linuxを使わないのよ。。

 なぜならね。。。

 Windowsソフトは、パソコン買うとついてくる
 Linuxは、フリーとか言いながら、お金出さないとかえない。

 わざわざ、お金だして、Linuxかって、今と同じWindowsアプリケーション動かして何が楽しいのよ?
 Linuxじゃないと、できないことがないと、わざわざ、お金出して買わないだけど。。。

 でも、Linuxのお偉いさんたちは、ユーザー層を広げるために(そうすると、多くさばけて儲かると思っている)、Winodows層の人たち、とくに初心者を取り込んで。。そのためにインストールはやさしく、Windowsソフトはうごいて。。って、かんがえるのよねー。

 その考え方は、売り上げはあがっても、利益は上がんないと思うんだけどね。

 利用者を増やすと、サポート要員も増やさないといけない。パッケージの売れる量より、サポート要員の費用のほうが、普通高い(すべてノンサポートにしても、ある程度売れ出すと、会社に電話がかかってくるのが実情のはず。なので、サポート版とノンサポートを分けたほうがGood)

 そこで、OSより、サーバーサイドのアプリのものをとりいれ、一件当たりの単価をあげたほうがGood。

 そういう意味では、前、Turboを持っていて、ライブドアに売った、SRAの戦略は正しいと思う。
 SRAは、PostgreSQLのほうにすすんだけど、たしかにPostgreSQLのほうが、DBコンサルなど、利益率の高いビジネスが組めるから。。。

 って、話ぜんぜんそれてきたので、このへんで。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Lindows販売終了とLinux 習熟度テストの話題

2005-08-10 17:12:10 | Linux

スラッシュドットをみていたら、Linuxネタが2つあった。
1つは、(まえのブログでライブドアでもう一件と書いたやつで)Lindowsの初外が終了するそうな(ここ

 うーん、じみーでしたもんね。

 もう一件は、Linuxのスキルチェックテストだって
 ここ
 おしごとちゅうにサボってやろうかと思ったけど、結構いっぱいこたえないといけない(視聴率チェッカーより答える必要有)なんで、やめた



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ターボリナックスが上場するね!

2005-08-09 13:55:42 | Linux

 ターボリナックス、上場申請、承認されたみたいですね(ヘラクレス市場)。
 リナックスといえば、redhatっていう感じだったけど、レッドハットよりもはやく上場ですな(って、レッドハットに上場する気があるかどうかわかんないので、比較はできないけど)。親会社(Livedoor)が上場しなれていると、子会社も上場しやすい??

 ただ、上場するということは、TOBとか、かけられやすくなる???

 Livedoorの子会社としては、あと上場を期待してしまうのは弥生ですよね。
 弥生が、上場すれば、おもしろいよね、きっと。
 え、何がどう面白いのかって。。。いやー、そりゃー、ほかの会計ソフト会社が買収しやすくなるわけで。。。だから、上場しないのかな?どーなんだろう??


 でも、上場したということで、リナックス普及委員会は、なんかしないんですかね?するわけないか (^^;)

 ちなみに、ターボ上場のニュースは、こちらで、ホリエモンの、そのブログの記事はこちら

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

windowsパソコンのリスクヘッジとしてのLinuxとOpenOffice

2005-04-24 13:38:23 | Linux
 ウィルスバスターのパターンファイルをアップデートすると、コンピューターが使用できなくなってしまう問題(現在は直っている模様)について、多分、多くの記事は、テストの問題なんかを挙げるんだと思います。

 しかし、バグをなくすというのは現実的だとは思えない。

 現実的な回答としては、これからも、ウィルス対策ソフトで障害がおきたりすることを想定し、Windowsパソコン以外でも、最低限の作業ができるように、LinuxやMacをおき、OpenOfficeをいれておくなどのリスクヘッジが必要になってくるだろう。

 そうしておかないと、障害がおきたパソコンを復旧する情報をWebで流される可能性があるからだ。
 パソコンが障害で動かなくなっているのに、その情報を、(パソコンを使わないと見れない)Webで公開されてもねえ。。。

 ということで、Linux関連会社が、この機会を商売に結び付けられるか。。。
 たぶん、結び付けられないだろうな。。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

TurboLinuxがオリジナルパソコンって言うじゃない!Web開発用とかあればいいのに

2005-04-22 11:31:34 | Linux
 ターボリナックスが、オリジナルパソコン事業というのをはじめたっていうニュースがでてました。

 まあ、そのニュースでは、「企業・法人は、イメージキャラクタ/ロゴやブランドカラーをあしらったユニークな形状のオリジナルパソコンにより、効果的なイメージ戦略やプロモーション用途としてのみでなく、アプリケーションのカスタマイズにより特定の機能に特化した専用パソコンとすることで」って書いてあるけど、きっと、キャラクターPCを中心に考えてるんでしょね。

 キティちゃんPCとか、
 ミッキーマウスPCとか、
 乙部綾子さんPCとか??




 でも、本当に意味があるのは、Web開発用PCとかで、Webサーバー機能と、開発環境、帳票出力環境などがプリンストールされていて、環境設定もある程度されていて、で、ドキュメントも入ってる。なんていうと、さすがTurbo,技術力ある!っていう感じになるんじゃないかな。

 もちろん、ウィリアムのいたずらが以前指摘した、バージョンの相性も確認済み、前もってサンプルプログラムが動くことを確認してあって、サンプルも入っている状態で。

 まあ、入れるものとしたら、こんなかんじ(もう、入ってるものもあると思うけど)。
JDK
Apache
Tomcat
Struts

cocoon
FOP

eclipse(easy strutsつき)
Ant
CVS(またはsubversion)

UMLのお絵かきツール(argoUMLとか?)

とかで、すぐに開発に入れるように、説明書もついてるやつ




 でも、ディストリビューターさんって、そういう開発のツールとかを一まとめにして、チューニングしてくれて売ってくれてないのよね。本来のディストリの仕事って、そういうことだと思うけど。。。

 って書いてると、「じゃあ、おまえつくって、どっかのサーバーに置いとけよ!」っていわれそうだけど。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Kondaraを継承して「ももんが」Linuxになってたのね!

2005-04-15 11:58:13 | Linux
 ウィリアムのいたずらは、ここ数年(3、4年位かな)Linuxからはなれていたので、しらなかったんですけど、Kondaraを継承して、momongaになってるんですね。

 いや、本家のおばかブログを書いていて、Turbo Linuxに、乙部綾子さんの写真集をつけたら!ってかいたところで、
 「そうそう、デジタルファクトリ(昔Kondara Linuxの販売元だった)、売り場にテレビ(ビデオ再生用)いれて、やってたけなあ」
 と思い、「乙部さんのビデオ広告でTurboLinuxを売ったら。。」って書こうと思って、デジタルファクトリしらべたら??

  ないじゃん

 えーっと、じゃあ、Kondaraは

  ないじゃん。

 えーっとえーっと。。。っていうんで、しらべて行き着いたのが、このページ
Kondaraの流れを継ぐMomonga Linux 1がリリース -プロジェクト発足から2年

 なるほどー。ももんがって、こんだらのことかあ。。。
 このへんのいきさつを知らなかったので、「ももんがってなに?」とおもってた。




 で、ももんがのホームページをみたら、

momonga projectで開発するツールに「パッケージ更新ツール」おお、これできると便利だよね。
 で、どうなったんだろう。。。これ??
 つーか、どんなのだか、詳細がわからないのであった。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Zaurus Linuxに期待(VNCでPDAからPC操作とか)&Linuxの歴史は、繰り返す

2005-04-08 20:54:55 | Linux
 いままでLinuxのことについて書いてきましたけど、あんまりLinuxのことばっかり書いていると、なんのブログかわかんなくなってくるので(「コピーされるほど儲かるシステム開発日記」のメルマガのブログです。念のため)、このへんで、ひとまずまとめます。

 Linuxの問題点について、コミュニティ間での連絡が無く、ソフト間のバージョンをあわせるのが大変とか、翻訳の問題とか書きましたけど、じつは、この問題って、コミュニティにたよらず、現状のLinuxをもとに、自社で、プログラムを修正してしまえば、そういう問題は無いわけです。

 ある会社が、あるバージョンのLinuxをもとに、自社でカスタマイズ、テスト、修正すればいい。そういう方向なのかなあ、って受け取っています。Zaurus Linuxって。




 Zaurus Linuxって、おもしろそうな気がします。
 なんたって、PDAの中にLinuxがはいってるんでしょ(@_@!)
 つーことは、障害者の方用につくられているLinuxアプリのドライバとかも動くのかな?
 そうすると、パソコンより、持ち運びに便利?




 それ以外にも、興味そそられるのは、ザウルス上からWindowsパソコンを操作するという、VNC
 くわしくは、ここに載ってる。




 まあ、PDAも含めてかもしれないけど、そういう意味で、1つの方向は、やはり組み込みにいくんでしょうなLinuxって。
 あとは、Windowsだと、リサイクル上問題がある(たしか、CDかなんかもってないと、権利上、再インストールって、本当はいけないんじゃなかったっけ?)のでLinuxを使うというパターン。
 あとは、中国。
 それと、ultra monkeyのようなHAの分野のハード売り。

 HA、組み込み、中国。。。なんか、5年前にもあったような話って、思うのは、妄想?

 Linuxの歴史って、繰り返してるのかな(進展してるんだよね)。。。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ライブドア社長のブログに、最近のターボリナックスの話題でてるね&中国のLinuxの話題

2005-04-07 16:56:34 | Linux
昨日のブログの最後に、「最近、他のLinuxのディストリって、どーなっちゃったんだろう。。。。」って書いたら、まさに、タイムリーっつーかなんつーか、

話題の堀江社長のブログ
http://blog.livedoor.jp/takapon_ceo/archives/18237073.html
に、ターボリナックスの話題が出てる。


そこに、
「一台は夏ごろスタートの巨大プロジェクトの評価機」
これは、さっぱりどんなものかわからんが、

その後
「もう一台もデータセンターを数年間運営している技術・ノウハウをフル投入してターボリナックスとも協業している新しいネットサービス事業者向けハードウェアプロダクトである。」
 ネットサービス事業者向けで、ターボっていうと、Linuxの負荷分散とかなんとかで、UltraMonkeyとかHAクラスタ周りの話かしら。

 って、古いか(^^;)、もっと、とれんでぃーな話題なのかな?

 ただ、気になったのは、「続いてターボリナックスチャイナの取締役会。中国も強力なパートナーを得てリナックスビジネスがようやく軌道にのってきた」

  ??

 あれ、中国って、もともと、ターボ強くなかったっけ?
 確かに、DEC(当時)と、北大方正なんかの開発で、Redflag(紅旗なのだ。赤帽じゃないっす)Linuxとかも出たけど、その前から、Turboともう一個、ブルーなんとかが、強くなかったっけ?

 ホリエモンも、そのへんも書いてくれると、おもしろいのに。。。




あ、でも、ぶるー。。。なんだったっけ、

ぶるー?ぶるー??ぶるー???ぶるー????

しゃどうー??

ちがうって(おきまりのボケだ ^^; )

(このオチが書きたがっただけです。しゃどうじゃなくって、正解は、ポイント。blue point Linux、藍点LINUXですね。
ここのサイトが、中国のLinuxのリンクまとまってる。紅旗もリンクしてあるし)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linuxの翻訳と、商用ソフトとの訳語の差

2005-04-07 11:52:21 | Linux
 昨日は、1回しか書かなかった割には、IPも、クリック数も多かったので、きょうも、Linuxのお話。翻訳について。昨日同様、妄想ってことで、おねがいしますね。

 最近、Linuxにかかわってないんで、やりかた、変わったかもしれないけど、昔は、Linuxの日本語化(ローカライズ)の「翻訳のところ」って、
 ・言葉のところがまとまっている、poファイルとかがあって
  →Windowsのリソースファイルの文字の定義に相当する
 ・そのpoファイルをコミュニティの人が訳して
  →担当をきめて分担したりもする
 ・それを、contribして、ビルドする
っていう形だったと思う(っていか、妄想ですから ^^; 妄想)。




 でも、そのやり方だと、コミュニティ間での訳語統一とかはできないし、それどころか、分担した場合、1つのソフトでも訳語が違う場合がある。さらに、poファイルから訳してしまうと、それが、どのウィンドウで、どの文脈で使われている言葉か、わかんない。
(たとえば、日本から、多言語に訳さなければいけない、ワープロソフトがあったと「妄想」すると、「表」一文字だけあった場合、これは、用紙の表裏の「おもて」なのか、図表の「ひょう」なのか、この一字だけでは分からないが、ダイアログなどでは、こういうこともありえる)




 じゃあ、商用ソフトなどは、どうするかというと、これは、大きく2つのケースに分けられると「妄想」できる。
1つのケースは、新規に翻訳する場合で、このときは、
   用語(訳語)統一
   本翻訳作業
 もう一つは、前のバージョンが出ている場合、このときは、用語統一は、必要ないケースがあるんだけど、以前のバージョンと(担当者が変わっても)同じ言葉で訳さなければならない。
 そのために、翻訳用の用語データベースと、仮に翻訳してくれて、違う語も選べるようなワークベンチがあると「妄想」できるよね。




実際には、そういうワークベンチは、どういうのを使っているのかって言うことは教えてくれない、じゃないや、妄想できないけれど、お手軽にやる方法なら、考えられるよね。
 まあ、ソフトの翻訳なんてやることないだろうから。。。
 関係者と、興味津々の人以外は、一番最後の水平線まで、すっとばして読んでくださいませ。




・用語統一をどうやってやるのか?

 ダイアログや画面に出てくる言葉は、統一したほうがいい。そのためのテクニックとしては、まず、poファイルにしても、リソースファイルにしても、
   キーワード  訳語
のシートがあるはずだ。
  たとえば、Windowsの場合、リソースファイルに
IDS_EDIT_MENU_STR 編集
IDS_EDIT_ITEM1_STR 元に戻す
IDS_EDIT_ITEM2_STR 切り取り
IDS_EDIT_ITEM3_STR コピー
IDS_EDIT_ITEM4_STR 貼り付け
  のようなかんじ(メモ帳の編集メニューのところ)。
仮にCのdefineで書くと、
#define IDS_EDIT_MENU_STR "編集"
#define IDS_EDIT_ITEM1_STR "元に戻す"
#define IDS_EDIT_ITEM2_STR "切り取り"
#define IDS_EDIT_ITEM3_STR "コピー"
#define IDS_EDIT_ITEM4_STR "貼り付け"
  のような感じになっているとおもう。

------

 ここで、それを、(Cの例で書くと)
#define IDS_EDIT_MENU_STR "IDS_EDIT_MENU_STR"
#define IDS_EDIT_ITEM1_STR "IDS_EDIT_ITEM1_STR"
 となるように、訳語のところに、キーワードを入れてしまったものを自動的につくって、これをコンパイルする。

そうすると、前のメニューをクリックすると
   編集
    元に戻す
    切り取り
    コピー
    貼り付け
となったのが、この自動化してコンパイルしたものをクリックすると

IDS_EDIT_MENU_STR
   IDS_EDIT_ITEM1_STR
   IDS_EDIT_ITEM2_STR
   IDS_EDIT_ITEM3_STR
   IDS_EDIT_ITEM4_STR

ってなっている 

この2つをハードコピーすれば、ダイアログやメニューのイメージを見ながら、(紙に印刷すれば)コンピューターを知らない人でも、訳語統一に携われる。さらに、それらの人が、みんなExcelを知っていれば、Excelシートに

IDS_EDIT_MENU_STR
IDS_EDIT_ITEM1_STR
IDS_EDIT_ITEM2_STR
IDS_EDIT_ITEM3_STR
IDS_EDIT_ITEM4_STR

って、シートのA桁に入れておいて、B桁に訳語を書いてもらえばいい。
そして、みんなの分があつまったら、Aさんは、訳語をB桁、CさんはC桁と、横に訳語をありつけていけば、比較検討も楽だよね。




 で、ダイアログ等の代表的な訳語がきまったら、今度は、本翻訳。
 商用のソフトの訳語の場合、これらの訳のデータベースがあり、そのデータベースから、仮訳したり、候補となる語が表示される機能があるらしい、じゃないや、妄想できます。

 でも、そんなお金をかけなくてもですねえ、
1.訳語のpoファイル(リソースファイルの文字のところなど)の
   キーワードと、元の言葉を、Excelに書き出そう!

2.上記にあげた訳語統一したものを、
  Excelファイルに(まあ、Accessでもいいんだけどさ)
    もとのことば=訳語の組を登録する
 (DBに入れる場合、同じもとの言葉で訳語が2種類ってこともあるので、
  元の言葉だけを主キーにしないでね)

3.2の訳語統一をもとに、1の言葉と一致したものを、訳のところに仮に入れる
  (プログラムで自動的に、でよい)
  一致したものが2つ以上ある場合や、部分一致の場合は、その横のセルに入れておいてあげる
  例
キーワード      元の言葉  訳語     その他
IDS_EDIT_ITEM2_STR Cut 切り取り   切る  切断

4.3のシートを訳す
 つまり、3で適当に入れた言葉をチェックして、訳語が空欄だったら、いれ、
 間違っていたら直す


5.4の訳したシートのキーワードと訳語を取り出し、元のpoファイル(やリソースファイルに戻す)

6.必要なら、2で作った訳語統一(DB)を修正する。
 次回バージョンからは、3以降からはじめるので、翻訳は、ある程度埋まったところからはじめられ、早くなる。




 なんていう作業をやると、Linuxのような分割作業でも、訳語はある程度統一されるし(コミュニティ間で訳語統一DBをチェックするなんていう作業もすると、コミュニティ間でも統一できるね)、仕事も、次のバージョンから(ある程度訳してくれるので)早くなる。

 まあ、商用ソフトの精度を出すなら、このくらいしないと、まずいだろうけど
 (それに、2度目以降から、早くなるし)

 って、妄想するわけです。全部妄想だよ!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linuxは、カーネルとglibcのバージョンアップを繰り返されると安定しない!

2005-04-06 11:55:55 | Linux
 昨日も、アクセスIP数は増えていたので、今日も、Linuxネタを1つ。

 Linuxの問題として、コミュニティーがそれぞれ開発しているため、コミュニティーの成果物をまとめて、Linuxのディストリビューションをやるとき、問題が起きると思う

 (ここで、起きる!と断言してしまうと、
 「あんた、なんで、そんなこといえるの?」ということになり、
 「そもそも、ウィリアムのいたずらって、だれ!」ということになるので、
 妄想で!ということにしておいてください)。 



 そのことを話す前に、まず1つのお話をします。

 Linuxの動作を考える場合、

   カーネルのシステムコールを利用し、
   それをglibcのライブラリによって、呼び出し、
   さらにGUIを使う場合、XFree86のXlibを使うことになる。

 したがって、これらのカーネル、glibc,Xlibにおいて、バージョンが違うときに、インターフェース(関数の引数自体とか、ポインタ渡し引数の、構造体の中身とか)を変えられてしまうと、仮にリンクできたとしても(もちろん、構造体の中の変数名とか変えられたら、出来ないこともあるんだけど)、そこで落ちてしまうことがあるわけよ。

 でも、そういうのって、リンクがとおってしまった場合、とくに動的リンク(.so)の場合、動かしてみないとわかんない、動かしたらSegmentation Faultなんていうこともある。

 なので、最適なカーネルと、glibcの組み合わせを見つける(相性っすね)っていうことが大切になる。一方、トーバルスさんが心配していたパフォーマンスに関しては、じつは、インターフェースほど、問題にならない。なぜなら、50%くらいの性能向上なら、半年、コンピュータを買うのを待つと、性能が上がっちゃうことがあるのよ。
 それと、あるマシンでは、性能が遅いけど、他のマシンではそんなでもっていうこともあるし。

 でも、インターフェースが違っちゃうと、どのマシンでも落ちるから。




 でも、じゃあ、インターフェースをあわせる努力を、コミュニティの方々が、してるかっていうと、そうでもないんだよね。
 たとえば、トーバルスさんとか、えらーい方々や、コミュニティのえらーい人があつまって、
 今回のLinuxいったん,
   カーネルは2.4.X,
   glibcのバージョンはいくつ、
 これをベースにみなさん、いったん安定版を作ってください!

っていうことで、みんなが、glibcとカーネルのバージョンを同じにして、安定したものを出しているかというと、そうでもない。みんな、自分のスケジュールでバージョンアップ。
 それでも、バージョンアップの頻度が少なければ、結果として安定するんだけど、結構、カーネルもglibcも、頻繁にアップデートするよね。

 それでもそれでも、みんながぜんぶ、最新バージョンが一番安定していれば、最新バージョンだけ、とってくればOKなんだけど、そうでもないのよ。最新は不安定なんで、1世代前のほうが使えるなんてこともある




 そこで、問題が起きる。
 あるコミュニティが開発しているシステムAは、glibc2.3.2-11.9 では動かない。
 じゃあ、glibc-2.3.3にしていいか?っていうと、

 まず、そのコミュニティのシステムAは、それで動くかもしれないけど、
 他のコミュニティの開発したシステムBは、現在、glibc2.3.2ベースで開発されて
 いるもののバイナリでできてるわけで、
 つーことは、glibc 2.3.2と2.3.3でインターフェース変わっていると、まずいから、
 システムBは、もう一度、ビルドしなおし??

 っていって、ビルドしないとおもう。
 その理由は、ビルドしなおしたら、今度は、そのコンパイルが正常終了するかどうか保証がないから(もし、glibcの2.3.2とglibcの2.3.3でインターフェースが変わっていた場合、コンパイルが終わらないことがありえる。ふつう、上位互換とるだろうけど、とってない可能性がないとはいいきれない)。
 じゃあ、そのコミュニティのシステムBの最新版をダウンロードしたら?
 と思うかもしれないけど、今度は、システムBの最新版が安定してる保証はない。

 さあ、こまったでしょ。




 この、glibcとカーネルがちょくちょくバージョンアップするんで、全部が安定して動くバージョンが(実質)つくれない!っていう問題は、むかしからあるんだけど、

Kondara は いいよね!
 あそこは、伊達や酔狂でつくってる、先端ディストリっていうブランドを確立したから、仮に不安定でも最新版が入ってれば、「さすが、kondara先端いってる!」で済む

redHatはいいよね!
 自分が標準だから、仮に不安定なものが入っちゃっても、「まあ、仕方ないよね!」ですむ。


でも、他のディストリはたいへん!(だと妄想する!)
 だってさあ、そんなわけで、もともと、安定しないモンなのよ!
 こんなにカーネルとglibcをバージョンアップされちゃーね。
 それにさあ、お客さんだって、自分の都合で、カーネルとかglibcとか、バージョンアップしちゃうわけでしょ。なおさら、安定しないわけよ。

なのになのにだよお!
  Kondaraがバージョンアップするから、自分のディストリも
  バージョンアップしないといけないじゃん。
  売れないから。
  でもでも、なんか、ユーザーの中に神話があって、Linuxって、安定してると思ってるのよ。
  だから、不安定だと、「だめじゃん」って言われちゃうのよ。

  この格差は、うまんないよね。

だからかなあ。。。
 最近、他のLinuxのディストリって、どーなっちゃったんだろう。。。。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ソース公開、コミュニティが開発のLinuxって、ハッカー君が有利に見えるのは私だけ??

2005-04-05 11:50:07 | Linux
 昨日の記事が、アクセス数は普通だったけど、アクセスIP数が多かったので、今日もLinuxの話題(Linuxというカテゴリまで作ったぞ!)。




 Linuxのバグフィックスに、結構、「バッファーオーバーフロー」っていう言葉が良く出てきませんか?このバッファーオーバーフロー、原因の多くは、

 Cなど、メモリ領域を自分で確保する必要があるプログラムにおいて、

char fname[256]; // ファイル名を受け取るところ
int i,c;

for(i=0; c != EOF ; i ++)
{
c = getchar();  // コンソールからファイル名を受け取る
fname[i] = c;
}
fname[i] = 0;

みたいな
(って、いくらなんでも、ここまで、お馬鹿なプログラムはないよ!)
予想以上のデータが入ってきてしまったときに起きるのが普通。




 で、ここで問題なのは、Linuxは、ソースが公開されているっていうこと。
 バッファーオーバーフローが起きた場合、その部分を修正して、公開されるわけだ。

 ということは、ソースコードを入手して
 (公開されているからダウンロードして,rpm -bp する)
 そうすると、どこにバグがあったかが、わかる
 (最終的にあてたパッチを調べてもいいし、直前のものとのdiffをとってもいい)

 そうすると、どこにバグがあったかが分かる。

 っていうことはだよ、
 普通の業務開発なら、ここで横並びチェックをやっていて、同じようなバグは、修正してるよねえ。。。
 でも、でも、でも、Linuxって、コミュニティが開発してるわけよ!
 コミュニティの間で、横並びチェックができるのかあ???(^^;)

 ってことはあ。。。。

 他のハッカーの人は、違うコミュニティで、同じようなバグがでてないか?
 って、すぐに調べられるよね
 だって、ハッカー君は、
 ・他のコミュニティが作ったもののソースをrpm -bpして、
 ・そのソースで、似たようなバグ
    (バッファーオーバーフローの場合、似たようなところでバグを起こす)が
  あるかどうか、ソースをgrepしてみることができる。

 似たような、ソースがあったら、どーする??このハッカー君は!

 でも、ある可能性は、否定できないわけよ。その理由は後で書くけど。




 さらに、これ以外の話でも、ハッカー君有利なことがある。
 ソースが公開されているので、
   デバッグ情報つきになるようにMakefileを書き換えて、
   rpm -bbして、
   gdbで動かせば、
 バグで落ちたとき、どのモジュールで落ちたかわかるわけ。
 つまり、バグとその理由を発見しやすいわけね。

 コミュニティが修正する場合は、
  ・この理由を見つけた後に、
  ・修正して、
  ・みんなに配らないといけないけど、

 ハッカー君の場合は、そこから悪さできる方法を知っていたら、あとは、もう、すぐ、悪さできちゃうわけよ。どー考えても、ハッカー君のほうが、悪さしやすいわけよね。

 この勝負、ハッカー君のほうが、有利なわけよ。




 じゃあ、こういうことをやらせないようにすればいいわけ。
 その方法としては、
   ・バッファーオーバーフローにさせない
   ・バッファーオーバーフローになったら、
      シグナルをあげて、
      シグナルが上がったら、
      適切な処理を行うとか、
    とにかく、Segmentation Faultでいきなり死なないようにする
 とかが、考えられる。でも、どちらもいまの、コミュニティに頼るCVSによる開発方法では、限度があるのよ。




 っていうのは、バッファーオーバーフローになるのの多くは、勝手にプログラマが領域を切っちゃうことが多いため。
 例えば char fname[256]とか、char URLname[1024]とか、最大と思う領域を勝手にきめていれてしまうため。

 なぜ、そんなことが起きるか?というと、
  一般の業務開発では、こういう固定値は、管理する人がいて、
   その人がAccessとかExcelで管理して、
   CやJavaのソースコードをそこから自動生成して、
   みんなに配布する
  っていうルートができてますよね。

 でも、Linuxの場合、
   URLのパスの最大値って、そもそも、あるのかどうかわからないし、
   仮にあったとしたら、どのヘッダーファイルに入っているかしってる??
 ファイルの長さの最大値、MAXFILELENが、Linuxでどのヘッダーファイルに定義されてるか?
 「MAXFILELEN Linux ヘッダーファイル」でぐぐってみても、見つかんないってでてくるのよ。

     わかんない=めんどくさい、
     自分で勝手にきっちゃえー!ってなる。

 でも、そうすると、その文字以上、ハッカー君が入力しちゃうと、Segmantation Fault!
 (バッファーオーバーフロー)




 でも、かりにバッファーオーバーフローになったとしても、エラー処理がしっかりしていて、カーネルから、そういうシグナルで「落ちる」という信号をひろったら、処理を終了して、きれいに抜けるような処理がかかれていればOKだけど、

 Linuxにおける標準的なエラー信号の拾い方、ひろった後の処理の仕方

 って、だれが決めるの(どこのコミュニティの人がきめるわけ?)
 そして、決まったことが守られてるって、だれが確認するの?

 ふつうの開発なら、アーキテクチャを考える人がやるけど、
 Linuxの場合、???




 つまり、Linuxの場合

  ・コミュニティ内での開発情報は、メーリングリストなどで盛んに流れるが
  ・コミュニティを超えて、開発情報、バグ情報、コーディングスタイルの情報が流れない?
  ・コミュニティを超えて、それらの情報を管理、監査、勧告する団体がはっきりしない?
    →ないのかも?あっても、仕事してないのかも?
  ・それらの管理をディストリビューターにやれといわれてもねえ??

 っていう感じだと思う。




 なんで、そこにハッカー君がつけこんで、あるコミュニティが作成したソフトのバグが、他のコミュニティのソフトで起きないか?などと、横並びチェックをされた日にゃー、ハッカー君有利!になると思う。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linuxの生みの親トーバルズさんの発言、リファクタリングの方向に取られると、ちょっとまずい

2005-04-04 15:22:06 | Linux
 「ものもの」さんのブログをみていたら、2つ面白い記事がありました。

開発中のカーネルを毎日テストすべきというトーバルスの発言と、
テストの自動化、その最新事情 (@IT)の、「テストの自動化」を「アジャイル」の中で考えようというアプローチ。

 この2つの記事とも、最近の「リファクタリング」の流れの中の話でおこる、「頻繁にテストして、バグがあったり、不具合があったら、どんどん修正すればいいじゃん!」っていう、よく、若手の人が言う考え方と同じと、とらえられますよね。
(って、まさか、トーバルスさん自身も、そう思ってるのかなあ??)




 で、この考え方がまずいのは、汎用やってた人なんかが、よく言うとおもうけど、

1.バグを修正したことによる、新たなバグを含有する危険性(デグレード)

2.頻繁にテストを行うと、テストでバグや問題点をみつけようとしてしまう
 →机上デバッグが減るため、バグが入りやすくなったり、仕様決めが甘くなる

3.そのうち、いつの間にか、インターフェース(*)まで直してしまい
 結果として、前のインターフェースをもとにして作ったソフトと、
 あとのインターフェースを基につくったソフトの両方をリンクしてしまって、
 動かない上に、仕様が混乱する。
(Javaのinterfaceの意味ではなく、関数、メソッドの引数などのこと。ポインタ渡し、動的リンクにしてると問題あり)

 まあ、この辺の話で、Linuxのディストリの話(kondaraとそれ以外)とかあるんだけど、ここでは省略。




 そんなことにくわえ、これは、若手の人にいっても、わかってもらえる話でないから言わないような話として、こんなところじゃないかしら。

4.プログラムは、全体を、ある程度の量、こなさないと分からない
   (パターンなどが見えてこない)。
   ある程度こなして、見えてきたら直すのと、
   その場で、少しずつなおすのでは、全然レベルが違う。

  なぜなら、量をこなして、ある程度パターンが見えたとき、
   確実に、次元が上がっているわけで、
   そこから前のプログラムをみると、
      今のプログラムは、(恥ずかしいくらい)違って見える。

5.同じプログラムをいつまでも修正してしまって、もっと大事なプログラムが、手付かずになる可能性がある。
 プログラムを修正していると、仕事している気になるから、そういう、やりやすいところからやって、肝心な、しかし大変な新しいプログラムの開発は手付かずなんていうことにもなりかねない。




 じゃあ、どうするべきかというと、

 ・パフォーマンス低下を引き起こすようなコードはどういうものか
  という情報の共有の周知徹底

 ってことは、いわれそうだけど、

 そもそも、周知徹底なんて、できるもんじゃないから、
「テストの自動化」を「アジャイル」の中で考えようというアプローチがでてくるわけだとおもう。

 つまり、トーバルスさんが指摘するように、全体が出来上がってからパフォーマンステストをしたんではおそい。

 そこで、自分の今回開発した一部分が出来たら、その修正前と後で、パフォーマンスをチェックする(アジャイルに)。
 しかし、そのパフォーマンスツールなんてないから、その部分はつくんないといけないけど、そんなもんは、お手軽につくっちゃいばいい、ごたいそうなもん(伽藍(がらん:Cathedral)と表現してる)でなれば、ノリノリでつくれるよね、ってはなし。

(ちなみに、この記事は、もっと先の話をしていて、そういうパフォーマンステストをやっているところを、ツールやさんが見れば、もっと有意義なテストツールを作れるよねっていう話で、この辺は最近、新人がドキュメント、テストをやっているところを見て、VBAなんかつかって、テストツールをつくるノリみたいな話してる)

 そうやって考えると、トーバルスさんの考え方も、「テストの自動化、その最新事情」からみれば、古いわけで(全体を毎日テストする)、部分ごとに、必要な目的をテストする、そのためのツールをノリノリで作らなきゃいけないってことなんでしょうね。




 でも、この考え方でも、上記(5)の、「大事なプログラムが、手付かずになる可能性がある」っていう問題は解決しない。
 つまり、アジャイルで、すべてをテストすることが、本当に大切なのか?という問題がある。

 そうすると、プロジェクトマネージャーさんとかは、

   プロジェクトの優先順位に基づき、
     適正な手順・管理下の元、
     行わなければならない。

 とかいうんだけど、そもそも、優先順位って、なんで付くの?
 っていうことから考えないといけない。。。





 たぶん、この優先順位っていうのは、全体最適から来るとすると、Linuxの場合は、

 カーネルのシステムコールのインターフェース
 glibcのインターフェース
    :
   (中略)
    :
 カーネルのパフォーマンス

とかなるわけで、特にglibc のバージョンが違うと。。。

とかって、書くと、長くなるんだけど、こんな話、おもしろいかなあ。。。?
たぶん、読んでる人、長くて寝てるよね(;_;)




 ということで、クリック数が多かったら、このあとの話

Linuxのインターフェースとしては、なにが重要か?
  を、「Linuxのディストリの話(kondaraとそれ以外)」

とあわせてとか、
 Linuxのプロジェクトの問題点としての、
    横ならびチェックの軽視からくるハッキングの問題

とか、
Linuxの翻訳の問題(poファイルを訳せばいいだけじゃない)

とか書きます。
クリック数が、すくなかったら、(みんな興味ないということで)別の話題に変えますね。ちなみに、ウィリアムのいたずらは、とっても少ないと思ってます。




 あ、そうそう、「テストの自動化」の記事で、「優れたツール開発担当者は、ソリューションを短時間で準備できるよう、Java、Perl、あるいはPythonといった高級言語のプログラム手法に関する知識があるはずだ」ってあるけど、文中で出てきた、Excel VBAから、テストツールをアジャイルに作ってるなんていう話は・・・もっと興味ないよね。

 今回の記事は、思ったより、しょーもない出来であった。
 けど、せっかく書いたので、公開しておきます。
 (意外と、ウケたりして ^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする