質問者さんが引用されている文がUNIX系OSとWindowsを一緒に説明しようとしているのもあって、誤解を招き易いのかもしれません。私もご質問の意図を汲み取っていない可能性もありますが、回答を試みてみます(汗)
パイプとUNIXソケットの違いは何ですか。
質問者さんが言うパイプとはUNIX系OSのシステムコールのpipe(2)
のことを指すものだと思います。
コマンドライン上での標準入出力のパイプ(|
)を実現する為に使われています。これは「名前なしパイプ」です。
Linuxの例ですが
pipe(2)
How Linux pipes work under the hood
UNIXソケットとは、UNIXドメインソケットのことを指していると思いますが、システムコールが違い、socket(2)
でAF_UNIX
を指定して作成するソケットを使い、通信するものです。
同一マシン上でWEBサーバーとDBサーバー間で高速に通信する場合などに使われています。
unix(7)
socket(2)
名前なしパイプもUNIXドメインソケットどちらも、同一マシン内でしか通信できません。
Windowsで言うパイプとは、CreateNamedPipe APIを使って作る「名前つきパイプ」です。このWindowsの名前つきパイプは外部(リモート)のマシンとも通信することができます。
ここでまたややこしいのは、Windowsのコマンドプロンプト上で標準入出力を取り扱う上で使う|
記号も「パイプ」と呼ぶことです。この場合のパイプはUNIX系OSでのコマンドライン上の標準入出力のパイプ(|
)と同じ用途で使っている言葉なので、区別して理解する必要があります。
(WindowsのコマンドプロンプトがMS-DOS由来で、更にそのMS-DOSがUNIX系OSの操作体系を参考に造られている為に用語が重なるのですが)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。