시스템 V 인쇄 시스템

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

시스템 V 인쇄 시스템은 유닉스 및 유닉스 계열 운영 체제에서 사용되는 인쇄 시스템으로, `lp` 명령어를 통해 프린터 대기열에 작업을 할당한다. 1973년 유닉스 버전 4에서 처음 도입되었으며, System V 릴리스 4에서 인쇄 작업 취소, 대기열 관리 등의 기능이 추가되었다. POSIX 표준에 포함되었으며, 이후 다양한 인쇄 시스템에서 `lp` 명령어 이름이 사용되었다. 현재는 OpenSolaris 프로젝트를 통해 오픈 소스로 제공되며, CUPS는 System V 및 Berkeley 인쇄 아키텍처를 모두 에뮬레이션한다. 그러나 복잡한 구조, 관리의 어려움, 권한 관리의 한계 등으로 인해 비판을 받기도 했다.

시스템 V 인쇄 시스템
📚 더 읽어볼만한 페이지
  • 컴퓨터 인쇄 - 구글 클라우드 프린트
    구글 클라우드 프린트는 구글이 개발한 클라우드 기반 인쇄 서비스로, 웹 기반 인쇄, 클라우드 지원 프린터, 구글 제품과의 통합을 지원했으나 2020년 12월 31일에 서비스 지원이 종료되었다.
  • 컴퓨터 인쇄 - 인쇄 서버
    인쇄 서버는 네트워크 프린터를 공유하여 비용 절감 및 효율적인 프린터 관리를 가능하게 하는 장치 또는 시스템으로, 개인용 컴퓨터, 전용 기기, 또는 프린터 내장 형태로 구성될 수 있다.
  • 유닉스 시스템 V - 제닉스
    제닉스는 마이크로소프트가 1980년에 출시한 유닉스 계열 운영 체제로, AT&T의 버전 7 유닉스 라이선스를 기반으로 개발되어 다양한 하드웨어 아키텍처로 포팅되어 널리 사용되었으나, 마이크로소프트가 OS/2 개발에 집중하면서 SCO에 판권이 이전되었고, SCO UNIX로 발전하면서 개발이 종료되었지만, 일부 시스템 콜은 MS-DOS 및 윈도우에 남아있다.
  • 유닉스 시스템 V - HP-UX
    HP-UX는 휴렛 팩커드(HP)가 개발한 유닉스 운영 체제로, HP 9000 서버를 위해 설계되었으며 PA-RISC 및 인텔 Itanium 아키텍처를 지원하고 클러스터 파일 시스템, 가상화 기능, 고가용성 및 안정성을 제공한다.

2. 역사

`lp` 명령어는 1973년 유닉스 버전 4에서 처음 도입되어 문서를 대기열로 전송하는 기능을 제공했다. 초기 `lp` 명령어는 UNIX 시스템 V의 시스템 V 프린팅 체계의 일부였으며, 원래 line의 l과 printer의 p, local의 l과 printer의 p를 합쳐 만든 단어였다. 그러나 1980년대 이후, 이 명령은 줄이나 지역 장비에 국한되지 않고 모든 프린터의 작동 시스템으로 사용되었다.

System V 릴리스 4에서는 인쇄 작업 취소, 대기열 관리, 상태 보고 등 다양한 기능이 추가되었다. AT&T 유닉스 System V의 배포로 인터페이스가 표준화되었고, POSIX.2 표준에도 포함되었다.

이후 lpr, LPRng, CUPS 등 다양한 인쇄 시스템에서 `lp` 명령어 이름이 사용되었다. 1990년대 후반 리눅스 배포판에서는 `lp` 지원이 줄어들고 lpr이 주로 사용되었으나, 2000년대 초반에는 데비안, 만드레이크, 레드햇, 슬랙웨어 및 SUSE 배포판에서 lpr, LPRng, CUPS가 혼용되었다.

현재는 OpenSolaris 프로젝트를 통해 오픈 소스 소프트웨어로 제공되고 있으며, CUPS는 System V 및 Berkeley 인쇄 아키텍처를 모두 에뮬레이션한다.

2.1. 유닉스 프로그래밍 모델

유닉스 프로그래밍 모델에서, 장치 파일은 프린터와 같은 주변 장치에 대한 접근 지점 역할을 하는 특수 파일이다. 예를 들어, 유닉스 시스템의 첫 번째 라인 프린터는 파일로 표시될 수 있었다. 초기에는 파일 비유를 사용하여 문서를 장치에 "복사"하여 인쇄했다.

이 방식은 사용자당 프린터가 하나인 경우에는 문제가 없었지만, 여러 사용자가 하나의 프린터를 공유해야 하는 경우에는 확장성이 좋지 않았다. 이 문제를 해결하기 위해 인쇄할 문서의 대기열(또는 "스풀")을 만들고, 이 대기열을 관리하며 문서가 도착한 순서대로 프린터로 전송하는 데몬 (시스템 프로세스)을 사용하게 되었다.

2.2. System V 릴리스 4의 기능 확장

System V 릴리스 4가 출시되면서 유틸리티 제품군은 인쇄 작업을 취소하고, 작업을 대기열 간에 이동하고, 대기열을 활성화 및 비활성화하고, 작업 스케줄러 데몬을 활성화 및 비활성화하고, 인쇄 시스템의 상태 보고서를 포함하도록 확장되었다. lp 명령은 인쇄할 문서를 대기열로 처리했으며, 문서의 모양과 대기열에서의 위치를 제어하는 20개 이상의 다양한 옵션이 있었고, 문서 인쇄가 완료되면 사용자에게 이메일 알림을 처리하기도 했다. 이 명령은 대기열에서 작업을 제거하거나 진행 상황을 확인할 수 있도록 'cancel' 또는 'lpstat' 명령에서 사용할 수 있는 "작업 ID"를 반환했다.

2.3. POSIX 표준 및 다른 인쇄 시스템

lp영어 명령어는 POSIX.2 표준의 요구 사항이며, 이후 lpr영어, LPRng, CUPS 인쇄 시스템에도 해당 이름의 명령어가 나타났다. SCO UNIX와 같은 SVR4 파생 제품에서 lp영어 명령어는 BSD 기반 lpr영어 시스템에서 사용되는 lpr영어 명령어의 단순한 별칭이었다.

2.4. 리눅스 배포판에서의 변화

1990년대 후반 리눅스 배포판에서는 lp 지원이 줄어들고 lpr이 주로 사용되었다. 2000년대 초반에는 데비안, 만드레이크, 레드햇, 슬랙웨어 및 SUSE 배포판에서 lpr, LPRng, CUPS가 혼용되었다.

2.5. OpenSolaris 및 CUPS

OpenSolaris 프로젝트를 통해 오픈 소스 소프트웨어로 공개된 Solaris 인쇄 시스템은 원래 System V 인쇄 시스템을 대폭 수정한 것이다. CUPS(Common Unix Printing System)는 인터페이스 수준에서 System V와 Berkeley 인쇄 아키텍처를 모두 에뮬레이션하지만, 내부 아키텍처는 이들과 다르다.

3. 비판

울런공 대학교의 피터 그레이는 lp 시스템의 몇 가지 단점을 지적했다.

* lp 시스템은 BSD lpr 시스템이 단일 데몬을 사용하는 것과 달리, 스케줄링용 데몬과 원격 통신용 데몬을 별도로 사용했다.
* lpr 시스템은 단일 구성 파일로 제어할 수 있었던 반면, lp는 관리를 위해 별도의 프로그램이 필요했다.
* lp 시스템은 권한을 지원했지만, 수백 명의 사용자로 확장되지 않았다.

결과적으로, 많은 관리자가 SVR4 시스템에서 구식 lpr/lpd 시스템을 실행하는 것을 선택한다고 그는 언급했다.