Assyのリベラル文学研究所もご覧ください。

UNIX

AT&T UNIX

シンプルな設計

UNIXの歴史は、MIT、ゼネラル・エレクトリック、当時のAT&Tベル研究所により開発された、MulticsというOSから始まる。
多機能を目指したOSだったが、そのおかげで当時のコンピュータでは使い物にならなかった。
ベル研究所のグループによって、単純な機能を目指したOSが作られた。それがUNIXである。

C言語で書かれたOS

UNIXは当初はアセンブリ言語で書かれたが、後に高級言語C言語で書かれるようになった。そのため、移植性の高いOSになった。

パブリックドメイン

UNIXソースコードは、AT&T独占禁止法の管理下にあったため、商用ではなくパブリックドメインで公開された。
そのことから、大学や研究機関に爆発的に広まった。
また、UNIXソースコードをベースにカルフォルニア大学バークレー校によるBSDが開発された。
だが、時代とともにAT&T独占禁止法の管理下ではなくなり、それまでオープンだったUNIXは非公開の独占的ソフトウェアに戻った。
また、UNIXの名称や商用コードを巡って商売をする、Sunのような商用UNIXベンダーも居た。
そのことから、リチャード・ストールマンによるGNUプロジェクトは新しいフリーのUNIX互換OSとして、GNUを開発した。

ネットワークへの親和性が高い

UNIXはネットワークへの親和性が高いことで知られる。
特に、コンピュータそれぞれに違う役割を持たせたり(ログイン用のマシンやデータ保存用のマシンなど)、コマンドをネットワークで実行することに長けている。

優れたコマンドライン環境

UNIXは優れたコマンドライン環境を備える。現在ではコマンドラインシェルはBashTcshが使われることが多い。
X11というウィンドウ・システムも存在し、GUIウィンドウとしてBashを複数使うこともできるほか、Linuxコマンドライン環境ではAlt+F1~F6で仮想コンソールを使うことが出来る。

マルチタスク・マルチユーザ

UNIXマルチタスク・マルチユーザのタイムシェアリングOSとして、最初から複数のユーザーによって操作されることを念頭に置いている。
UNIXのマルチユーザ環境の特徴は、「そのユーザが実行したプロセスは、そのユーザの権限において実行される」ということであり、これにファイルやディレクトリのパーミッションが加わって、それぞれのユーザが安全にシステムを使うことが出来るようになっている。
UNIXマルチタスク環境では、あるプロセスを実行中に別のプロセスも実行することが出来る。これは、DOSのようなシングルタスクのOSにはない特徴だ。単純なコマンドプログラムだけではなく、デーモンなどもマルチタスクで動作する。

安定したインフラ基盤

パソコンで使うOSというよりも、安定したサーバーやワークステーションでの利用を念頭に置いている。

「ファイル」という考え方

UNIXはリソースのあり方を「ファイル」という概念で一般化した。プログラム、データ、はてはデバイスまで、全てを「ファイル」という考え方に落とし込む。
だが、このファイルという考え方は、ネットワークやGUIなどにおいてはあまり一般的でなくなっている。そのため、新しいPlan 9という研究用の分散OSでは、ネットワークなどについても「ファイル」という考え方を突き詰めている。

オープンソースUNIXの本流

UNIXは、そもそもがパブリックドメインで開発されたOSです。
大学や会社の研究機関とインターネットの違いはあるかもしれませんが、オープンソースであるLinuxUNIX本流の開発のし方をしていると言えます。

UNIXはOSの本家本元

UNIXは、「OS」という考え方をIBM System/360が作ってから、さまざまなOSが生まれたところでの、OSという考え方の本家本元だと言えます。
C言語という高級言語で書かれ、マルチユーザ・マルチタスク・タイムシェアリングといった、今のOSの基本的な考え方の本流です。
そして、IBMメインフレーム用のOSから、BeOSのようなパーソナル向けのOSまで、UNIX互換であり、POSIX互換である、ということは、一種の標準となりました。
WindowsUNIX互換ではありませんが、今あるOSのうちWindowsを除いたOSは、ほとんどがUNIX互換であるか、何らかのUNIXとのつながりを持っていることが多いです。
また、UNIXは安定していて、堅固である、ということは良く言われます。
今のLinuxは、Fedoraの実験指向もあって、昔ほど安定した印象は無くなりましたが、Windowsと比べると、カーネルコマンドラインで言えば安定しているのかな、とは思います。ですが、GNOME/KDE/MATEにはバグは多いです。
セキュリティに関して言えば、最近のLinuxSELinuxなどもっとセキュリティを高める試みをして不安定になる印象はありますが、パッケージ管理システムで全ソフトウェアを一発で最新にすることが可能で、カーネル以外は再起動しなくても良いなど、やはりセキュリティは高いのかなという気がします。
rootユーザーを使わなければ、おそらく簡単にシステムは壊れません。
大規模サーバーではデータフォルダをきちんとバックアップすれば、基本的に壊れることは無いでしょう。
現実的に考えて、IT業界全体の標準まで普及しているWindowsよりは、狙われることは少ない、というのは、シェアが少ない故の長所ではあるかもしれません。

コンピュータはネットワークである

UNIXは、ネットワークとの親和性が高いです。
特に、Sun Microsystemsのような会社の努力もあって、コンピュータをネットワークに繋ぐことを当たり前のものとしました。

コマンドラインで動く可搬性

逆に、UNIXGUIとの親和性は低いかもしれません。今でも、コマンドライン環境だけでネットワークに繋いで利用されることの方が多いでしょう。
ですが、それを逆に言えば、GUIの操作をしなくても、コマンドだけでほとんどのことを行える、という、「コマンド主義」のOSである、という言い方も出来るでしょう。
Windowsは、サーバーに使うWindows Serverでさえ、GUI環境で使うことを基本としています。Linuxコマンドライン環境だけをインストールして、SSHで操作することも出来ます。

なぜかLispとの親和性が高い

GNUなどのシステムについて言えば、なぜかUNIXとは本来関係がないはずのLispとの親和性が高いです。
GNU Emacsは、Lispによる拡張によってコンピュータ総合システムとなります。また、sawfishのようなLispで拡張されるウィンドウマネージャ(昔のGNOMEで使われていた)や、マニアックなところではGNU GuixのようなLispで書かれたパッケージマネージャもあります。

プログラマの仕事台

UNIXプログラマの仕事台と言われているように、プログラマに対する支援が手厚いです。
特に、コンパイラやmakeのようなプログラムは最初から無料で用意されており、そしてスクリプト言語や他のプログラミング言語インタプリタコンパイラも豊富です。

システム・アーキテクチャとしての洗練性が高い

システム・アーキテクチャとしての洗練性が高いです。
プログラムはパッケージ管理システムを利用することで、常に最新のパッケージが自動でインストールされます。
ですが、GNOMEKDEを見ていると、GUI環境の洗練性はWindowsに遅れています。その代り、もっと良いものを目指して日進月歩でみんなで開発しています。

Web開発のためのツールが豊富

Linuxは、特にWeb開発のためのツールが豊富です。
Mozilla FirefoxのようなWebブラウザアプリケーションや、Apacheqmailのようなサーバーソフトウェアが豊富なだけではなく、最先端のRuby on Railsのようなツールを使うことが出来ます。
Perl/CGIのような、インターネットの昔標準であった流行の技術は、多くがUNIXの技術を元にしています。
IEやMS-OfficeのようなWindows標準の技術も、Mozilla.org(旧Netscape)やGoogleの努力もあって、Linuxでデスクトップでインターネットを見ることは難しくは無くなってきています。特に、YouTubeHTML5の標準技術を採用しているため、僕はLinuxYouTubeの高品質な動画や音楽を楽しんでいます。

メインフレームや大規模データセンターの環境と近い

プログラマを目指している人にとっては、メインフレームや大規模なデータセンターの環境と近いことがメリットとして言えるかもしれません。
DockerやjailのようなOSレベルの仮想化環境や、MySQLのような関係データベースサーバーは、たくさんのプロセッサを繋いで一つにしたデータセンターやメインフレームのシステムと近いでしょう。

楽しい・可能性がある

Linuxは楽しいことが長所として挙げられます。全てがオープンに公開され、共同で協力して開発し、成果をみんなと共有するLinuxのバザール開発は、インターネットを使った革新的な開発として、とても「楽しい」ことがメリットとして挙げられます。
バザール開発だけではなく、UNIXはとてもカスタマイズ性が高く、システムをほとんど制限のない無限の自由に設定・拡張することが出来ます。
また、Microsoftのような単一のベンダーではなく、全てのソフトウェア・ハードウェアの開発企業にオープンで開かれていて、誰もが開発に参加出来ます。
そして、UNIXというシステムそのものが、楽しいシステムである、といえるでしょう。Bashやパッケージ管理システムを使うことで、とても楽しくシステムの管理やプログラミングを行うことが出来ます。Gentoo LinuxPortageを使っていると、まるでこの世界の全てを全部自分の力で構築しているような錯覚に陥ります。

出来る人間にしか使えない、という短所もある

短所としては、出来る人間や分かっている人間にしか使えない、ということもあります。
特に、サバイバル的な用途が考えられます。自分の力で問題を解決出来る、ITのエキスパートでなければ使えません。デバイスドライバを自分で書け、といわれることすらあります。
ですが、本当はそれらを言う人間は、Linuxカーネルの開発に参加出来るような、上級者を育てたいだけです。
Windowsが家庭料理のレシピ本であるなら、Linuxはプロの料理家に弟子入りするようなものである、といえるかもしれません。全て、出来ないのは自分の責任だと言えます。
ですが、C言語Bashを分かりたい、といった人しか、そもそも使おうとはしないでしょう。ApachePHPは、マニュアルは整備されています。ネットにも情報はあります。怯えずにトライしてください。トライし続ければ、きっと90%の人間は、何かのシステムをきっかけやベースにUNIXとコンピュータのことがきちんと分かる、そういうシステムだと思います。

Live Free or Die

UNIXのプレートに見られる「Live Free or Die」の文字は、元々はアメリカのニューハンプシャー州の標語。
UNIXの「自由を守らなければ死を」という精神が刻銘に刻まれている。

C言語のふるさと

UNIXC言語のふるさとです。C言語は、UNIXを移植性の高いOSにするために開発され、その後UNIXだけではなく多くのシステムの記述を行うシステムプログラミング用の言語として普及しました。
UNIX系のOSであるLinuxでは、GNUのツールチェイン(gcc, binutils, make, gdbなど)をフリーで使うことができます。コンパイラが無料でオープンソースであることは、Windowsのように有料である場合よりも、プログラミング入門者の敷居を著しく低くします。
また、Linuxでは、UNIX系のAPIをネイティブに使うことができます。open, close, write, read, printf, scanfなどのUNIXの標準的なAPIをネイティブに使えます。これらはWindowsなどでも実装はされていますが、WindowsではWindows APIへの依存度も高いです。
ただし、LinuxではGUIの「標準」のAPIがありません。X11を使うのが普通ですが、X11を導入しないサーバーマシンとしての利用もあることから、X11を標準にはしておらず、場合によってはX11を導入せずにコマンドラインで使うことが推奨される場合(SSHでリモートログインする場合など)もありますし、X11が入っていたとしても、GTK+やQtのような追加的なツールキットのAPIを使う場合もあるでしょう。
C言語を学ぶ上で、Linux環境があることはとても良いことです。それは開発環境のツール群が整備されていることだけではなく、Linuxはほとんど全てのソフトウェアをオープンソースで再配布している、ということも言えます。オープンソース・ソフトウェアは、最近はgithubなどを使うことで、ソースコードをすぐに確認し、開発に参加することができます。Windowsの場合、Microsoftの社員にしかアクセスが許されていない情報にも、Linuxならアクセスできます。
このような理由で、UNIXC言語のふるさとである、と言えると思います。

WindowsLinuxどちらのアプリを作るか

Windows環境が必ずしも悪いわけでは全くありません。たとえば、日本やアメリカやほとんどの国において、一般的に使われるOSはWindowsであり、Windows向けのネイティブアプリケーションを開発することは、「多くの人に使ってもらう」上で有利となるでしょう。Linuxでは使われないソフトウェアも、Windowsでは使われる可能性があります。ビジネスチャンスもあります。ですが、Linuxで開発したアプリケーションが、必ずしも誰にも使われないかと言うと、そうでもないのです。それは、デスクトップアプリケーションだけがLinuxではないからです。Linuxにはサーバーアプリケーションもあります。ここで、PHPPythonRubyで作られたWebサービスは、多くの人に使ってもらう可能性を秘めています。ただし、自宅サーバーを立てるのにはコストがかかります。最近はクラウドによるインフラを借りることもできます。最近はネットワークサービス全盛期です。時代はLinuxに向いていると思います。
また、最近はAndroidのアプリケーションもあります。AndroidJavaLinuxで構成されたGoogleによるオープンソースソフトウェアです。Linuxの知識が活かせる可能性はきっとAndroidにもあるでしょう。
また、さらに言ってしまえば、C/C++でネイティブアプリケーションを作る必要は必ずしもありません。それは、Javaスクリプト言語という選択肢があるからです。特に、JavaでSwingなどで作られたアプリケーションは、WindowsでもLinuxでも動作します。モダンなUNIXプログラミングを行うのであれば、JavaPython/Rubyなど(GTK+/QtアプリケーションはPython/Rubyでも開発できる。GTK+/QTはクロスプラットフォームにも対応している。)を選択することもあり得るでしょう。

BSD

カルフォルニア大学バークレー校によるBSD

BSDはBerkeley Software Distribution の略語で、1977-1995年に、カリフォルニア大学バークレー校のCSRGによって開発・配布されたソフトウェア群およびUNIX OS。
現在は、4.4BSD-Lite Release 2を基にしたFreeBSDNetBSDOpenBSDなどのBSDの子孫が開発・利用されている。
BSDの子孫のことをその名前から*BSDと呼ぶ。
Intel 386で動くBSDが長い間提供されなかったため、BSDIntel+IBM PC/AT互換機で使うことは長らく出来なかった。パソコンとネットワークなどの対応状況も要因の一部ではあるが、GNUというプロジェクトを生み出すきっかけになり、同時にGNU Hurdというマイクロカーネルがなかなか完成しなかったことから、Linuxカーネルの歴史は始まった。

BSDソケット

BSDBSDソケットの実装で知られる。ファイルディスクリプタにソケットを統合したことで、ディスクアクセスのようにネットワーク通信を行うことが可能となった。
WindowsTCP/IPスタックにはBSDソケットをTurbo Pascalで書き直したものが採用され、WinSock2の元になった。

FreeBSD

性能・機能・安定の*BSD

FreeBSDは、*BSDの中では正統派で、性能や機能や安定性を重視した*BSDとして知られる。

大学やサーバの標準

特に、昔の工業大学などでは、大学の研究室などのOSはFreeBSDが使われていることが多かった。Linuxなどと機能的に遜色が無く、フリーなライセンスである、そして伝統的に良く使われてきたBSDの子孫であるというFreeBSDの特徴は、大学でUNIXを教えたり計算業務を行ったりするなどの用途にうってつけである。
また、BSDの「ネットワークに強いOS」という特徴は、Linuxなどが普及した今でも衰えていない。本当にハイエンドでたくさんの処理が必要なサーバーでは、LinuxよりもFreeBSDを使うこともある。たとえば、巨大掲示板2ちゃんねるのサーバーはFreeBSDで動いている。他にも、商用の組み込みシステムなどでは、BSDライセンスというソースコード公開の義務のないFreeBSDは良く用いられており、プレイステーションのOSにもFreeBSDが使われている。
BSDは「世界と関係のない」日本のシステム管理者にも人気で、「Linuxと機能的に遜色がないのに、なぜ*BSDは普及しないのか」と良く論議に挙がる。その理由は多くの場合、Red Hatのような強力な企業のスポンサーが居ないからであるとされる。また、GNUのような声高にフリーを宣言する活動家の集団も居ない。だが本当に、FreeBSDのネットワークや低レベル機能(ストレージなど)は、今でもLinuxより品質が高いことがある。だがLinuxと敵対関係にあるわけではなく、最近Linux開発者にOpenBSDが好きな人間が多い(特にsystemdが嫌いなど)ように、両者は協力し、高品質でフリーなOSのさらなる品質改善に努めている。
後日注記:特に、FreeBSDUNIXシステムとしてとても完成されている。コマンドラインシェルもきちんとtcshが動き、コマンドプログラムやデーモンも一通りそろっていて、大学でTeXgnuplotを教えるのにうってつけである。ネットワークシステムも構築しやすく、DuckDuckGoのようにIT企業のインフラにも多く導入されている。

Linuxと比べると、効率よりも安定している

LinuxFreeBSDを比べると、まず挙がるのは、「安定性」です。
FreeBSDは、Linuxのようにたくさんの機能をつめこみ、効率やスループレットを上げる、ということよりも、信頼性や安定性が高く、「本当に安定した正しい製品が必要な場合」に最適です。
Linuxには、なんでもかんでも機能がある代わり、システム全体のサイズが巨大になり、安定性や信頼性が欠けています。こうした場合に、FreeBSDは良い選択肢となります。
FreeBSDには、他のOSに未だ欠けている、先進的なネットワークやストレージの機能があります。ZFSも使えますし、WindowsTCP/IPの通信機能のコードはFreeBSDを基にしています。よって、ネットワークやストレージで、商用製品並みの「正しい基盤ソフトウェア」が必要であれば、FreeBSDを採用すると良いでしょう。BSDライセンスを採用しているほか、最近はGCCからClang/LLVMに移行したため、商用製品としてコードを使いたい場合に、派生ソフトウェアにGPLを継承しなくても良い、というライセンスは、商用製品の一部として組み込む場合に優れています。
その一方で、System V系UNIXではなくBSD系のUNIXでは、BSD系ならではの独自仕様がシステム構築の課題となります。シェルにCシェル系のtcshを使い、Portsやrc.confによるシステム管理をしなければなりません。Dockerはjailにする必要がありますし、デフォルトのviはVimではなくnviです。UNIXコマンドのオプションや機能も違います。こうした場合にどれくらい対応できるUNIXエンジニアが居るかどうか、が課題となるでしょう。
後日注記:FreeBSDの強みとしてよく言われるのが、「たくさんのタスクを同時に効率的に処理できる」ということ。どんなにネットワーク負荷が高くなっても、FreeBSDは壊れない。きちんと安定して、多数のタスクをさばくことができる。

csh/tcsh

標準のシェルはBシェル系のBashではなく、Cシェル系のTcsh(あるいはcsh)である。これは、cshの作者であるビル・ジョイBSDの設立と深く関わっているためである。
LinuxmacOSで標準的なbashではないため、シェルスクリプトの記法などに相違点がある。csh由来の「使ってはならない記法」なども存在する。だが、BSDは長らくcshを標準にしてきたため、大学やUNIXエンジニアには「え、Cシェル使ってないの?」と言ってLinuxを嫌う方も居る。

独自の起動・終了の設計

SysV initを採用せず、独自の起動の仕組みを採用している。
rc.confを設定するBSDの起動処理の手法は、簡素で扱いやすい代わり、設定ファイルを書き間違えたり誤って消したりするとシステムが起動しなくなるという欠点を持っている。

portsとmake world

portsというパッケージ管理システムを使って、簡単にアプリケーションをビルド・インストール出来る。また、設定に基づいて全システムをmake worldでコンパイル出来る。
この仕組みは、LinuxではGentoo Linuxが良く似ている。
FreeBSDでは、ソースベースのパッケージ管理システムであるportsを使う。これは、makeを上手く活用したパッケージ管理システムで、ユーザーはmakeコマンドを使って簡単にパッケージをその場でビルドし、インストールできる。また、パッケージは常に最新に同期される。Gentoo Linux創始者のダニエル・ロビンズは、Gentoo Linuxを作る際にこの仕組みをLinuxに持ち帰ってPortageというソースベースのパッケージ管理システムを作った。
portsの設定は、Gentooと同様make.confに記載する。

jail

jailはOSレベルでの仮想化機構。Dockerのようなコンテナ型仮想化の始祖のようなもので、FreeBSDシステムを小さなサブのFreeBSDシステムにできる。

ZFS

Linuxではライセンス問題のおかげで使うことの出来ない、次世代のファイルシステムZFSを使うことが出来る。

NetBSD

移植性の*BSD

NetBSDは、*BSDの中ではアカデミックな雰囲気を持っていて、移植性の高い*BSDとして知られる。
特に、ハイエンドのサーバーからモバイルコンピュータまで、多くのCPUで動作するUNIX的なBSDである。お遊びで、トースターでNetBSDを走らせたりする人も居る。

移植性の高いコードを書くことは、OSの設計を綺麗にする

NetBSDでは、とにかくたくさんのPortに対応している(NetBSDの場合のPortsはCPUの対応アーキテクチャのことで、FreeBSDとは意味が異なる。"port"という言葉はUNIX界で乱用されまくっているので注意すること)。特定のマシンや環境に依存しない移植性の高いコードを書くことは、コードやOSの設計を綺麗にする。NetBSDのコードは美しい。

Of course it runs NetBSD.

NetBSDの開発者は、NetBSDが動きそうなコンピュータ・ハードウェアがあれば、すぐに移植する。これは、「NetBSDが動かないコンピュータなど存在しない」ということを表している。もっと言えば、「NetBSDが動かないコンピュータなど、コンピュータにあらず」といった感じである。
ホームページでも、"PowerPC, Alpha, SPARC, MIPS, SH3, ARM, amd64, i386, m68k, VAX: Of course it runs NetBSD."などと言われている。
後日注記:実際のところ、ここに羅列したよりも多く、NetBSDは58以上のアーキテクチャに対応している。これはOSとしてはありえない数である。また、同じプログラムをこれだけのアーキテクチャで基本的に編集なしで動かすことができる。同時にオープンソースであるため、組み込み開発者にはとても魅力的である。カーネルだけではなくlibcやユーザーランドも開発している。

OpenBSD

セキュリティの*BSD

OpenBSDは、*BSDの中ではテオ・デ・ラート氏(Theo de Raadt)が率いる*BSDとして有名で、セキュリティに力を入れていることで知られる。
OpenBSDは、「正しい思想」と「先制的なセキュリティ」で知られる。BSDライセンスを「正しいOSのフリーなライセンス」とし、ライセンスに妥協しない。また、セキュリティホールが絶対に生まれないように、徹底的にコードを検査して、書き直している。そのため、デフォルトの状態でのリモートセキュリティホールは、現在まで2件しか発生していない。

LibreSSL(OpenSSL), OpenSSHなど

LibreSSL(昔はOpenSSLだった)やOpenSSHなど、さまざまなセキュリティ関係のプロジェクトを主導している。
また、OpenBSDの本拠地は暗号の輸出制限のないカナダに置かれている。

バグが無い

OpenBSDには、とにかくバグがない。バグはセキュリティホールの一番の近道であるため、バグができるだけないように、何度も何度も入念にコードを書き直している。バグのないコードを書く、ということは、正しいコードを書く、ということである。よって、OpenBSDは「最も正しいコード」である。
ただし、これはカーネルや標準のコマンドや初期状態で設定されているプログラムに限る。ApacheX11のようなものは初期状態では入っておらず、自分でインストールして設定しなければならない。だが、これは逆に、「ユーザーが自分のシステムをきちんと把握する」という意味で優れている。標準で動くサービスも最低限しかなく、Portも空いていない。Red Hatのような、何でも初心者向けに自動で設定してくれるGUIインストーラすら動かない。だが、このことは、「ユーザーが自分でした設定のことをきちんと把握して管理する」という意味では優れていると言える。
また、もともとNetBSDから派生したため移植性が優れているOpenBSDは、「新しいアーキテクチャへの移植によってコードが洗練されセキュリティの向上につながってきた」として、別の観点から移植性を重視している。

きっかけは子供のケンカ

OpenBSDNetBSDから分派したプロジェクトである。これを、「セキュリティの高い別のOSを作るために分岐した」と言われることが多いが、実際は子供のケンカである。NetBSDの開発者であったテオ・デ・ラート氏(Theo de Raadt)が、NetBSDのプロジェクト関係者とケンカし、追い出された結果、OpenBSDが始まった。
FreeBSDNetBSDは、悪魔のデーモン君がマスコットになっているが、これはUNIXシステムのデーモン(daemon)を表している。だが、OpenBSDではハリセンボンあるいはフグのような、面白い劇画調のキャラクターになっている。それだけではない。このフグは歌を歌う。OpenBSDの主要なリリースが行なわれた時は、フグの新曲が発表される。OpenBSDのリリースとともに新しい歌も「OpenBSDの一部として」リリースされるのである。

Sun Microsystems

商用UNIXワークステーション

Sunは、商用UNIXワークステーションの会社だった。
JavaNFSを開発したことで有名。また、OpenOffice.orgの創始のためにStarOfficeを買収してオープンソース化したことでも知られる。
だが、晩年は業績が振るわず、Oracle(データベース会社)に買収されてしまった。
日本との関係では、富士通との提携で知られている。

ネットワークこそがコンピュータ

SunはUNIXワークステーションの考え方で、「ネットワークこそがコンピュータ」(スコット・マクネリ)という考え方を提起したことで有名である。
その通り、SunのUNIXはネットワーク技術が強く、NFSNISなどネットワーク関係の技術を多く開発した。Javaなどもネットワークで使われるブラウザの「アプレット」やリモートコードを安全に実行する「サンドボックス」などの機能を開発し、UNIXとネットワーク技術のまさに先駆者であった。

Sunにはビル・ジョイが居る

vi開発者のスーパープログラマであるビル・ジョイがかつて居たことでも知られる。このことからBSDに強い会社になった。

SunOS/Solaris

SunのSunOSSolarisは、正統な商用UNIX OSとして有名で、viなどUNIXツールのマニュアルなどで基本とされる環境もSunOSSolarisであることが多い。
オープンシステムの旗手としてUNIXワークステーションの分野で、特にBSDに強いということで一人勝ちの状況だった。
ソフトウェア技術をオープンにしたり、ライセンスすることが多かった。
最近はOpenSolarisというオープンソース版のSolarisを公開したりしていた。

SPARC

SunによるRICSベースのCPUプロセッサ。ワークステーションやスーパーコンピュータ向けのプロセッサである。

Java

Sunはプログラミング言語Javaの開発元として良く知られている。
良く勘違いされるが、JavaScriptはSunの技術ではない。JavaScriptはSunと業務提携していたNetscapeの技術であり、Javaアプレットに対するスクリプトのようなものだからJavaScriptという名前が付けられたようなもので、Javaとは全く別の技術であり、言語的にも全く違う言語である。

NFS

Sunによって開発されたネットワークファイルシステム

NIS

Sunによる、ネットワークでOSのアカウント情報を共有するシステム。

OpenOffice.org

現在のLibreOfficeオープンソースなオフィスイートだったが、SunがStarOfficeを買収してオープンソースとして公開したものだった。

Java Desktop System

Javaという名前を冠してはいるものの、実際はGNOMEベースのシステム。Sunは「なんにでもJavaという名前をつける」といったところがあり、全くJavaでないにも関わらずこんな名前がついている。

ZFS

次世代ファイルシステムZFSはSunの技術である。ZFSオープンソースライセンスのCDDLがGPLと矛盾するためにLinuxでは使うことができず、たくさんの特許で守られているため代替技術も作ることができない。FreeBSDなどではZFSを利用できる。LinuxではOracleなどによる新しいファイルシステムBtrFSの開発が行なわれており、これはZFSと機能的に良く似ている。

VirtualBox

OS仮想化ソフトウェアのVirtualBoxもSunの技術。今ではOracleから提供されている。

Plan 9

Plan 9

UNIXを生んだベル研究所AT&Tと、AT&Tからベル研究所を受け継いだルーセント・テクノロジーズ)による、UNIXのファイル指向をさらに進めた研究用の分散OS
9Pという分散ファイルシステムプロトコルの下、全てのリソースをファイルとして扱える。
ネットワークは単一した名前空間であり、階層型のファイルシステムとして扱える。リモートでもローカルでも、どんなリソースも9Pプロトコルと階層型ファイルシステム名前空間からアクセスできる。

Plan 9分散OS

UNIXでは、ひとつのコンピュータに対して複数の端末が備え付けられ、デバイスもそのローカルな環境でのデバイスを主としてシステムが構築されることを前提としていた。
Plan 9では、たくさんのネットワークに繋がった分散システムにおいて、多くのコンピュータを1つのシステムとして扱えるようにした取り組みがなされている。

なぜPlan 9は普及しなかったのか

Plan 9は多くのプログラマに輝かしい光を与えたが、普及しなかった。
その一因として、「UNIXほどの大きな進歩がなかったから」と言われている。「旧来のUNIXを置き換えるほどには先進的ではなかったからだ」とエリック・レイモンドは述べている。
UNIXはさびつきながらもきちんと動いており、役割をこなしていたが、それをリプレースするほどの先進性はPlan 9にはなかった。
ただし、Linuxに勝てなかったPlan 9 - @ITで言われているように、「OSをUNIXからPlan 9に置き換えるほどの大変化をしなくても、もっと上位のレベル層で同じことをやれば良い」ということは言えるかもしれない。低レベルなOS階層で分散システムを構築しなくても、Linuxならもっと上位の層で同じことはできる。
また、/procファイルシステムUnicodeUTF-8)など、いくつかの機能はLinuxや別のOSにも採用されている。

簡単な説明

FreeBSD

スタンダードな*BSDLinuxに比べて安定性が高く、「たくさんのタスクを抱えても、壊れることなく正常に動き続ける」という信頼性を大切にしている。
Linuxと遜色のない機能を持っているにも関わらず、なぜか流行らない。マスコットのデーモン君(悪魔のデーモン)のせいだろうか。

Ports

ソースベースのパッケージ管理システム
システム全体をmake worldできる

rc.conf

シンプルな起動システム
ひとつの設定ファイルでinitを行う

jail

コンテナ型仮想化のDockerのオリジナル的存在
FreeBSDシステムを独立した小さな隔離システムに分割できる

ZFS

Linuxでは一部のディストリビューションでしか使えないZFSをライセンス問題なしで使える

その他

cshビル・ジョイ由来のCライクな文法を持つシェル
viがvimではなくnviであったりなどの違いがあることもある

NetBSD

移植性が高いアカデミックな*BSD。さまざまなCPUアーキテクチャで動く。
「移植性の高いコードを書くことは、ソフトウェアの設計を綺麗にする」

OpenBSD

セキュリティの高い*BSDNetBSDから喧嘩別れした。
移植性も重視する。「新しい移植のたびにコードが洗練され、セキュリティの向上につながってきた」