4부 여러가지 정보들FreeBSD의 주변적인 것들의 이모저모를 알아본다.몇 가지 팁과 함께 현재의 개발 상황이나 x86을 넘어선 포팅, 자바, 상용 패키지, 국제화 등에 대해서 알아보자. gs를 통한 프린트 필터링nh2ps, emacs의 ps-print, 넷스케이프의 한글 출력을 프린터로 출력하고 싶은 사람은 반드시 gs를 통한 필터링을 거쳐야 한다. 이 방법에는 여러 가지가 있으나 FreeBSD에서 가장 간단하게 할 수 있는 방법에 대해 알아보자. 물론 이 작업을 하려면 ko-ftghostscript 패키지가 설치되어 있어야 한다. 이 내용은 핸드북의 7.6.1.3절과 같으므로 해당 절을 보아도 된다./usr/share/examples/printing/ifhp를 한부 복사한다.# cp /usr/share/examples/printing/ifhp /usr/local/libexec/ifhp # chmod +x /usr/local/libexec/ifhp /usr/local/libexec 디렉터리가 없으면 하나 만들기 바란다.
/usr/local/libexec/ifhp를 편집한다.다른 것은 볼 필요가 없고 다음과 같은 행이 있을 것이다./usr/local/bin/gs -dSAFER -dNOPAUSE -q
만약 여러분이 레이저젯 5를 사용한다면 -sDEVICE=다음에 djet500(HP 데스크젯
500)대신 lj5mono나 lj5gray를 적어주면 된다.
프린터 셋업을 하고 /etc/printcap을 편집한다.일단 프린터를 사용할 수 있도록 셋업한다. 이 과정은 핸드북의 7장을 보면 된다. 프린터 셋업이 끝났다면 /etc/printcap에 있는 여러분 프린터 엔트리에:if=/usr/local/libexec/ifhp:를 끼워넣으면 된다. 프린터로 출력을 하여 잘 되는지 살펴보자. nh2ps에서 만든 PS 파일을 찍어보면 된다. % nh2ps hangul.txt | lpr
% nh2ps hangul.txt | /usr/local/libexec/ifhp | lpr이렇게 하여도 프린트되지 않는다면 ifhp 스크립트를 점검해 보고 프린터 드라이버를 잘못 고른 것인지, gs는 설치가 되었는지의 사항을 점검하자. /boot.config, /boot.help부팅할 때 ‘Boot:’프롬프트와 함께 나오는 메시지가 바로 /boot.help이고 기본적으로 넘겨줄 수 있는 옵션은(즉, Boot: 다음에 매번 적어주는 옵션이나 커널명이 있다면) /boot.config에 적어두면 매번 입력해야 하는 불편을 피할 수 있다. 예를 들어 매번 ‘Boot:’ 프롬프트에서1:wd(2,a)kernel.mine -v이라고 입력하고 있다면 /boot.config를 편집기로 열어서 위 내용을 적어주면 된다. ANTI-SPAM 기능FreeBSD는 레드햇 리눅스 5.0처럼 기본적으로 릴레이를 막지 않는다. 하지만 간단한 스팸 방지기능이 있다. 자세한 것은 /etc/mail/README를 읽고 그대로 따라하면 스패머의 데이터베이스를 만들고 sendmail.cf를 변경할 것이다.FreeBSD의 미래 - 2.2의 종말과 3.0의 안정버전화FreeBSD 2.2는 이미 2년이 다 되어가는 동안 처음의 의도에 맞게 안정되어 가고 있다. 시스템의 버그도 점점 줄어들고 있고(FreeBSD는 안정성을 지향하는 만큼 시스템 바이너리의 버퍼 넘침 공격이나 네트워크 코드 등에 대해서는 보수적인 정책을 취한다), 커널도 현재의 골격을 유지한 채로 이제 새로운 장치가 추가되거나 하는 일은 거의 없을 것이다.FreeBSD Inc.의 Jordan K. Hubbard가 FreeBSD-stable에 올린 글에 따르면 2.2.8이 마지막 버전이며 그 발표 날짜는 98년 11월 15일로 확정되었으며 변하지 않는다고 한다. 이후로 2.2의 개발은 중단되며 10월 15일로 예정된 3.0 릴리즈의 첫 번째 버전이 나올 것이며 이후 사람들은 2.2에서 3.0으로 점진적으로 업그레이드하게 될 것이라는 글이다. 이제 2.1.7.1로 끝난 2.1의 대를 이어 2.2버전도 그 종말을 맞이하려 하고 있다. 새로운 릴리즈가 될 3.0은 어떤 것일까? 현재도 3.0-CURRENT는 상당히 안정적인 것으로 알려져 있는데 중요한 기능은 다음과 같다.
3.0이 안정 버전으로 들어오면 다음 버전의 준비가 시작될 것이다. 다음
버전은 FreeBSD 3.1일까 4.0일까?
x86을 넘어 - 알파 CPU로의 포팅FreeBSD와 같이 4.4BSD에 기반하는 OpenBSD와 NetBSD의 특징을 꼽으라면 단연 여러 시스템을 지원한다는 것이다. x86 CPU 시스템에서만 운영되는 FreeBSD에 비해 많은 종류의 하드웨어를 지원한다는 점에서 이들 두 BSD시스템의 장점이 있는 것이다.FreeBSD는 현재 스팍 등 여러 플랫폼으로의 포팅 계획이 있지만 그중 실제로 진행되고 있고 가장 활발한 것은 알파 플랫폼이다. 현재는 아직 알파에서 부팅할 수 있는 시스템은 없지만 NetBSD의 부팅 시스템과 컴파일러를 빌려서 FreeBSD 명령과 라이브러리를 시험하고 있는 중이다. FreeBSD의 알파 포팅에 대한 자세한 정보는 FreeBSD/Alpha 페이지인 http://www.freebsd.org/alpha/에서 찾을 수 있다. 알파용 리눅스가 현재의 NT를 운영하는 알파 시스템에서 널리 동작할 수 있는 것은 부팅을 NT가 부팅할 수 있는 곳이라면 할 수 있기 때문이다. 이는 시스템의 바이오스 차이인데 디지탈 유닉스와 OpenBSD/alpha, NetBSD/ alpha가 부팅할 수 있는 SRM 콘솔이 아니라 리눅스는 NT와 마찬가지로 ARC 펌웨어에서 부팅이 가능하기 때문이다(ARM펌웨어 바이오스는 IDE하드디스크에서의 부팅도 허용한다). FreeBSD/alpha가 발전하기 위해서는 이런 범용성이 갖추어져야 한다고 본다. FreeBSD의 알파 포팅은 NetBSD의 코드에 많이 의존하므로 아직은 NT용 바이오스에서 부팅할 수는 없다. 알파 기종에 관심 있는 사람이라면 메일링 리스트(freebsd-alpha@freebsd.org)에 가입하거나 홈페이지를 읽어보기 바란다. 이미 3.0-CURRENT를 설치하면 로그인 화면에서 FreeBSD라고만 뜨는 대신 FreeBSD/i386이라고 시스템 명을 명시하기 시작하였다. 플랫폼이 나누어지는 신호라고 할까? 반면 2.2는 알파 시스템에서 운영될 계획은 없으므로 그런 일은 일어나지 않는다. ![]() 그림 36. FreeBSD/alpha 프로젝트 페이지국제화FreeBSD만큼 국제화가 잘된 공개 유닉스도 찾기 힘들다. 시스템의 로케일은 아직 통합 시스템이 되기에는 난점이 많지만 제공하는 패키지의 종류와 수에 있어서는 어떤 배포본도 이를 따라오지 못한다. 현재 FreeBSD에서 패키지의 형태로 제공되는 지역화 또는 국제화된 패키지들은 다음과 같은 종류이다.
시스템에서는 기본적으로 catopen()에 의한 메시지 인터페이스와 로케일 시스템을 제공한다. 하지만 1바이트권 언어에 대한 로케일 관련 루틴만 libc.so에 들어 있고 한, 중, 일 등의 2바이트권 언어(rune)에 대한 내용은 libxpg4.so 라이브러리로 분리되어 있다. 이 때문에 한글을 사용하고자 하는 경우에는 매번 libxgp4.so 라이브러리를 링크해야만 했고 가장 불편하였던 것 중 하나가 바로 별도의 라이브러리를 링크하여야 한다는 것이었다. libxgp4는 2.1대에는 없었지만 2.2에서 새로 생긴 라이브러리이다. XFree86에 있어서 그런 문제가 컸는데 이번 FreeBSD의 XFree86에는 컴파일 옵션에 libxpg4를 자동으로 링크하도록 설정이 미리 되어 있어 다행이었다. 라이브러리를 나눈 것은 기능상 불완전한 점이 많기 때문이다. 특히 넷스케이프
등에서 이 문제가 크게 작용하였는데(그래서 실제 넷스케이프 패키지는 약간의
편법을 사용하고 있다), 이 라이브러리는 앞으로 유니코드나 ISO-2022를 더
정확하게 지원하는 방향으로 개선될 것이다.
FreeBSD 한국어 문서화 프로젝트FreeBSD에 관련된 국내의 프로젝트가 있다. 바로 문서의 한글화를 계획하는 doc-kr이 그것이다. doc-kr은 FreeBSD의 관련 문서(핸드북, FAQ, 매뉴얼, 튜토리얼, 다국어 설치 프로그램)의 번역을 위해 지난 3월에 만들어졌다. 현재 핸드북의 번역을 진행 중이며 여러 사람들이 번역 작업을 현재 진행중이다. 이번 CD에도 그 성과물의 일부가 반영되어 있다(/extra/doc/handbook-ko). 현재 이 프로젝트는 김덕환(sasung@yahanbi.snu.ac.kr)님이 맡고 있다.FreeBSD 한국어 문서화 프로젝트에 여러분의 참여를 바란다. KLDP(Korea Linux Document Project)만큼은 아직 못하더라도(사실 KLDP의 문서 중에서도 FreeBSD에서 볼 것도 몇가지 있다), 한글 문서화가 많이 될수록 좋은 것은 당연하기 때문이다. 참가하고 싶은 사람은 http:// pimp.snu.ac.kr/doc-kr/index.html의 웹페이지를 방문하여 프로젝트 참가 요령을 읽어보기 바란다. ![]() 그림 37. FreeBSD 한국어 문서화 프로젝트 웹페이지FreeBSD 정보를 얻기FreeBSD의 정보는 어디서 얻을까? 무엇인가를 물어보고 싶은데 어떻게 하지? 이럴 때는 여러 가지 방법이 있겠지만 일단은 내부 문서인 핸드북과 FAQ를 읽어보자./usr/share/doc 디렉터리에서 많은 문서를 일단 찾아볼 수 있으며 /usr/share/examples에서도 유용한 예제들을 찾아볼 수 있다. 핸드북의 경우 FreeBSD 한국어 문서화 프로젝트의 현재까지의 번역물(사실
얼마 되지는 않지만 시도하고 있다는데 의의를 둔다)을 볼 수 있다. CD에서
/extra/doc/handbook-ko 디렉터리를 찾아보라. 또한 네트워크 상에서 가장 많은
사람이 참여하는 것은 FreeBSD 메일링 리스트이다.
subscribe freebsd-questions와 같이 가입할 리스트명을 적어서 보내면 된다. 메일링 리스트는 대부분 열려 있지만 그렇지 않은 freebsd-core같은 메일링 리스트도 있다. FreeBSD의 메일링 리스트에 관련된 사항은 핸드북에서 27.1장을 읽어보기 바란다. 그 외에도 여러 가지가 있을 수 있다. 뉴스그룹 중에서는
마치며FreeBSD 2.2.7이 7월 21일 발표된 후 얼마 되지 않은 시간에 여러 가지 패키징 작업과 패치를 가하는 것은 쉬운 작업이 아니었다. CD롬 설치를 위해서는 부트용 커널이 제공되어야 하는데 이 커널을 얻기 위해서 몇 번이나 전체 소스를 다시 컴파일해야 했다(전체 소스를 컴파일하는데에는 약 7시간정도 걸린다). 차라리 트루타입 패치가 된 XFree86을 컴파일하는게 덜 부담스럽게 느껴질 정도였다. 그 덕분에 anonCVS의 버그를 하나 발견해 내기도 하였다.FreeBSD가 국제화를 지향하는 만큼 그리 지역적인 패치는 하고 싶지 않았지만 욕심도 나고 패키지간의 균형도 있고 해서 gettext를 새로 도입하고 gimp를 다시 패키징하거나 XFree86을 다시 컴파일하고 셸도 다시 패키징하는 등의 만행(?)을 몇 군데에서 저지르고 말았다. 혹 FTP나 Walnut Creek CD롬에서 직접 구입한 2.2.7 CD에 들어있는 패키지와 다른 것들이 있더라도 그건 필자의 의도인 것이 많다. 특히 teTeX은 기본 패키지가 잘못된 관계로 새로 컴파일해야 했다. 거대한 패키지들과 소스 사이에서 혼자 씨름하는 것은 이제는 감당할 수 없는 일이 되어 버렸다. 사용자 층이 늘어나면 이런 패키징 작업이나 FreeBSD에서의 한글처리에 대한 다른 사용자들의 도움을 얻을 수 있으리라 생각한다. 이 CD가 그런 저변 확대에 도움이 되었으면 좋겠다. 이 CD에 들어있는 여러 가지 한글관련 프로그램을 만들어 주고, 유닉스에서의
한글처리를 위해 지금까지 애써왔고 애쓰실 수많은 사람들에게 감사드린다.
|