본문 바로가기

오탈자 정보

[코드로 알아보는 ARM 리눅스 커널]_오탈자

현재까지 발견된 위 책의 오탈자 정보와 오류 사항 그리고 보다 매끄러운 문장을 위해 수정한 내용들입니다. 불편을 끼쳐드려 죄송합니다.

혹시 이 외의 오탈자 정보를 발견하시는 분이 계시면 출판사 메일 jeipub골뱅이gmail.com이나 저자들 구글그룹 inux-kernel-arm@googlegroups.com으로 연락주시면 고맙겠습니다. 


최종수정일자: 2015년 10월 26일
4쇄본 오탈자


66쪽 그림 5-4의 오른쪽 그림에서 0부터 증가하는 Entry 값 수정(정*훈 님 제보)
1230 ==> 1280

97쪽 그림 7-6의 오른쪽 그림에서 0부터 증가하는 Entry 값 수정(정*훈 님 제보)
1230 ==> 1280

89쪽 두 번째 줄에서(한*권 님 제보)
레지스터 r2, r4, r5, r6에 ==> 레지스터 r3, r4, r5, r6에

100쪽 두 번째 문단 첫 번째 줄에서(한*권 님 제보)
결국 r7에는 0xC1E 값이 설정된다. ==> 결국 r7에는 0xC0E 값이 설정된다

126쪽 상단 두 번째 줄에서(이*화 님 제보)
할성화 이벤트에 ==> 활성화 이벤트에


최종수정일자: 2013년 4월 22일
3쇄본 오탈자


70쪽 하단 15번 각주에서(박*솔 님 제보)
gnuzip은 ==> gunzip


최종수정일자: 2013년 2월 28일
2쇄본 오탈자


V쪽 3행에서(저자 제공)
질핍 후기 XXI ==> 집필 후기 XXI

14쪽 첫 번째 문단의 1행과 세 번째 문단의 1행에서(스카 님 제공)
arch/arm/compressed/Makefile 내에 ==> arch/arm/boot/compressed/Makefile 내에
arch/arm/compressed/vmlinux에 ==> arch/arm/boot/compressed//vmlinux에 

 

156쪽 3행에서(지나가다가 님 제공)

parse_atags로 ==> parse_tags

 

225쪽 하단 주석 43번(지나가다가 님 제공)
43) MAX_ORDER, PAGE_SHIFT 값에 따라 kmalloc()으로 할당할 수 있는 값은 32MB보다 작을 수 있다.

==>

43) 커널이 부트타임 시 사용하는 파일시스템이 위치하는 메모리다. 이 파일시스템은 부트가 완료되면 더이상 사용되지 않는다.

 

205쪽 그림 14-3에서 2단계 페이징의 offset 부분(김남형 님 제공)

11비트 [11:0] ==>12비트 [11:0]

 

XI쪽(저자 제공)

Chapter 17 빌려줄 후원자 구성하기 ==> Chapter 17 메모리를 빌려줄 후원자 구성하기


5쪽 그림 1-2(저자 제공)

I/O and Device Managment ==> I/O and Device Management

Fundamental Process Managment ==> Fundamental Process Management


14쪽 1행(저자 제공)

arm/arch/compressed/Makefile ==> arch/arm/boot/compressed/Makefile


71쪽 코드 6-2 제목(저자 제공)

arch/arm/boot/compressed/head.S의 decompressed_kernel 레이블 

==>

arch/arm/boot/compressed/misc.c의 decompress_kernel 함수


109쪽 6행(저자 제공)

arm/kernel/entry-armv.S에 ==> arch/arm/kernel/entry-armv.S에 


150쪽 코드 11-1 제목(저자 제공)

init/main.c의 setup_arch() ==> arch/arm/kernel/setup.c의 setup_arch()


207쪽 중간 코드 제목(저자 제공)

ainclude/linux/init_task.h ==> include/linux/init_task.h


217쪽 코드 14-13 제목에서(저자 제공)

__alloc_bootmem_nopanic() ==> ___alloc_bootmem_nopainic()


218쪽 코드 14-14 제목에서(저자 제공)

mm/mmu.c의 ==> mm/bootmem.c


221쪽 코드 14-15 제목에서(저자 제공)

flush_dcache() ==> __flush_dcache_page()


223쪽 각주 40에서(저자 제공)

prinft 대신 ==> printf 대신


235쪽 각주 48에서(저자 제공)

leve 1의 ==> level 1의


240쪽 본문 세 번째 문단 1행(저자 제공)

DESCLARE_BITMAP 매크로에 의해서 ==> DECLARE_BITMAP 매크로에 의해서


296쪽 아래에서 6행(저자 제공) 

노드 0  ==> 노드 0


328쪽 코드 18-11 아래 첫 번째 문단 1행(저자 제공)

IRQ_NOIRQ를 ==> IRQ_NOREQUEST


460쪽 그림 24-6의 맨 아래 코드 파일명(저자 제공)

include/linux/percpu_counter.c ==> include/linux/percpu_counter.h

 

462쪽 그림 24-7에서 코드 파일명 수정(저자 제공)

상단 

include/linux/percpu_counter.c ==> lib/percpu_counter.c

하단 

include/linux/percpu_counter.c ==> lib/percpu_counter.c

 

529쪽 그림 30-2에서 파일명 /* ... */ 에서 /* */ 빼기(저자 제공)

/* include/linux/workqueue.h */ ==> include/linux/workqueue.h

/* include/linux/workqueue.h */ ==> include/linux/workqueue.h

/* kernel/workqueue.c */ ==> kernel/workqueue.c


529쪽 그림 30-2의 두 번째 코드 박스에서(저자 제공)

define create_==> #define create_


537쪽 그림 30-5에서 파일명 /* ... */ 에서 /* */ 빼기(저자 제공)

/* include/linux/kmod.h*/ ==> include/linux/kmod.h


537쪽 코드 30-11에서(저자 제공)

kernel/kmod.c의 usermodhelper_init()

==> 

kernel/kmod.c의 usermodehelper_init()


538쪽 그림 30-6에서 파일명 /* ... */ 에서 /* */ 빼기(저자 제공)

/* include/linux/workqueue.h*/ ==> include/linux/workqueue.h

/* include/linux/workqueue.h*/ ==> include/linux/workqueue.h

/* kernel/workqueue.c*/ ==> kernel/workqueue.c


558쪽 본문 5번째 문단 4행(저자 제공)

32.6절에서 자세히 다루었다. ==> 코32.6절에서 자세히 다루겠다.

560쪽 3번째 문단(저자 제공)

시그널들을 flush_signal() 함수를 호출하여 처리한다. 아래는 flush_signal() 함수를 

==>

시그널들을 flush_signals() 함수를 호출하여 처리한다. 아래는 flush_signals() 함수를


560쪽 코드 31-3 제목(저자 제공)

kernel/signal.c의 flush_signal() ==> kernel/signal.c의 flush_signals()


560쪽 각주 98번(저자 제공)

17장의 "알아봅시다! ==>8장의 "알아봅시다!


563쪽 첫 번째 문단 2-3행(저자 제공)

현재 태스크의 나이스 값과 ==> 현재 태스크의 나이스 값이


564쪽 알아봅시다 박스 두 번째 문단 2행(저자 제공)

set_load_weight() 함수를 설명할 때 설명하기로 하자. ==> set_load_weight() 함수를 설명할 때 알아보기로 하자.


568쪽 아래에서 2-3행(저자 제공)

set_cpu_allowed() 함수가 존재하면, set_cpu_allowed() 함수를 

==> 

set_cpus_allowed() 함수가 존재하면, set_cpus_allowed() 함수를



569쪽 1-2행(저자 제공)

set_cpu_allowed() 함수가 존재하지 않는 경우는 직접 p->cpu_allowed 필드의 

==>

set_cpus_allowed() 함수가 존재하지 않는 경우는 직접 p->cpus_allowed 필드의


570쪽 마지막 문단 1행에서 띄어쓰기(저자 제공)

kthread_create_info구조체의 ==> kthread_create_info 구조체의


574쪽 1행(저자 제공)

커널 스래드를 ==> 커널 스레드를


574쪽 코드 박스 위치 수정(저자 제공)

kernel/kthread.c 첫 번째 코드 박스를 두 번째 문단의 '다음과 같이 검사한다.' 문장 아래로 이동 

kernel/kthread.c 두 번째 코드 박스를 세 번째 문단의 '중지시킬 수 있다.' 문장 아래로 이동


576쪽 첫 번째 문단 3행(저자 제공)

find_task_by_pid_ns다. ==> find_task_by_pid_ns()다.


580쪽 마지막 문단 1행(저자 제공)

마지막으로 코드 섹션 ③에서는 ==> 마지막으로 코드 섹션 에서는


591쪽 A.2의 표 11번째 라인에 마침표 제거(저자 제공)

CS와 동일. ==> CS와 동일


597쪽 맨 아래 코드에서(저자 제공)

/* seggid 비트 지정 */ ==> /* setgid 비트 지정 */


608쪽 첫 번째 문단 4행(저자 제공)

미묘한 차이가 점이 있다. ==> 미묘한 차이점이 있다.


613쪽 코드 박스에서 원숫자 ① 위치 수정(저자 제공)

원숫자 ①을  맨 우측으로 정렬


618쪽 1행(저자 제공)

Makers ==> Markers


620쪽 아래에서 2행(저자 제공)

stack unwiding ==> stack unwinding



최종수정일자: 2012년 9월 17일
1쇄본 오탈자


아래 파일로 제공하는 오탈자 사항은 2쇄본에 모두 반영되었음을 알려드립니다. 집필과 편집 시에 미처 확인을 하지 못해 불편을 끼쳐드려 다시 한 번 죄송하다는 말씀을 드립니다.  


ARM리눅스커널_1쇄에라타_홈페이지용.pdf




  • 스카 2012.10.05 16:04

    [Page 13]
    Line 5 (3번째 Box)
    @: ----> @$(check_for_bad_syms) 정도로 하면...

    [Page 14]
    Line 1 : arch\arm\compressed ----> arch\arm\boot\compressed
    Line 7 : arch\arm\compressed ----> arch\arm\boot\compressed

    ;

    • 노서영 2012.10.07 03:59

      안녕하세요?
      댓글 남겨주셔서 감사드립니다. 여러번 리뷰를 하였음에도 찾지 못했던 오타가 계속 나오고 있습니다 ㅠ.ㅠ.

      page 13의 오타로 말씀해주신 부분은 책이 기반을 두고 있는 커널이 2.6.30.4 버전인데 소스를 확인해본 결과 책에 기술된 코드가 맞습니다. 다음 링크를 통해서 확인할 수 있습니다.

      http://lxr.linux.no/linux+v2.6.30.4/arch/arm/boot/compressed/Makefile

      page 14의 오타는 지적해주신대로 중간에 boot 디렉토리가 빠져있습니다. 따라서 다음과 같아야 합니다.

      arch/arm/boot/compressed

      에라타 정리파일에 추가하도록 하겠습니다.

      감사합니다.

  • 지나가다가 2012.11.07 16:15

    225page에 있는 43) 주석 설명과 224page에 있는 42) 주석 설명이 똑같습니다.
    43) 주석 내용이 잘못된 것 같습니다.

  • 지나가다가 2012.11.07 16:50

    156page 3번째 줄에 parse_atags -> parse_tags로 수정 필요해 보입니다.

    • 안내 고맙습니다. 두 건 모두 저자에게 보내 확인을 받은 후에 다시 안내해드리도록 하겠습니다. 곧 다시 댓글로 연락드리겠습니다.

    • 노서영 2012.11.07 23:48

      안녕하세요?

      먼저 시간내주셔서 오탈자정보에 오류 사항을 남겨주셔서 감사합니다.

      두 건에 대해서 답변드리겠습니다.

      page 156 parse_atags건
      parse_tags가 되어야 합니다. 감사합니다.

      주석 42/43 중복건
      주석 43의 내용을 다음과 같이 바로 잡습니다.

      "커널이 부트타임 시 사용하는 파일시스템이 위치하는 메모리다. 이 파일시스템은 부트가 완료되면 더이상 사용되지 않는다."

      에라타 정리파일에 추가하고 차후 인쇄에는 정정하도록 하겠습니다.

      오류사항을 발견하고 알려주셔서 다시한번 감사드립니다.