000 | 00000cam c2200205 c 4500 | |
001 | 000046023748 | |
005 | 20200413113527 | |
007 | ta | |
008 | 200410s2020 ggka b 000c kor | |
020 | ▼a 9788997750139 ([v.1]) ▼g 93560 | |
020 | ▼a 9788997750146 ([v.2]) ▼g 13560 | |
035 | ▼a (KERIS)BIB000015546448 | |
040 | ▼a 211027 ▼c 211027 ▼d 211009 | |
082 | 0 4 | ▼a 005.432 ▼2 23 |
085 | ▼a 005.432 ▼2 DDCK | |
090 | ▼a 005.432 ▼b 2020z1 | |
100 | 1 | ▼a 정재준 |
245 | 2 0 | ▼a (최신 리눅스 커널 소스를 단계별로 쉽게 풀어서 설명하는) 리눅스 커널 소스 해설 / ▼d 정재준 |
260 | ▼a [남양주] : ▼b 커널연구회, ▼c 2020 | |
300 | ▼a 2책 : ▼b 삽화 ; ▼c 26 cm | |
504 | ▼a 참고문헌 수록 | |
505 | 0 0 | ▼n [1]. ▼t 기초 입문 ▼g (351 p.) -- ▼n [2]. ▼t RISC-V : CPU 아키텍쳐 (RISC-V) ▼g (368 p.) |
945 | ▼a KLPA |
소장정보
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.432 2020z1 2 | 등록번호 121252939 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.432 2020z1 1 | 등록번호 121252940 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
리눅스 커널 소스를 분석한 내용을 바탕으로 이해하기 쉽게 구어체로 설명하는 형식으로 구성되어 있다. 이책을 통해서 최신 리눅스 커널 소스를 컴파일/빌드/분석하는 방법을 단계별로 이해할 수 있다. 리눅스 커널 소스 빌드 및 버전관리 방법, 커널 소스 데이터 타입 및 비트연산 이해, 커널 모듈 프로그래밍 방법. 커널 성능측정 도구(perf, ftrace, crash)등의 내용을 담았다.
이책은 저자가 리눅스 커널 소스를 분석한 내용을 바탕으로
이해하기 쉽게 구어체로 설명하는 형식으로 구성되어 있습니다.
이책을 통해서 최신 리눅스 커널 소스를 컴파일/빌드/분석하는 방법을
단계별로 이해할 수 있습니다.
* 리눅스 커널 소스 빌드 및 버전관리 방법
* 커널 소스 데이터 타입 및 비트연산 이해
* 커널 모듈 프로그래밍 방법
* 커널 성능측정 도구(perf, ftrace, crash)
* 커널 소스 디버깅 방법(kprobes, debug objects)
* user copy 소스 설명
* list sort 소스 설명 및 테스트 방법
* red-black tree 소스 설명 및 API 사용방법
* xarray, radix tree 소스 설명 및 API 사용방법
* IDR, IDA 소스 설명 및 API 사용방법
* percpu 소스 설명
정보제공 :

저자소개
정재준(지은이)
저자는 학창시절 마이크로프로세서 제어 기술을 배웠으며 리눅스 커널을 연구하고 있다. 15년 이상 쌓아온 실무 경험을 바탕으로 “C언어와 자료구조 알고리즘”, “리눅스 시스템 프로그래밍”, “리눅스 커널과 디바이스드라이버 실습2”, “자료구조 알고리즘 & 머신러닝 상세분석"등의 책을 집필하고, 월간임베디드월드 잡지에 다수의 글을 기고 하였다. 또한 “맞춤형 문장 자동 번역 시스템 및 이를 위한 데이터베이스 구축방법 (The System for the customized automatic sentence translation and database construction method)” 라는 내용으로 프로그래밍을 하여 특허청에 특허출원 하였다. 최근에는 서울시 버스와 지하철 교통카드 요금결재 단말기에 들어가는 리눅스 커널과 디바이스 드라이버 개발 프로젝트를 성공적으로 수행했고 여러가지 임베디드 제품을 개발했다. 저자는 스탠포드대학교의 John L. Hennessy 교수의 저서 “Computer Organization and Design” 책을 읽고 깊은 감명을 받았으며, 컴퓨터구조와 자료구조 알고리즘 효율성 연구를 통한 기술서적 집필에 노력하고 있다. 저자는 온라인 상에서 커널연구회(http://www.kernel.bz/) 웹사이트를 운영하며 연구개발, 교육, 관련기술 공유 등을 위해 노력하고 있다.

목차
[v1] Table of Contents 리눅스 커널 소스 해설 [기초입문] 1 저작권 2 ISBN 3 저자 소개 4 머리말 5 목차 7 커널 소스 빌드 및 버전관리 13 커널 소스 다운로드 16 커널 소스 빌드 및 설치 20 커널 소스 버전업 27 커널 소스 코딩 형식 32 들여쓰기 33 긴줄과 문자열 나누기 34 괄호와 공백 배치 35 공백 37 작명 39 타입 재정의 40 함수들 41 goto 사용 42 주석문 44 Macros, Enums 46 커널 메세지 출력 47 메모리 할당 48 inline 함수 48 함수 반환값 49 bool 사용 49 커널 매크로 활용 50 Inline assembly 50 GCC 확장속성(attributes) 51 커널 데이터 타입 이해 57 커널 비트 단위 연산 78 커널 비트맵 이해 94 커널 모듈 프로그래밍 106 커널 sort 테스트 116 커널 성능측정 도구 122 perf 설치하기 123 perf 활용하기 127 perf record 130 perf report 132 perf probe 135 perf 소스 빌드하기 137 ftrace 활용 139 추적 가능 항목들 141 이벤트 단위 추적 145 함수 단위 추적 147 함수 그래프 추적 150 ftrace 중요 옵션들 153 crash 도구 사용 154 crash 설치하기 155 crash 실행(Live) 157 crash 실행(덤프 파일) 162 crash 명령어 168 backtrace 명령 170 ps 명령 172 struct 명령 174 task 명령 177 vm 명령 179 kmem 명령 181 sym 명령 183 p 명령 184 list 명령 186 tree 명령 186 foreach 명령 187 kprobes 이해 188 debug objects 이해 197 debug objects 개념 198 debug objects 함수들 200 debug_objects_early_init() 200 debug_object_init() 203 debug_object_free() 205 debug_object_activate() 206 debug_object_deactivate() 208 debug objects 활용 210 커널 디버그 메세지 출력 216 메세지 출력 레벨 조정 216 다이나믹 레벨 조정 219 kobject 이해 221 user copy 테스트 235 커널 메모리 주소 이해 236 메모리 user copy 실습 241 list sort 테스트 248 커널 Linked List 개념 249 커널 List Sort 예제 253 red-black tree 테스트 259 red-black tree 이해 260 red-black tree 실습 예제 264 노드 삽입, 삭제 테스트 267 노드 탐색 테스트 271 커널 XArray 이해 274 XArray 구조체 정의 281 XArray 테스트 모듈 286 radix tree 테스트 290 radix_tree_init() 296 xarray_tests() 300 regression1_test() 301 benchmark() 304 radix tree 테스트 모듈 305 IDR, IDA 관리 308 idr, ida 구조체 309 idr 할당 312 idr 테스트 314 ida 테스트 317 percpu 이해 321 ELF Sections 이해 321 percpu 정의 하기 330 percpu 사용 하기 333 percpu 소스 분석 342 percpu구조체 342 pcpu 함수 실행 흐름 347 참고 문서 349 [v2] Table of Contents 리눅스 커널 소스 해설 [RISC-V] 1 저작권 2 ISBN 3 저자 소개 4 머리말 5 목차 7 RISC-V 실습보드 14 RISC-V 64비트 FU540 14 FU540 보드 셋업하기 15 FU540 SDK 빌드 및 설치 20 다운로드 하기 20 빌드하기 21 설치하기 24 부팅하기 31 RISC-V SDK 소스 설치 33 컴파일러(toolchain) 소스 33 부트로더 소스 36 riscv-pk 36 OpenSBI 39 u-boot 43 커널 소스 44 buildroot(ramfs) 47 riscv simulator 49 qemu 50 RISC-V 명령셋 53 CPU별 명령셋 비교 57 RISC-V 레지스터 정리 62 RISC-V 기본 명령 형식 64 읽기와 저장 명령들 68 정수 연산 명령들 69 제어 분기 명령들 76 곱셈 명령들 81 나눗셈 명령들 85 연산 명령 정리 89 Memory Barrier 91 Atomic Operation 95 SpinLock 101 FU540 하드웨어 106 장치 계층 구조 109 CPU core 110 Clock(PRCI) 119 PRCI 레지스터 정리 122 coreclk 설정 방법 125 DDR과 이더넷 클럭 설정 방법 126 Device Tree 127 Interrupts(CLINT, PLIC) 129 UART 132 PWM 135 I2C 141 SPI 143 GPIO 148 Ethernet 152 DDR Subsystem 154 FU540 부팅 소스 분석 156 head.S 소스 분석 157 setup_vm() 가상주소값 설정 159 relocate 페이지 테이블 재설정 167 sbi_save() DTB 저장, 스캔 169 start_kernel () 171 FU540 아키텍쳐 포팅 174 SOC_SIFIVE 179 FU540 클럭 포팅 181 FU540 timer 포팅 184 FU540 irqchip 포팅 186 FU540 UART 콘솔 포팅 187 tty 드라이버 포팅 189 FU540 PWM 포팅 194 PWM LEDs 디바이스 트리 198 PWM LEDs 테스트 199 PWM driver init 소스 201 PWM probe 소스 202 PWM remove 소스 204 FU540 SPI 포팅 205 SPI driver init 소스 206 SPI probe 소스 208 SPI remove 소스 211 FU540 GPIO 포팅(new) 212 GPIO driver init 소스 214 GPIO probe 소스 215 FU540 MMC/SD/SDIO 포팅 219 FU540 디바이스 트리 229 디바이스 트리 용어 정리 230 FU540 디바이스 트리 소스 232 sifive-fu540-prci.h 233 fu540-c000.dtsi 233 hifive-unleashed-a00.dts 240 계층구조 정리 243 FU540 클럭 소스 상세분석 245 u54-prci.c 소스 분석 245 데이터 구조체 정의 245 드라이버 등록 247 probe 소스 분석 248 데이터 읽기/쓰기 함수 250 fu540-prci.c (new) 소스 분석 252 PRCI driver init 소스 252 PRCI probe 소스 254 FU540 GPIO 소스 정리(new) 256 구조체 정리 256 GPIO 소스 정리 259 gpio_sifive_probe() 259 GPIO 동작 함수 262 GPIO 레지스터 설정 263 GPIO 디바이스 트리 264 GPIO 테스트 265 FU540 커널 포팅 내역 정리 270 V5.1.9 버전업 내용 271 arch/riscv/Kconfig 273 arch/riscv/kernel/setup.c 273 arch/riscv/mm/init.c 275 drivers/clk/Kconfig 276 drivers/clk/Makefile 277 drivers/clk/sifive/Kconfig (new) 277 drivers/clk/sifive/Makefile (new) 278 drivers/clk/sifive/gemgxl-mgmt.c (new) 278 drivers/clk/sifive/u54-prci.c 282 drivers/gpio/Kconfig 290 drivers/gpio/Makefile 290 drivers/gpio/gpio-sifive.c (new) 291 drivers/irqchip/Kconfig 299 drivers/irqchip/Makefile 300 drivers/irqchip/irq-riscv-intc.c (new) 300 drivers/irqchip/irq-riscv-plic.c (new) 306 drivers/leds/leds-pwm.c 316 drivers/mtd/spi-nor/spi-nor.c 317 drivers/nvmem/Kconfig 319 drivers/nvmem/Makefile 320 drivers/nvmem/sifive-u500-otp.c (new) 320 drivers/pwm/Kconfig 329 drivers/pwm/Makefile 329 drivers/pwm/pwm-sifive.c (new) 330 부팅 로그 337 V5.4.8 버전업 내용 342 빌드 로그 343 부팅 로그 345 arch/riscv/* 소스 버전업 내역 351 v4.15 → v5.0 351 v5.0 → v5.1 354 v5.1 → v5.2 355 v5.2 → v5.3 359 v5.3 → v5.4 361 v5.4 → v5.5 363 참고 문서 366