Recent site activity

Linux

このコーナーではLinuxに関する話題をまとめます。

以下、まだ推敲未了です。


1994年にLinuxを使ったUNIX/C開発環境の構築を試みました。まだインターネットを体験しておらず、slackwareのCD-ROMを購入して自宅のPCにインストールしたことが始まりです。

当時、会社にあったUNIX環境はとても高価でした。一方PCでは80486DXを搭載したPCの販売が始まっており、PC-UNIXを使った開発を企画し、開発を行いました。
Linuxを知る前は、93-94年にPC-UNIXとしてNovell UnixWareを選択し、システムを作っています。PC-UNIXでのC言語によるシステム開発環境を作るに当たり、C言語開発環境にGNUツールを導入し、HP-UX, Solaris, DG-UXを含め、複数のUNIX上で同一ソースコードをコンパイルできるようにしました。GNUツールはJUSが配布していたCD-ROMで入手したものです。当時既にDG-UXはgccを標準コンパイラとして提供しており、gccが商用レベルで実用的に利用できることを確信しました。当時のUNIXの開発環境はとても高価なので、ひとつの開発用UNIX環境を、多くの技術者が利用するためとても混雑していました。GNU/gccを知ったことで、余裕のある他のUNIX環境に開発環境を分散する事ができました。

Solaris、HP-UX、Apllo DOMAIN/OSにもGNU/gcc開発ツールをソースからコンパイルする形で導入しました。GNU/gcc開発ツールのソースコンパイルの必要性から、GNU make、configure等コンパイルを支援する開発ツールの導入の必要性を知りました。GNUツールにより異なるUNIX上の開発環境を統合できることを知り、積極的にソースコードの移植性の向上に取り組みました。C言語の標準としてANSI/Cを導入し、社内開発のC言語仕様を統一、合わせてPOSIX標準システムコールを採用することで、開発したコードのほとんどが異なるUNIX上でコンパイルできるようになりました。その為、特に表示系と通信インターフェイス周りを除いた、データの収集、変換、蓄積等は異種のUNIX上で、そのままコンパイルし、動作しました。すなわちポーティングが画期的に楽になったのです。

HP-UXとUnixWareの分散処理システムは、とても柔軟に動作しました。それまでの特定のハードウエア、基本ソフトアーキテクチャに依存するものを「標準レイヤー」を活用することで、依存性を排除し、ソフト開発者が必要とする知識範囲を明確にしたので、開発経験のない技術者でも、開発速度が大幅に向上したので、過去のコードを一切使わない形でリファクタリングすることができました。良好にモジュール化した機能単位の分散処理の形を取ることで、機能単位の実装が圧倒的に容易になったので、機能追加もデバッグも簡単です。

「これならGNU/gcc開発環境を利用したLinuxでも同じことが実現できるのではないか?」と思い始め、1994-5年に次期開発環境としてLinuxの導入を社内提案したのですが、残念ながら導入には至りませんでした。おそらくは「どうして同じことがパソコンでできるのか」の説明が不十分で「そんな上手い話はない。これまでの投資は何だったんだ。」ということにつながったのだと思います。

Linuxの開発環境の提案以降、開発の仕事を離れ、ヤマハルータのビジネス開発に参加することになります。その中でもLinux/UNIX/オープンソースの活用を考え続けることになります。

続く。。。
Subpages (1): Linux配布元へ