"UNIX®에서는 모두 다 파일이다"라는 격언은 오래 되었지만 정확하다. 개념적으로 모든 UNIX 자원은 열고, 읽으며, 쓰거나, 읽고 쓰기를 동시에 할 수 있는 간단한 파일이다. 독자의 실험 데이터는 파일이며, 있는 그대로 쉘 시작 스크립트, UNIX 커널, 홈 디렉토리, 각 네트워크 소켓 및 /bin/ls 실행 파일 등이다.
하지만 모든 파일이 동일하지는 않다. 실험 데이터는 고도로 사용자 정의된 데이터베이스가 될 수 있다.
비록 중요한 한 가지 차이점에도 불구하고 쉘 스크립트는 텍스트 파일이다. 즉, 선행하는
!#(때로는 shebang이라고 함) 행은 어느 애플리케이션이 파일을
해석하는지 지시한다. 커널은 바이너리이고, 예측 가능하고 시스템 도구가 조작할 수 있는
특정 형식 둘 다를 사용하여 있는 그대로 각각 실행 파일이다. 디렉토리는 카탈로그 컨텐츠에 특수화된 인덱스이다.
더 나아가 모든 파일이 동일한 방식으로 저장되지 않는다. 파일의 구조와 크기는 내재된 파일 시스템—실제 디바이스로 파일 데이터를 지속하는 서브시스템—에 의존한다. 동일한 데이터—다시 말해서, 동일한 파일의 사본 두 개—는 서로 다른 파일 시스템에서 다르게 구성된다. 각 파일 시스템은 자체 스토리지 전략을 지시하며, 이는 특정 기준에 부합하도록 설계될 수 있다. 예를 들어, 하나의 파일 시스템은 속도에 최적화되고, 다른 시스템은 공간의 효율적인 사용에 최적화될 수 있고, 하지만 또 다른 시스템은 데이터 손실 또는 손상에 대한 내구성에 최적화될 수 있다. 대개, 배치할 파일 시스템이 올바르거나 잘못된 것은 없다. 즉, 스토리지 필요를 분석하고 용도에 맞는 파일 시스템 또는 파일 시스템의 결합을 선택해야 한다. UNIX(및 수많은 공급업체)가 많은 수의 파일 시스템을 제공하므로, 독자는 유리한 것을 찾을 것으로 확신한다.
표 1은 UNIX(및 많은 경우에 Linux®)에 사용 가능한 파일 시스템을 몇 가지만 나열한다.
표 1. UNIX 파일 시스템
| 파일 시스템 | 이점 |
|---|---|
| ZFS(Zettabyte file system) | 공통의 즉시 사용 가능한 스토리지 매체를 사용하여 구축할 수 있는 근본적으로 무한한 파일 시스템(zettabyte는 270 바이트임)인 ZFS는 쓰기에서도 데이터를 압축할 수 있어 매체를 한층 더 최대화한다. |
| NFS(Network file system) | UNIX의 충실한 기능인 NFS는 원격 파일 시스템이 로컬로 표시되도록 만든다. NFS는 데이터를 공유하기에 이상적이다. |
| JFS(Journaling file system) | 많은 다른 대안 중에서 JFS는 각 파일에 변경 사항의 로그 또는 저널을 보유한다. 고장 또는 손상이 발생하면 저널은 파일을 복원하기 위해 "재생된다". |
| Btrfs(B-tree file system) | 최신 파일 시스템 중 하나이며 Linux의 곧 나올 버전에 대해 기본 파일 시스템이 될 예정인 Btrfs는 수정되지 않는 지속성으로 메타데이터 체크섬 및 데이터를 유지보수한다. Btrfs도 스냅샷을 제공하고 거의 크기에 관계 없이 디바이스를 혼합할 수 있다. |
일반적으로 파일 시스템은 이에 맞춘 매체가 필요하여, 하나의 파일에서 다른 파일로 변경하는 것은 대개 백업, 실제 드라이브 형식화 및 지루한 복원과 유효성 검증 프로세스를 수반한다. 분명히 이러한 변경은 근본적이며, 당연히 시스템 관리자의 온전한 관할이다.
하지만, 최근의 많은 UNIX 및 Linux 커널로의 확장을 통해 어느 사용자나 특별한 권한 없이 다양한 파일 시스템을 작성하고 사용할 수 있다. Filesystem in User Space의 약어로 별명이 붙은 FUSE는 상대적으로 적은 노력으로 새 파일 시스템을 작성하기 위한 소프트웨어를 사용할 수 있다. FUSE에서 파생된 파일 시스템은 SFTP를 통해 파일을 마운트하고, 바이러스에 대해 자동으로 파일을 스캔하며, 로컬의 상주 데이터 파일로 읽기 전용 CR-ROM 디스크의 콜렉션을 취급할 수 있다.
일반 운영체제 플랫폼에서 FUSE를 설치하고 이제 어느 사용자나 사용할 수 있는 일부 새로운 파일 시스템을 탐색해보자. 현대의 UNIX 및 Linux 커널은 대개 FUSE에 대한 지원을 포함하므로, 소프트웨어를 빌드하는 것은 유틸리티 코드에 관계 없이 빌드하는 것과 유사하다. 패키지를 다운로드하고 압축 해제하여 시스템의 기능을 발견하기 위해 구성 스크립트를 실행하여 코드를 빌드하고 설치해야 한다. 목록 1은 FUSE를 설치하기 위한 코드를 보여준다.
목록 1. FUSE 설치하기
$ wget http://downloads.sourceforge.net/project/\ fuse/fuse-2.X/2.8.4/fuse-2.8.4.tar.gz $ tar xzf fuse-2.8.4.tar.gz $ cd fuse-2.8.4 $ ./configure $ make $ sudo make install |
FUSE 버전 2.8.4는 기사 게시 시점에 최신 버전이었다. FUSE 프로젝트 홈 페이지에서 최신의 가장 우수한
코드를 다운로드하도록 하자(링크는 참고자료 참조). 컴파일 이후에 FUSE 패키지는
새 FUSE 파일 시스템을 빌드하기 위해 필요한 수많은 라이브러리와 FUSE 파일 시스템을 마운트하고 마운트 해제하기 위해
fusermount라는 이름의 애플리케이션을 설치한다.
Fusermount는 몇 가지 특수 옵션이 있지만, 그렇지 않으면 일반적으로 vanilla mount 명령에
제공하는 옵션을 승인한다.
설치한 기초 코드를 통해 FUSE 파일 시스템 설치를 계속 할 수 있다.
시도하는 첫 번째 FUSE 파일 시스템은 SSHFS라는 SFTP를 기반으로 하는 파일 시스템이다. SSHFS를 통해
서버가 SSH를 지원하는 한,(이는 대부분이 수행함) 로컬 파일 시스템으로 어느 원격 디렉토리나 마운트할 수 있다. 계속하기 전에
시스템에 Glib 2.0 및 Gthread 2.0이 있는지 확인한다. 시스템에
GNOME가 있으면, 이러한 라이브러리가 있을 것이다. 그렇지 않으면, 소스로부터 또는 운영 체제의 기본 패키지
관리자를 통해 이를 설치한다. (Debian Linux 시스템은 Aptitude가 있다. Red Hat Linux 시스템은 rpm,
yum 및 YaST를 제공한다.)
목록 2는 SSHFS를 설치하기 위한 코드를 보여준다.
목록 2. SSHFS 설치하기
$ wget http://sourceforge.net/projects/\ fuse/files/sshfs-fuse/2.2/sshfs-fuse-2.2.tar.gz/download $ tar xzf sshfs-fuse-2.2.tar.gz $ cd sshfs-fuse-2.2 $ ./configure $ make $ sudo make install |
Ubuntu 또는 UNIX 또는 Linux의 다른 변형을 실행하는 경우 배포에서 모든 소프트웨어 패키지의 사전 빌드된 바이너리를 제공할 수 있다. 예를 들어, Ubuntu에서 다음 명령으로 지금까지 나열된 모든 FUSE 소프트웨어를 설치할 수 있다.
$ apt-get install libglib2.0-dev fuse-utils libfuse2 sshfs |
종속 항목이 최신 상태가 되면 간단한 명령 apt-get install sshfs로 SSHFS를 설치할 수도 있다.
FUSE 라이브러리와 SSHFS가 설치될 때, 로컬 파일 시스템으로 SSH를 통해 액세스할 수 있는 어느 원격 디렉토리나
마운트할 수 있다(목록 3 참조).
ssh와 mount를 결합하여, 독자는
원격 시스템의 이름과 로그인 신임 정보, 마운트하려는 원격 디렉토리 및 어느 로컬 디렉토리나 될 수 있는 로컬 마운트 지점을
제공한다.
목록 3. 파일 시스템으로 원격 SSH 액세스 가능 디렉토리 마운트
$ ssh me@example.org ls bin Documents lib Media Pictures Sites tmp Desktop Downloads Library Movies projects Source Documentation Dropbox local Music Public src $ cd ~ $ mkdir -p mounts/example $ sshfs me@example.org:/home/me mounts/example $ cd mounts/example $ ls bin Documents lib Media Pictures Sites tmp Desktop Downloads Library Movies projects Source Documentation Dropbox local Music Public src |
확인 가능한 대로 원격 디렉토리의 컨텐츠는 이제 로컬 파일처럼 손쉽게 사용 가능하다. 독자가 개발자이고 작업에
여러 시스템을 사용하면 SSHFS는 로컬 명령—cp,
make 및 기타를 고려하자—을 원격 파일에서 조작하게 만든다.
FUSE 파일 시스템을 마운트 해제하기 위해 fusermount -u
/some/mount/point를 입력할 수 있다. 또는, FUSE 파일 시스템이 정상 파일 시스템과 같이
작동하기 때문에, umount /some/mount/point를 입력할 수 있다.
또 다른 원격 파일 시스템 변형은 S3FS라고 한다. 자체적인 원격 서버와 SFTP를 사용하는 것이 아니라 S3FS는 Amazon S3(Amazon Simple Storage Service) 버킷을 로컬 파일 시스템으로 마운트한다. S3FS는 파일을 "S3에서 기본으로 분명하게" 저장하고 다운로드를 최소화하기 위해 로컬 캐싱을 사용할 수 있다. 최대 파일 크기는 5GB이다. SSHFS와 같이 소스를 다운로드하고 빌드하여 이를 즉시 사용할 수 있다.
참고: S3FS 패키지는 cURL 라이브러리 개발 헤더 및
LibXML2 라이브러리에 의존한다.
목록 4는 S3FS 인스턴스를 마운트하는 코드를 보여준다.
목록 4. S3FS 설치하기
$ wget http://s3fs.googlecode.com/files/s3fs-r191-source.tar.gz $ tar xzf s3fs-r191-source.tar.gz $ cd s3fs $ make $ sudo make install |
액세스 키와 비밀 액세스 키를 제공하는 Amazon S3 계정을 이미 보유했다고 가정하면, 다음과 같은 명령으로 소유한 어느 버킷이나 마운트할 수 있다.
$ s3fs bucket_name -ouse_cache=/tmp -o accessKeyId=your_access_key \ -o secretAccessKey=your_secret_access_key /mnt |
S3FS를 통해 Amazon S3에서 바로 전체 Git 저장소를 보관하거나 Amazon의 스토리지 시스템에 백업을 놓기 위해
rsync를 사용할 수 있다.
FUSE의 또 다른 훌륭한 사용 방식은 archivemount이다. 이는 tarballs(또는 gzip 압축된 tar
아카이브)를 비롯하여 아카이브의 많은 양식을 로컬 파일 시스템으로 마운트하기 위한 유틸리티이다. 시스템에 사용 가능한
libarchive가 있다고 가정하면 목록 5와 같이
archivemount를 빠르게 빌드할 수 있다.
목록 5. archivemount 설치하기
$ wget http://www.cybernoia.de/software/archivemount/archivemount-0.6.1.tar.gz $ tar xzf archivemount-0.6.1.tar.gz $ cd archivemount-0.6.1 $ ./configure $ make $ sudo make install |
예제로서 독자는 자체적인 tarball을 파일 시스템으로 마운트하기 위해 archivemount를 사용할 수
있다. 목록 6은 코드를 보여준다.
목록 6. 파일 시스템으로 tarball 마운트하기
$ tar tfz archivemount-0.6.1.tar.gz archivemount-0.6.1/ archivemount-0.6.1/README ... archivemount-0.6.1/archivemount.c archivemount-0.6.1/CHANGELOG $ mkdir -p ~/mnt/tgz $ archivemount archivemount-0.6.1.tar.gz ~/mnt/tgz $ cd ~/mnt/tgz/archivemount-0.6.1 $ ls aclocal.m4 archivemount.c configure depcomp Makefile.in archivemount.1 CHANGELOG configure.ac install-sh missing archivemount.1.in config.h.in COPYING Makefile.am README |
SSHFS를 사용하기 전에, archivemount는 tarball로 원활한 로컬 파일 시스템 유사 액세스를
제공한다. 독자가 tarball의 "파일 시스템"으로 어느 파일이나 수정, 삭제 또는 추가하면 모든 변경이
FUSE 파일 시스템을 마운트 해제할 때 원본 tarball로 저장된다. 명령
fusermount -u ~/mnt/tgz는 주어진 마운트 지점으로부터 FUSE 파일 시스템을 마운트
해제한다. 목록 7은 tarball "파일 시스템"의 단면을 보여준다.
목록 7. archivemount를 통해 파일 쓰기
$ cd ~/mnt/tgz/archivemount-0.6.1 $ echo 'Remember this for later.' > NOTES $ ls aclocal.m4 CHANGELOG COPYING Makefile.in archivemount.1 config.h.in depcomp missing archivemount.1.in configure install-sh NOTES archivemount.c configure.ac Makefile.am README $ fusermount -u ~/mnt/tgz $ tar tfz archivemount-0.6.1.tar.gz archivemount-0.6.1/ archivemount-0.6.1/README ... archivemount-0.6.1/CHANGELOG archivemount-0.6.1/NOTES |
목록 7에서 최종 tar 명령은
NOTES가 실제로 tarball에 추가되었다는 점을 확인한다.
archivemount로 확장하는 아카이브에 대한 하나의 제한사항:
쓰기 조작이 실패하면 모든 변경이 손실되기 때문에 소프트웨어 작성자는 아카이브로의 쓰기 조작에 대해 경고한다. 하지만, 일반적으로 적은 수의 쓰기 조작은 잘 작동한다. 그럼에도 불구하고
archivemount의 읽기 전용 기능이 강력하다고 생각할 가능성이 있다.
FUSE를 통해 마운트된 것을 검토하려면 일반적인 mount 명령을 간단하게 실행하고
fuse로 표시된 시스템을 찾는다. 이는 목록 8에 표시된다.
목록 8. FUSE 마운트된 파일 시스템
$ mount /dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) ... udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) fusectl on /sys/fs/fuse/connections type fusectl (rw) archivemount on /home/strike/mnt/tgz type fuse.archivemount (rw,nosuid,nodev,user=strike) |
이 기사의 테스트베드는 Dell® 데스크탑 PC에서 실행 중인 Ubuntu 버전 10이었다.
목록 8에서 mount 과정 내역에서
맨 아래에서 archivemount 파일 시스템과 맨 위에 Linux 시스템이 마운트한 일반적인 실제 디바이스를
확인할 수 있다.
이전 두 가지 예제를 기반으로 FUSE가 원격 또는 패키지된 파일에 원활한 액세스를 제공하기 위해 많은 네트워크된
서비스와 파일 형식을 랩핑할 수 있다는 점을 상상할 수 있다.
실제로 많은 작업 구현 방식이 있다. WikipediaFS는 Wikipedia를 로컬 파일 시스템으로 마운트하며, 여기에서 기사를 로컬로 편집할 수 있다. 다른
패키지는 Blogger, Flickr 및 Google Mail 서비스에 거의 비슷한 기능을 제공한다.
FUSE의 또 다른 사용방식은 미러링 또는 병렬로 파일의 사본을 유지보수하는 것이다.
하나의 추론적 예제는 EncFS(FUSE-centric Encrypted File System)이다. 소스 디렉토리와 대상 디렉토리가
있으면, 소스 디렉토리에 쓰인 모든 파일은 자동으로 암호화되고 대상 디렉토리로 저장된다. librlog인
유연한 메시지 로깅 라이브러리가 EncFS의 전제조건이다. 목록 9와 같이 소스 또는 배포의 저장소에서부터 이를 설치하고
그 후에 EncFS를 계속 빌드한다.
목록 9. EncFS 설치하기
$ wget http://encfs.googlecode.com/files/encfs-1.6-1.tgz $ tar xzf encfs-1.6-1.tgz $ cd encfs-1.6-1 $ ./configure $ make $ sudo make install |
패키지가 설치된 후에 진행할 준비가 되었다. 두 개의 새 디렉토리를 작성해야 한다—하나는 원본 파일이고 다른 하나는 암호화된 파일이다.
encfs 유틸리티가 두 개를 함께 맵핑한다. 이는
목록 10에 표시된다.
목록 10. 암호화를 위해 디렉토리 탠덤 작성하기
$ mkdir ~/data $ mkdir ~/encrypted_data $ encfs ~/encrypted_data ~/data Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for preconfigured paranoia mode, anything else, or an empty line will select standard mode. ?> p Paranoia configuration selected. Configuration finished. The file system to be created has the following properties: Filesystem cipher: "ssl/aes", version 2:2:1 Filename encoding: "nameio/block", version 3:0:1 Key Size: 256 bits Block Size: 1024 bytes, including 8 byte MAC header Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File data IV is chained to filename IV. File holes passed through to ciphertext. -------------------------- WARNING -------------------------- The external initialization-vector chaining option has been enabled. This option disables the use of hard links on the file system. Without hard links, some programs may not work. The programs 'mutt' and 'procmail' are known to fail. For more information, please see the encfs mailing list. If you would like to choose another configuration setting, please press CTRL-C now to abort and start over. Now you will need to enter a password for your file system. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: Verify Encfs Password: |
일반적으로 "파라노이아(paranoia)" 모드를 선택할 수 있다. 그 다음으로, 파일을 보호하기 위해 비밀번호를 입력하고 이를 다시 입력하여 비밀번호를 확인한다. 목록 11은 해당 코드를 보여준다.
목록 11. EncFS가 자동으로 새 파일을 암호화한다
$ cd ~/data $ vi secrets.txt [Create file with your secrets.] $ ls secrets.txt $ ls ~/encrypted_data LKs2bi5sfttNlyExybM6eNck |
독자가 작성하는 파일은 각각 암호화된 디렉토리에 반영되고, 심지어 파일의 이름이 암호화된다. 목록 12와 같이 완료되면 암호화되지 않은 디렉토리를 간단하게 마운트 해제한다. 디렉토리의 컨텐츠가 제거되어 안전한 파일만 남게 된다.
목록 12. 암호화된 디렉토리 마운트 해제하기
$ fusermount -u ~/data $ ls ~/data No such file or directory $ ls ~/encrypted_data LKs2bi5sfttNlyExybM6eNck |
암호화되지 않은 파일을 보려면 이전에 암호화된 파일 세트로 마운트 지점을 연결하자. 다음과 같이 스스로 인증하라는 프롬프트가 표시될 때 비밀번호를 입력한다.
$ encfs ~/encrypted_data ~/data EncFS Password: $ ls ~/data secrets.txt |
한 번 다시 마운트되면 원본 파일이 사용 가능하고 평문으로 확인 가능하다. 파일을 변경하면 파일이 다시 인코딩된다.
비록 이전 예제가 매우 간단하지만, FUSE의 성능을 과소 평가하지 마라. 일부 고성능 파일 스토리지 솔루션도 사용자 공간에서 실행한다. 예를 들어, ZFS-Fuse는 사용자 공간에서 ZFS의 구현 방식이다. MooseFS는 오류 허용의 네트워크 분산 파일 시스템이다. 이는 몇 가지 실제 서버에 걸쳐 데이터를 퍼뜨리지만 사용자는 혼합물(amalgam)을 하나의 UNIX형 파일 시스템 자원으로 취급한다. 그리고 GlusterFS는 FUSE를 기반으로 하는 고성능 분산 파일 시스템이다.
GlusterFS 배치를 설명하는 것은 이 기사의 범위를 벗어나지만, 간략한 소개에서는 FUSE로 빌드할 수 있는 기능을 시연해야 하므로, 커널 수정 및 패치를 피한다. 구체적으로 말하면, GlusterFS는 다음을 수행할 수 있다.
- 시스템의 수에 관계 없이 포괄한다.
- 서로 다른 이기종 스토리지 디바이스 및 실제 파일 시스템을— GlusterFS가 브릭(brick)으로 참조하는 것— 통합된 풀 또는 네임스페이스로 수집한다.
- 애드 혹 방식으로 파일 시스템 기능— GlusterFS가 변환기를 호출하는 것—을 모아 사용자 정의된 스토리지 솔루션을 빌드한다. 하나의 변환기가 복제를 제공하는 동안, 또 다른 변환기는 TCP/IP를 통한 연결을 구현한다.
- 미리 읽기(read-ahead), 나중 쓰기(write-behind) 및 다수의 다른 비결로 성능을 신장시킨다.
GlusterFS 버전 3은 소프트웨어의 초기 설정을 엄청나게 간소화하며, 이는 다시 말해서 시스템의 서브네트워크에 걸쳐서 SSH 키를 설정하는 것보다 아주 약간 더 복잡하다. GlusterFS가 커널 업데이트 또는 특수 사용자 정의를 요구하지 않는 것이 더 낫다. 왜냐하면 이는 FUSE로 쓰여져 있기 때문에, 커널의 환경 외부에 조작하고 어느 개발자나 관계 없이 확장될 수 있다.
FUSE는 엄청난 기술이다. 이를 통해 Python, Ruby, Lua, C/C++,
Java™ 언어 및 기타 등등을 비롯하여 얼마든지 대중적인 프로그래밍 언어에서 새 파일 시스템을
개발할 수 있다. 게다가 새 파일 시스템을 작성하고 배치한다고 해서 모든 실행 중인 시스템의 커널을
변경할 필요는 없다. "Develop
your own filesystem with FUSE: No kernel programming required"라는 제목의 또 다른 developerWorks
기사에서 커널로 탠덤에서 FUSE가 어떻게 작업하는지에 대해 자세히 배울 수 있다. 추가 읽기 자료와
여기에서 언급한 프로젝트로의 링크는 참고자료 섹션을 참조하자.
이제 다수의 FUSE 파일 시스템을 사용할 수 있으며 매일 더 많이 나타난다.
ZFS-Fuse 및 GlusterFS는 매우 정교한 솔루션의 두 가지 예제이지만
archivemount 및 SSHFS가 더 유용하다. 모든 FUSE 파일 시스템은
특정 요구사항을 다룬다. 특수한 요구가 있는 경우, FUSE와 약간의 코드로 자체적인 파일 시스템
작성을 고려할 수 있다.
교육
-
Speaking
UNIX: 본 시리즈의 다른 파트를 살펴본다.
-
Zettabyte
file system: Sun에서 최초로 작성하고 이제는 Oracle이 유지보수하는 환상적인 ZFS에 대해
자세히 읽어보자.
-
Network file
system: NFS와 그 오랜 역사에 대해 자세히 알아보자. NFS의 원본 버전은 1989년으로 거슬러 올라간다.
-
Journaled file system: 많은 파일 시스템은
데이터의 손실을 방지하는 저널링을 제공한다. 원본 JFS는 1990년에 IBM이 작성하였다.
-
B-tree file system: Wikipedia는 Btrfs에 대한
훌륭한 소개글을 제공하고 많은 다른 코드의 소스 및 기술 정보로의 링크를 제시한다.
-
Encrypted file system: EncFS의 모든 옵션을 탐색하려면
프로젝트 페이지를 확인하자. EncFS 백업을 유지보수하기 위해 페이지의 참고에 특히 주의를 기울이자.
-
MooseFS: MooseFS는 오류 허용인 네트워크 분산 파일 시스템이다. 이는
Mac OS X를 비롯하여 FUSE 구현 방식으로 어느 시스템에서나 작업한다.
-
AIX와 UNIX developerWorks 영역:
AIX와 UNIX 영역에서는 AIX 시스템 관리와 UNIX 스킬 확장의 모든 측면과 관련된 풍부한 정보를 제공한다.
-
AIX와 UNIX 입문
AIX와 UNIX 입문 페이지에서 자세한 정보를 볼 수 있다.
-
기술
서점: 다양한 기술 주제와 관련된 서적을 살펴볼 수 있다.
제품 및 기술 얻기
-
libarchive: Google Code의 저장소에서libarchive에 대한 소스를 다운로드하자.libarchive는archivemount를 빌드하고 사용하는 데 필요하다. -
archivemount: 프로젝트 페이지에서archivemount에 대한 소스 코드를 다운로드하자. 해당 소프트웨어는 로컬 파일 시스템으로 아카이브 파일을 마운트한다.
토론
-
developerWorks 블로그: 블로그를 읽어 보고
developerWorks community에 참여하자.
- Twitter의 developerWorks 페이지를 살펴보자.
- My developerWorks 커뮤니티에 참여하자.
-
AIX 및 UNIX® 포럼에 참여하자.
- AIX Forum
- AIX Forum for developers
- Cluster Systems Management
- Performance Tools Forum
- PowerVM Forum
- 기타 AIX and UNIX Forums
