<?xml version="1.0" encoding="UTF-8"?>
<chapter id="appletalk">
  <title>AppleTalk</title>

  <sect1>
    <title>AppleTalk<indexterm>
        <primary>AppleTalk</primary>

        <secondary>AppleTalk プロトコル スイート</secondary>
      </indexterm> トランスポート層</title>

    <para>AppleTalk は Apple が作成したネットワーク プロトコル ファミリで、TCP/IP
    より前のものです。これには、アドレス解決、アドレス/名前マッピング、サービスの場所、接続の確立など、さまざまな用途のさまざまなプロトコルが含まれています。</para>

    <para>Netatalk は、AFP 経由でファイルを提供し、古い Mac および Apple II
    クライアントにその他のサービスを提供するために AppleTalk プロトコルを実装しています。</para>

    <para>完全な概要は、<ulink
    url="https://github.com/Netatalk/netatalk/blob/main/doc/README.AppleTalk">開発者向けドキュメント</ulink>
    にあります。</para>

    <sect2>
      <title>AppleTalk を使用するかどうか</title>

      <para>TCP 経由で AFP を使用できない古い AFP クライアントにファイル サービスを提供するには、Netatalk に組み込まれた
      AppleTalk サポートが必要です。また、<citerefentry>
          <refentrytitle>papd</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> による PAP 経由の印刷サービス、古い Mac クライアント用のタイムサーバー <citerefentry>
          <refentrytitle>timelord</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry>、および Apple II クライアント用の NetBoot サーバー <citerefentry>
          <refentrytitle>a2boot</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> も有効になります。</para>

      <para>さらに、Classic Mac OS クライアントにサービスを提供している場合は、ネットワーク
      クライアントの使いやすさを考慮して、サービスの伝播/場所の指定に AppleTalk を使用することを検討してください。 Apple
      のエンジニアは、AppleTalk 経由で AFP サーバーを簡単に見つける方法を実装しましたが、AFP 接続自体は AFP over TCP
      経由で確立します (この優れた機能の詳細については、開発者向けドキュメントも参照してください)。</para>

      <para>Netatalk でさまざまな基本 AppleTalk プロトコルを使用するには、<citerefentry>
          <refentrytitle>atalkd</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> を使用する必要があります。また、AppleTalk ルーターとして使用して、異なる独立したネットワーク
      セグメントを相互に接続することもできます。</para>

      <para>AppleTalk/atalkd を使用するには、システムが AppleTalk のカーネル
      サポートを備えている必要があります。指定しない場合は、TCP 経由の AFP に制限され、この章で説明されている AppleTalk
      サービスのいずれも使用できなくなります。</para>

      <example>
        <title>afp.conf で AppleTalk を有効にする</title>

        <para><programlisting>appletalk = yes</programlisting>Netatalk が
        AppleTalk サポート付きでビルドされている場合 (ビルド システムに
        <userinput>-Dwith-appletalk=true</userinput> を渡す)、AppleTalk 経由の AFP
        がアクティブになります。</para>
      </example>
    </sect2>

    <sect2>
      <title>AppleTalk ルーティングなし</title>

      <para>これは最も単純な形式で、AppleTalk を netatalk で使用できます。 稼働中のネットワーク インターフェイスが 1
      つだけの場合は、atalkd の設定をまったく処理する必要はありません。atalkd は AppleTalk の自己設定機能を使用して
      AppleTalk アドレスを取得し、自動的にネットワークに登録します。</para>

      <para>アクティブなネットワーク インターフェイスが複数ある場合は、次のどちらかを決定する必要があります。</para>

      <sect3>
        <title>1 つのインターフェイスのみを使用する</title>

        <para>インターフェイス名 (en1、le0、eth2 など) を 1 行で atalkd.conf
        に追加するだけです。ここでは、<emphasis>1 つの</emphasis>インターフェースのみをリストしてください。</para>

        <example>
          <title>atalkd.conf には 1 つのエントリが含まれています</title>

          <para><programlisting>eth0</programlisting>eth0 インターフェースでは AppleTalk
          ネットワーキングが有効になっている必要があります。必要なすべての構成はネットワークから取得されます</para>
        </example>

        <para>起動時に、atalkd は実際の設定 (アドレスとネットワーク、最終的にはゾーン) を atalkd.conf
        に自動的に追加します</para>

        <example>
          <title>atalkd の起動後に atalkd.conf に 1 つのエントリが含まれています</title>

          <para><programlisting>eth0 -phase 2 -net 0-65534 -addr 65280.166</programlisting>
          atalkd は、このネットワーク セグメントに適用される AppleTalk 設定を入力しました。 netrange が 0 ～
          65534 の場合、AppleTalk ルーターが存在しないことを示します。そのため、atalkd
          は、次の条件に一致するアドレスを取得します。netrange は、いわゆる「スタートアップ範囲」65280 ～ 65533
          内から、ノード アドレスは 142 ～ 255 です。</para>
        </example>
      </sect3>

      <sect3>
        <title>複数のインターフェイスの使用</title>

        <para>複数のインターフェイスを使用する場合は、atalkd.conf の
        <emphasis>-dontroute</emphasis> スイッチの後に、1 行ずつ追加する必要があります。</para>

        <example>
          <title>-dontroute オプションを含む複数のエントリを含む atalkd.conf</title>

          <para><programlisting>eth0 -dontroute eth1 -dontroute eth2 -dontroute</programlisting>AppleTalk
          ネットワークは、3
          つのインターフェイスすべてで有効にする必要がありますが、異なるセグメント間ではルーティングは実行しないでください。再度、必要なすべての設定は接続されたネットワークから取得されます。</para>
        </example>

        <example>
          <title>atalkd の起動後に -dontroute オプションを含むいくつかのエントリを含む
          atalkd.conf</title>

          <para><programlisting>eth0 -dontroute -phase 2 -net 0-65534 -addr 65280.152
eth1 -dontroute -phase 2 -net 0-65534 -addr 65280.208
eth2 -dontroute -phase 2 -net 1-1000 -addr 10.142 -zone "Printers"</programlisting>
          eth0 と eth1 には他のルーターが存在しないため、atalkd は起動範囲内からアドレスを選択します。しかし、eth2
          にはすでに接続済みの AppleTalk ルーターが存在し、「プリンター」と呼ばれる 1 つのゾーンを公開し、クライアントに 1 から
          1000 までのネット範囲のアドレスを自身に割り当てるように強制しています。</para>
        </example>

        <para>この場合、atalkd は各インターフェースを唯一のアクティブなインターフェースとして処理します。 AFP クライアントが
        AppleTalk から TCP
        への魔法の切り替えを実行しようとする時点では、これにはいくつかの副作用があるため、注意して使用してください。</para>

        <para>複数のアクティブなネットワーク インターフェイスがあり、上記の特別な予防措置を講じていない場合、ネットワーク インターフェイスの
        1 つが、他のアクティブな AppleTalk
        ルーターが存在せず、適切なルーティング設定を提供するネットワークに接続されている状況で、インターフェイスの自動構成が失敗する可能性があります。</para>

        <para>詳細については、<citerefentry>
            <refentrytitle>atalkd.conf</refentrytitle>

            <manvolnum>5</manvolnum>
          </citerefentry> および開発者向けドキュメントを参照してください。</para>
      </sect3>
    </sect2>

    <sect2>
      <title>AppleTalk ルーターとして機能する atalkd<indexterm>
          <primary>ルーター</primary>

          <secondary>AppleTalk router</secondary>
        </indexterm></title>

      <para>AppleTalk ルータには、シード ルータ、非シード ルータ、いわゆるソフト シード
      ルータなど、いくつかの種類があります。</para>

      <itemizedlist>
        <listitem>
          <para>シード ルータには独自の構成があり、その構成を、そのルータが構成されているネットワーク
          セグメントに公開します。</para>
        </listitem>

        <listitem>
          <para>非シード ルータは、ネットワーク構成を学習するために、接続先のインターフェイスにシード
          ルータが必要です。したがって、このタイプの AppleTalk ルータは、手動設定なしで完全に動作します。</para>
        </listitem>

        <listitem>
          <para>いわゆるソフトシード ルータは、シード ルータの設定を記憶し、実際のシード
          ルータがネットから消えた場合に代わりとして動作できることを除けば、非シード ルータとまったく同じです。</para>
        </listitem>
      </itemizedlist>

      <para>Netatalk の atalkd は、シード ルータとソフトシード ルータの両方として動作できます。混合モードでは、1
      つのインターフェイスではこのように動作し、もう 1 つのインターフェイスでは別の方法で動作します。</para>

      <para>atalkd.conf を完全に空のままにするか、シード設定を使用せずにすべてのアクティブなインターフェイスを 1
      行ずつ追加するだけの場合 (atalkd はどちらの場合も同じように動作します)、atalkd は各インターフェイスでソフトシード
      ルータとして動作するように強制されるため、シード
      ルータにアクセスできない最初のインターフェイスでは失敗します。ルーティング情報を取得します。</para>

      <para>この場合、atalkd に依存する他のサービスも失敗する可能性があります。</para>

      <para>したがって、atalkd を 1 つまたはすべてのアクティブなインターフェースでシード
      ルーターとして動作させる必要があります。シード ルータは、次の情報を提供する必要があります:</para>

      <itemizedlist>
        <listitem>
          <para>このセグメントの特定のネット範囲</para>
        </listitem>

        <listitem>
          <para>独自の AppleTalk アドレス</para>
        </listitem>

        <listitem>
          <para>このセグメントで使用可能なゾーン (1 対多)</para>
        </listitem>

        <listitem>
          <para>このセグメントのいわゆる「デフォルト ゾーン」</para>
        </listitem>
      </itemizedlist>

      <warning>
        <para>自分自身がネットワーク管理者でない限り、AppleTalk
        ルーティングに関連する変更を行う前に管理者に問い合わせることを検討してください。これらの設定を変更すると、すべての AppleTalk
        ネットワーク クライアントに副作用が生じる可能性があります。</para>
      </warning>

      <para>AppleTalk ネットワークでは、ネット範囲は一意である必要があり、互いに重複してはなりません。幸い、netatalk の
      atalkd
      は、設定がネット上の既存の設定と競合していないかどうかをチェックするほど丁寧です。そのような場合、設定は破棄され、ネット上の既存の設定が適応されます
      (疑わしい場合は、常に syslog で詳細を確認してください)。</para>

      <para>使用できるネット範囲には、42-42 などの非常に小さいものから、1-65279
      などの非常に大きいものまであります。後者は最大値を表します。 ルーティングされた環境では、接続されている他のサブネットの設定と重複しない限り、1
      から 65279 の範囲の任意の数値を使用できます。</para>

      <para>独自の AppleTalk アドレスは、ネット部分とノード部分 (前者は 16 ビット、後者は 8 ビット、たとえば
      12057.143) で構成されます。 Apple は、サーバーに 128 以上のノード
      アドレスを使用することを推奨しています。これにより、クライアント Mac はより速くアドレスを割り当てることができます
      (クライアントは、指定されたネット範囲で主に 1 ～ 127 のノード アドレスを検索するため)。Apple
      サーバーと競合したくないため、142 以上のノード アドレスを使用することをお勧めします。</para>

      <para>AppleTalk ゾーンは、物理ネットワークとは <emphasis>まったく</emphasis>
      関係ありません。クライアントの利便性のためのヒントにすぎず、ネットワーク
      リソースをより快適かつ迅速に見つけられるようにします。複数の物理セグメントにわたって 1 つのゾーン名を使用することも、1
      つのセグメントに複数のゾーン名を使用することもできます (また、これらのさまざまな組み合わせも使用できます)。</para>

      <para>したがって、必要なのは、物理セグメント、各セグメントに割り当てるネット範囲、どのセグメントに公開するゾーン名、およびセグメントごとのデフォルト
      ゾーン (これは常に最初のゾーン名であり、atalkd.conf の <emphasis>-zone</emphasis>
      スイッチで指定します) を含む <emphasis>ネットワーク チャートを描く</emphasis> ことだけです。</para>

      <para>上記の手順を完了したら、必要に応じて atalkd.conf を編集してください。</para>

      <para>atalkd.conf で次のオプションを設定する必要があります:</para>

      <itemizedlist>
        <listitem>
          <para>-net (各インターフェースに 1 ～ 65279 の適切な値を使用します)</para>

          <para>この値が抑制されていても -addr が存在する場合は、この特定のアドレスの netrange が使用されます</para>
        </listitem>

        <listitem>
          <para>-addr (net 部分は -net 設定 (存在する場合) と一致する必要があります。ノード アドレスは 142 ～
          255 の範囲である必要があります)</para>
        </listitem>

        <listitem>
          <para>-zone (1 行に複数回使用できます。最初のエントリはデフォルトのゾーンです)</para>
        </listitem>
      </itemizedlist>

      <para>「ゾーン マッピング」を設定できることに注意してください。これは、すべての AppleTalk
      セグメントにまったく同じゾーン名を公開するだけでなく、インターフェイスごとに複数のゾーン名を提供することを意味します。 LaserWriter
      のような低機能の AppleTalk デバイスは、常にデフォルトのゾーン (インターフェイスごとに atalkd.conf
      で使用する最初のゾーン エントリ) に登録されますが、よりインテリジェントなデバイスでは、ユーザー インターフェイスを介して 1
      つの特定のゾーンを選択できます。</para>

      <example>
        <title>atalkd.conf で netatalk を 2 つのインターフェイスのシード ルータにする</title>

        <para><programlisting>eth0 -seed -phase 2 -net 1-1000 -addr 1000.142 -zone "Printers" -zone "Spoolers"
eth1 -seed -phase 2 -net 1001-2000 -addr 2000.142 -zone "Macs" -zone "Servers"</programlisting>
        eth0 の設定により、接続されたネットワーク内の AppleTalk デバイスは、ネットワーク範囲 1 ～ 1000
        のアドレスを自身に割り当てるようになります。このセグメントには 2
        つのゾーン名が発行されます。「Printers」はいわゆる「標準ゾーン」で、レーザー プリンタなどの低機能の AppleTalk
        デバイスがこのゾーンに自動的に表示されるように強制します。netatalk の papd によって提供される AppleTalk プリンタ
        キューは、<citerefentry>
            <refentrytitle>papd.conf</refentrytitle>

            <manvolnum>5</manvolnum>
          </citerefentry> の設定を調整するだけで、ゾーン「Spoolers」に登録できます。eth1
        では、異なる重複しないネット範囲 1001-2000 を使用し、デフォルト ゾーンを「Macs」に設定して、4
        番目のゾーン名「Servers」を発行します。</para>
      </example>

      <example>
        <title>atalkd.conf は「ゾーン マッピング」用に構成されています</title>

        <para><programlisting>eth0 -seed -phase 2 -net 1-1000 -addr 1000.142 -zone "foo"
lo0 -phase 1 -net 1 -addr 1.142 -zone "foo"</programlisting>
        上記の例と同じネットワーク設定を使用しますが、atalkd が両方のセグメントで同じゾーン名を公開するようにします。AppleTalk
        ネットワークのすべてのセグメントで同じゾーン名が使用されるため、ゾーン名はまったく表示されませんが、AppleTalk
        ルーティングは引き続きアクティブになります。この場合、いわゆる「非拡張」LocalTalk ネットワーク (フェーズ 1) を
        EtherTalk「拡張」ネットワーク (フェーズ 2) に透過的に接続します。</para>
      </example>

      <example>
        <title>atalkd.conf (ソフトシード ルーター構成用)</title>

        <para><programlisting>eth0 eth1 eth2</programlisting>
        複数のインターフェイスがあるため、atalkd は両方のセグメント間で AppleTalk
        ルーターとして動作しようとします。独自にネットワーク構成を提供しないため、接続されたすべてのセグメントでシード
        ルーターが使用可能であることに依存します。 1 つのセグメントにのみ利用可能なシード ルータがない場合、全体が失敗します。</para>
      </example>

      <example>
        <title>atalkd 起動後のソフトシード ルータ構成の atalkd.conf</title>

        <para><programlisting>eth0 -phase 2 -net 10-10 -addr 10.166 -zone "Parking"
eth1 -phase 2 -net 10000-11000 -addr 10324.151 -zone "No Parking" -zone "Parking"
eth2 -phase 2 -net 65279-65279 -addr 65279.142 -zone "Parking" -zone "No Parking"</programlisting>
        この場合、アクティブなシード ルータは接続された 3 つのネットワークすべてに存在するため、atalkd
        はそこからネットワーク構成を取得でき、設定が競合しないため、今後はセグメント間でソフトシード ルータが機能しなくなります。そのため、3
        つのシード ルータがすべてネットから消えた場合でも、atalkd
        は接続されたネットワークに、それらから学習したネットワーク構成を提供します。atalkd
        がその後再起動された場合のみ、ルーティング情報は失われます (シード ルータとして動作していないため)。</para>
      </example>

      <example>
        <title>atalkd.conf は混合シード/ソフトシード モードに対応しています</title>

        <para><programlisting>eth0
eth1 -seed -phase 2 -net 99-100 -addr 99.200 -zone "Testing"</programlisting>
        eth0 に接続されたネットワークにアクティブなシード ルータが存在しない場合、または構成が一致しないシード ルータが存在する場合
        (たとえば、1 ～ 200 の重複したネット範囲)、atalkd は失敗します。それ以外の場合は、このマシンから構成を取得し、eth0 と
        eth1 の間でルーティングします。eth1 はシード ルーターとして機能します。</para>
      </example>

      <para>ちなみに、1 つのネットワーク セグメントに複数のシード
      ルーターを接続することはまったく問題ありません。ただし、この場合、接続されたすべてのルーターの構成が、ネット範囲、公開されたゾーン名、およびセグメントごとの「標準ゾーン」に関してまったく同じになるように注意する必要があります。</para>
    </sect2>
  </sect1>

  <sect1 id="printing">
    <title>印刷<indexterm>
        <primary>印刷</primary>
      </indexterm></title>

    <para>Netatalk は、AppleTalk 対応プリンタにアクセスするための PAP<indexterm>
        <primary>PAP</primary>

        <secondary>Printer Access Protocol</secondary>
      </indexterm> クライアントとしても、PAP サーバとしても機能します。前者は <citerefentry>
        <refentrytitle><command>pap</command></refentrytitle>

        <manvolnum>1</manvolnum>
      </citerefentry> ユーティリティを使用し、後者は <citerefentry>
        <refentrytitle><command>papd</command></refentrytitle>

        <manvolnum>8</manvolnum>
      </citerefentry> サービスを起動することで行います。</para>

    <para>AppleTalk プロトコル スイートの一部である「プリンタ アクセス プロトコル」は、1985 年に Apple
    によって開発された、完全に 8 ビット対応の双方向印刷プロトコルです。<emphasis>8 ビット対応</emphasis> とは、バイト
    セット全体を印刷に使用できることを意味します (バイナリ エンコーディング)。これは、他のプロトコル、たとえば、シリアルおよびパラレル
    PostScript プリンタを駆動するための Adob​​e の標準プロトコル (<ulink
    url="https://web.archive.org/web/20041022165533/http://partners.adobe.com/asn/tech/ps/specifications.jsp">Adobe
    TechNote 5009</ulink> を参照) や、8 番目のビットが制御コード用に予約されているため、印刷には下位 128
    バイトのみを使用する LPR<indexterm>
        <primary>LPR</primary>

        <secondary>Remote Line Printer Protocol</secondary>
      </indexterm> などと比べて大きな利点です。</para>

    <para><emphasis>双方向</emphasis> とは、印刷元 (通常は Macintosh コンピュータ) と印刷先
    (プリンタまたはスプーラ実装) が、機能クエリを介して両方の印刷先の機能について通信し、 (<ulink
    url="https://web.archive.org/web/20041022123331/http://partners.adobe.com/asn/tech/ps/archive.jsp">Adobe
    TechNote 5133</ulink> を参照) そしてデバイス ステータスを同期します。これにより、Macintosh 上の
    LaserWriter ドライバーは、一方では適切なデバイス固有の PostScript コード
    (カラーまたは白黒、必要なフォントのみの埋め込みなど) を生成し、他方では印刷プロセスまたは問題 (たとえば紙詰まり)
    に関する通知を生成することができます。</para>

    <sect2 id="papserver">
      <title>PAP 印刷サーバーの設定</title>

      <para>Netatalk の <command>papd</command> は、Macintosh、またはより正確には一般的な PAP
      クライアントに AppleTalk 印刷サービスを提供できます。 Netatalk 自体には本格的なスプーラ実装は含まれておらず、papd
      は双方向通信と PAP クライアントからの印刷ジョブの送信のみを処理します。そのため、通常は、papd を Unix 印刷システム
      (例:クラシック SysV lpd<indexterm>
          <primary>lpd</primary>

          <secondary>System V ライン プリンタ デーモン</secondary>
        </indexterm>、BSD lpr<indexterm>
          <primary>lpr</primary>

          <secondary>BSD lpd/lpr デーモン</secondary>
        </indexterm>、LPRng<indexterm>
          <primary>LPRng</primary>

          <secondary>LPR Next Generation</secondary>
        </indexterm>、CUPS<indexterm>
          <primary>CUPS</primary>

          <secondary>Common Unix Printing System</secondary>
        </indexterm> など。</para>

      <para>クライアントの機能クエリに正しく応答することが非常に重要なので、papd はこれをどのように実現するのでしょうか。割り当てられた
      PPD<indexterm>
          <primary>PPD</primary>

          <secondary>PostScript プリンタ記述ファイル</secondary>
        </indexterm> ファイルの関連キーワードを解析します。CUPS を使用する場合、papd は IPP
      経由でプリンタを照会して、オンザフライで PPD ファイルを生成しようとします。他のスプーラでは、正しい PPD
      を選択することが印刷を可能にするために重要です。</para>

      <para>Netatalk には以前、System V lpd 印刷のサポートが組み込まれていました。papd は印刷ジョブを
      spooldir に直接保存し、その後 <command>lpd</command>
      を呼び出してファイルを取得し、残りの処理を実行していました。多くの lpd 実装との非互換性のため、通常の動作では、プリンタを名前で指定して
      lpd とのやり取りを使用するのではなく、パイプに直接印刷していました。Netatalk 2.0 では、別の代替手段が実装されました。CUPS
      との直接のやり取りです (注: CUPS サポートがコンパイルされている場合、SysV lpd
      サポートはまったく機能しません)。詳細な例は、<citerefentry>
          <refentrytitle>papd.conf</refentrytitle>

          <manvolnum>5</manvolnum>
        </citerefentry> マニュアル ページにあります。</para>

      <sect3 id="paplpdsupport">
        <title><command>papd</command> と SysV lpd の統合</title>

        <para>CUPS サポートがコンパイルされていない場合 (Netatalk 2.0
        以降ではデフォルト)、<option>pr</option> パラメータをキュー名に設定することで、問題の lpd
        キューを定義するだけです。 <option>pr</option>
        パラメータが設定されていない場合は、デフォルトのプリンタが使用されます。</para>
      </sect3>

      <sect3 id="pappipesupport">
        <title><command>papd</command> でパイプを使用する</title>

        <para>上記で概説した手法の代わりとして、papd
        の出力をパイプ経由で別のプログラムに送る方法があります。このメカニズムを使用すると、ほぼすべての印刷システムを操作できます。</para>
      </sect3>

      <sect3 id="papcupssupport">
        <title>直接 CUPS サポートを使用する</title>

        <para>Netatalk 2.0 以降では、直接 CUPS 統合が使用可能です。この場合、キュー名のみを
        <option>pr</option> パラメータとして定義すると、SysV lpd デーモンは呼び出されず、代わりに CUPS
        が使用されます。 <option>pd</option> スイッチを使用して特定の PPD が割り当てられていない限り、CUPS
        で構成された PPD は <command>papd</command> でも使用されます。</para>

        <para><emphasis>cupsautoadd</emphasis> という特別な共有が 1 つ存在します。これが
        papd.conf に存在する場合、使用可能なすべての CUPS
        キューは、このグローバル共有に割り当てられたパラメータを使用して自動的に処理されます。ただし、後続のプリンタ定義を使用して、個々のスプーラのこれらのグローバル設定を上書きできます。</para>

        <example>
          <title>構文例、root をオペレータとして割り当てる:</title>

          <para><programlisting>cupsautoadd:op=root:</programlisting></para>
        </example>
      </sect3>
    </sect2>

    <sect2 id="papclient">
      <title>AppleTalk プリンタの使用</title>

      <para>Netatalk の <citerefentry>
          <refentrytitle><command>papstatus</command></refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> は AppleTalk プリンタのクエリに使用でき、 <citerefentry>
          <refentrytitle><command>pap</command></refentrytitle>

          <manvolnum>1</manvolnum>
        </citerefentry> はプリンタに印刷するのに使用できます。</para>

      <para><command>pap</command> はスタンドアロンで使用することも、出力フィルタまたは CUPS
      バックエンドの一部として使用することもできます<indexterm>
          <primary>Backend</primary>

          <secondary>CUPS backend</secondary>
        </indexterm> (すべてのプリンタを処理する必要がないため、この方法の方が推奨されます)オプション)。</para>

      <example>
        <title><command>pap</command> PostScript LaserWriter に印刷</title>

        <para><programlisting>pap -p"ColorLaserWriter 16/600@*" /usr/share/doc/gs/examples/tiger.ps</programlisting>
        ファイル <filename>/usr/share/doc/gs/examples/tiger.ps</filename> は、標準ゾーン
        "*" にある "ColorLaserWriter 16/600" というプリンタに送信されます。デバイス タイプは
        "LaserWriter" です (デフォルトなので省略できます)。</para>
      </example>

      <example>
        <title><command>pap</command> 非 PostScript プリンタに印刷</title>

        <para><programlisting>gs -q -dNOPAUSE -sDEVICE=cdjcolor -sOutputFile=test.ps | pap -E</programlisting>GhostScript
        は、PostScriptジョブをColor DeskWriterに適したPCL3出力に変換するために使用されます。コマンド
        ラインにファイルが指定されていないため、<command>pap</command>はstdinからデータを読み取ります。プリンタのアドレスは、同じディレクトリにある<filename>.paprc</filename>ファイルから読み取られ、<command>pap</command>が呼び出されます(この例では、単に「Color
        DeskWriter:DeskWriter@Printers」が含まれています)。<option>-E</option>スイッチにより、<command>pap</command>はプリンタからのEOFを待たなくなります。</para>
      </example>
    </sect2>
  </sect1>

  <sect1 id="timeservices">
    <title>タイム サービス<indexterm>
        <primary>タイム サービス</primary>
      </indexterm><indexterm>
        <primary>Timelord</primary>

        <secondary>AppleTalk タイム サーバー</secondary>
      </indexterm></title>

    <sect2 id="timelord">
      <title>Timelord</title>

      <para><command>timelord</command><indexterm>
          <primary>timelord</primary>
        </indexterm> は AppleTalk ベースのタイム サーバーで、NTP<indexterm>
          <primary>NTP</primary>

          <secondary>Network Time Protocol</secondary>
        </indexterm> をサポートしていない古い Macintosh または Apple II
      クライアントのシステム時間を自動的に同期するのに役立ちます。</para>

      <para>Netatalk の <command>timelord</command> は<ulink
      url="https://web.archive.org/web/20010303220117/http://www.cs.mu.oz.au/appletalk/readmes/TMLD.README.html">
      メルボルン大学</ulink>で開発された Macintosh 用の tardis クライアントと互換性があります。</para>

      <para>詳細については、<citerefentry>
          <refentrytitle>timelord</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> マニュアル ページをご覧ください。</para>
    </sect2>
  </sect1>

  <sect1 id="netboot">
    <title>NetBoot サービス</title>

    <sect2 id="a2netboot">
      <title>Apple 2 NetBooting</title>

      <para><command>a2boot</command><indexterm>
          <primary>a2boot</primary>
        </indexterm> は、 Apple //e または Apple IIGS を、Netatalk が提供する AFP
      ボリュームを介して ProDOS または GS/OS にブートします。</para>

      <para>Apple が提供する適切なブート ブロックとシステム ファイルを自分で用意する必要があります。</para>

      <para>詳細については、<citerefentry>
          <refentrytitle>a2boot</refentrytitle>

          <manvolnum>8</manvolnum>
        </citerefentry> マニュアル ページを参照してください。</para>
    </sect2>
  </sect1>
</chapter>
