lpd smbd / lpr lpq lprm / h2ps / psutils
GNU/Linux 시스템에서 프린트 서비스는 lpd라는 데몬이 담당하고 있다. 그리고 주로 MS-Windows 계열 시스템과의 프린터 공유를[39] 위해 GNU/Linux 시스템에서 Samba라는 소프트웨어를 이용, smbd라는 데몬을 실행시킬 수 있다. httpd 데몬이 내부적으로 Apache라는 웹서버 소프트웨어를 이용하는 것과 마찬가지다.
성실한 관리자라면 시스템의 프린트 서비스가 제대로 동작하도록 설정을 해놓았을 것이다. 그리고 하나의 프린터를 여러 컴퓨터가 함께 이용할 수 있도록 Samba 등 소프트웨어를 설치했으며 그 설정도 이미 되어 있는 상태라고 치자. [40] 이런 경우 그 시스템을 이용하는 사람 뿐만 아니라 옆의 MS-Windows 시스템 이용자도 프린터를 자유롭게 쓸 수 있으며, 쉘 계정을 가진 사람은 그 시스템에 접속할수만 있다면 은하계 어디에서든지 지구에 있는 그 프린터를 이용하는 "특권"까지 누리게 된다. 물론 프린터에 종이가 없다거나 구겨진 종이에 프린터가 멈추는 상황은 - 어쩔 수 없다!
![]() |
프린트 관련 명령어들 | ||||
---|---|---|---|---|---|
|
프린트 서비스를 다루면서 PS(PostScript) 파일에 대한 소개가 없다면 - 마치 공 없이 축구를 하는 셈이 될 것이다. 이 PS와 함께 PDF(Portable Document Format)라는 포맷은 각각 인쇄 및 컴퓨터 화면에 대한 문서의 "표준 형식"이다. 인쇄될 문서의 예로는 학계의 논문들이 있을 것이며 컴퓨터 화면으로 보여질 문서의 예로는 논문을 비롯해 일체의 전자 서적이 있을 것이다. 관심 분야의 논문이나 온라인 서적을 찾아 헤매다 보면 HTML 형식의 문서와 함께 틀림없이 이 PS(또는 EPS; Encapsulated PS)나 PDF를 접할 것이다. (E)PS/PDF는 특정 기업에서 형식에 대한 저작권을 소유하고 있으면서도 "모든 운영체제"에서 "똑같은" 목적으로 쓰일 수 있는 기술이기 때문에 별 저항 없이 표준으로 굳어진 하나의 사례이기도 하다.[42] 이것이 표준이란 말은, 제대로 된 논문이나 전자 출판된 문서들이 바로 이 포맷을 따르지, 말도 안되게 HWP나 MS-Word DOC 형식이 아니란 것이다.
이렇게 굉장한 기술적 표준이 자유롭게 쓰일 수 있다면 물론 좋겠지만, 당연히(?) Adobe의 원래 기술 자체는 전형적인 하나의 상품으로 되어 있다. 그리고 GNU/Linux 시스템에 기본적으로 포함되어 있는 관련 소프트웨어들은 (E)PS/PDF 기술은 마음껏 구사하면서도 상품으로서의 그것은 '전혀' 이용하지 않는다 - 어떻게 이런 일이 가능할까? 이것은 PS/PDF 기술을 흉내내어 그것과 완전히 똑같이 이용할 수 있는 또다른 기술을 누군가 제공하기 때문이다 - GNU/Linux 시스템에서 이용하는 PS/PDF 기술은 바로 Aladdin에서 AFPL(Aladdin Free Public License)에 의해 제공하는 '유령같은 복제품'인 GhostScript를 기반으로 한 것이다. GhostScript는 PS, EPS, PDF 문서 형식 및 상호 변환을 지원하며 일반 이용자들이 가진 평범한 프린터의 드라이버를 조작해서 마치 (비싼) PS 프린터인 것처럼 동작하게 하는, 또 다른 의미에서 굉장한 기술이다. [43] 또한 이것은 GNU/Linux 시스템에서 뿐만 아니라 MS-Windows 시스템을 이용하는 사람들도 (E)PS 형식을 자유롭게 접할 수 있도록 해준다.
아무튼 GNU/Linux 시스템에서 (E)PS/PDF 형식의 문서를 원본과 똑같이 다룰 수 있음을 알았으며, 이제부터 굳이 GhostScript를 언급하지 않아도 실제로 이것과 원래의 PostScript가 어떤 관계인지 늘 기억하리라 믿는다. 그렇다면 이것이 우리가 이용하는 프린터에 도대체 어떤 짓을(?) 하길래 자꾸 '기술'이라고 하는 것인지 확인해 보자.
![]() |
파일로 인쇄 = Postscript 파일? |
---|---|
GNU/Linux의 그래픽 환경에서 돌아가는 소프트웨어들은 "인쇄" 명령을 내릴 때 보이는 '파일로 인쇄' 옵션에서 대부분 PS 형식을 기본적으로 지원하고, 프로그램에 따라 PDF 형식도 지원된다. |
어떤 PS 파일의 내용을 vi 같은 텍스트 파일 편집기로 열어보면 그것이 HWP처럼 화려한(?) 문서에 해당하는 것이면서도 내용 자체는 그냥 텍스트임을 알 수 있다. 이것은 바로 앞서 출력되었던 암호같은 내용을 말한다. 스크립트(scripts)라는 명칭에서 힌트를 얻은 사람도 있겠지만, PS 형식은 프린터라는 기계를 제어할 수 있는 일종의 프로그래밍 언어다! 즉 용지의 어느 좌표에서 다른 좌표까지 선을 그리고 색깔을 바꾸고 하는 등의 일을 일반 그림 파일과는 전혀 다른 과정으로 처리해 준다는 말이다. 프린터의 입장에서 보면, 일반 텍스트가 lpr 명령을 통해 자기에게 주어진다면 그것을 무식하게(?) 텍스트 그대로 출력하지만, PS 형식에 맞게 들어온 텍스트 파일에 대해서는 그 암호같은 소스를 그대로 출력하는 게 아니라 '특별하게' 출력한다.
PS 문서가 하나의 프로그래밍 언어(프린터를 조작하는)이긴 하지만 그렇다고 해서 그 코드를 사람이 직접 다루기에는 너무나 복잡하고 ... 사실상 극히 포스가 강한 사람이 아니고서는 어떻게 시도해 볼 엄두도 내지 못한다. 그래서 GNU/Linux 시스템에서는 어떤 PS 파일의 구조나 내용 등을 조작할 수 있는 몇 가지 명령어들의 묶음을 제공해 주고 있으며, 이것은 보통 PSUtils로 불린다.
![]() |
PSUtils에 포함된 주요 명령어들 |
---|---|
|
[39] Samba는 프린터 뿐만 아니라 파일 공유 기능도 제공
[40] 자연대 6층의 물리학과 컴퓨터실은 예전에 완벽한 설정이 되었으며 따라서 당시 관리자는 성실했던 것으로 평가할 수 있다 :-)
[41] h2ps라는 명령어 이름 자체가, 한글이 포함된 텍스트 문서를 PS 형식으로 변환한다는 의미를 가지고 있다. 참고로; (한글이 포함되지 않은) 텍스트 파일을 PS로 변환하는 명령으로 a2ps라는 것이 이미 있으며, h2ps 명령은 결국 한글 처리 기능을 추가한 대체 명령이라 할 수 있다.
[42] 이들에 대한 저작권을 가진 Adobe는 아마 컴퓨터 이용자라면 한 번쯤은 들어봤을, 특히 디지털화된 정보를 다루는데 있어 독보적인 기업이다. 이들의 products 페이지, 그 중에서 Technologies 부분을 보면 PostScript와 Portable Document Format에 대한 정의를 찾을 수 있다.
[43] 이와 비슷한 방식으로 돌아가는 것이 GNU/Linux 시스템의 그래픽 사용자 환경인 XFree86이다. 이것은 대기업들이 공동 관리하고 있는 X 윈도우 시스템의 자유로운 대체물이다.
[44] 이것을 실제로 본 적은 없지만, 아마 오노네 나라의 편지지 크기를 말하는 것 같다 :-)