참고문헌
"유닉스 시스템 프로그래밍", 이종원, 한빛아카데미, 2017.7.17
1.1 "IT cookBook, 유닉스 이론과 실습", 윤소정, 이종원, 한빛미디어, 2006
1.2 "IT cookBook for Beginner, C언어 기초", 우재남, 한빛미디어, 2008
1.3 "The Design of the UNIX Operation System", Maurice J.,Bach, Prentice Hall, 1986
1.4 "유닉스 쉘 바이블", Elli Quigley, 케이앤피북스, 2008
1.5 "유닉스 파워 툴", 셀리 파워즈 외 3, 한빛미디어, 2005
1.6 "한국 썬 마이크로 시스템즈 공식 사이트", http://www.sun.co.kr
1.7 "솔라리스 무료 소프트웨어 ", http://www.sunfreeware.com
저자 머리말
이 책은 유닉스 시스템에서 제공하는 시스템 호출과 라이브러리 함수를 사용해서 시스템 프로그램을 작성하는 방법을 설명한다. 이책의 내용을 이해하려면 유닉스에 대한 기본적인 이해와 C언어를 이용해 프로그램을 작성할 줄 알아야한다. 유닉스 시스템 프로그래밍에서 다루는 시스템 호출은 C언어에서 함수로 사용되기 때문이다.
각 장에 대한 설명
유닉스 시스템 프로그래밍 입문(1장)
유닉스 시스템 표준, 프로그래밍의 정의.
기본 명령, C컴파일, make 명령
파일 입출력, 파일/디렉토리, 시스템 정보 함수 (2장~4장)
파일 입출력의 특징
저수준/고수준 파일 입출력 함수 이해
임시 파일을 사용한 파일 입출력
하드링크, 심볼릭링크 파일의 개념, 파일정보검색/파일사용권한검색 및 조정 함수
디렉토리의 특징, 검색/생성/삭제 함수 활용
유닉스 시스템 정보, 사용자 관련 정보, 시스템 시간 관리 함수
프로세스 관리 함수 (5장~6장)
프로세스에 대한 개념 이해
환경변수 활용방법
프로세스 생성/종료 함수
exec 함수로 새 프로세스 실행.. 프로세스 동기화 개념과 실행함수 익히기
시그널 처리함수(7장)
- 시그널은 프로세스 사이에 주고 받는 간단한 메세지이다. 기본 개념과 종류
- 시그널 처리 함수 사용법
프로세스간 통신 방법(8장~10장)
메모리 매핑, 파이프, 메시지 큐, 공유 메모리, 세마포어 등 프로세스간 통신방법
각 통신 방법의 기본 개념.
다양한 시스템 호출과 함수를 이용하여 프로세스간 통신 방법
소켓 프로그래밍의 기초와 활용(11장~12장)
TCP/IP프로토콜의 기본 개념을 이해하고, 소켓 프로그래밍에 필요한 구조체와 기본 함수를 익힘
소켓을 이용해 다른 시스템과의 통신 프로그래밍 방법을 배운다.
TCP와 UDP를 이용하여 통신 프로그램 작성법 배우기.
유닉스 시스템 프로그래머 성장 맵
유닉스 시스템 프로그래밍이란 유닉스에서 제공하는 시스템호출을 이용하여 프로그램을 작성하는 것이다. "시스템 호출"이란 유닉스 시스템이 제공하는 서비스를 프로그램에서 이용할 수 있도록 지원하는 프로그래밍 인터페이스이다. 유닉스는 파일 입출력, 파일 및 디렉토리 정보, 프로세스 관리, 시그널 처리, 프로세스나 시스템간 통신등 다양한 시스템 호출을 제공한다. 이 책에서는 유닉스에서 제공하는 시스템 호출의 사용법을 익히고, 이를 이용한 프로그램 작성법을 배운다.
유닉스는 현재 전세계적으로 사용되는 서버용 운영체제이다. 기관, 기업, 학교등에서 주요 업무 시스템으로 사용한다. 유닉스에서 동작하는 프로그램을 작성하는 프로그래머가 필요하며 프로그램을 작성하려면 시스템호출을 이용해야하므로 시스템 호출에 대해 배워야한다.
<성장 단계>
1단계. 유닉스와 C언어 기초 : 유닉스 시스템에 접속해서 파일을 편집하고 기본명령을 사용하며, 간단한 C프로그램을 작성할 수 있다.
2단계. 유닉스 시스템 프로그래밍 기초 : 다양한 시스템 호출을 응용하여 서버/클라이언트 프로그램을 작성할 수 있다.
3단계. 유닉스 네트워크 프로그래밍 : 고급 네트워크 기능을 이용하여 서버/클라이언트 프로그램을 작성할 수 있다.
4단계. 유닉스 시스템 프로그래밍 고급 : 시스템 호출의 고급기능 사용가능하고, BSD 유닉스시스템 환경에서도 시스템을 작성할 수 있다.
BSD 계열 유닉스 시스템의 프로그래밍 환경 이해
터미널 제어, 가상 터미널 프로그램 작성 방법
스레드 제어 프로그램 작성 방법
고급 IPC 프로그램 작성 방법
유닉스 로드맵(레벨이 높은 순서부터)
보안 전문가 : 네트워크의 발전에 따라 보안 관리가 중요해지고 있다. 시스템과 네트워크에 대한 지식을 바탕으로 보안을 담당하는 전문가의 수요가 증가하고 있다.
웹 서버 관리자 : 시스템 관리 기술과 웹 프로그래밍 능력을 겸비하고, 웹서버의 운영과 관리를 담당한다. 웹서버의 튜닝이 가능한 전문가가 필요하다.
네트워크 엔지니어 : 유닉스 시스템의 네트워크 설치와 관리를 담당하는 전문가. 유닉스 시스템은 대부분 네트워크를 사용하기 때문에 네트워크 전문가가 필요하다.
데이터베이스 전문가: 데이터베이스를 운영하고 관리하는 전문가이다. 대부분의 응용에 데이터베이스가 필요하므로 데이터 베이스 전문가가 필수다. 트기 데이터베이스를 튜닝할 수 있는 고급 전문가가 필요하다.
시스템 엔지니어 : 유닉스 시스템의 설치와 사용자 관리, 파일 시스템 관리, 장치 관리 등 시스템의 운영과 관리를 책임진다.
유닉스 프로그래머 : 유닉스 시스템 프로그래밍과 네트워크 프로그래밍 기술을 보유한 프로그래머이다. 클라이언트-서버 응용 프로그램을 개발할 때 서버측을 담당한다. 타분야의 프로그래머로 전환도 가능하다.
리눅스 엔지니어 : 리눅스는 유닉스와 유사한 기능을 수행하는 운영체제이다. 리눅스 설치와 관리 업무를 맡는다.