Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
FDD-book — FreeBSD 디바이스 드라이버 서적 | Kitploit
도구/GitHubGitHub/ebrandi/fdd-book
Embedded Systems SecurityReverse EngineeringDebuggersHardware HackingHardware SecurityLearning & EducationLearning Paths & CoursesFirmware AnalysisLabs & Practice
GitHubebrandi/fdd-book

FDD-book

FreeBSD 디바이스 드라이버 서적

60050201개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

FreeBSD Device Drivers 책 표지

FreeBSD Device Drivers

첫걸음부터 커널 마스터까지

에드손 브란디 저 · 버전 2.0 (2026년 4월)

라이선스 FreeBSD 페이지 상태 언어


이 책에 대하여

FreeBSD Device Drivers: From First Steps to Kernel Mastery는 무료 오픈소스 책으로, "커널 코드를 한 번도 작성해 본 적 없는" 상태에서 "프로덕션 품질의 FreeBSD 드라이버를 작성, 디버깅, 제출할 수 있는" 수준까지 안내합니다. 참고서라기보다는 안내 과정에 가까우며, 38개의 장, 6개의 부록, 그리고 실제 FreeBSD 14.x 시스템에서 컴파일되어 로드되는 수십 개의 실습 랩으로 구성되어 있습니다.

이 책은 이미 자격을 갖춘 독자보다는 배우려는 의지가 있는 독자를 대상으로 합니다. 유닉스 기초와 C 언어부터 시작하여, 커널이 요구하는 모든 개념을 단계별로 설명한 후에야 드라이버 개발의 문을 엽니다. DMA, 인터럽트, PCI 작업에 도달할 즈음에는 어휘가 강요된 것이 아니라 자연스럽게 습득된 느낌이 들 것입니다.

"커널 프로그래밍은 여전히 프로그래밍일 뿐이며, 단지 더 명시적인 규칙, 더 큰 책임, 그리고 약간 더 강력함을 가질 뿐입니다. 이것을 이해하면 두려움은 흥분으로 바뀝니다." (1장에서)

이 책을 선택해야 하는 이유

이미 훌륭한 FreeBSD 커널 참고 자료가 있습니다. man 9, 아키텍처 핸드북, Newbus 논문 등이 그 예입니다. 그러나 다음을 충족하는 단일 텍스트는 없었습니다:

  • 처음부터 시작합니다. 커널 코드를 작성하기 전에 유닉스, C, FreeBSD 환경을 먼저 가르칩니다.
  • 구체적으로 FreeBSD 14.x를 대상으로 합니다. 모든 API, 모든 예제, 모든 랩은 FreeBSD 14.3 소스 트리에서 검증되었습니다.
  • 랩을 일급 시민으로 취급합니다. 권장 학습 시간의 약 절반이 실습입니다. 동일한 패턴(연결, 정리, 잠금)이 여러 장에 걸쳐 반복되어 반사적으로 익숙해질 때까지 연습합니다.
  • 책 전체에서 하나의 드라이버를 구축합니다. myfirst 드라이버는 장을 거듭하며 진화하여 동기화, 하드웨어 접근, 인터럽트, DMA를 차례로 획득합니다. 여러분이 직접 동일한 코드가 성숙해가는 모습을 보게 됩니다.
  • 전체 생애주기를 다룹니다. "Hello Kernel Module"부터 Phabricator 리뷰 제출 및 드라이버를 FreeBSD 트리에 포함시키는 과정까지 모두 포함합니다.

이 책의 대상 독자

  • 초보자: C, 유닉스, 커널에 대해 거의 알지 못하지만 배우려는 의지가 있는 분
  • 개발자: 운영 체제가 실제로 내부에서 어떻게 작동하는지 궁금한 분
  • 전문가: 이미 FreeBSD(또는 유사 시스템)를 사용하고 있으며, 드라이버가 실제로 어떻게 구축되는지 배워 지식을 더 깊이 쌓고자 하는 분

이 책의 대상이 아닌 독자

  • 빠른 복사-붙여넣기 매뉴얼을 찾는 분. 이 책은 지름길보다 이해를 중시합니다.
  • 기초가 필요 없는 노련한 커널 개발자. 책의 진도는 기초부터 시작합니다.
  • 백과사전식 하드웨어 참고서를 원하는 분. 초점은 실제 FreeBSD 드라이버 개발이며, 버스나 장치 사양을 철저히 다루지 않습니다.

배울 내용

이 책은 서로를 기반으로 하는 일곱 개의 파트로 구성되어 있습니다:

파트제목주요 내용
1기초: FreeBSD, C, 그리고 커널랩 설정, 유닉스, 커널 작업을 위한 C, 드라이버 해부학
2첫 번째 드라이버 구축문자 드라이버, 장치 파일, 읽기/쓰기, 입출력
3동시성 및 동기화스레드, 뮤텍스, 조건 변수, 타이머, 태스크 큐, 세마포어
4하드웨어 및 플랫폼 수준 통합PCI, 인터럽트, MSI/MSI-X, DMA, 전원 관리
5디버깅, 도구, 실제 사례트레이싱, KGDB, 고급 디버깅, 성능 튜닝
6전송별 드라이버 작성USB, 직렬, 스토리지/VFS, 네트워크 드라이버
7마스터리 주제: 특수 시나리오 및 에지 케이스이식성, 가상화, 보안, 임베디드, 리버스 엔지니어링, 업스트림 제출

마지막까지 마치면 직접 커널 모듈을 작성하여 로드하고, 문자 드라이버를 구축하고, 실제 인터럽트와 DMA를 처리하고, 커널 패닉을 디버깅하고, 부하에서 드라이버를 프로파일링하고, 작업을 FreeBSD 프로젝트에 기여하는 모든 단계를 경험하게 됩니다.

책 통계

페이지 수4,500+
장38
부록6
읽기 시간~100시간
랩 시간~100시간
총 학습 시간~200시간 (주 5시간 기준 약 6개월)
대상 FreeBSD 릴리스14.3
언어영어(원본) · 브라질 포르투갈어(AI 번역) · 스페인어(AI 번역)
형식PDF · EPUB · HTML · 마크다운 소스

전체 목차

전체 장 목록을 보려면 클릭하세요

파트 1: FreeBSD, C, 커널의 기초

  1. 서문: 호기심에서 기여까지
  2. 실습 환경 설정
  3. 유닉스에 대한 부드러운 소개
  4. C 프로그래밍 언어 첫걸음
  5. FreeBSD 커널 프로그래밍을 위한 C 이해
  6. FreeBSD 드라이버의 해부학

파트 2: 첫 번째 드라이버 구축

  1. 첫 번째 드라이버 작성
  2. 장치 파일 작업
  3. 장치 읽기 및 쓰기
  4. 입출력 효율적으로 처리하기

파트 3: 동시성 및 동기화

  1. 드라이버에서의 동시성
  2. 동기화 메커니즘
  3. 타이머와 지연 작업
  4. 태스크 큐와 지연된 작업
  5. 추가 동기화: 조건, 세마포어, 조정

파트 4: 하드웨어 및 플랫폼 수준 통합

  1. 하드웨어 접근
  2. 하드웨어 시뮬레이션
  3. PCI 드라이버 작성
  4. 인터럽트 처리
  5. 고급 인터럽트 처리
  6. DMA 및 고속 데이터 전송
  7. 전원 관리

파트 5: 디버깅, 도구, 실제 사례

  1. 디버깅 및 트레이싱
  2. 커널과 통합
  3. 고급 주제 및 실용 팁

파트 6: 전송별 드라이버 작성

  1. USB 및 직렬 드라이버
  2. 스토리지 장치 및 VFS 계층 작업
  3. 네트워크 드라이버 작성

파트 7: 마스터리 주제

  1. 이식성 및 드라이버 추상화
  2. 가상화 및 컨테이너화
  3. 보안 모범 사례
  4. 장치 트리 및 임베디드 개발
  5. 성능 튜닝 및 프로파일링
  6. 고급 디버깅 기술
  7. 비동기 I/O 및 이벤트 처리
  8. 문서 없이 드라이버 만들기 (리버스 엔지니어링)
  9. 드라이버를 FreeBSD 프로젝트에 제출하기
  10. 마무리 및 다음 단계

부록

  • A: FreeBSD 커널 API 참조
  • B: 시스템 프로그래밍을 위한 알고리즘 및 논리
  • C: 드라이버 개발자를 위한 하드웨어 개념
  • D: 운영 체제 개념
  • E: FreeBSD 커널 내부 탐색
  • F: 벤치마크 도구 및 결과

책 읽는 방법

권장 속도는 주당 약 5시간 공부로 일주일에 한 장입니다. 이 일정을 따르면 한 학기 안에 책 전체를 마칠 수 있습니다. 일부 장(특히 C에 관한 4장과 파트 4의 하드웨어 장)은 자연스럽게 여러 주에 걸쳐 진행됩니다.

랩은 강력히 권장됩니다. 커널 프로그래밍은 근육 기억을 요구하는 분야가 거의 없을 정도로 중요합니다. 동일한 연결 패턴, 동일한 정리 체인, 동일한 잠금 형태가 장을 넘나들며 반복됩니다. 이러한 패턴을 직접 입력하고, 컴파일하고, 실행 중인 커널에 로드하고, 의도적으로 실패하는 모습을 지켜보는 것이 이를 내면화하는 가장 효과적인 방법입니다.

이미 C, 유닉스, 운영 체제 커널의 일반적인 구조를 알고 있다면 파트 1 전체에 걸쳐 제공되는 빠른 패스 노트가 어떤 부분을 주의 깊게 읽고 어떤 부분을 훑어봐도 되는지 알려줍니다.

책 다운로드

버전 2.0은 이제 릴리스 페이지에서 세 가지 언어와 세 가지 형식으로 제공됩니다:

언어PDFEPUBHTML
영어(원본)PDFEPUBHTML
포르투갈어(브라질), AI 번역PDFEPUBHTML
스페인어, AI 번역PDFEPUBHTML

마크다운 소스는 content/ 디렉토리에서 직접 탐색하거나 scripts/build-book.sh 스크립트를 사용하여 책을 직접 빌드할 수도 있습니다.

번역에 관하여

영어 버전은 책의 원본이자 권위 있는 버전입니다. 브라질 포르투갈어 및 스페인어 판은 AI를 사용하여 번역되었으며 아직 완전한 인간 기술 검토를 거치지 않았습니다. 더 많은 독자들이 자료에 접근할 수 있도록 게시되었지만, 번역 과정에서 발생한 오역, 어색한 표현, 기술적 부정확성이 있을 수 있습니다.

번역판에서 명확하지 않거나 일관성이 없거나 기술적으로 의심스러운 부분이 있으면 진실의 원천으로 영어 버전을 참조하십시오. 번역 검토 및 개선에 대한 도움은 환영합니다(아래 기여 참조).

v2.0 알려진 문제

이것은 매우 큰 책의 드래프트 릴리스입니다. 몇 가지 주의할 사항이 있습니다:

  • PDF, EPUB 및 HTML 판의 일부 소스 코드 블록이 페이지를 넘거나 어색하게 줄 바꿈될 수 있습니다. 이는 프레젠테이션 문제이며 향후 릴리스에서 개선될 예정입니다. 콘텐츠 자체는 정확합니다.
  • 렌더링된 형식에서 코드 예제를 읽기 어려운 경우 이 저장소의 마크다운 파일이 진실의 원천입니다. content/에서 해당 파일을 열어 깔끔한 버전을 확인하십시오.
  • pt_BR 및 es_ES에 대한 번역 검토는 저자의 여유 시간이 허락하는 대로 가까운 시일 내에 계획되어 있습니다.``` FDD-book/ ├── content/ # Book content (Markdown) │ ├── chapters/ # Chapters by Part │ └── appendices/ # Appendices A-F ├── examples/ # Source code from the book ├── translations/ │ ├── pt_BR/ # Brazilian Portuguese (AI-translated) │ └── es_ES/ # Spanish (AI-translated) └── scripts/ # Build and utility scripts
## Contributing

모든 종류의 기여를 환영합니다. 여기에는 FreeBSD 개발자와 학습자 모두의 수정, 설명, 새로운 예제, 번역, 리뷰가 포함됩니다.

### 기여 방법

- **콘텐츠:** 새 장(chapter) 추가, 기존 자료 개선
- **기술 리뷰:** FreeBSD 14.x 기준 정확성 검토
- **번역 리뷰:** AI 번역된 **pt_BR** 및 **es_ES** 판본 검토 및 개선 지원; 원어민으로 FreeBSD/커널 경험이 있는 분 특히 환영
- **새 번역:** 책을 다른 언어로 번역하는 데 도움
- **코드:** 예제, 빌드 스크립트, 도구 개선
- **이슈:** 버그, 사실 오류, 불명확한 구절, 포맷 문제 신고

### 이슈 보고

이슈를 제출할 때는 다음을 포함해 주세요:
도구 다운로드