본문 바로가기

도서 소개

모두를 위한 리눅스 프로그래밍: 리눅스 구조와 C 언어로 배우는 리눅스 첫걸음

 

개발자 관점에서 배우는 알기 쉬운 리눅스 입문서!

리눅스의 구조와 함께 배우는 gcc 프로그래밍의 왕도!

출판사 제이펍
저작권사 SB Creative
원서명 ふつうのLinuxプログラミング(第2版)(원서 ISBN: 9784797386479)
저자명 아오키 미네로
역자명 이동규
출판일 2018년 11월 21일
페이지 416쪽
시리즈 (없음)
판 형 46배판변형(188*245*20)
제 본 무선(soft cover)
정 가 30,000원
ISBN 979-11-88621-40-8 (93000)
키워드 리눅스 / 리눅스 커널 / gcc / 파일 시스템 / 프로세스 / 스트림 / 리눅스 네트워크 / 서버
분야 운영체제 / 리눅스
관련 사이트
관련 포스트
관련 시리즈
■ (없음)
관련 도서
관련 파일 다운로드
강의보조 자료 다운로드
교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com
■ 본문의 그림과 표
샘플 PDF
(차례, 옮긴이 머리말, 머리말, 베타리더 후기, 1장 '리눅스 프로그래밍 시작하기' 전체, 4장 '리눅스의 세 가지 중요 개념' 일부, 5장 '심스트림 관련 시스템 콜' 일부, 11장 '프로세스와 하드웨어' 일부)
정오표 페이지
도서구매 사이트(가나다순)

■ 전자책 구매 사이트(가나다순)

[교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] [인터파크]
도서 소개

개발자 관점에서 배우는 알기 쉬운 리눅스 입문서!

리눅스의 구조와 함께 배우는 gcc 프로그래밍의 왕도!

이 책은 리눅스 구조를 쉽게 배울 수 있는, 그리고 리눅스 gcc 프로그래밍의 입문 서적으로 호평받은 1판에서 최신 상황을 반영하고 전체적으로 내용을 업데이트하였다. 개발자 관점에서 리눅스 구조를 해설하고, 리눅스를 구성하는 개념과 리눅스 프로그래밍의 표준 기법을 설명하며, Hello World!에서 HTTP 서버 구축까지 다룬다.
리눅스 입문서인 이 책은 리눅스에서 사용할 수 있는 간단한 프로그램 개발을 통해 OS의 기본적인 역할과 구조를 이해할 수 있으며, 리눅스용 프로그램 개발에 무엇이 필요한지 독자 스스로 판단할 수 있도록 도와준다.
이 책의 대상 독자
  • 프로그래밍을 통해 리눅스 구조를 파악하고 싶은 분
  • C 언어 입문을 마치고 리눅스 프로그래밍을 익히고 싶은 분
  • 리눅스나 유닉스 프로그래밍 관련 다른 책들이 읽기 어려웠던 분
  • 윈도우에서 C나 C++을 다뤄봤으나 리눅스에서의 프로그래밍은 처음인 분
지은이 소개
아오키 미네로(青木峰郎)
운동을 좋아하는 프로그래머로 일본 최대의 요리법 공유 사이트인 ‘쿡패드’에서 전사 데이터 분석과 관련된 업무를 담당하고 있다. 저서로는 《10년간 활용할 수 있는 데이터 분석 입문》, 《Ruby 소스 코드 완전 해설》 등 10여 종이 있다.
옮긴이 소개
이동규
도쿄에 살면서 라인재팬의 데이터 엔지니어로 일하고 있다. 번역하며 공부하는 것이 즐거워 꾸준히 번역 활동을 하고 있다. 번역한 책으로는 《자바스크립트와 Node.js를 이용한 웹 크롤링 테크닉》과 《처음 만나는 파이썬》, 《칼퇴를 부르는 엑셀 테크닉 122》가 있다.
차례
제I부 리눅스의 구조
제1장 리눅스 프로그래밍 시작하기 ........ 3
1.1 책의 개요 4
1.2 프로그래밍 환경 준비 8
1.3 gcc를 사용한 빌드(1) 10
1.4 gcc를 사용한 빌드(2) 13
1.5 커맨드라인 인자 16
1.6 개발 환경 이야기 20
1.7 정보를 얻는 방법 22
더보기
제2장 리눅스 커널의 세계 ........ 24
2.1 운영체제 25
2.2 라이브러리 30
제3장 리눅스의 세 가지 중요 개념 ........ 33
3.1 파일 시스템 34
3.2 프로세스 39
3.3 스트림 41
3.4 리눅스의 세 가지 중요 개념 정리 45
제4장 리눅스와 사용자 ........ 46
4.1 사용자와 그룹 47
4.2 셸과 단말 55
제II부 리눅스 프로그래밍의 근간
제5장 스트림 관련 시스템 콜 ........ 63
5.1 이번 장에서 다루는 내용 64
5.2 파일 디스크립터 65
5.3 표준 입력, 표준 출력, 표준 에러 출력 66
5.4 스트림 읽기 및 쓰기 69
5.5 파일 열기 72
5.6 cat 명령어 만들기 75
5.7 기타 시스템 콜 83
5.8 연습문제 87
제6장 스트림 관련 라이브러리 함수 ........ 88
6.1 stdio 89
6.2 바이트 단위 입출력 93
6.3 stdio로 cat 명령어 만들기 96
6.4 문자열 입출력 98
6.5 고정 길이 입출력 105
6.6 파일 오프셋 작업 107
6.7 파일 디스크립터와 FILE 타입 109
6.8 버퍼링 작업 111
6.9 EOF와 에러 112
6.10 stdio의 동작 확인하기 114
6.11 연습문제 117
제7장 head 명령어 만들기 ........ 118
7.1 head 명령어 만들기 119
7.2 옵션 파싱 125
7.3 gdb를 사용한 디버깅 134
7.4 연습문제 140
제8장 grep 명령어 만들기 ........ 141
8.1 grep 명령어 만들기 142
8.2 한글 문자열 처리와 국제화 149
8.3 연습문제 156
제9장 리눅스의 디렉터리 구조 ........ 157
9.1 기본적인 구조 158
9.2 /usr 디렉터리 160
9.3 /var 디렉터리 163
9.4 루트 밑의 주요 디렉터리 165
9.5 디렉터리를 구분하는 기준 169
제10장 파일 시스템 관련 API ........ 170
10.1 디렉터리 내용 읽어 들이기 171
10.2 디렉터리 만들기 176
10.3 디렉터리 삭제하기 180
10.4 하드 링크 182
10.5 심볼릭 링크 186
10.6 파일 삭제 189
10.7 파일 이동 191
10.8 메타 정보 획득하기 193
10.9 메타 정보 변경하기 198
10.10 파일 시스템과 스트림 202
10.11 연습문제 203
제11장 프로세스와 하드웨어 ........ 204
11.1 프로세스란 무엇인가? 205
11.2 메모리 관리 관련 API 215
11.3 프로그램이 완성될 때까지 218
11.4 연습문제 223
제12장 프로세스 관련 API ........ 224
12.1 기본적인 프로세스 API 225
12.2 프로세스의 생애 231
12.3 파이프 235
12.4 프로세스 관계 240
12.5 연습문제 245
제13장 시그널 관련 API ........ 246
13.1 시그널 247
13.2 시그널 포착하기 249
13.3 시그널 전송 256
13.4 Ctrl + C 257
13.5 연습문제 259
제14장 프로세스 환경 ........ 260
14.1 현재 디렉터리 261
14.2 환경 변수 264
14.3 자격 증명 267
14.4 사용자와 그룹 271
14.5 프로세스가 사용하는 리소스 273
14.6 날짜와 시간 275
14.7 로그인 281
14.8 연습문제 284
제III부 리눅스 네트워크 프로그래밍
제15장 네트워크 프로그래밍의 기초 ........ 287
15.1 인터넷의 구조 288
15.2 호스트 이름과 리졸버 292
15.3 소켓 API 295
15.4 이름 해결 299
15.5 daytime 클라이언트 작성 301
15.6 연습문제 306
제16장 HTTP 서버 만들기 ........ 307
16.1 WWW와 HTTP 308
16.2 HTTP 312
16.3 HTTP 서버 개략 315
16.4 서비스 개시까지 320
16.5 struct HTTPRequest 322
16.6 요청 읽어 들이기 325
16.7 struct FileInfo 331
16.8 응답 출력하기 334
16.9 동작 테스트 338
제17장 본격적인 HTTP 서버 구현 ........ 340
17.1 이번 장에서 수행할 내용 341
17.2 스스로 네트워크에 접속하기 344
17.3 복수 접속을 병렬 처리 348
17.4 데몬 만들기 353
17.5 로그 기록 355
17.6 chroot()로 안정성 높이기 360
17.7 완성! 364
제18장 이 책을 다 읽은 후 ........ 365
18.1 리눅스/유닉스 전반 366
18.2 커널이 어떻게 구현되었는지 알기 위한 책 367
18.3 이식성 368
18.4 GUI 프로그래밍 370
18.5 단말 조작 372
18.6 make 374
18.7 셸 스크립트 376
18.8 버전 관리 시스템 377
18.9 도큐먼트 378
18.10 패키지와 배포 379
APPENDIX 부록 ........ 380
A.1 gcc의 주요 커맨드라인 옵션 381
A.2 참고 문헌 383