이 책은 리눅스 시스템 명령, 쉘 스크립트, 프로그래밍 언어(gawk, Perl), 시스템 커널, 보안 시스템, X Window 등을 포함한 리눅스 환경에서의 프로그래밍 방법을 소개한다. 내용이 풍부하고 토론 내용이 포괄적이다. , Linux 시스템의 모든 측면을 다룹니다. 이 책과 함께 제공되는 CD에는 RedHat Linux 시스템의 최신 버전과 설치 방법은 물론, 이 책에 담긴 많은 양의 프로그램 코드가 포함되어 있어 독자의 읽기에 큰 도움이 되며, 사용하고 앞으로 사용할 기술자에게 종합적인 참고 자료를 제공합니다. 리눅스 시스템.
목차 머리말 1장 리눅스 시스템 소개 1장 리눅스 소개…1
1.1 리눅스의 기원 1
1.2 자유 소프트웨어 재단의 GNU 프로젝트 1
1.3 리눅스 발음 2
1.4 리눅스 2의 특징
1.5 기본 하드웨어 요구 사항 3
1.6 리눅스 3을 구하는 방법
1.6.1 인터넷에서 Linux 3 다운로드
1.6.2 CD에서 Linux 3 얻기
1.7 Linux 관련 웹 사이트 및 뉴스 토론 그룹 6
1.8 리눅스 7의 단점
2장 셸 및 일반 명령 8
2.1 로그인 및 로그아웃8
2.2 리눅스 시스템의 쉘 8
2.3 일반적인 쉘 명령 9
2.3.1 계정 비밀번호 변경 9
2.3.2 온라인 도움말 9
2.3.3 원격 로그인 9
2.3.4 파일 또는 디렉터리 처리 9
2.3.5 작업 디렉터리 변경 10
2.3.6 파일 복사 10
2.3.7 파일 및 디렉터리 이름 이동 또는 변경 10
2.3.8 새 디렉터리 생성10
2.3.9 디렉토리 삭제 11
2.3.10 파일 삭제 11
2.3.11 현재 디렉토리 위치 나열 11
2.3.12 파일 내용 보기 11
2.3.13 페이지별 파일 내용 보기 11
2.3.14 디렉토리가 차지하는 디스크 공간 확인 11
2.3.15 파일 전송 11
2.3.16 파일 권한 설정 12
2.3.17 자신이 속한 워크그룹 이름을 확인하세요13
2.3.18 파일 또는 디렉터리 작업그룹 소유권 변경 13
2.3.19 파일 또는 디렉터리의 마지막 수정 시간 변경13
2.3.20 파일 링크 13
2.3.21 파일에서 문자열 검색 14
2.3.22 파일 또는 명령어의 경로 검색 14
2.3.23 파일 또는 디렉터리의 내용 비교14
2.3.24 파일 출력 14
2.3.25 일반 문서 인쇄 14
2.3.26 troff 파일 인쇄 14
2.3.27 프린터 제어 명령 14
2.3.28 프로세스 제어 15
2.3.29 쉘 변수 16
2.3.30 환경변수 16
2.3.31 별칭 16
2.3.32 기록 명령 17
2.3.33 파일 압축 17
2.3.34 파이프라인 명령 사용 17
2.3.35 입출력 제어 18
2.3.36 시스템 내 사용자 보기 18
2.3.37 사용자 이름 변경18
2.3.38 사용자 이름 보기 18
2.3.39 현재 시스템에 있는 모든 워크스테이션의 사용자 보기 19
2.3.40 워크스테이션에서 사용자와 채팅 19
2.3.41 원격 시스템의 정상 여부 확인 19
2.3.42 이메일 사용 소개 19
3장 리눅스 시스템의 네트워크 기능 21
3.1 Linux 21에서 지원되는 네트워크 프로토콜
3.1.1 TCP/IP 21
3.1.2 TCP/IP 버전 6 21
3.1.3 IPX/SPX 21
3.1.4 AppleTalk 프로토콜 제품군 21
3.1.5 광역 네트워크 22
3.1.6 ISDN 22
3.1.7 PPP, SLIP, PLIP 22
3.1.8 아마추어 무선 22
3.1.9 ATM 22
3.2 Linux 시스템에서의 파일 공유 및 인쇄 공유 22
3.2.1 매킨토시 환경 22
3.2.2 윈도우 환경 22
3.2.3 Novell 환경 23
3.2.4 유닉스 환경 23
3.3 리눅스 시스템의 인터넷/인트라넷 기능 23
3.3.1 이메일 23
3.3.2 웹서버 24
3.3.3 웹 브라우저 24
3.3.4 FTP 서버와 클라이언트 24
3.3.5 뉴스 서비스 24
3.3.6 도메인 이름 시스템 24
3.3.7 DHCP와 부트 24
3.3.8 NIS 24
3.4 Linux 시스템에서 애플리케이션 원격 실행 24
3.4.1 텔넷 25
3.4.2 원격 명령 25
3.4.3 X 윈도우 25
3.5 리눅스 시스템의 네트워크 연동 기능 25
3.5.1 라우터 25
3.5.2 브리지 25
3.5.3 IP 위장 25
3.5.4 IP 통계 26
3.5.5 IP 별칭 26
3.5.6 유량 제한기 26
3.5.7 방화벽 26
3.5.8 포트 다운로드 26
3.5.9 로드 밸런싱 26
3.5.10 EQL 27
3.5.11 프록시 서버 27
3.5.12 주문형 다이얼 27
3.5.13 파이프, 모바일 IP 및 가상 개인 네트워크 27
3.6 리눅스 시스템의 네트워크 관리 27
3.6.1 Linux 시스템에서의 네트워크 관리 애플리케이션 27
3.6.2 SNMP28
3.7 엔터프라이즈 리눅스 네트워크 28
3.7.1 고가용성 28
3.7.2 RAID 28
3.7.3 중복 네트워크 28
4장 Linux 시스템 관리 소개 29
4.1 루트 계정 29
4.2 시스템 시작 및 종료 29
4.2.1 플로피 디스크에서 부팅하기 29
4.2.2 LILO 29로 시작하기
4.2.3 리눅스 시스템 종료 30
4.3 파일 시스템 마운트 30
4.3.1 플로피 디스크 마운트 30
4.3.2 새로운 파일 시스템 생성 30
4.3.3 파일 시스템 마운트 해제 31
4.4 파일 시스템 확인 31
4.5 파일을 스왑 영역으로 사용하기 31
4.6 시스템 및 파일 백업 32
4.7 시스템 설정 33
4.7.1 시스템 이름 설정 33
4.7.2 유지관리 디스크 사용 33
4.7.3 루트 계정 비밀번호 재설정 33
4.7.4 로그인 정보 설정 33
2부 Linux 고급 언어 및 관리 프로그래밍 5장 쉘 프로그래밍 35
5.1 쉘 생성 및 실행 35
5.1.1 쉘 생성 35
5.1.2 쉘 실행 35
5.2 쉘 변수 사용36
5.2.1 변수에 값 할당하기 36
5.2.2 변수 값 읽기 37
5.2.3 위치변수 및 기타 시스템변수 37
5.2.4 따옴표의 역할 37
5.3 수치연산 명령어 38
5.4 조건식 40
5.4.1 표현식 40인 경우
5.4.2 사례 표현 41
5.5 루프문 42
5.5.1 명령문 43
5.5.2 while 문 43
5.5.3 명령문 44까지
5.6 시프트 명령 44
5.7 select 문 45
5.8 반복문 46
5.9 하위 기능 46
6장 gawk 언어 프로그래밍 48
6.1 gawk의 주요 기능 48
6.2 gawk 프로그램 실행 방법 48
6.3 파일, 기록 및 필드 48
6.4 패턴과 액션 49
6.5 비교연산과 수치연산 50
6.6 내부 기능 50
6.6.1 난수와 수학 함수 51
6.6.2 문자열 내부 함수 51
6.6.3 입출력 내부 기능 52
6.7 문자열과 숫자52
6.8 포맷된 출력 52
6.9 필드 구분자 변경 54
6.10 메타문자 54
6.11 gawk 프로그램 호출하기 55
6.12 시작과 끝 55
6.13 변수 56
6.14 내장 변수 56
6.15 제어 구조 57
6.15.1 표현식 57인 경우
6.15.2 while 루프 57
6.15.3 루프 58의 경우
6.15.4 다음 및 58번 출구
6.16 배열 58
6.17 사용자 정의 함수 58
6.18 몇 가지 예 59
7장 Perl 언어 프로그래밍 60
7.1 펄 60이란?
7.2 Perl 60의 현재 상태
7.3 Perl 60으로 첫 시도
7.4 펄 변수 60
7.4.1 스칼라 60
7.4.2 배열 63
7.4.3 관련 배열 65
7.5 파일 핸들과 파일 작업 65
7.6 루프 구조 66
7.6.1 foreach 루프 66
7.6.2 판정 동작 66
7.6.3 루프 67에 대한
7.6.4 while과 Until 루프 67
7.7 조건부 구조 67
7.8 문자 매칭 68
7.9 대체 및 변환 69
7.9.1 교체 69
7.9.2 번역 70
7.10 하위 프로세스 70
7.10.1 하위 프로세스의 정의 70
7.10.2 매개변수 70
7.10.3 반환값 70
7.11 Perl 프로그램의 완전한 예 71
3부 Linux 시스템 커널 분석 8장 Linux 커널 소개 73
8.1 시스템 초기화 73
8.2 시스템 운영 73
8.3 커널이 제공하는 다양한 시스템 호출 74
8.3.1 프로세스의 기본 개념과 시스템의 기본 데이터 구조 74
8.3.2 프로세스 생성 및 삭제 74
8.3.3 프로그램 실행 74
8.4 파일 시스템 접근하기 75
9장 시스템 프로세스 76
9.1 프로세스란 무엇인가 76
9.2 프로세스 구조 76
9.3 프로세스 일정 계획 78
9.4 프로세스에서 사용되는 파일 79
9.5 프로세스가 사용하는 가상 메모리 80
9.6 프로세스 생성 81
9.7 처리 시간과 타이머 81
9.7.1 실시간 시계 81
9.7.2 가상시계 81
9.7.3 이미지 클럭 81
9.8 프로그램 실행 82
9.8.1 ELF 파일 82
9.8.2 스크립트 파일 82
10장 메모리 관리 83
10.1 메모리 관리의 역할 83
10.2 가상 메모리의 추상 모델 83
10.3 요청 시 페이지 로드 84
10.4 교환 85
10.5 공유 가상 메모리 85
10.6 접근 제어 85
10.7 캐싱 86
10.7.1 버퍼 캐시 86
10.7.2 페이지 캐시 86
10.7.3 스왑 캐시 86
10.7.4 하드웨어 캐시 86
10.8 시스템 페이지 표 86
10.9 페이지 할당 및 할당 해제 87
10.9.1 88 페이지 할당
10.9.2 88페이지 공개
10.10 메모리 매핑 88
10.11 요청 페이지 89
10.12 페이지 캐싱 89
10.13 커널 스왑 데몬 90
11장 프로세스 간 통신 91
11.1 신호 메커니즘 91
11.2 파이프라인 메커니즘 92
11.3 시스템 V IPC 메커니즘 93
11.3.1 메시지 큐 93
11.3.2 세마포어 94
11.3.3 공유 메모리 96
12장 PCI 98
12.1 PCI 시스템 98
12.2 PCI 주소 공간 98
12.3 PCI 설정 헤더 99
12.4 PCI I/O 및 PCI 메모리 주소 100
12.5 PCI-ISA 브리지 100
12.6 PCI-PCI 브리지 100
12.7 PCI 초기화 101
12.7.1 PCI 101과 관련된 리눅스 시스템 커널 데이터 구조
12.7.2 PCI 장치 드라이버 102
12.7.3 PCI BIOS 기능 105
12.7.4 PCI 수정 105
13장 인터럽트와 인터럽트 처리 106
13.1 인터럽트 106
13.2 프로그래밍 가능한 인터럽트 컨트롤러 106
13.3 인터럽트 처리를 위한 데이터 구조 초기화 107
13.4 인터럽트 처리 108
14장 장치 드라이버 109
14.1 하드웨어 장치 관리 109
14.2 폴링과 인터럽트 110
14.3 직접 메모리 접근 110
14.4 메모리 111
14.5 디바이스 드라이버와 커널 사이의 인터페이스 111
14.5.1 문자 장치 112
14.5.2 블록 장치 113
14.6 하드디스크 113
14.6.1 IDE 하드디스크 115
14.6.2 IDE 하드 디스크 하위 시스템 초기화 115
14.6.3 SCSI 하드 디스크 115
14.6.4 SCSI 디스크 하위 시스템 초기화 116
14.6.5 블록 장치 요청 전달하기 118
14.7 네트워크 장비 118
14.7.1 네트워크 장치 파일 이름 118
14.7.2 버스정보 118
14.7.3 네트워크 인터페이스 태그 119
14.7.4 프로토콜 정보 119
14.7.5 네트워크 장치 초기화하기 119
15장 파일 시스템 121
15.1 리눅스 파일 시스템 개요 121
15.2 ext2 파일 시스템 122
15.2.1 ext2의 인덱스 노드 122
15.2.2 ext2 슈퍼블록 124
15.2.3 ext2 데이터 블록 그룹 설명자 124
15.2.4 ext2의 디렉토리 125
15.2.5 ext2 파일 시스템에서 파일 찾기 125
15.2.6 ext2 파일 시스템의 파일 크기 변경 126
15.3 VFS 127
15.3.1 VFS 슈퍼블록 128
15.3.2 VFS 아이노드 129
15.3.3 파일 시스템 등록 129
15.3.4 파일 시스템 마운트 130
15.3.5 VFS 131에서 파일 찾기
15.3.6 파일 시스템 실행 취소 131
15.3.7 VFS 아이노드 캐시 132
15.3.8 VFS 디렉토리 캐싱 132
15.4 버퍼 캐싱 133
15.5 /proc 파일 시스템 135
16장 네트워크 시스템 136
16.1 TCP/IP 네트워크 소개 136
16.2 TCP/IP 네트워크 계층화 137
16.3 BSD 소켓 138
16.4 INET 소켓 계층 140
16.4.1 BSD 소켓 생성하기 141
16.4.2 INET BSD 소켓의 주소 지정 141
16.4.3 INET BSD 소켓에 연결 만들기 142
16.4.4 INET BSD 소켓에서 수신 대기 142
16.4.5 연결 요청 수신 143
16.5 IP 계층 143
16.5.1 소켓 버퍼 143
16.5.2 IP 패킷 수신 144
16.5.3 IP 패킷 보내기 144
16.5.4 데이터 단편화 144
16.6 주소 확인 프로토콜 145
17장 시스템 커널 메커니즘 147
17.1 하반부 처리 147
17.2 작업 대기열 148
17.3 타이머 149
17.4 대기 큐 149
17.5 세마포어 150
4부 Linux 시스템의 고급 프로그래밍 18장 Linux 커널 모듈 프로그래밍 151
18.1 간단한 프로그램 Hello World 151
18.2 장치 파일 152
18.3 /proc 파일 시스템 156
18.4 /proc를 사용하여 158 입력
18.5 장치 파일과 통신하기 162
18.6 시동 매개변수 169
18.7 시스템 호출 170
18.8 차단 프로세스 172
18.9 printk 교체 177
18.10 작업 예약 178
19장 프로세스 통신을 위한 프로그래밍 181
19.1 프로세스 간 통신 소개 181
19.2 반이중 UNIX 파이프 181
19.2.1 기본 개념 181
19.2.2 C 언어를 사용하여 파이프라인 만들기 182
19.2.3 파이프라인을 생성하는 간단한 방법 185
19.2.4 파이프를 이용한 자동화 187
19.2.5 반이중 파이프 사용시 주의사항 188
19.3 명명된 파이프 188
19.3.1 기본 개념 188
19.3.2 FIFO 생성 188
19.3.3 FIFO 연산 189
19.3.4 FIFO 차단 190
19.3.5 SIGPIPE 신호 190
19.4 시스템 V IPC 190
19.4.1 기본 개념 190
19.4.2 메시지 큐의 기본 개념 191
19.4.3 시스템 호출 msgget() 194
19.4.4 시스템 호출 msgsnd() 195
19.4.5 시스템 호출 msgctl() 197
19.4.6 msgtool의 인스턴스 199
19.5 세마포어를 사용한 프로그래밍 201
19.5.1 기본 개념 201
19.5.2 시스템 호출 semget() 202
19.5.3 시스템 호출 semop() 203
19.5.4 시스템 호출 semctl() 204
19.5.5 세마포어 세트 사용 예: semtool 205
19.6 공유 메모리 209
19.6.1 기본 개념 209
19.6.2 시스템 내부 사용자 데이터 구조
shmid_ds 209
19.6.3 시스템 호출 shmget() 210
19.6.4 시스템 호출 shmat() 211
19.6.5 시스템 호출 shmctl() 211
19.6.6 시스템 호출 shmdt() 212
19.6.7 공유 메모리 사용 예: shmtool 212
20장 고급 스레드 프로그래밍 215
20.1 스레드의 개념과 사용법 215
20.2 간단한 예 215
20.3 스레드 동기화 217
20.4 세마포어 코디네이터 사용하기 218
20.5 세마포어 구현 220
20.5.1 세마포어.h 220
20.5.2 Semaphore.c 221
21장. 리눅스 시스템 네트워크 프로그래밍 225
21.1 소켓이란 무엇인가 225
21.2 두 가지 유형의 인터넷 소켓 225
21.3 네트워크 프로토콜 계층화 225
21.4 데이터 구조 225
21.5 IP 주소와 사용 방법 226
21.5.1 소켓() 226
21.5.2 바인드() 226
21.5.3 연결() 227
21.5.4 듣기() 228
21.5.5 수락() 228
21.5.6 send()와 recv() 229
21.5.7 sendto()와 recvfrom() 230
21.5.8 close() 및 shutdown() 230
21.5.9 getpeername() 231
21.5.10 gethostname() 231
21.6 DNS 231
21.7 클라이언트/서버 모델 232
21.8 간단한 데이터 스트리밍 서버 프로그램 232
21.9 간단한 스트리밍 클라이언트 프로그램 234
21.10 데이터그램 소켓 235
21.11 차단 237
22장 Linux I/O 포트 프로그래밍 240
22.1 C 언어에서 I/O 포트 240을 사용하는 방법
22.1.1 일반적인 방법 240
22.1.2 또 다른 대안: /dev/port 241
22.2 하드웨어 인터럽트와 DMA 접근 241
22.3 매우 정확한 시간 241
22.3.1 지연 시간 241
22.3.2 시간 측정 243
22.4 다른 프로그래밍 언어 사용하기 243
22.5 유용한 I/O 포트 243
22.5.1 병렬 포트 243
22.5.2 게임 포트 244
22.5.3 직렬 포트 245
5부 Linux 시스템 보안 분석 23장 시스템 관리자 보안 247
23.1 보안 관리 247
23.2 슈퍼유저 247
23.3 파일 시스템 보안 247
23.3.1 리눅스 파일 시스템 개요 247
23.3.2 장치 파일 248
23.3.3 /etc/mknod 명령 249
23.3.4 보안 고려사항 249
23.3.5 찾기 명령 250
23.3.6 보안 프로그램 250
23.3.7 ncheck 명령 250
23.3.8 파일 시스템 설치 및 제거 250
23.3.9 시스템 디렉터리 및 파일 251
23.4 루트로 실행되는 프로그램 251
23.4.1 시스템 시작 251
23.4.2 초기화 프로세스 251
23.4.3 다중 사용자 입력 252
23.4.4 종료 명령 252
23.4.5 시스템 V cron 프로그램 252
23.4.6 System V 버전 252 이후의 cron 프로그램
23.4.7 /etc/프로필 253
23.5 /etc/passwd 파일 253
23.5.1 비밀번호 만료 253
23.5.2 UID와 GID 254
23.6 /etc/group 파일 254
23.7 사용자 추가, 삭제, 이동 254
23.7.1 사용자 추가하기 254
23.7.2 사용자 255 삭제
23.7.3 다른 시스템으로 사용자 이동 255
23.8 보안 점검 255
23.8.1 회계 255
23.8.2 기타 확인 명령어 256
23.8.3 보안검사 절차의 문제점 256
23.8.4 시스템 유출 후 조치 257
23.9 제한된 환경 258
23.9.1 제한된 인클로저 258
23.9.2 chroot()를 사용하여 사용자 제한 258
23.10 소규모 시스템 보안 259
23.11 물리적 보안 259
23.12 사용자 인식 260
23.13 시스템 관리자 인식 261
23.13.1 시스템 관리자의 개인 로그인 보안 유지 261
23.13.2 시스템 보안 유지 261
24장 시스템 프로그래머 보안 263
24.1 시스템 서브루틴 263
24.1.1 I/O 서브루틴 263
24.1.2 프로세스 제어 263
24.1.3 파일 속성 264
24.1.4 UID와 GID 처리 265
24.2 표준 C 라이브러리 265
24.2.1 표준 I/O 265
24.2.2 /etc/passwd 처리 266
24.2.3 /etc/group 처리 267
24.2.4 암호화 서브루틴 268
24.2.5 쉘 실행 268
24.3 안전한 C 프로그램 작성 268
24.3.1 고려해야 할 보안 문제268
24.3.2 SUID/SGID 프로그램 지침 269
24.3.3 SUID/SGID 프로그램 컴파일 및 설치 방법
24.4 루트 사용자 프로그램 설계 270
25장 리눅스 시스템의 네트워크 보안 272
25.1 UUCP 시스템 개요 272
25.1.1 UUCP 명령 272
25.1.2 uux 명령 272
25.1.3 uucico 프로그램 273
25.1.4 uuxqt 프로그램 273
25.2 UUCP 273의 보안 문제
25.2.1 USERFILE 파일 273
25.2.2 L.cmds 파일 274
25.2.3 uucp 로그인 274
25.2.4 uucp가 사용하는 파일과 디렉터리 274
25.3 허니댄버 UUCP 275
25.3.1 HONEYDANBER UUCP와 기존 UUCP 275의 차이점
25.3.2 로그인 이름 규칙 276
25.3.3 기계 규칙 277
25.3.4 MACHINE과 LOGNAME 결합
규칙 278
25.3.5 uucheck 명령 278
25.3.6 게이트웨이 278
25.3.7 로그인 파일 확인 279
25.4 기타 네트워크 279
25.4.1 원격 작업 로그인 279
25.4.2 NSC 네트워크 시스템 280
25.5 통신 보안 280
25.5.1 물리적 보안 280
25.5.2 암호화 281
25.5.3 사용자 신원 인증 282
25.6 SUN OS 시스템의 네트워크 보안 283
25.6.1 NFS 283 보안
25.6.2 NFS 보안 결함 284
25.6.3 원격 프로시저 호출 인증 284
25.6.4 리눅스 인증 메커니즘 284
25.6.5 DES 인증 시스템 285
25.6.6 공개 키워드 인코딩 286
25.6.7 네트워크 엔터티 명명 286
25.6.8 DES 식별 시스템의 적용 287
25.6.9 남은 보안 문제 287
25.6.10 성능 288
25.6.11 시작 및 setuid 프로그램으로 인해 발생하는 문제 288
25.6.12 요약 289
26장 Linux 시스템의 사용자 보안 290
26.1 비밀번호 보안 290
26.2 파일 권한 290
26.3 디렉토리 라이센스 291
26.4 umask 명령 291
26.5 사용자 ID 및 그룹 사용자 ID 권한 설정 291
26.6 cp mv ln 및 cpio 명령 291
26.7 su 및 newgrp 명령 292
26.7.1 su 명령 292
26.7.2 newgrp 명령 292
26.8 파일 암호화 292
26.9 기타 보안 문제 293
26.9.1 사용자의 .profile 파일 293
26.9.2 ls -a 293
26.9.3 .exrc 파일 293
26.9.4 임시 파일 및 디렉터리 293
26.9.5 UUCP와 기타 네트워크 293
26.9.6 트로이 목마 294
26.9.7 미끼 294
26.9.8 컴퓨터 바이러스 294
26.9.9 로그인한 터미널을 떠나려면294
26.9.10 지능형 단말기 294
26.9.11 시스템 연결 끊기 294
26.9.12 cu 명령 295
26.10 계정 보안을 유지하기 위한 팁 295
6부: X 윈도우 시스템의 내부 구조와 사용법 27장 X 윈도우 시스템의 기본 지식 297
27.1 X 윈도우 시스템 소개 297
27.1.1 X297의 특성
27.1.2 윈도우 시스템이란 무엇인가 298
27.1.3 X 개발의 역사 299
27.1.4 X 299의 곱
MIT에서 출시한 27.1.5 X 299
27.2 X 302의 기본 구조
27.2.1 X 303의 기본 요소
27.2.2 서비스 프로그램과 클라이언트 프로그램이 상호 작용하고 통신하는 방법 304
27.2.3 X의 네트워크 개요 306
27.3 사용자 인터페이스 관점에서 본 X 307 개요
27.3.1 관리 인터페이스: 창 관리자 307
27.3.2 애플리케이션 인터페이스와 도구 상자 309
27.3.3 기타 시스템 관점 309
27.4 용어 및 표기법 310
27.4.1 용어 310
27.4.2 기호 311
27.5 X 312 시작 및 종료
27.5.1 X 312 시작
27.5.2 X 프로그램 실행 방법 313
27.5.3 X 314 닫기
27.6 창 관리자 기본 사항 - uwm 315
27.6.1 윈도우 매니저란 무엇인가315
27.6.2 uwm 315 시작
27.6.3 기본 창 작업 - uwm
메뉴 315
27.6.4 창 이동 316
27.6.5 창 크기 조정 316
27.6.6 새 창 만들기 316
27.6.7 화면 공간 관리 318
27.6.8 응용 프로그램 창 중단 320
27.6.9 uwm 메뉴를 활성화하는 다른 방법 320
27.7 x 320을 사용하는 네트워크 장치
27.7.1 원격 터미널 지정 - 표시
옵션 321
27.7.2 원격 디스플레이의 실제 활용 322
27.7.3 액세스 모니터 제어 - xhost 322
27.8 터미널 에뮬레이터 - xterm 323에 대한 자세한 소개
27.8.1 xterm 기능 선택 - 메뉴 및 명령줄 옵션 323
27.8.2 xterm 화면 스크롤 324
27.8.3 단말기와의 상호작용 과정 기록 - 기록 작성 325
27.8.4 텍스트 자르기 325
27.8.5 Tektronix 시뮬레이션 기능 사용 326
27.8.6 다양한 글꼴 사용 327
27.8.7 색상 사용하기 327
27.8.8 기타 xterm 옵션 327
27.8.9 터미널 키보드 구성 328
28장 유틸리티 및 도구 329
28.1 유틸리티 329
28.2 화면 이미지 저장, 표시 및 인쇄 330
28.3 X 332를 사용한 애플리케이션
28.3.1 텍스트 편집기 - Xedit 333
28.3.2 메일/메시징 시스템 - xmh 336
28.4 예제와 게임 프로그램 336
28.4.1 무작위 미로를 통해 길 찾기 - 미로 336
28.4.2 마우스 포인터 역할을 하는 큰 눈—
엑스아이즈 336
28.4.3 지혜 보드 게임 - 퍼즐 337
28.4.4 큰 X 로고 인쇄 - xlogo 337
28.4.5 점핑 다면체 - ico 337
28.4.6 동적 기하학적 패턴 - Muncher 및
격자 무늬 337
28.7 정보와 상태를 표시하는 프로그램 337
28.7.1 X 서비스 프로그램의 특징을 나열하십시오.
xdpyinfo338
28.7.2 창에 대한 정보 얻기 338
28.7.3 X 사건 관찰 - xev 340
29장 X 윈도우 시스템 사용자 정의 341
29.1 X 글꼴 및 색상 사용 341
29.1.1 예비 글꼴 341
29.1.2 글꼴 이름 지정 342
29.1.3 특정 글꼴의 내용 관찰 - xfd 343
29.1.4 글꼴 및 위치 저장 343
29.1.5 예: 서비스 프로그램에 새 글꼴 추가 345
29.1.6 X 346 색상 사용
29.2 그래픽 정의 및 사용 347
29.2.1 시스템 그래픽 라이브러리 347
29.2.2 대화형 그래픽 편집 - 비트맵 347
29.2.3 그래픽을 편집하는 다른 방법 349
29.2.4 루트 창 사용자 정의 - xsetroot 349
29.3 애플리케이션 기본 옵션 정의 -
자원 350
29.3.1 resources350이란 무엇입니까?
29.3.2 X툴킷 351
29.3.3 리소스 관리 - 리소스 관리자 353
29.3.4 리소스 유형 - 값을 지정하는 방법 358
29.4 자원의 실제 활용 359
29.4.1 리소스 기본값 저장 위치 359
29.4.2 서비스 프로그램에 기본값 저장 -
xrdb363
29.4.3 일반적인 버그 및 수정 사항 366
29.5 키보드와 마우스 사용자 정의하기 367
29.5.1 변환의 실제 사용 368
29.5.2 변환 - 형식과 규칙 374
29.5.3 변환 사양의 일반적인 문제 377
29.6 키보드와 마우스 - 대응과 매개변수 379
29.6.1 키보드 및 마우스 매핑 - xmodmap 379
29.6.2 키보드 및 마우스 매개변수 설정 - xset 382
29.7 uwm 384의 추가 소개 및 사용자 정의
29.7.1 uwm 384의 새로운 기능
29.7.2 UWM 사용자 정의 386
29.8 디스플레이 관리자 - xdm 390
29.8.1 해야 할 일 390
29.8.2 xdm 391
29.8.3 xdm 392에 대한 추가 정보
29.8.4 uwm 구성 395
부록 A Gcc 사용법 소개 396
부록 B X 윈도우 윈도우 시스템 설치 410
확장하다