Concepts
出典: openSUSE
(このページはほとんど翻訳済みですが細かいところが未修正です。どなたでも、自由に編集してください。)
目次 |
openSUSE Linux の基本的な考え方
本記事ではopenSUSEとはどんなものか、どんなアプリケーションが使えるのかといったことを説明します。openSUSEでLinuxを始めようという人は是非呼んでください。もっとも、コンピュータ自体の操作法はある程度知っていることを想定しています。
初めて使うopenSUSEで、まずやるべきこと
はじめて使うopenSUSEで何をしようか?多くの人はインストール後すぐに、いつもの自分の作業を始めようとするでしょう。でも待ってください。まず、Linuxのしくみについて少し学んでおいたほうが、結局は時間の節約になります。これまでのMacOSやMS-Windowsとの違いを押さえておきましょう。
フリーソフトウェアについて
Linux はフリーソフトウェアという考えに基づいて開発されています。「フリー」という用語が用いられるとき、その意味するところは「タダ(無料)」ではありません。以下のようなことを意味しているのです。
- "自由に複製できる",
- 誰もが "ソースコードを入手できる",
- 誰もが "コードを改変できる",
- 誰もが "オリジナルのソフトを再配布できる", し
- "自分で改変したものを配布できる".
フリーソフトウェアというものについてもっと知りたい場合は ココをみてください。
では、初めてLinuxを使おうという人になぜ、フリー(でオープンソースの)ソフトウェアであることを知るのがそれほど重要なのでしょうか。それは、Linux とそのソフトウェアが、その考え方から成り立っていることを知る必要があるからです。
Linux のカーネルとGNUプロジェクト
カーネルとは、システムがハードウェアを動かすのに必要なOSの中心部分です。 フリーのLinuxカーネルは、1991年に Linus Torvalds がゼロから生み出したものです。同じ時期、GNUプロジェクトはフリーソフトウェアである他のOSのために必要なたくさんのプログラムを作成しましたが、こちらのほうはカーネル自体が、不完全で使用できませんでした。そこでGNUプロジェクトとLinuxカーネルでもって、今のopenSUSEのようなLinux OSの基礎が作り上げられたのです。
- Linux_kernel: wikipedia:Linux_kernel
- GNU: wikipedia:GNU_Project
ディストリビューションとは
このように、「Linux」というのは、実はOSのカーネル部分だけを指すのです。「OS全体」については 「GNU/Linux ディストリビューション」と呼びます。「ディストリビューション」はカーネルに加えてたくさんのソフトウェアからなっています。たとえば、グラフィカルなデスクトップ環境「K Desktop Environment(KDE)」を使っているとします。これは、「Linux」そのものではないのです。 こうした、いろいろなソフトウェア部品を加えて構築することにより、いろいろな「Linuxディストリビューション」ができるのです。 他のOSのように、全体をひとくくりに「Windowsだ」「Linuxだ」のように称することはできません。別途作成されたたくさんのアプリケーションから成っていて、それらはあまり、もしくは全く、独立のものだったりします(upstreamアップストリームと呼びます). こうした考えに慣れるのは少し難しいかもしれませんが、トラブル解決のときに、このような考えに基づいてどのアプリケーションに問題があるのかを把握できると大いに役に立つでしょう。
このように、ソフトウェアが自由な考えに守られているからこそ、たとえばNovellのような「ディストリビューター」は、ソフトウェアを修正したり、組み合わせたりして、Linuxディストリビューションを作成し配布することができるのです。
openSUSEでのソフトウェアの扱い (パッケージ管理)
openSUSE,で用いられるソフトウェアパッケージの種類は主に二つです。
これらについて少し説明しておきましょう。
Tarball
tarball とは、多くのファイルやフォルダをひとつのフォルダにまとめ、圧縮して一つのファイルにしたものです。 Tarball にはプログラムのソースコードが入っており、多くの場合、tarballの内容をコンパイルする必要がありますが、簡単にコンパイルできるようにするスクリプトが添付されています。また、使い方を記した文書も添付されており、これらはだいたい"readme.txt" とか "install.txt"というファイル名です。 tarball は "tar.gz", "tgz", "tar.bz2"などの拡張子で見分けることができます。
RPM
RPM によりソフトウェアをインストールしたりアップデートしたりというのが、openSUSEの使い方としてはもっとも普通でしょう。 RPM は RedHat Package Managerの略称で、この方式でパッケージされたソフトウェア全体や個々のファイルについて、インストール・アップデート・削除・検証・調査をするツールでもあります。
RPM はなぜそんなに便利なのか
ソフトウェアの開発では多くの場合tarballが作成されます。これはユーザが自分で内容をコンパイルして、適切な場所に書き込むのですが、なかなか簡単にはいかず、初心者にとっては面倒で時間のかかるものです。 RPMであれば簡単なコマンドひとつでインストールできます。
RPM についてのより詳しい説明
RPMを作ること自体は容易ではありません。ソースコードやそのファイルの扱い方をよく知っている人がその作業を請け負ってコミュニティーに提供します。
RPM はそれを使うOSのバージョンごとに作られます。たとえば SUSE Linux 9.3, 10.0, 10.1, openSUSE 10.2 などで異なります。ではSUSE Linux 9.3用のRPM がopenSUSE 10.2 で全くエラーなしに動くかどうかというと、それは場合によります。ソフトウェアどうしの依存性もまたSUSEのバージョンにより異なるからです。 Linuxのプログラムや、ライブラリと呼ばれる参照ファイルは、既存の他のソフトウェアのプログラムを基に書かれていることが多いのです。何もかもゼロから書き直すのでは時間がかかりすぎるからです。そこで、ソフトAにはソフトBが必要で、それにはまたソフトCが必要...という、広範な相互依存性があります。アプリケーションは最終的に動かなければインストールの意味がありませんから、インストール時からこのような依存プログラムが揃っているかどうかチェックしておく必要があるのです。このチェックに失敗すると、インストールに依存の問題がありとされてしまいます。
ソフトウェアパッケージマネージャ (SPMs)
このように、RPMによるソフトウェアのインストールでは、「相互依存性」のところでひっかかると止まってしまいます。これを解決するために、「SPM」と呼ばれる方式が生まれました。これはインストール時、必要な依存ソフトウェアがなければ自動でインストールしてくれるものです。入手先はCD,DVD,ファイルサーバなど場合によっていろいろです。
SPM を使用の際、インターネット上のファイルサーバと通信するようにするためには、SPMにファイルサーバへのリンクを指定する必要があります。ファイルサーバは「チャンネル」かレポジトリの形で指定します。SPMはGUIでもコマンドでも使用できます。
SPMの例は APT/Synaptic, Smart, YUM, そして YaST (SUSEにより生み出された方法) もまさにソレです。
詳細は以下を見てください:
- Package Management
- openSUSE specific details on setting up Package Sources
- YaST
- Apt
- Smart
- YUM
- Zypper
サードパーティによるソフトウェアのレポジトリ:
openSUSE公式のソフトウェアレポジトリ(ダウンロード用に置かれている場所)の他に、サードパーティー(有志により別途作成された)のレポジトリもあります。ここにはRPMパッケージの改良版や特殊版、最新版といったものもありますが、中には確かでないものもあります。 SUSE Linux\openSUSE 用のサードパーティーレポジトリで有名なのは、 Packman and Guruというサイトです。 自分でもレポジトリを作りたい場合は、 ココ の内容に従って作ってみてください。
openSUSEでのマルチメディア
openSUSEにもとから備わっている以外のマルチメディア機能を他から取り入れることについては、ごく限られた情報しか提供できません。たとえば商用のMP3形式の音楽をRealPlayer以外のソフトウェアで再生する方法などは紹介できません。そのような行動は使用権に抵触する恐れがあるからです。 ですから、openSUSEでMP3やAVI形式のファイルをいろいろな再生方法で再生したいとか、商用のDVDを再生したいとかいう場合は、 自分でSUSE以外のレポジトリへ行ってSUSE以外のアプリケーションを手に入れることになります。そうした中にはいろいろな人がopenSUSE用に作成したRPMパッケージも置かれているでしょう(そうした中にはNovell/SuSE版のパッケージよりすぐれた動作をするものもあります)。
マルチメディアの利用にオープンソースとして取り組むことについては、以下のopensuseコミュニティサイトで説明されています。
openSUSE-10.3を利用する場合、マルチメディアのインストールが簡単にできるように、「ワンクリック」でのアップグレード法を取り入れました。初めてのユーザでも半自動的にマルチメディア機能のアップグレードができます。
この方法については http://opensuse-community.org/Multimedia をご覧ください。
サウンド
openSUSE のサウンドドライバーは通常「ALSA」系のRPMパッケージで提供しています。その概要は Sound-conceptsで説明してあります。
Linuxのシェル、すなわちコマンドラインインターフェイス
シェルとはコマンドラインによる入出力方法(インターフェイス)のことです。MS-DOSでやっていたことや、今ならWinXPの「コマンドプロンプト」でやるようなこととほぼ同じです。ただ、それをLinuxのマルチタスク全開でやれるのです。 シェルの開始方法により、フルスクリーンのシェル画面になったり、ウィンドウマネージャ(デスクトップ環境)上にシェルのウィンドウが起動したりします。シェルでは「bash shell」という、Unix用のシェルをGNUプロジェクトのために作成したものがもっともよく使われます。bash は多くのLinuxのデフォルトのシェルであり、Mac OS Xや他のUnix系OSでも使われます。 openSUSEの場合、bash シェルは「konsole」あるいは「xterm」上で使います。konsoleを起動するには <ALT><F2> キーか、"konsole"と打ちます。 Linux のシェルは、デスクトップなど複雑なアプリケーションを起動しない状態での起動レベル (ランレベル 1 から 3)において用います。アプリケーションはシェルから起動することができます。これはデバッグなどいろいろな場合にタイヘン便利です。
下図にユーザがLinuxコンピュータとやりとりする際の情報やコマンドの流れを簡単に示します(図はあとからまとめて調整します)
- Linux Command Line Interface: wikipedia:Linux#Command_line_interface
- Unix shell: wikipedia:Unix_shell
- Bash shell: wikipedia:Bash
- Run Levels: wikipedia:Runlevel
X window – 基本的な考え方
画像:250px-Gnome-2.20.png 画像:250pix-Kde35-full.png Linuxの勉強をしていくと、X window についての記述を目にすることがあると思います。 X window は、よくX11とかXなどとも呼ばれます。これはLinuxのグラフィック環境です。X window 上では種々のグラフィカルデスクトップ(MacやMS-Windowsのような最近のパソコンで見られるような視覚的操作ができるもの)が動きます。X window がなければ、絵のない、ASCII文字のプロンプトやシェルしか使えません。 Linux の X window では、ユーザに使いやすいグラフィカルなユーザ環境(GUI)を得るために、X window 上にウィンドウマネージャもしくはデスクトップ環境と呼ばれるものが動作します。これに対してMacやMS-Windowsでは、ASCII文字のシェルだけが動く環境と、その上でグラフィックが動く環境という使い分けはないのが普通です。これらではGUIが必須の環境ですが、Linux ではいろいろなGUIが使えますし使わなくてもコンピュータを動かせます。これについての詳細は Window Manager と Desktop Environment に関する wiki を参照してください。 http://learn.clemsonlinux.org/wiki/Window_managers_and_desktop_environments. openSUSE では、以下の3通りのデスクトップがよく用いられます。
- Gnome (特に北米で人気): wikipedia:GNOME,
- KDE (特に欧州で人気): wikipedia:KDE, and
- xfce: wikipedia:Xfce.
他にもたくさんのデスクトップが利用できます。openSUSE で利用できるグラフィカルユーザーインターフェイスについては「GUI」を見てください。
X window については以下にも詳細な説明があります。
- X windows wiki: wikipedia:X_Window_System
X window の考え方
X window は、クライアント的な役割とサーバ的な役割をキッチリを分けるように意図して構成されているので、タイヘン高機能です。通常の PC での使い方では、同じ PC にサーバとクライアントの機能が同時に動作しているため、そうとは気づかないでしょう。しかし、異なる PC のクライアントからサーバに接続することもできるのです。たとえば、リモートの PC に X11 サーバと Secure Shell (ssh) プログラム(下記を参照)、及び X window のアプリケーションを走らせておいて、そのグラフィック表示自体は手元の Linux PC に表示させるということが可能です。
Linux でのネットワーク
Linux PC でMS-Windows PCとネットワーク接続する
MS-Windows/Linux のファイルとプリンタ共有
MS-WindowsとLinuxでのファイルとプリンタ共有で最もよく使われるのは「samba」の名前で知られているアプリケーションです。これはLinux側に入れて使用します。
- Samba のwikiは 「Samba」を参照してください。
Sambaの稼働下では、WindowsがLinuxネットワーク(ただしLAN)に参加する場合、原則的にWindowsからLinuxのPCは全部見えます。ですから、Windowsで通常用いるファイルやプリントの操作ツールでファイルやプリンタを共有することができます。
LinuxからMS-Windowsにファイルを送信するには、KDEのアプリケーションであるKonquerorを使えば、これはKDE & smb (Server Message Block)という機能をサポートしているので可能です。 逆にMS-WindowsからLinuxにファイルを送るには、無償のSecure Copy (scp) or Secure FTP (sftp) を用いることができます。これについては WINscp を見てください。openSUSEでは, scp はnfsやsambaのように、環境にしっくり統合された形で用意はされていません。
- SCP: wikipedia:Secure_copy
- SFTP: wikipedia:SSH_file_transfer_protocol
- SMB: wikipedia:Server_Message_Block
プリンタの共有はCUPS 及びIPPを用いて行います。詳しくは以下を参照してください。
- IPP wikipedia:Internet_Printing_Protocol
- CUPS: wikipedia:Common_Unix_Printing_System or http://www.cups.org/ or http://www.answers.com/topic/common-unix-printing-system
Linux-PC どうしでの共有
Linuxどうしでのファイル共有
Linux PCどうしでファイルを共有するには、「NFS(Network File System)」という方法(アプリケーション)を用いるのが普通です。これはリモートのディレクトリやドライブを、自分の手元のコンピュータに「マウント」して、自分のコンピュータのディレクトリのように扱うことができます
NFSの他にはSSHという方法にSSHというファイル転送も可能です。これには上記の「SCP」を使います。SSHによるファイル転送を実際に行うアプリケーションには、たとえば「fish」があります。これは “FIles transferred over SHell” の略名です。 KDEのファイルマネージャKonqueror や Gnomeのファイルマネージャ Nautilus 及びMidnight Commander でも, “fish” によるネットワーク越のファイル転送を、わかりやすいGUIで行うことができます。
Linux のリモートコマンドシェル
Linuxでは、リモートのPCのコンソールやシェルを手元のウィンドウで開いて、リモートのPCにコマンドラインを送りアプリケーションを操作することができます。 これにはtelnetやsshのような操作ツールを使います。 telnetよりsshのほうがデータ転送法としては安全なので、普通はsshが推奨されます。
Linux のリモートデスクトップ
LinuxでリモートPCのデスクトップを開いてみるにはいくつか方法があります。まずは Virtual Network Computing (vnc) です。これはリモートのLinux PCに、他のLinux PCや、MS-Windoes PCからも、アクセスすることができます。vncでは手元のコンピュータによるキーボードやマウスの操作をリモートのコンピュータに伝え、それによるリモートのデスクトップ表示の変化を手元のディスプレイに戻します。実際にこれを実現するLinux のアプリケーションには"x11vnc"があります。 リモートデスクトップの通信はLANでもインターネット越しでも可能です。手元のWindowsPCからリモートのLinux PCのデスクトップにアクセスためのアプリケーション(クライアントアプリケーション)はたくさんあり、中には無償のものもあります。「Wikipedia」の「vnc」のページにはたとえば以下のようなMS-Windows用クライアントがリンクとして紹介されています。 I
- vnc: wikipedia:Virtual_Network_Computing
- x11vnc: wikipedia:X11vnc
Linux のディレクトリ構造
Linux のディレクトリ構造( Filesystem Hierarchy Standard ファイルシステム階層標準 と呼ばれています): Linuxのファイルを格納するディレクトリの構造は、MS-Windowsのそれとはずいぶん違うものです。Linuxのすべてのデータはひとつの「ルートディレクトリ」から始まります。これを「/」であらわします。そこからサブディレクトリに分かれていきます。MS-Windowsのように、「ドライブ」という分類はありません。Linux では、ディレクトリをルートディレクトリから、起動プロセスで重要なものの順に下に並べていきます。起動においてはシステムは他のパーティションやデバイスの存在をそのように認識しないのが普通です。そのかわり、それらはLinuxというディレクトリ構造全体の中に切れ目なく読み込まれ(マウントされ)ます。ですからユーザはそれらが別の場所にあるということを全く考えなくてよいのです。これを Unified Filesystemといいます。以下により詳細な説明があります。
- File System Hierarchy: wikipedia:Filesystem_Hierarchy_Standard
Linuxでのハードウェア
openSUSE でサポートするハードウェアはいろいろです。製造元自身でドライバを提供しているものもあればそうでないものもあります。Linuxでは多くの場合そのハードウェアドライバを作っているのはフリーソフトウェアを愛してやまぬユーザたちです。ハードウェアドライバにはその製造元による商用(つまりフリーではない)のものもあるので、openSUSEではそうしたドライバを最初から含んでいることもそうでないこともあります。 ですからインストールの初期にはすべてのハードウェアがまともに動くとは限りません。そのようなハードウェアにあとから対応されるのに苦労することもあれば案外簡単にいくこともあります。 このように、状況は全くいろいろです。ある環境ではグラフィック、オーディオ、無線LANなどが全てサックリ揃う場合もそうでない場合もあります。おそらく、これらはまずLinuxを動かしてみたい、という人にとっては、もっとも重要な関心事ではありましょうが...
そこで、Linux用に別途ハードウェアを購入しよう、という場合には、事前にLinuxへの対応(ハードウェア互換性、 HCL)を調べるとよいでしょう。
ハードドライブ: 用語解説とパーティションテーブル
Linuxでのハードドライブの呼び方はMS-Windowsの場合と異なります。openSUSE の10.3より古いバージョンでは、EIDE/IDE ハードドライブは “hd” という接頭辞と、“a” から始まるアルファベットからなる名前を持っていました(hda, hdb, hdc ... など ). scsi/sata ドライブは“sd” 接頭辞とアルファベットでした (sda, sdb, sdc ... など). その中のパーティションは番号で区別されました (hda1, hdb1, hdb2, hdb3, hdc1, sda1, sda2 など). フロッピーディスクは fdという名前でした.
openSUSE-10.3 からは、libataアプリケーションにより EIDE/IDE ハードドライブも同じ sda, sdb ... という名前を与えられるようになりました。
Linuxでのパーティションの切り方はPCの標準に従うものであり、Linuxに固有のものではありません(すなわちWindowsと同じです)。各ハードドライブにはひとつのパーティションテーブルがあります。テーブルには4個までのエントリを作成できます。4個のエントリのうち、4つを全てプライマリパーティションにすることも、どれかひとつを拡張パーティションにすることもできます。拡張パーティションには複数の論理パーティションを作成できます。拡張パーティションには1から4までのどれかの番号が与えられるので、論理パーティションは5から始まります。 以下に、WindowsでもLinuxでも同様の、ひとつのハードドライブのパーティションの切り方の例を示します。
| 名前 | ファイルシステムの種類 | 容量 | 割り当て | マウントポイント | 備考 |
| hda1 | NTFS | 32 GB | Windows OS | /win | 削除済 |
| hda2 | NTFS | 8 GB | Windows リストア用 | マウントしない | 移動済 |
| hda3 | - | 80 GB | Linuxの全ファイルを格納 | - | 拡張パーティション |
| hda5 | ext3 | 12 GB | Linux OS | / | 論理パーティション |
| hda6 | swap | 1 GB | 拡張RAM | - | 論理パーティション |
| hda7 | ext3 or reiserfs | 67 GB | ユーザファイル | /home | 拡張パーティション |
以下はより詳細なパーティション作成の一例です:
| 名前 | ファイルシステムの種類 | 容量 | 割り当て | マウントポイント | 備考 |
| hda1 | NTFS | 32 GB | Windows OS | /win | 削除済 |
| hda2 | NTFS | 8 GB | Windowsのリストア | マウントしない | 移動済 |
| hda3 | - | 80 GB | Linuxの全ファイルを格納 | - | 拡張パーティション |
| hda5 | reiserfs | 14 GB | Linux OS | / | 論理パーティション |
| hda6 | reiserfs | 5 GB | ユーザがインストールしたプログラム | /usr/local | 拡張パーティション |
| hda7 | swap | 2 GB | スワップ用 | - | 論理パーティション |
| hda8 | ext3 or reiserfs | 20 GB | ユーザファイル | /home | 論理パーティション |
| hda9 | ext3 or reiserfs | 35 GB | ユーザのデータ | /data | 論理パーティション |
| hda10 | reiserfs | 4 GB | 暗号化データ | /enc (自動マウントはされない) | 論理パーティション |
繰り返しますが, openSUSE-10.3では, EIDE/IDE ハードドライブは「sdx」で表されます。上の例は「hdx」と古い呼び方で書いてあるので注意してください。
Linux のセキュリティ
Linuxにおけるルートユーザと一般のユーザ
Linuxには管理者であるルートユーザと一般のユーザがいます。普通「ユーザ」と言えば一般ユーザを指します。Linuxでは常に一般ユーザとしてログインし、必要な時だけ「su」や「sudo」というコマンドを用いてルートユーザとして作業します。ルートユーザとしてあれもこれも作業したり、ログインからルートユーザで行ったりすると、インターネットに接続している場合には外部の誰かに侵入されて被害を受ける恐れがあります。 また、自分で重大な操作ミスを犯してシステムを損傷してしまう場合があります。たとえば、ルートディレクトリ「/」でルートユーザになり、そのまま自分がルートユーザであることもルートディレクトリにいることも忘れていたとします。その状態でこんなコマンドでファイルの所有者を変更してしまったらタイヘンなことになりますね:
chown -R sammy:users *
以下に、管理者(スーパーユーザ)になるためのコマンドをあげておきます。:
- su: (substitute user、ユーザ変更の意): wikipedia:Su_(Unix)
- sudo: wikipedia:Sudo
- superuser: wikipedia:Superuser
Linuxでの印刷
共通印刷方式の考え方
Linux では、印刷のサポートを簡単にするため、共通の印刷方式を用いています。これは、Linuxアプリケーションの開発にあたっては必ず共通の印刷様式としてPostscript方式に対応したプログラムを組むという決まりです。また、Linuxで動くプリンタドライバもPostscript方式には必ず対応し、その上で各プリンタが独自に用いるプリンタ記述言語にも対応するように修正することになっています。これはアプリケーションの開発においては印刷方式はそれだけサポートすればよいということですからタイヘン効率的です。また、プリンタの製造元にとっても、Linux対応の機械語ドライバを提供する際にこの方式だけをサポートしておけばよいことになります。
ゆえに、Linuxでは全てのプリンタはポストスクリプトプリンタとして扱われ、アプリケーションからの印刷もポストスクリプトで出力されます。ところが市販のプリンタのほとんどは、それ自体はポストスクリプトに対応していません。そこでLinuxではポストスクリプトをPCL, ESC/P 2などといった市販のプリンタ言語に翻訳するためにGhostScriptやfoomaticが用いられます。
LinuxのようなOSでポストスクリプトを用いた印刷をすることの理論的背景は以下に示されています: http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/III.PostScript-and-PPDs/III.PostScript-and-PPDs.html
- Linux での印刷の詳細: http://www.linux-foundation.org/en/OpenPrinting
- PostScript: wikipedia:PostScript
- GhostScript: wikipedia:Ghostscript
PPD ファイルとPostScriptプリンタ
多くのLinux用アプリケーションでは、プリンタの情報を取得するのに、ポストスクリプトプリンタ記述ファイルThere are many Linux applications which use (PostScript Printer Definition (PPD)) を利用します。これで、そのアプリケーションで、プリンタやプリンタドライバに応じて印刷に関する設定オプション を提供したり、プリンタに関する追加の情報を取得できます。このPPDファイルとは、単純なテキストファイルですが、書式はきちんと決まっていて、プリンタの特性や、生コードなどが書かれています。このコードをプリントジョブに送信して必要なプリント動作や機能を実現するわけです。印刷ソフトウェアのプログラムは、PPDを読んで、 プリンタドライバのユーザインターフェイスとして提供されている機能を実際にディスプレイに表示させます。 ユーザが任意の選択をすると(両面印刷や閉じ方など)印刷プログラムがそのためにプリントジョブにどのようなコードを送るかなど、どのようにプリンタを操作するかを、PPDによって知るのです。また、クライアント側のWindows, Mac,及びプリンタデーモンである 「Line Printer Remote / Line Printer Daemon (LPR/LPD)」クライアントがプリンタにアクセスしてその動作や設定を利用するのにも、PPDは利用されます。
各ポストスクリプトプリンタにはその製造元がPPDファイルによりそのプリンタモデルに固有の情報を全て提供しているはずです。またLinux側ではCUPS(Common Unix Printing System) 及び LPR/LPD で対応していない部分はFoomaticという設定変更可能なフィルタで補助することができます。 Foomatic は一種のソフトウェアで、ポストスクリプトデータを最終的にプリンタの固有の形式に変換するものです。ここでプリンタに固有のローレベル(よりハードウェアに直接関わる)ドライバの情報が必要になり、そのプリンタのPPDが利用されるわけです。 Foomaticは基本的にGhostscriptを利用し、プリンタ固有の部分はPPDを利用します。 CUPSはまたインターネットの印刷プロトコルIPP(Internet Printing Protocol or IPP)をサポートしています。これは印刷,印刷ジョブ、用紙サイズ、印刷解像度などの管理をする標準のプロトコルです。
- PPD: wikipedia:PostScript_Printer_Description and http://www.linux-foundation.org/en/OpenPrinting/Database/PPDDocumentation
- Foomatic: wikipedia:Foomatic
- CUPS: wikipedia:Common_Unix_Printing_System or http://www.cups.org/ or http://www.answers.com/topic/common-unix-printing-system
- LPD/LPR: wikipedia:Line_Printer_Daemon_protocol
- IPP: wikipedia:Internet_Printing_Protocol
- Samba how-to-page on cups-printing: http://samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html
openSUSE における印刷の実際:
openSUSEに固有のプリント実装(上記のような印刷の原理に基づいて、実際にプリントできるソフトウェアにしたもの)の詳細については、以下をご覧ください。
LSB (Linux Standard Base リナックススタンダードベース) DDK (Driver Development Kit ドライバ開発キット):
最近、ディストリビューションの種類に依存しないLinux共通のドライバパッケージを提供する手段の開発が進んでいます。これを LSB (Linux Standard Baseリナックススタンダードベース、リナックス標準化) DDK (ドライバ開発キット)と呼びます。この目的はプリンタ製造者(もちろん印刷に関心のある人なら誰でも)が、自分の(あるいは他のドコのでも)プリンタドライバを、ディストリビューションに依存しないバイナリパッケージにして供給するのを、簡単にしようというものです。
この方法で、ユーザは自分のディストリビューションに備わっていないプリンタドライバや、それが古すぎる場合に新しいドライバを、インストールすることが簡単になります。プリンタドライバをソースからコンパイルするための準備も知識も必要ありません。また、後日簡単にアンインストールできることも考慮しています。
さらに、プリンタのセットアップツールがこれらのドライバを自動でインストールできるような措置をとることも計画しています。そうすれば、もともとサポートされていないプリンタであっても、セットアップツールをいきなり立ち上げてすぐに印刷できるようにすることができるでしょう。

