2014年08月15日
(株)オープンソース活用研究所 顧問 八塚 俊次郎
Google, Apple, Facebook等、IT業界を牽引するグローバルカンパニーが集積するシリコンバレー。それら先進企業においても、オープンソースソフトウェアの存在は不可欠なものとなっています。 ここではシリコンバレーにおけるIT、オープンソースの動向について、紹介させて頂きます。今回は、第一回目として、シリコンバレーとコンピューターの進化の歴史について紹介させて頂きます。
シリコンバレーは、サンフランシスコの南に位置し、サンマテオ、サニーベール、サンタクララの3つの市を中心とするエリアに対する呼称です。シリコンバレー、すなわち「シリコンの谷」と呼ばれているのは、以下の図からもお分かりになる通り、サンフランシスコ湾を挟み東西が山に囲まれた谷間に位置し、半導体産業の中心地であることに由来します。
近年は、サンフランシスコを拠点とするスタートアップ(ベンチャー企業)が増えてきていることから、シリコンバレーという表現の他、サンフランシスコを含む "Bay Area"という表現を用いることが一般的になっています。
Silicon Valley Mapより転載 (http://www.siliconvalleymap.com/)
この地区は元々、果樹園が広がる長閑な農業地区でしたが、そこに1891年セントラルパシフィック鉄道を設立した鉄道王のリーランドスタンフォード(Leland Stanford)は、一人息子のスタンフォードJrを若干15歳で亡くし、その名前を残すためにスタンフォード大学を建設いたしました。
このスタンフォード大学の工学部長として教鞭をとっていたフレデリック・ターマン (Frederick Terman)は、地元企業との連携に努め、当時、スタンフォード大学の学生であったウィリアム・ヒューレット(William Hewlett)と、大学を卒業して、ゼネラルエレクトリックに所属していたデビッド・パッカード (David Packard)が、1939年に538ドルの資本金で、後に知られるヒューレット・パッカード社(Hewlett-Packard Company)社を設立した際には、会社の立ち上げを支援するなど、シリコンバレーの発展において、スタンフォード大学による産学推進の貢献が大きいと言われています。なお、今でもヒューレット・パッカード社はスタンフォード大学のキャンパス沿いに位置するスタンフォードリサーチパーク(Stanford Research Park)に本社が所在しています。
また、1955年には、トランジスタの発明者の一人である、ウィリアム・ショックレー (William Braford Shockley Jr。後にノーベル物理学賞を受賞)は、マウンテンビューにショックレー半導体研究所(Shockley Semiconductor Laboratory)を設立しました。そこに勤務していた8人の技術者は、後に「反逆の8人 (the Traitorous Eight)」として知られますが、ショックレー半導体研究所を辞め、1957年、フェアチャイルドセミコンダクター (Fairchild Semiconductor International, Inc)を創業します。このフェアチャイルドセミコンダクターは世界発となる商用集積回路を実現し、後に半導体産業を牽引するインテル(Intel Corporation)、テキサスインスツルメンツ (Texus Instruments Incorporated), モトローラ (Motolora, Inc), ナショナルセミコンダクタ (National Semiconductor Corporation)の母体となりました。
当時、半導体市場をほぼ独占していたシリコンバレーですが、1970年代後半になり、日本は産学連携を進め、半導体市場に攻勢をかけました。1980年代には、世界市場の50%以上を日本が抑える時代となり、1986年には世界の半導体メーカーの上位10社の内、6社以上は日系メーカーが占めるなど、当時、日本にとって、半導体産業は「産業のコメ」とまで言われていました。
その後、シリコンバレーはハードウェアからソフトウェア開発へのシフトが進みます。ソフトウェアの分野においても、1994年に当時スタンフォード大学の博士課程に在籍していた、ジェリー・ヤン (Jerry Chih-Yuan Yang) およびデビッド・ファイロ(David Filo) によってYahooが開発された他、同じくスタンフォード大学の博士課程に在籍していたラリー・ペイジ (Lawrence Edward Larry Page)とセルゲイ・ブリン(Sergey Mikhailovich Brin)によって、Googleが生まれるなど、産学連携が功を奏し、シリコンバレーがIT産業の中心地として再び注目されています。
では次に、コンピューターの歴史に進みたいと思いますが、コンピューターの歴史を知る上で、シリコンバレーを訪れた際に是非お薦めしたいのが、コンピューター歴史博物館 (Computer History Museum)です。
Google本社から、ほど近くにある博物館ですが、コンピューターの歴史が時系列で展示されており、ここではその展示物の紹介を通して説明していきたいと思います。
コンピューター歴史博物館
まず、コンピューター歴史博物館で初期のコンピューターとして紹介されている展示物の一つとして、階差機関 (difference machine)が挙げられます。これはイギリスの計算機科学者である、チャールズ・バベッジ (Charles Babbage)が考案した、多項式を計算する機械であり、電気仕掛けではありませんが、プログラム可能な計算機ということで、初期のコンピューターと言えるかもしれません。
19世紀は急速に工業化が進み、蒸気機関がそれまでの馬車といった動物による動力の代替となった他、船舶、鉄道、テレグラフなどの利用が進みました。そして、より高度な計算が求められるようになり、それまでの手書きで時として誤記を含む数表値の参照ではなく、誤差のない計算機の登場に期待がかけられました。
そういった中、チャールズ・バッベージ (Charles Babbage)は、計算機科学者として、多項式の正確な数表を作成することを目的とし、Difference Engine No.1を設計しました。Difference Engine No.1は、多項式を差分の積算から算出する原理をもち、設計までは行ったものの、部品数が25,000にも上り、重量にして4トンに相当する大がかりなものとなりました。開発は難航し、予算超過にも見舞われ、1833年に打ち切られることとなりました。
その後、設計の改良を進め、1847-1849年にDifference Engine No.2を設計しました。Difference Engine No.2は、部品数にして、No.1の1/3の8,000とシンプル化され、重量5トン、横幅11フィート (訳3.3メートル)、高さ7フィート (約2.1メートル)となりました。しかし、銀行からの融資を取り付けることができず、チャールズ・バッベージが生存の間には開発が行われることはありませんでした。設計が行われてから153年後の2002年に、漸く初めてロンドンにて開発が成し遂げられ、日の目を浴びることとなります。現在その実物が、コンピューター歴史博物館にも展示されており、計算処理のデモンストレーションを見ることができます。
Babbage Engine
その後、コンピュータは、真空管、トランジスタの利用を経て、劇的な進化を遂げます。PDP-1は1959年よりDEC(Digital Equipment Corporation)によって生産、販売された最初のミニコンピューターであり、マサチューセッツ工科大学におけるハッカー文化をもたらしました。また、PDP-1は、コンピュータ上で動作する最初のゲームであるSpace Warが動作するサーバとして知られています。ディスプレイにはType-30と呼ばれる縦横9.25インチで1024 x 1024の画素を持ち、主記憶媒体には、当時のハードディスクは高価であり、記録も不安定であったことから、パンチカード式が採用されました。また、Space War以外にも、TECOと呼ばれる世界初のテキストエディタが実装され、リチャード・ストールマン(Richard Stallman)が開発したEmacsもこのTECOを元に開発されました。その他、マサチューセッツ工科大学のハッカーはコンピュータ音楽の作成にも取り組んでいました。
なお、現在でも動作するPDP-1は3台あるとされ、3台ともこのコンピューター歴史博物館の所有物とされています。
PDP-1
近代のコンピューターの演算能力の高性能化には大きく2通りのアプローチがあげられます。一つはパイプライン化、もう一つは並列化です。スーパーコンピューターの生みの親と呼ばれるシーモア・クレイ (Seymour Roger Cray)は、1972年、クレイ・リサーチ社(Cray Research Inc.)を立ち上げ、パイプライン処理による高性能化を実現し、最初のスーパーコンピューター、CDC 6600を開発しました。(なお、パイプライン処理の動作原理は元スタンフォード大学教授の中村維男氏により考案されたものです)
CDC-6600
その後、マサチューセッツ工科大学のダニー・ヒルズ (Danny Hills)は、1982年、65,536個のプロセッサからなる並列処理を実現したスーパーコンピューターをCM-1という名のもとリリースしました。
CM-1
1980年代には、富士通・日立・日本電気と日系メーカーも自社のメインフレーム機を活用したスーパーコンピューターを発表しますが、それらは、クレイと同様、科学計算のためのFortranライブラリが提供され、また、UNIX系OSが採用されました。現在においてもOSはLinuxをベースとするものが主流とされており、オープンソースソフトウェアはスーパーコンピューターの発展にも深い関係を持っています。
どのコンピューターが最初のパソコンにあたるか、に関しては、様々な意見がありますが、1973年、Xerox社 (Xerox Corporation Ltd) の研究所の一つであった、Xerox cPARC (Palo Alto Research Center) は初めての個人向けコンピュータとしてAltoを試作しました。Altoは販売こそされませんでしたが、約2,000台が生産され、Xerox PARCを始め、Xeroxの他施設でも利用された他、Apple Mackintoshや、最初のSun Workstationにも大きな影響を及ぼしました。
Alto
開発当初は、Xerox PARCの研究員であったアラン・ケイ(Alan Kay)のDynabookプロジェクト (“A Personal Computer For Children Of All Ages"をコンセプトとしたパソコンの開発プロジェクト)において、「暫定Dynabook」と呼称され、そのオペレーティングシステムに最初のオブジェクト指向のコンセプトを持つSmalltalkが利用されました。その後、Smalltalkの派生ソフトは、GNU Smalltalk (GPLおよびLGPを適用)としてリリースされ、JavaやObject-C、Python、Rubyと、その後のオブジェクト指向言語の開発に強い影響を与えたと言われています。
1979年、Apple(Apple Inc.)の創業者であるスティーブ・ジョブズ(Steve Jobs)は、Xerox PARCを訪れ、Smalltalkによるオブジェクト指向でのソフトウェア開発環境および、マウスによるGUI操作環境に感銘を受け、Xerox PARCの主要な技術者をAppleに招聘し、その技術をLisaおよび、Mackintoshに統合したと言われています。
1977年にリリースされたApple社製 Apple-IIおよび、1981年にリリースされたIBM PCにより、それまでの高価だったメインフレームやミニコンに代わり、PCの市場が急拡大しました。
Apple II
最後にカリフォルニアでは、2014年より車両管理局(DMV)が定めた安全・性能基準をクリアすれば運転免許保持者が自動運転カーで一般公道を走れるようになりました。自動走行車の代表格としては、Google社 (Google Inc.)により開発された"Google driverless car"が挙げられます。コンピューター歴史博物館では、そのGoogleの自動走行車が展示されており、自動車上部に取り付けられたライダーから取得される周辺情報のモニターイメージをディスプレイで確認できます。
Google社製 自動走行カー
ここでは、コンピュータ歴史博物館の展示を通して、コンピュータの進化の歴史を紹介させて頂きました。 コンピュータ歴史博物館 (Computer History Museum)は、IT業界の多数の企業からのサポートを受け、コンピュータの歴史的遺産を多数保有し、数多くの実物が公開展示されています。シリコンバレーへ来られた際には、是非一度、足を運ばれることをお奨めします。
※本掲載の画像の一部は、コンピューター歴史博物館および、Silicon Maps Incのご協力の元、利用させて頂いております。 コンピュータ歴史博物館 http://www.computerhistory.org/ Silicon Maps Inc http://www.siliconmaps.com/index.html
国産地球観測衛星の地上受信処理設備の開発の他、ITコンサルティングファームにて大規模ERP/CRM導入プロジェク トのPMOを中心として従事。現在、株式会社オープンソース活用研究所 顧問。シリコンバレー在住。
「Pensela」とは 概要 「Pensela」は、「フルサイズのスクリーンショット機能」に加えて、「画面注釈機能」を提供するオープンソースツール。 GitHub 「ISCライセンス」...
「PhotoDemon」(フォトデーモン)とは、オープンソースのWindows用ポータブルフォトエディタです。「プログレードの機能」「高性能」「最大限の使いやすさ」に重点を置いて開発されています。200を超えるプロフェッショナルグレードのツール類で、高度な画像処理を実施できます。
「LibreSpeed」(リブレスピード)とは、自己ホスト型HTML5スピードテストツールです。JavaScriptで実装されており、「Flash」「Java」「Websocket」などは使用していません。Dockerイメージによる簡単セットアップにより、Webサイト最適化サポートツールとして利用できます。
fping(エフピン/エフピング)とは、「ターゲットホストが応答しているか?」を判断する機能を提供するソフトウェアです。pingと同様にICMPエコー要求を使用する「強化版pingプログラム」として、「複数ホストへのping実行」「ターゲットリストファイル指定」などの機能を利用できます。
AVideo(エービデオ)とは「ビデオ(オーディオ)プラットフォーム」です。「ビデオサイト作成機能」「ビデオオンデマンド機能」「ストリーミング機能」「エンコード機能」などにより、独自のAvideoプラットフォームから動画配信を実施できます。「広告(課金)機能」による収益化を目指すことも可能です。
YENMA(エンマ)とは、メール受信側でドメイン認証を検証するための「Milterプログラム」です。送信者のアドレスを認証し、結果を「Authentication-Results:」フィールドにラベル付けします。Milterをサポートする「Sendmail」や「Postfix」で利用できます。
Kaltura(カルトゥーラ)とは、オープンソースの統合動画プラットフォームです。動画の「配信」「録画」「編集」「管理」「分析」などの機能を提供します。「ビデオ会議」「オンライントレーニング」「ブロードキャスト」「動画メールマーケティング」「ポッドキャスト」などのさまざまな用途で活用できます。
BigBlueButton(ビッグブルーボタン)とは、オープンソースのWeb会議システムです。HTML5ベースのWebアプリケーションとして動作し「Web会議」や「オンライン教育」などの用途で利用できます。WebRTCを使用して高品質な「オーディオ機能」「ビデオ機能」「画面共有機能」を提供します。
ImageMagick(イメージマジック)は画像処理ライブラリです。コマンドラインツールやAPIライブラリとして利用します。非常に多くの画像フォーマットに対応し、豊富かつ高機能な画像処理機能を提供します。「スレッドによる高速処理」や「巨大サイズ画像処理サポート」などの特徴があります。
XMind(エックスマインド)とは、マインドマッピングソフトウェアで、最先端の「ブレーンストーミング機能」や「マインドマッピング機能」の構築に貢献するオープンソースプロジェクトです。使いやすさと拡張性の両方に焦点を当てており、アイデアを生み出し、創造性を刺激するように設計されています。
Ax(アクス)とは、「適応実験」を理解・管理・展開・自動化するための汎用プラットフォームです。「機械学習実験」「A/Bテスト」「シミュレーション」などのさまざまな種類の実験最適化が可能で、探査戦略として「ベイジアン最適化」と「バンディット最適化」をサポートしています。
WinSCP(ウィンエスシーピー)とは、Windows用FTPクライアントアプリケーションです。「FTPS」「SFTP」「SCP」「Amazon S3」に対応しており、セキュアなファイル送受信を行えます。「Amazon S3」プロトコルに対応しているためS3クライアントとしても利用できます。
SOGoはグループウェアサーバとしてコラボレーションスイート機能を提供します。各種オープンソースソリューションを使用して「カレンダー」「アドレス帳」「メール」などをコミュニティで共有できます。「オープンスタンダード」「シンプル性」「スケーラビリティ」に重点が置かれています。
K-9 Mail(K-9メール)は、オープンソースのAndroid用電子メールクライアントです。大量のメールを簡単に読むことができるようにすることに焦点を当てて設計されています。「POP3」と「IMAP」の両方をサポートし、リアルタイム通知用「IMAP IDLE」もサポートしています。
Genius(ジーニアス)とは、オープンソースの数値計算環境およびプログラミング言語です。「BC」「Matlab」「Maple」「Mathematica」などのように利用できる汎用計算プログラムで、計算集約的なタスクではなく数学的実験を目的として開発されており、「研究用途」または「教育ツール」としても活用できます。
Bino(ビーノ)とは、「3Dビデオ」と「マルチディスプレイ出力」をサポートするビデオプレーヤーです。マルチプロジェクターセットアップなどに対応でき、「スクリプト機能」「高精度カラー入出力の自動サポート」「2台のカメラデバイスの同時使用」などの高度な機能も搭載しています。
LiVES(ライブズ)とは、オープンソースのビデオエディタおよびVJツールです。「リアルタイムのビデオパフォーマンス」と「ノンリニア編集機能」を1つのアプリケーションに統合しており、プロのVJやビデオエディターに利用されています。「フォーマット」「フレームサイズ」「フレームレート」を気にすることなく、すぐにビデオの編集や作成を開始できます。
PuTTY(パティ)とは、リモートログオンターミナルクライアントソフトです。ネットワークプロトコル「SSH」「Telnet」「rlogin」に対応しており、人気が高く世界的に利用されているソフトウェアです。「リモートサーバへのファイル転送」「公開キー認証に対するユーザー制御」などの機能も提供します。
Maximaは「Mathematica」や「Maple」のような商用システムに匹敵するコンピュータ代数システムです。Lispで実装されています。「正確な小数」「任意精度の整数」「可変精度の浮動小数点数」を使用して、高精度の数値結果を算出します。算出結果は二次元と三次元でデータをプロットできます。
OpenCV(オープンシーブイ)とは、オープンソースのコンピュータビジョンおよび機械学習ソフトウェアライブラリです。コンピュータビジョンアプリケーションに共通のインフラストラクチャを提供します。商用製品でのマシン認識の使用を促進するために構築されており、特に、リアルタイムアプリケーションに焦点を当てて高度に最適化されています。
Cygwin(シグウィン)とは、Windows上で疑似的なUNIX系OS実行環境を構築するためのソフトウェアパッケージです。Windows上で動くアプリケーションウィンドウ内にUNIX(Linux)環境を再現でき、ユーザーは多くの標準UNIXユーティリティを使用できます。
Marble(マーブル)とは、オープンソースの仮想地球儀アプリケーションです。「マップや検索場所を自由に移動」「住所を調べる」「地図作成」「距離測定」「話題の場所に関する詳細情報を取得」などさまざまな機能を提供します。地球上だけではなく、他の惑星を参照できるデータも用意されています。
nano(GNU nano)(ナノ)とは、UNIX/Linuxを中心としたシステムで利用できるテキストエディタです。「vim」や「Emacs」のように複雑なコマンドを習得する必要はなく、CUIを用いて直感的に利用できる点が最大の特徴です。
VLC media playerは、マルチプラットフォーム対応のマルチメディアプレイヤーです。非常に多くのメディアファイル用コーデックを内蔵しているため、多様なメディアファイルの再生が可能です。「シンプル」「高速」「パワフル」「高機能」「多機能」を特徴としています。
Curl(カール)とは、URLを使用してデータ転送するためのコマンドラインツールです。ライブラリ「libCurl」をベースとして動作します。多くのプロトコルに対応して、さまざまなソフトウェアのデータ転送バックボーンとして利用されています。
Tor Browser(トーアブラウザ)とは、ユーザーのプライバシーと匿名性を保護できるブラウザで、Firefoxをベースとして開発されています。Torネットワーク技術を使用することで「追跡」「監視」「検閲」を回避しながらサイトを閲覧でき、ユーザーのプライバシーを保護します。
Adblock Plus(アドブロックプラス)とは、広告ブロック機能を提供するWebブラウザ用拡張機能です。「コンテンツフィルタリング機能」や「広告ブロック機能」によって快適にブラウザを利用できます。
FileZilla(ファイルジラ)とは、クロスプラットフォームのFTPクライアントです。「並列高速転送」「FTP/FTPS/SFTP対応」「使いやすいGUI」などの特徴があります。サーバ間のタブブラウズも可能で、複数のサーバに対して同時にファイルを転送できます。
Inkscape(インクスケープ)とは、ベクトル形式の画像を作成できる多機能なドローソフト(ベクターグラフィックスエディタ)です。オープンフォーマット「SVG」をネイティブサポートしており、商用ツールに匹敵する機能と拡張性を備えています。
Wireshark(ワイヤーシャーク)とは、ネットワークプロトコルアナライザ(パケット取得/プロトコル解析ツール)です。多くのプロトコルに対応し、ネットワーク上を流れるパケット情報をリアルタイムで調査できます。世界で最も広く普及しているため、ネットワーク解析を行うための定番ツールとなっています。
FreeCAD(フリーキャド)とは、オープンソースのパラメトリック3Dモデラーです。「製品設計」「機械工学」「建築工学」など幅広い用途で利用でき、あらゆるサイズの実物体をデザインできます。
Blender(ブレンダー)とは、3DCGアニメーション作成用グラフィックアプリケーションスイートです。「3Dモデル作成」「レンダリング」「アニメーション」など非常に多数の機能を搭載しています。
GIMP(ギンプ/ジンプ)とは、高機能な画像編集ツール(イメージエディタ)です。無償のオープンソースソフトウェアでありながら、有料グラフィック編集ソフトウェアに匹敵するレベルの機能を備えています。
Thunderbird(サンダーバード)とは、Mozilla Foundationが主となり開発を進めているオープンソースの高機能メールクライアントソフトウェアです。
Firefox(ファイアフォックス)とは、オープンソースのWebブラウザです。「ページ高速表示」「Web標準準拠」「カスタマイズ性」「プライバシー保護」などを特徴としています。
GNU Wget(グニューダブルゲット)とは、ファイル取得用ネットワークユーティリティです。Webページ再帰的検索機能によるWebサイトミラーリングを行えます。
FFmpeg(エフエフエムペグ)とは、クロスプラットフォームのマルチメディアフレームワークで、ビデオ(オーディオ)ファイルに関する録音/変換/ストリーミング機能を提供します。
MusE(ミューズ)とは、録音および編集機能を備えたMIDI/オーディオシーケンサーです。オーディオとMIDIの両方をサポートするデジタルオーディオワークステーション機能を提供します。
SpiderMonkey(スパイダーモンキー)とは、JavaScriptエンジンです。Mozilla Foundationが開発しており、Firefoxなどで利用されています。
OpenToonz(オープントゥーンズ)とは、2Dアニメーション制作ソフトウェアです。DWANGOによって開発されているもので、プロユースとしてスタジオジブリ作品などで利用されています。
OSS×Cloud ACCESS RANKING