世界を動かす技術を、日本語で。

フリーソフトウェアは勝利していない

概要

  • オープンソースFree Software の現状と課題についての講演内容
  • 表面的な「勝利」論と、実際の利用現場での 閉じたソフトウェア依存 のギャップ
  • ファームウェアやアプライアンス など、深層のレイヤーでの自由度の低さ
  • ユーザーの 自由と制限、そして社会的な影響例
  • 今後の課題 と、自由ソフトウェア運動の意義

オープンソースは本当に勝利したのか?

  • P.I.W.Oでの講演 を元にした内容
  • 発表者自身は Linux、KDE、Firefox、Inkscape などFree Softwareを日常的に利用
  • 会場の多くも Free Softwareユーザー である現実
  • メディアでは 「オープンソースの勝利」 が度々報じられている(ZDNET、Linux Journal、Wired等)
  • 例示されるのは Linux、Ruby、Red Hat、GitHub、Microsoft など
    • だがGitHubやMicrosoftが「自由」かは疑問
  • 「オープンソースは勝った」という主張は、 一面的な見方 に過ぎない可能性

ソフトウェアが世界を支配する時代

  • ソフトウェアがあらゆる分野に拡大 し、制御領域が広がる現実
  • Free Software の存在は、ユーザーが自ら制御権を持つために重要
  • LinuxベースのOS、豊富なプログラミング言語、オープンなクリエイティブツール の選択肢
  • 3Dプリンタ、スマートフォン、スマートウォッチ もオープンな選択肢が登場
  • 完全に自由なファームウェア搭載GPU (例:Nvidia Kepler 2012年モデルまで)
  • 自転車やミシン、通信機器、車、HDD なども一部はオープンだが、全てではない

閉じたソフトウェアの壁

  • スマートフォンのモデム は特許の壁でオープン化困難(Librem 5の事例)
  • GNUプロジェクト の始まりも、プリンタ用ソースコードが非公開だったことへの反発
  • 40年以上続く プリンタの自由 への闘い
  • プリンタの現状も ドライバ探しや機能制限 で混乱

オープンソースの適用範囲と課題

  • オープンなソフトウェア が利用できる分野と、 閉じたソフトウェア に依存する分野の地図
    • アプリ: Blender, Firefox, KiCADTwitter, YouTube
    • OS: GCC, Apache, OpenSSL
    • カーネル: Linux, Zephyr, FreeRTOS
    • ファームウェア: Corebootmodem, GPU
    • アプライアンス: Prusa 3D, Airgradient洗濯機、テレビ
  • プログラマが直接触れる層 は比較的オープンだが、 下層や家電 は閉じたものが大半

一般的なノートパソコンにおけるファームウェアの現実

  • ノートPCには 10〜15個の独立したプロセッサ (GPUやHDD、キーボード等)が存在
  • Linuxやドライバ、アプリ は主CPU上で動作するが、 入力装置や表示装置 は閉じたソフトウェア依存
  • ネットワークカードやストレージ も同様に閉じたソフトウェアに依存
  • ストレージデバイスでオープンなソフトウェア が動作した例はほぼ皆無
  • Secure Boot のように、ユーザーが起動できるソフトを制限する仕組みも増加

ユーザーの自由とその現実

  • ソフトウェアの四つの自由 (実行、学習・改変、複製、改良の共有)が守られてこそ真の自由
  • しかし、現実には 専門家以外には関係ない と思われがち
  • だが、 家族や知人のサポート役 としての立場では、サポート不能な事例(Androidのサポート切れなど)が発生
  • Android製品は4〜8年でサポート終了 し、使えなくなりe-waste化
  • Free Software であれば、13年前のLenovoノートPCも未だにセキュリティアップデートが受けられる
  • ドライバやブートローダーのオープン性 が寿命の長さに寄与

クラウド依存と「ラグプル」の危険性

  • クラウド専用デバイス は、サービス終了と同時に「高価な文鎮」と化す危険
  • 農業機械などのIoTデバイス は、パーツ交換すらメーカー認証が必要な場合も
  • 認証が通らず収穫できず破産 という深刻な事例
  • 医療機器(ペースメーカー等) にも閉じたソフトウェアが使われ、命に直結する問題

ソフトウェアの自由が社会に与える影響

  • Karen Sandler のように、個人の健康や命に関わる問題としてFree Softwareを捉える事例
  • ユーザーが自分の体や生活を閉じたソフトウェアに預けざるを得ない現実
  • ソフトウェアの自由を守ることの社会的重要性

この講演は、「オープンソースが勝利した」という表面的な言説の裏にある、 現実の制約や課題 に光を当て、 ユーザーの自由 を守るために今後も努力が必要であることを訴えています。

Hackerたちの意見

これはどんな絵を描いてるの?プログラマーが直接気にすること、例えばOSやカーネルはかなりカバーされてるよね。必要なものはオープンなバージョンがあるし。これって逆の結論だと思う。お金が儲かるとき(アプリやデバイスドライバー)、企業が入ってきて独自のバージョンで支配しちゃう(音楽や動画とか)。お金にならないときは、戦略的なビジネスの利害関係があるから。プログラミング言語をオープンソースにした方が開発者の興味を引けるけど、その上で作るアプリはクローズドソースになるんだよね。

この投稿はフリーソフトウェアの「損失」を大げさに言ってると思う。確かに、クローズドファームウェアやロックされたハードウェアは実際のギャップだけど…それでもオープンソフトウェアが現代のスタックを完全に再構築した事実は消えないよ。LinuxやK8sからPostgresやPythonまで、インターネットのインフラだもん。「勝つ」っていうのは、すべてのトランジスタを所有することじゃなくて、基準を設定してほとんどのものを動かすことなんだ。FOSSに深く関わってる人たちからこういう絶対主義的な二元論をよく見るけど…その考え方が運動を進めるために必要なのかもしれないけど、オープンソフトウェアが現実をどれだけ変えたかからは離れてる気もする。

FOSSに深く関わってない私でも、絶対主義的な考え方がわかり始めてる。スマホでグラフェンを使ってるけど、Googleの新しい制限されたセキュリティパッチは本当にひどい状況だよ。

記事はちゃんとそれに触れてると思うよ:> プログラマーが直接気にすること、例えばOSやカーネルはかなりカバーされてる。必要なものはオープンなバージョンがある。開発者があまり監視やビジネスのプレッシャーなしに作れるものは、オープンソースでうまくいくことが多い。でも、ほかのほとんどのもの(ハードウェア、非技術的な「生産性」ソフトウェア、サービス)はそうじゃなくて、それが私たちの生活のほとんどなんだ。まだまだクローズドソースの世界に生きてる。プリンターやコーヒーメーカー、ノートパソコン、テレビ、車、スマートライトがもっとオープンであってほしいって思うのは、絶対主義的とは言えないよ。

「勝つ」っていうのは、すべてのトランジスタを所有することじゃない。 それは絶対にそうだよ。企業は今、リモート認証を推進してる。私たちがデバイスを「改ざん」したかどうかを検出できるようになった。これで差別されるんだ。自分のオープンソースソフトウェアをインストールした?すべてのサービスが拒否される。自分の銀行口座にもログインできない。私たちは疎外されてる。二級市民だよ。選択肢はなくて、企業が所有するコンピュータか何もないかのどちらか。自由なソフトウェアを実行できないなら、何の意味があるの?

「勝つ」っていうのは、すべてのトランジスタを所有することじゃなくて、基準を設定してほとんどのものを動かすこと。勝つっていうのは、すべてのソースがあるから自由にコンピュータを改造できることだったのを覚えてる。今はアプリやSaaSの世界に閉じ込められてる。

勝利にはいろんな結果があるけど、歴史的に見て似たようなものもあるよね。たとえば、暗号化に関する戦争が勝ったっていうのがある。今や暗号化を売るのは違法じゃなくなった。でも、政府がバックドアを強制する法律を作ったら、それはどれだけの勝利になるのかって話だよね。NSAの人が言ってたこと、覚えてる?「暗号化のコントロールを巡る戦いには負けたけど、プライバシーに対する戦争には勝った」って。

君の言うことは間違ってないけど、「再形成された」って言葉にはいろんな意味があるよね。もし目標が一般の人々の自由なら、明らかに勝ってないよ。相手にうまく使われるのは勝利とは言えない。

「勝つ」というのは、全てのトランジスタを所有することを意味するわけじゃない。基準を設定し、作られるものの大半を支えることを意味するんだ。もしフリーライセンスで公開されたソフトウェアが基準を設定し、重要なハードウェアを使うために必要な重要なトランジスタが非自由なソフトウェアによって支えられているなら、それは全く意味がない。この文章がまさにそれを非難しているんだ。もし全てのトランジスタを所有していなければ、そのトランジスタを所有している誰かが、自分のハードウェアを思い通りに使うのを妨げたり、その特権のためにお金を取ろうとすることができる。こうした状況を防ぐことは、実際には新しいインターネットアプリケーションを作るためにフリーソフトウェアを使えることよりも、いろんな意味で重要なんだ。

フリーソフトウェアはインフラの面では勝利したけど、まず大事なのは人々のコンピューティングに自由を与えることだよね。いいニュースは、Linuxがデスクトップで地盤を固めてきていること。いつか「Linuxデスクトップの年」が来るかもしれない。ただ、今はほとんどの人のコンピューティングがモバイルデバイスに移っていて、これらはすぐに完全にロックダウンされてしまう。Appleは長い間手遅れだけど、Googleは今、AndroidをFOSSプラットフォームとして潰そうと必死になってる。LineageやGrapheneのプロジェクトは、今こそより重要になってる理由だね。

僕が行ったほとんどの場所では、フリーソフトウェアは基本的にソフトウェアにお金を払わない方法だね。多くの企業にとって、フリーは=無料。1980年代や1990年代には、同じような場所でソフトウェアを海賊版してた。ポルトガルでは、その頃カタログを持ったショップがあったけど、政府レベルではソフトウェアの販売なんて誰も気にしてなかった。今は経済機関によって管理されていて、そういうショップは2000年代初頭ほど簡単には見つからなくなった。フリーソフトウェアのおかげで、今は合法的な状態になったけど、著者はほとんどの場合、以前と同じく何も得られない。だから結局、多くのFOSSプロジェクトは商業的な方向にシフトしてしまうんだ。できれば、海賊版すら不可能な方法でね、例えばSaaSみたいに。

「LinuxやK8sからPostgresやPythonまで、インターネットのインフラだ。今手に持っているデバイスのソフトウェアを制御できないかもしれないけど、重要なのは数社の企業が自分たちのインフラの維持費を「オープンソースコミュニティ」に外部化できること。そして、そうすることで無料の宣伝も得られるってこと!」

複雑なパズルだね。重要な部分は、フリーソフトウェアの資金調達や持続可能性が解決されてないことだと思う。著者は「ハードウェアを売るとき…」って触れてるけど、つまりハードウェアがないと収益がないってことだよね。Redhatがあるのは否定しないけど、それは例外であって普通じゃない。

私も全く同じように見てる。多くの人がオープンソースとフリーを混同してるよね。そのモデルは、生活のためにやるには本当に持続可能じゃない。

フリーソフトウェアは、誰かが私のために必要なものを無料で書かなきゃいけないって意味じゃないよ。エンドユーザーが自分のデバイスをコントロールしたいなら、できるべきだってこと。

オープンソースがイデオロギーの理由でオープンじゃないってのは、競争や市場の結果だと思ってる。競争相手がソフトウェアを無料で公開すると、次にそれをさらに良くする方法はライセンスを改善することだよね。それでも足りなければ、ユーザーにお金を払ってソフトを使ってもらうこともできる。ブレイブが広告を通じてやってたみたいにね。今は競争が少ないソフトウェアもある。たいてい、これは大きな投資が必要なソフトで、ハードウェアとセットになってることが多い。スマホがその典型だね。ハードウェアを買わなきゃいけないソフトは、価格があるからプレッシャーが少ない。だから、急に同じものを無料で提供する競争相手が現れるってことはないんだ。

競争だけで説明できるとは思わないな。人々がフリーソフトウェアのコンパイラやウェブブラウザ、OSを使うのは、ただそれがフリーだからじゃなくて、他に良い選択肢がないからだよ。

「フリーソフトウェア」ってブランドは、心を掴む戦いに負けたかもしれないね、他の理由もあるけど。もちろん、一般の人は「フリーソフトウェア」ってお金を払わずに使えるソフトだと思ってる。だから、みんなすぐにダウンロードしちゃって、あなたが「フリーソフトウェアの意味を聞いてくれて嬉しい」って一時間も説明するチャンスがないんだよね。誰も「フリーソフトウェア」って何かなんて聞かないし、みんな知ってるから。アドボケイトが下手くそで、言葉に新しい意味を持たせようとして失敗してるのが問題なんだ。これが哲学的な意識の壁だよね:人々がフリーソフトウェアの観点で考えるのではなく、Free Software(tm)(R)の観点で考えるってこと。 (このコメントが気に入ったら、再生可能なクリーンエネルギーについてのニュースレター「Burn Fossil Fuels」に登録してね。私たちのチームは、実際には言ってることの逆を意味する言葉遊びを使ってメッセージを広めようと頑張ってるんだ。これについては、私たちの100ページのマニフェストホワイトペーパーに詳しく説明してるし、特定のイベントで講演も受け付けてるよ。)

最近気づいたことなんだけど、多くのトピックのアドボケイトは、実際には自分たちの主張に対して害を与えてることが多い気がする。普通の人が共感できないような硬い立場を取って、理論的には同意しても、実際には理解できないって感じ。とにかく、「フリー」ソフトウェアについてだけど、これを一般の人にもっと分かりやすくするためにどうフレームを作ればいいと思う?「リブレソフトウェア」を流行らせようとした人もいたけど、それも同じ問題があるよね。つまり、人々がそれを誤解するってこと。

このコメントはあんまり好きじゃないけど、確かにめっちゃ真実だと思う。

ここでの根本的な対立は、ソフトウェア開発者が報酬を得たい/必要としていることだよね。私たちには住宅ローンや家賃、医療費、食費があって、どれも無料じゃない。私の意見では、「ビールのように無料」と「言論の自由のように無料」を結びつけるのが根本的な問題だと思う。後者は前者を主張すると達成できない。つまり、プライバシーの解決策が「ビールのように無料」のソフトウェアだけを使うことなら、開発者が報酬を得たい/必要としているから失敗するよ。私たちが必要なのは、プライバシーを尊重するソフトウェアにお金を払いたいと思うビジネスモデルなんだ。それが唯一の持続可能な道だと思うし、ソフトウェアの自由について最も声高に主張している人たちが、こういう記事でそれに逆行しているのがもどかしい。[追伸:愚痴ってるだけで、考えを変えるための詳細を提供できてないのは分かってる。ごめんね。]

ブレンダーは、実際にこれが起こる良い例みたいだね。

プライバシーを守るソフトウェアにはお金を払う人がいると思うよ。でも、問題は、そう主張する企業を信頼していない人が多いってこと。だって、あの「プライバシー」には微妙なアスタリスクがついてることが多いから。企業は成長や株主価値のために信頼を損なうことをやめられないみたいだし、権力に屈することもあるしね。それに、企業が透明性を持って信頼を得ることは珍しい。私も同意するけど、人々はソフトウェアを書くためにお金をもらうべきだし、そのソフトウェアには自由が尊重されるべきだと思う。でも、ほとんどの場合、その二つを調和させるのは難しいみたいだね(うまくいく場合もあるけど、それは例外だよね)。

ジョン・ディアが誰かのトラクターを壊すのは、認識されていないスペアパーツを入れたからであって、そういうことは一生懸命働いているソフトウェア開発者を支援することとは関係ないよ。これはソフトウェアを悪用してるってことだね。(賭けるとしたら、その決定にソフトウェアエンジニアは関与してなかったと思う。彼らはただ実装しただけだし!)

ソフトウェアが他の何か(例えば科学研究)の副産物であれば、可能性はあるよ。

この話題は「勝つ」って何なのかって疑問を引き起こすよね。他の人が指摘してるように、全ての目的に使われるソフトウェアの中で絶対的な勝利や完全な支配がどうしてあり得るのか。もちろん、オープンソースの成功をそんな定義で提案した人はいないけど。1990年代からずっとオープンソースプログラムを使ったり開発したりしてきたけど、やっぱりオープンソース製品の方が好きだな。たとえプロプライエタリな選択肢よりも強度が劣っていても。最近では、オープンソースのプログラムがいくつかベストインクラスになってきてる。例えばBlender、PostgreSQL、Firefox、ほとんどの開発者ツールとかね。それでも、OSや企業向けプログラムなどの分野ではプロプライエタリ製品が支配してるし、これからもそうだろうけど。とはいえ、質の高い代替品がプロプライエタリ製品のかなりのシェアに存在するってことは、オープンソースの成功を示してるよね。マイクロソフトみたいな大手が自社製品の一部をオープンソース化してるのも注目すべき点だよ。これは数十年前には考えられなかったことで、オープンソース運動の影響を示してる。勝者総取りの哲学は、オープンソースの擁護にとっても他のどんな事業にも悪影響を及ぼすだろう。現実的には、優れたバグのない、よく文書化されたオープンソースソフトウェアを作ることが、感謝されるユーザーベースを見つけるために必要なんだと思う。もちろん、そのカテゴリのソフトウェアの大多数のユーザーではないかもしれないけど、それがプロジェクトを成功と呼ぶために必要なのかな?そう言うのは、常に失敗感を抱えたり、本当の勝利を逃す前触れのように感じる。

フリーソフトウェア運動の目標は、全てのソフトウェア(つまり「コード」)が自由である使えるコンピューティング環境を作ることだよ。もし携帯電話やタブレット、ウェブサービス、ファームウェア、あるいは基本的にコアOSコンポーネント以外のものを含めると、その目標はかなり遠いね。

たくさんのソフトウェアが「オープンソース」だけど、実際には一つの会社に支配されていることが多いよね。フォークすることはできるけど、複雑なプロジェクトではそう簡単にはいかない。オープンソースソフトウェアの99.99%のユーザーは、意味のある貢献をすることはないだろうから。だから、ほとんどの人ができるのは、何か問題が起きたときに誰かがプロジェクトをフォークしてくれることを願うことだけ。複雑なプロジェクトのフォークを維持するには、かなりのリソースが必要だからね。一般的な「オープンソース」と実際にコミュニティが構築し、管理しているプロジェクトを区別する必要があるよ。オープンソースという言葉自体は、オープンソースイニシアティブによって広まったんだ。ティム・オライリーや大手テック企業が資金提供して、フリーソフトウェア運動を取り込んでビジネスに優しいものにしようとしたんだよね。彼らはその用語を広めるために多くの時間とお金を使ってきたから、今ではその周りに膨大な好意がある。だから、OSIが承認したライセンスを使わないプロジェクトは、広く汚いと見なされることが多い。コミュニティに管理されていて、ほぼ完全に自由なライセンスを持っているプロジェクトがあったとしても、年商が1億ドルを超える企業が再販できないという条件があれば、ほとんどの開発者はそれを「オープンソース」のトリリオンダラー企業が完全に管理しているプロジェクトよりも信頼しないだろうね。

プログラマーとして、全てのニーズに合うものなんてないってことを理解する必要があると思う。プロジェクトごとに違うニーズがあるから、選択肢があるのは悪くないよね。競争がある限り、ソースコードをオープンソースにするチャンスもあるし。クローズドソースのソフトウェアは寿命が短いけど、オープンソースはメンテされなくなっても記憶に残るからね。もしGitHub(クローズドソースのソフトウェア)がなかったら、オープンソースの拡大や理解には至らなかったと思う。プロジェクトをオープンソースにするためのGitホスティングは、コスト的に見てもあんまり効率的じゃなかったしね。一方で、トレントは多少成功してるけど、法的な抵抗に直面してる地域も多い。基本的な目標は、常に選択肢を持つこと。選択肢が少ないなら、自分で作ればいい。後のことは振り返ればただの霧だと思うよ。

ゲームは、現在プロプライエタリソフトウェアでうまく機能する一例だね。ゲームはスポーツみたいなもので、競争がある限り、ハックで障害を乗り越えるチャンスは常にある。OSに関する誤解と同じようにね。でも、OSとは違って、ゲームにはまだ商業的な応用がないから、フリーウェアゲームの実現にはまだ時間がかかりそう。

フリーソフトウェアはサーバー側では勝利を収めた。デスクトップやゲーミングPCにも進出してきて(今は5%以上のシェア)、Windows 10からの移行が進めば10%を超える可能性もある。でも、コンピューティングの風景はモバイルデバイスにシフトしていて、今こそ私たちの自由が最も危険にさらされている時期だ。AppleやGoogleを見限って、LinuxフォンやLineage、Grapheneにフラッシュできるデバイスを専ら買うべきだと思う。