主婦money

「学び」を「お金」に変えていきたい主婦の発信です

CUPS: プリンター接続の基本理解①

おはようございます。

【新生!】Linuxゼロ円学習へようこそ。

まず、これまでのダイジェストを図解メインで紹介します。

 

CUPSとは、「Common UNIX Printing System」の頭文字を取ったものです。

これからCUPSの全体像を理解するために必要な基礎知識を習得していきます。

CUPSの由来

CUPSの役割

Linuxパソコンを家庭用プリンタにつなぐには「CUPS」という公開された印刷システムを利用して、2つの機器(=デバイス)同士が正常に作動するように基本設定を行う必要があります。

 

ところでCUPSは、Apple Inc.が管理しているオープンソースの開発プロジェクトです。

CUPSは現在、Apache License, Version 2.0のライセンス条件に基づいて提供されています。

CUPSのウェブサイトは、「http://localhost:631/」です。詳細はこのページをご覧下さい。

 

この記事はCUPSをゼロから理解したい方向けに、同じ立場の初心者としての立ち位置から独自の見解でCUPSを深掘りしていくために書きました。

本記事の一部はCUPS公式ドキュメントを参照しています。

 

前置きはこのくらいにして、先を進めます。

CUPSの役割は、パソコンとプリンタという2つの異なるデバイス同士が正常に交信できるように両者の橋渡しをすることだと私は理解しています。

先程申し上げた通り、CUPSはオープンソースのプロジェクトなので、私達ユーザーは以下のメリットを享受することができます。

  • 無料で高機能な印刷システムを利用可能。
  • カスタマイズや拡張が容易。
  • セキュリティと透明性と信頼性。
  • 長期的に安定して使用可能。

これらのメリットを享受する上で、UNIXについての理解が不可欠です。

なぜなら、CUPSはUNIXのオペレーションシステム上で動くからです。

UNIXLinuxmacOSの生みの親

CUPSにUNIXのシステムが採用されたのは、「動作の安定性」「セキュリティの高さ」「カスタマイズの自由度」という優れた性質をもった基本ソフトウェアだからだろうと私は推測しています。

 

ところで、CUPSという製品のソフトウェアには何がパッケージ化されているのでしょうか?

答えは、

  1. ソースコード
  2. 設定ファイル
  3. ドライバ
  4. ツール

だそうです。

 

本日は、CUPSの製品の概要を知るために、「ソースコード」と「設定ファイル」とは何なのか?について初心者目線で情報を深掘りしていこうと思います。

全くLinuxを知らない初心者の私は「ソースコード」がそもそもどんなものなのかすらわからないので、恥ずかしがらず調べます。

聞くは一時の恥、知らぬは一生の恥ですから。きっと、プログラミングに詳しい人ならスルーしてしまいそうなポイントですよね…

ソースコードを理解しよう

ソースコードとは、コンピュータに命令を与える時に使う文字列やテキストファイルのことなのだそうです。

いわば、人間からコンピュータにむけての「指示書」となります。これらはプログラミング言語を使って書きます。コンピュータが理解できる形です。

 

この指示書を書く時、私達は「コマンドライン上」でコンピュータとやり取りします。つまり、コンピュータと会話する手段が「コマンドライン」というイメージなんだと思います。

コンピュータと会話するにはコマンドラインを使う

普段、パソコンではアイコンをクリックしたり、メニューを選んだりして操作しますが、コマンドラインでは「文字を入力して直接コンピューターに命令を伝える」方法を使います。

例えるならば、アイコンをクリックしてアプリを開くのが「指さしで教える」方法だとしたら、コマンドラインは「アプリを開いて」と言葉で伝えるようなイメージです。

 

その様は、まるでChatGPTでAIと対話する時に似ているなと私は思いました。

ChatGPTでは人間寄りの言語(例えば日本語)で、プロンプト(命令文)を入力して知りたい情報を得ることができます。

コマンドラインでは、コンピュータ寄りの言語(プログラミング言語)で、コマンド(命令文)を入力してコンピュータを動かします。

ChatGPTとコマンドラインの本質は似ている

両者は「会話ツール」として似ているところがありますが、おそらく「アウトプット」が違うのではないでしょうか?

 

ChatGPTは「得られる情報」に価値があり、コマンドラインは「動作する」ことに価値があるのです。

 

つまり、コマンドライン上にて「プリンターの設定」について「ソースコード」でコンピュータに「きちんと動作せよ」と指示を送るのが、CUPSのソースコードの役割と言っても良いのだと思います。

 

さて、2の「説明ファイル」は、車にたとえるならば「エンジンのような要の要素」なんだと思います。

私がそのように思うのは、CUPSの画面でこのように書かれているからです。

Printers use a description file with one or more driver ("filter") programs that communicate with the printer through a "backend" program.

出典:http://localhost:631/help/admin.html

これを日本語に訳すと「プリンターは、1つ以上のドライバー(「フィルター」)プログラムを使用した説明ファイルを用いて動作し、これらのプログラムが「バックエンド」プログラムを介してプリンターと通信します。」となります。

 

図解で示すならこんな感じです。

説明ファイルはプリンターの要!

ここで、出てくる「ドライバー(「フィルター」)プログラム」と「バックエンドプログラム」というのは、おそらく説明ファイルを理解するのに大切なキーワードでしょう。

まず、ドライバー(「フィルター」)プログラムの役割を理解します。

例えば、PDFファイルを印刷するとき、PDFをプリンターで使える形式(PostScriptやPCLなど)に変換する役割を担うのがフィルターです。

次にバックエンドプログラムの役割を理解します。

変換されたデータをネットワーク接続(Wi-Fiや有線LAN)やUSBケーブルを使ってプリンターに転送するのが役割です。

つまり、説明ファイルは以下の図解のように2つの「変換」と「転送」の構成要素で作られているのだと思います。

説明ファイルの構成要素

3のドライバと4のツールについてはおいおい理解していこうと思います。

今日のところはここまで!

ここまでお読み頂きありがとうございました。