HOME > 도서정보 > 도서상세보기
 
원리와 실제
리눅스 프로그래밍
지은이 창병모
정  가 24,000원
상  태 판매중
출판일 2014.07.07
페이지 420
사이즈 4x6배판 / 2색(부분컬러)
ISBN 9788970508153
강의자료는 교수/강사 님으로 로그인후 이용하실 수 있습니다.
리눅스_학습자용.zip
소스파일(C), 설치 가이드 [20170303]
 
유닉스는 1970년대 초에 미국 AT&T 벨연구소에서 단순성과 이식성, 개방성을 기본 철학으로 해서 개발된 다중 사용자 운영체제로 그 이후로 지속적으로 발전해 오고 있습니다. 처음 유닉스 운영체제는 중형 컴퓨터에 사용되도록 고안되었으나 점차 발전하면서 슈퍼컴퓨터, 메인프레임, 워크스테이션, PC, 스마트폰에 이르기까지 그 영역이 확대되고 있습니다.

리눅스는 PC를 위한 효율적인 유닉스 시스템으로 1991년 헬싱키 대학의 리누스 토르발즈에 의해 개발되었으며 개발 후 커널의 소스코드가 공개되었으며 인터넷 상에서 자원자들에 의해 지속적으로 개선되었으며 공용 도메인 상의 무료 운영체제 형태로 발전하였습니다. 현재 리눅스는 PC, 워크스테이션, 서버 등 다양한 플랫폼에서 사용 가능하도록 GNU 소프트웨어와 함께 다양한 배포판이 만들어져 배포되고 있는데 대표적인 배포판으로 레드햇(RedHat), 우분투(Ubuntu), CentOS 등이 있습니다.

안드로이드는 리눅스 커널을 기반으로 모바일 기기용으로 개발된 개방형 운영체제로 소스 코드 등 모든 것을 공개하고 있습니다. 주로 스마트폰, 태블릿 PC 등에서 사용되고 있으며 애플의 모바일 기기용 운영체제인 iOS와 더불어 모바일 기기용 소프트웨어의 핵심이 되고 있습니다. 특히 우리나라는 스마트폰 세계 시장에서 안드로이드 기반의 스마트폰으로 세계 최고의 점유율을 기록하고 있는 세계 최대의 스마트폰 생산국입니다.

이제 리눅스는 슈퍼컴퓨터, 서버 시스템에서부터 PC 및 스마트폰까지 다양한 환경에서 사용되고 있을 뿐만 아니라 소프트웨어 산업 경쟁력의 핵심이 되고 있습니다. 이러한 환경에서 리눅스를 기반으로 한 시스템 프로그래밍 교육은 개인의 시스템 프로그래밍 능력 향상뿐만 아니라 국가의 소프트웨어 경쟁력에도 매우 중요한 부분이라고 할 수 있습니다. 그러나 평소에 리눅스를 별로 사용하지 않는 우리나라의 대학 현실에 맞는 리눅스 기반의 시스템 프로그래밍 교육을 위한 적합한 교재는 많지 않는 상황입니다. 원서를 포함하여 이 분야의 여러 교재가 출판되어 있지만 지나치게 전문적이거나 방대한 분량의 매뉴얼 형태의 교재가 대부분으로 현실적으로 초보자도 배울 수 있는 체계적인 시스템 프로그래밍 교재는 별로 없습니다.

본 교재는 이러한 상황을 고려하여 리눅스 초보자가 체계적으로 시스템 프로그래밍을 배울 수 있도록 구성하려고 노력하였습니다. 특히 시스템 프로그래밍에서 사용하는 시스템 호출이나 라이브러리 함수의 기본 원리를 제대로 이해하고 이를 바탕으로 실제적인 프로그램을 작성할 수 있도록 구성하였습니다. 또한 각 장에서 원리를 설명하는 다양한 그림과 현실적인 예제 프로그램을 제공함으로써 시스템 프로그래밍의 원리와 실제를 제대로 이해할 수 있도록 하는데 주안점을 두었습니다.

개관과 구성

이 교재는 리눅스 초보자도 순차적으로 리눅스 기반의 시스템 프로그래밍을 배울 수 있도록 구성하였습니다. 1장에서 3장까지는 리눅스 초보자를 위한 내용으로 리눅스 소개, 사용을 위한 기본적인 명령어 및 리눅스 프로그래밍을 위한 환경 등에 대해 소개합니다. 이후 4장부터 13장까지는 시스템 프로그래밍 내용을 체계적으로 구성하였습니다. 4장부터 7장까지는 파일 관련 프로그래밍에 대해서 다루고 있습니다. 8장부터 10장까지는 프로세스 관련 프로그래밍에 대해서 다루고 11장부터 13장까지는 프로세스 간 통신에 대해서 다룹니다.

한 학기 강의를 위해서 기본적으로 다음과 같이 1주에 1장씩 할 수 있도록 구성하였으며 16주 강의의 경우에는 여건에 따라 2장, 5장 혹은 9장을 두 주에 걸쳐 진행할 수 있습니다. 또한 실습을 진행할 수 있도록 각 장에서 실습 문제를 제공하였으며 매 주마다 2시간 강의 1~2시간 실습으로 운영할 수 있을 것입니다.

감사의 글

이 교재가 출판되기까지 도움을 주신 여러분, 특히 출판을 위해 수고해주신 생능출판사 관계자 여러분께 감사드립니다. 또한 그동안 숙명여자대학교의 시스템 프로그래밍 강의에 참여하여 이 책이 나오기까지 자극을 준 모든 학생들에게 감사드립니다. 끝으로 이 책의 원고가 준비되는 동안 성원해준 아내와 가족들에게 감사드리며 이 책이 그 뜻대로 쓰임받기를 바랍니다.


chapter 01 유닉스/리눅스 소개
   1.1 유닉스/리눅스 특징
   1.2 유닉스/리눅스 시스템 구조
   1.3 유닉스 역사 및 버전
   1.4 리눅스 설치
   1.5 사용 환경
   1.6 사용자 계정 관리
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 02 리눅스 사용
   2.1 기본 명령어
   2.2 파일 및 디렉터리
   2.3 파일 속성
   2.4 입출력 재지정 및 파이프
   2.5 후면 처리 및 프로세스
   2.6 문서편집기
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 03 C 프로그래밍 환경
   3.1 컴파일러
   3.2 make 시스템
   3.3 디버거
   3.4 이클립스 통합개발환경
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 04 파일 입출력
   4.1 시스템 호출
   4.2 파일
   4.3 임의 접근
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 05 파일 시스템
   5.1 파일 시스템
   5.2 파일 상태 정보
   5.3 디렉터리
   5.4 링크
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 06 파일 및 레코드 잠금
   6.1 파일 및 레코드 잠금
   6.2 잠금 예제 및 잠금 함수
   6.3 권고 잠금과 강제 잠금
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 07 표준 파일 입출력
   7.1 파일 및 파일 포인터
   7.2 텍스트 파일
   7.3 이진 파일
   7.4 임의 접근
   7.5 버퍼 입출력
   7.6 기타 함수
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 08 프로세스
   8.1 쉘과 프로세스
   8.2 프로그램 실행
   8.3 프로그램 종료
   8.4 프로세스 ID
   8.5 프로세스 이미지
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 09 프로세스 제어
   9.1 프로세스 생성
   9.2 프로그램 실행
   9.3 입출력 재지정
   9.4 프로세스 그룹
   9.5 시스템 부팅
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 10 메모리 관리
   10.1 변수와 메모리
   10.2 동적 할당
   10.3 연결리스트
   10.4 메모리 관리 함수
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 11 시그널
   11.1 시그널 소개
   11.2 시그널 처리
   11.3 시그널 보내기
   11.4 시그널과 비지역 점프
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 12 파이프
   12.1 이름 없는 파이프
   12.2 쉘 파이프 구현
   12.3 파이프 함수
   12.4 이름 있는 파이프
   ■핵심개념
   ■실습문제
   ■연습문제


chapter 13 소켓
   13.1 소켓
   13.2 인터넷 소켓

 참고문헌

서평이 업데이트 예정입니다.