(Translated by https://www.hiragana.jp/)
CUPS - Wikipedia コンテンツにスキップ

CUPS

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
CUPS
作者さくしゃ マイケル・スイート英語えいごばん (Easy Software Products)
開発元かいはつもと Apple
初版しょはん 1999ねん6がつ9にち (25ねんまえ) (1999-06-09)
最新さいしんばん
2.3.6 / 2022ねん5がつ25にち (2ねんまえ) (2022-05-25)[1]
リポジトリ ウィキデータを編集
プログラミング
言語げんご
C言語げんご
対応たいおうOS
後継こうけい OpenPrinting CUPS
種別しゅべつ プリントサーバ
ライセンス
公式こうしきサイト www.cups.org
テンプレートを表示ひょうじ
OpenPrinting CUPS
作者さくしゃ OpenPrintingとコミュニティ
最新さいしんばん
2.3.3op2 / 2021ねん2がつ1にち (3ねんまえ) (2021-02-01)
リポジトリ github.com/openprinting/cups
前身ぜんしん Apple CUPS
ライセンス Apache-2.0
公式こうしきサイト openprinting.github.io/cups/
テンプレートを表示ひょうじ
CUPSブラウザ設定せっていツール

CUPSカップス以前いぜん名称めいしょうCommon UNIX Printing System)とはUnixけいオペレーティングシステム (OS) ようのモジュールされた印刷いんさつシステムである。CUPSは、Mac OSWindows印刷いんさつ機構きこうおくれをとっていたUnixけいOSに強力きょうりょく印刷いんさつ機能きのうをもたらすことになった。CUPSではUnixけいOSでプリンター形式けいしきがたごとに独自どくじげねばならなかったデバイスドライバ作成さくせいきわめて容易よういになり、過去かこにUnixけいOSが対応たいおうしていた特殊とくしゅラインプリンターPostScriptプリンターのみならず、Macintosh/Windowsけに市販しはんされているプリンターのほぼすべてがUnixけいOSじょうから利用りようできるようになるとされている。

CUPSを運用うんようしているコンピュータは、クライアントのコンピュータから印刷いんさつジョブをサーバとなり、それらのジョブを処理しょりして適切てきせつなプリンターへとおくる。また、そのさいにはHTTPBasic認証にんしょうおよびDigest認証にんしょうローカル認証にんしょう、128ビットTLS/SSL暗号あんごうなどをもちいることもできる。

CUPSはUnixの印刷いんさつスプーラとスケジューラ、フィルタシステム、およびバックエンド・システムからなる。このうち、フィルタシステムは印刷いんさつデータをプリンターが理解りかい可能かのう形式けいしき変換へんかんすることをち、バックエンドシステムはそのデータをプリンターへとおくることをつ。CUPSは印刷いんさつジョブとキューあつか基盤きばんとしてIPP (Internet Printing Protocol) をもちいている。またCUPSはUnixで伝統でんとうてきSystem V形式けいしきBSD(バークレー)形式けいしきコマンドラインインタフェースもサポートしており、さらにSMBプロトコル部分ぶぶんてきにサポートしている。CUPSが提供ていきょうするデバイスドライバは、アドビPPD (PostScript Printer Description) 形式けいしきテキストファイルもちいて設定せってい可能かのうである。CUPSを設定せっていするためCUPS自身じしんはウェブ (HTTP) をもちいた組込くみこみのインタフェースゆうしている。またおおくのユーザインタフェースがさまざまなプラットフォームにたいして用意よういされており、ESP Print Proといった商用しょうようパッケージだけでなく、KUPS、GtkLP、QtKUPS、XPPなどのオープンソースライセンスで開発かいはつされているGUIがいくつも存在そんざいする。CUPSはmacOSばんのみプロプライエタリライセンス、そののOSけにはApache License[2]もと配布はいふされている。以前いぜんGNU General Public LicenseGNU Lesser General Public License, Version 2で配布はいふされていた。

歴史れきし

[編集へんしゅう]

CUPSはまず、Easy Software Productsのマイケル・スイートとアンドルー・ゼンフトによって1999ねんあき作成さくせいされた[3]最初さいしょのリリースばん公開こうかいされるまでのアルファばんベータばんに2年間ねんかんようしている。初期しょきにはlpd (line printer daemon) をもちいるよう開発かいはつ努力どりょくかたむけられたが、ときとしてプリンターとの相性あいしょうわるいためにIPP代替だいたいとしてサポートされた。CUPSはすぐさま、Red Hat LinuxなどいくつかのLinuxディストリビューション標準ひょうじゅん印刷いんさつシステムとして採用さいようされた。Apple ComputerMac OS X v10.2のデフォルトの印刷いんさつシステムとして2002ねん3がつにCUPSを採用さいようしている[4]。2007ねん2がつにアップルはしゅたる開発かいはつしゃであるマイケル・スイートを雇用こようし、CUPSのソースコード取得しゅとくしている[5]。2019ねん12がつ20日はつか、マイケル・スイートは自身じしんのブログでアップルを退職たいしょくしたことを発表はっぴょうした[6]。 2020ねんにはOpenPrinting organizationによりプロジェクトがフォークされ、マイケル・スイートはそこでCUPSの開発かいはつ継続けいぞくしている[7]

CUPSは当初とうしょ、"Common UNIX Printing System" とばれていたが、UNIX商標しょうひょう法的ほうてき懸念けねんからCUPS 1.4より "CUPS" と短縮たんしゅくされるようになった[8]

概要がいよう

[編集へんしゅう]

CUPSは、標準ひょうじゅんてき方法ほうほう印刷いんさつジョブをプリンターにおくることを可能かのうとする機構きこうあたえるものである。印刷いんさつデータはまずスケジューラへとおくられ、スケジューラはジョブをプリンターが理解りかいできる形式けいしきへと変換へんかんするためフィルタシステムおくる。さらにフィルタシステムはデータを、デバイスやネットワークへとおくるための特殊とくしゅなフィルタであるバックエンドへとわたしす。CUPSのシステムはデータをプリンターが理解りかいできる言葉ことばへと変換へんかんするのにPostScriptラスタ・グラフィックスをフルに活用かつようしている。

CUPSの最大さいだい利点りてんは、それが、印刷いんさつサーバじょう様々さまざまなデータ様式ようしき処理しょりできる標準ひょうじゅんてきでモジュールされた印刷いんさつシステムであることである。CUPS以前いぜんには、それぞれ独自どくじ言語げんご形式けいしきもちいていた様々さまざま市場いちばのプリンターに対応たいおうしている標準ひょうじゅんてきなプリンターの処理しょりシステムは見当みあたらなかった。たとえば、System Vとバークレイの印刷いんさつシステムはたがいの互換ごかんせいがほとんどなく、しかもプログラムのデータ形式けいしきからプリンターが理解りかいできる形式けいしきへと変換へんかんするための複雑ふくざつなスクリプトと急場きゅうばしのぎの手段しゅだんとを用意よういする必要ひつようがあった。さらにこれらはしばしばプリンターへとおくられているファイル形式けいしき検出けんしゅつする手段しゅだんたないために、データれつまさしく自動的じどうてき変換へんかんすることができなかった。また中心ちゅうしんとなるサーバじょうではなくかくワークステーションじょうでデータの変換へんかんおこなっていた。

CUPSでは、プリンターのメーカーやドライバの開発かいはつしゃ印刷いんさつようサーバで専用せんよううごくドライバを製作せいさくすることが以前いぜんよりもはるかに容易よういなものとなっている。また、サーバじょう処理しょりされることによって、のUnixの印刷いんさつシステムでおこなわれていたこととくらべネットワークをかいする印刷いんさつ非常ひじょう容易よういなものとなる。ひとつの利点りてんSambaもちいるときで、プリンターはリモートのWindowsコンピュータでもちいられ、しかも一般いっぱんてきなPostScriptドライバをネットワークをかいする印刷いんさつもちいることができる。

スケジューラ

[編集へんしゅう]

CUPSスケジューラIPP (Internet Printing Protocol) もしくはlpd (line printer daemon) プロトコルのどちらかをもちいることができる。スケジューラはHTTP/1.1のリクエストを解釈かいしゃく印刷いんさつジョブの管理かんり、サーバの設定せってい、およびCUPS自体じたい説明せつめい資料しりょうのためにウェブをもちいたインタフェースを提供ていきょうしている。

スケジューラは、IPPとHTTPのどのメッセージがシステムにわたせるかを制御せいぎょするための承認しょうにんモジュールゆうしている。IPP/HTTPパケットは一旦いったん承認しょうにんされると、やって接続せつぞく監視かんししそれを処理しょりしているクライアント・モジュールおくられる。クライアントモジュールはまた、必要ひつようおうじてウェブ基盤きばんのプリンター、「クラス」、ジョブの実行じっこうじょうきょうのモニタと管理かんりをサポートするための外部がいぶCGIプログラムの実行じっこうっている。クライアントモジュールがリクエストを処理しょりすると、つぎにデータはさらなる処理しょりのためにIPPモジュールへとおくられる。このモジュールは、クライアントがHTTPサーバじょうのアクセス制限せいげんまたは認証にんしょう回避かいひすることをふせぐためにURI (Uniform Resource Identifier) の検証けんしょうおこなう。

スケジューラではプリンターがクラスつことをみとめている。これは複数ふくすうのプリンターをグループするひとつの方法ほうほうであり、ジョブをあるクラスへとおくるようなもちかた可能かのうとしている。すなわち、スケジューラはクラスない最初さいしょ利用りようできるプリンターをえらしてジョブをそのプリンターへとおくる。ジョブモジュールは、最終さいしゅうてき変換へんかん印刷いんさつのために印刷いんさつジョブをフィルタやバックエンドの処理しょりへとおくることで印刷いんさつジョブを管理かんりする。またそれらフィルタやバックエンドからのステータスメッセージも監視かんししている。

スケジューラのコンフィギュレーションモジュールはCUPSのデータ構造こうぞう初期しょきするとともに設定せっていファイルを解析かいせきし、CUPSプログラムをスタートさせる。コンフィギュレーションモジュールは設定せっていファイルを処理しょりしているあいだはCUPSサービスを停止ていしさせ、処理しょり完了かんりょうするとサービスを再開さいかいさせる。

ログ・モジュールはアクセス、エラー、ログ・ファイル操作そうさのスケジューラの事象じしょうのログをあつかい、一方いっぽうメインモジュールはタイムアウトとクライアントからの接続せつぞくたいするI/Oリクエストの送出そうしゅつち、またシグナルを監視かんしし、必要ひつようおうじサーバの設定せっていファイルのさいみ、さらにプロセスのエラーと終了しゅうりょうあつかう。

スケジューラでもちいられているそののモジュールには、印刷いんさつデバイスが理解りかいできる形式けいしき印刷いんさつデータを変換へんかんするときのフィルター処理しょりもちいられるMIMEがた変換へんかんデータベースをあつかMIMEモジュールPPD (Postscript Printer Description) ファイルのリストをあつかPPDモジュール、システムで利用りよう可能かのうなデバイスのリストをあつかデバイスモジュール、CUPSないのプリンターとPPDをあつかプリンターモジュールがある。

フィルタ・システム

[編集へんしゅう]

CUPSのおおきな利点りてんのひとつは、様々さまざまなデータ形式けいしき印刷いんさつサーバじょう処理しょりできるということである。印刷いんさつジョブは一連いちれんフィルターかいしてプリンターの最終さいしゅうてき言語げんご形式けいしきへと変換へんかんされる。このデータ形式けいしき変換へんかん方法ほうほうMIMEがた利用りようして抽象ちゅうしょうされている。CUPSはmime.typesmime.convsの2つのMIMEデータのファイルを使用しようする。mime.typesはCUPSがファイルのMIMEがた決定けっていするためにもちいられ、mime.convsはあるMIMEがたべつのMIMEがた処理しょりするためのプログラムを定義ていぎしている。

たとえば、HTMLファイルを検出けんしゅつするためのmime.typesくだりは、

text/html       html htm \
      printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE"))

となっている。これは、ファイルのサフィックス(拡張子かくちょうし)がhtmlもしくはhtmであるか、ファイルのテキストのはじめの1KiBが印刷いんさつ可能かのう文字もじからなっていて、かつ<HTML><!DOCTYPEからはじまっているなら、ファイルはMIMEがたtext/htmlであるものとなされることを意味いみしている。一方いっぽうmime.convsファイルは以下いかのようなくだりからなっている。

text/plain application/postscript 50 texttops

1番目ばんめのカラムと2番目ばんめのカラムはともにMIMEがたであり、それぞれ変換へんかんまえのMIMEがた変換へんかんのMIMEがたとをあらわしている。3番目ばんめのカラムはファイルを変換へんかんするために支払しはらうべき「コスト」をあらわし、フィルタ・システムがファイルを変換へんかんするときに別々べつべつのフィルタの組合くみあわせのなかからどれをえらぶかを決定けっていするための評価ひょうか基準きじゅんとされる。最後さいごのカラムはデータを変換へんかんするためのフィルタプログラムをあらわす。よって、text/plainかたのファイルはフィルタtexttopsによってコスト50でapplication/postscriptかた変換へんかんできることになる。

フィルタシステムは、プリンターキューまたは印刷いんさつフィルタの名前なまえ印刷いんさつジョブのジョブ番号ばんごう、ユーザめい、ジョブめい印刷いんさつ部数ぶすう、その印刷いんさつのオプション、ファイルめい標準ひょうじゅん入力にゅうりょくからリダイレクトされた場合ばあい不要ふよう)の引数ひきすうとともに入力にゅうりょくデータをる。その上述じょうじゅつのようにMIMEデータベースをもちいて入力にゅうりょくデータのかた使用しようされるフィルタを決定けっていする。たとえば、画像がぞうデータが検出けんしゅつされればそれよう特定とくていのフィルタで処理しょりされ、HTMLのデータならまたべつ特定とくていのフィルタで処理しょりされる。これらのデータはそのPostScriptデータに変換へんかんされるか、直接ちょくせつラスタデータに変換へんかんしうる。PostScriptデータへ変換へんかんされた場合ばあいには、プレフィルタばれるさらなるフィルタが適用てきようされ、これは印刷いんさつするページ範囲はんい指定していや、複数ふくすうのページを1ページにむN-Upモードの設定せっていなどプリンターに特定とくていのオプションをくわえることができるようにPostScriptデータにたいしてべつのPostScript変換へんかんプログラムを適用てきようする。

プレフィルタによる処理しょりわると、PostScriptプリンタをもちいている場合ばあいにはそのままデータはCUPSのバックエンドにおくられ、そうでない場合ばあいには(linuxprinting.orgのFoomaticのような)べつのフィルタかGhostscript処理しょりされる。これはPostScriptをプリンターに依存いぞんしないなかあいだ形式けいしきCUPS-rasterフォーマット(MIME がた application/vnd.cups-raster)へと変換へんかんする。最後さいごにこの中間ちゅうかんラスタ形式けいしきはプリンター個別こべつ形式けいしきへと最終さいしゅうフィルタで処理しょりされる。

このラスタ形式けいしきからのフィルタとしてCUPSにデフォルトでふくまれているものは、PCL (Printer Command Language)、ESC/PまたはESC/P2、およびDymoへのフィルタである。ただし、CUPSでもちいることができるいくつかの代替だいたいフィルタもある。CUPSの開発元かいはつもとであるEasy Software Productsは独自どくじのCUPSフィルタをリリースしている。Gimp-Printは幅広はばひろ範囲はんいの(しゅとして)インクジェット・プリンターにたいするこう精度せいどなドライバであり、LinuxのTurbo-Printはやはり様々さまざま種類しゅるいのプリンターにたいしての種々しゅじゅのドライバをゆうしている。

バックエンド

[編集へんしゅう]

バックエンドはデータをプリンターにおく手段しゅだんである。CUPSで有効ゆうこうなバックエンドには、パラレルポートシリアルポート、およびUSBポートのプリンターとともに、IPP (Internet Printing Protocol)、JetDirect (AppSocket)、lpd (line printer daemon)、SMB (Server Message Block) プロトコルをかいして処理しょりされるネットワーク・バックエンドがある。

互換ごかんせい

[編集へんしゅう]

伝統でんとうてき印刷いんさつコマンドがCUPSでももちいることができるようにCUPSはSystem V形式けいしきBSD形式けいしき両方りょうほう印刷いんさつコマンドをあたえている。CUPSは伝統でんとうてきなlpdポートであるポート515を監視かんしし、それを「バックエンド」としてあつかう。CUPSをインストールすると、System Vの印刷いんさつシステムに対応たいおうするlpコマンドとBSDの印刷いんさつシステムに対応たいおうするlprコマンドとが互換ごかんプログラムとしてインストールされる。これらはCUPSへの標準ひょうじゅんてきなインタフェースとなり、これらの印刷いんさつシステムに依存いぞんする現存げんそんするアプリケーションとの最大限さいだいげん互換ごかんせいたもつ。


注釈ちゅうしゃく

[編集へんしゅう]
  1. ^ CUPS.org”. Apple. 2023ねん7がつ6にち閲覧えつらん
  2. ^ CUPS Software License Agreement”. 2017ねん11がつ10日とおか時点じてんオリジナルよりアーカイブ。2017ねん11月11にち閲覧えつらん
  3. ^ Michael Sweet (June 9, 1999), "A Bright New Future for Printing on Linux", Linux Today, および続報ぞくほう記事きじ Michael Sweet (June 11, 1999), "The Future Brightens for Linux Printing", Linux Today
  4. ^ Easy Software Products, CUPS Licensed for Use in Apple Operating Systems! (press release), March 1, 2002
  5. ^ CUPS Purchased by Apple Inc. (press release), July 11, 2007
  6. ^ Thoughts on Leaving Apple...”. www.msweet.org (2019ねん12月20にち). 2023ねん3がつ18にち閲覧えつらん。 “So today was my last day at Apple.”
  7. ^ Michael Sweet (2020ねん10がつ17にち). “Add an OpenPrinting changes file.”. CUPS (OpenPrinting fork) repository. GitHub. 2020ねん12月31にち閲覧えつらん
  8. ^ CUPS Presentation at 2012 Open Printing Summit” (2012ねん4がつ24にち). 2017ねん2がつ14にち時点じてんのオリジナルよりアーカイブ2020ねん11月7にち閲覧えつらん

外部がいぶリンク

[編集へんしゅう]