ݺߣ

ݺߣShare a Scribd company logo
망고100 보드로 놀아보자 -12

    커널 디렉토리 설명



         http://cafe.naver.com/embeddedcrazyboys
         http://www.mangoboard.com
Linux 커널 소스 트리 구조
        sound                        ipc       lib                     block
                    kernel                                  mm
         Doc                                                           scripts
                                SRC/                                                    cdrom
                                                                               driver   char
          arch
alpha                   fs                                       net                    net
                                    init      include
i386                                                                       802          pci
                             coda                    asm-alpha             appletalk    pnp
m68k
                             ext2                    asm-arm               decnet       sbus
mips
                             hpfs                                          ethernet     scsi
 ppc       boot
                             msdos                   asm-i386              ipv4
sparc      kernel
                             nfs                     linux                 unix         video
arm        lib                                                             sunrpc
                             isofs                   net
           math-emu          ntfs                                          x25
                                                     scsi
           mm
                                                     video



                                     http://www.mangoboard.com
각 디렉토리 설명
• arch/
   – CPU 종속적인 부분, 각 처리기 마다 하위 디렉토리로 구성됨 (arch/arm,
     arch/i386, arch/alpha … )
   – arch/arm/boot/
          • 부트스트랩핑 코드
   – arch/arm/kernel/
          •   하드웨어 종속적인(hardware dependent) 커널 관리 루틴
          •   트랩, 인터럽트 처리 루틴
          •   문맥 교환 루틴
          •   장치 구성, 초기화 루틴
   – arch/arm/mm/
          • 하드웨어 종속적인 메모리 관리 루틴
• init/
   – 하드웨어 독립적인 커널 초기화 루틴 (start_kernel)
   – 태스크 0 (init_task or task[0]) 생성
   – 태스크 1, 2, 3 등 데몬 프로세스 생성


                           http://www.mangoboard.com
각 디렉토리 설명 (2)
• kernel/
   – 리눅스 커널의 가장 중심적인 디렉토리 (central section of the kernel)
   – 하드웨어 독립적인 커널 관리 루틴 (하드웨어 종속적인 커널 관리 루틴
     은 arch/arm/kernel 디렉토리에 존재)
   – fork, exit 등 태스크 관련 시스템 호출 처리 루틴
   – 스케줄러 (scheduler) 루틴
   – 시그널 처리 (signal handling)/시간 관리 (time management) 루틴
• mm/
   – 하드웨어 독립적인 메모리 관리 루틴 (하드웨어 종속적인 메모리 관리
     루틴은 arch/arm/mm 디렉토리에 존재)
   – 가상 메모리 관리, 페이징 (paging), 스와핑(swapping)
• fs/
   – 가상 파일 시스템 (virtual file system ) 관리 루틴
   – open, read 등 태스크 관련 시스템 호출 처리 루틴
   – 특정 파일 시스템 관리 루틴은 하위 디렉토리에 존재 (ext2, ext3, ramfs,
     minix, jffs2, proc, nfs, msdos, coda, .. )


                     http://www.mangoboard.com
각 디렉토리 설명 (3)
• drivers/
   –   개개의 장치를 제어하기 위한 장치 드라이버 루틴
   –   디바이스 드라이버는 크게 문자/블록/네트워크 드라이버로 구분
   –   drivers/block/ : 블록 장치 드라이버. 예를 들어 IDE 디스크 (hd)
   –   drivers/char/ : 문자 장치 드라이버. serial ports, tty, modem, ..)
   –   drivers/net : 네트웍 장치 드라이버. 예를 들어 3C509, ...
   –   drivers/pci/ : PCI bus 제어
   –   drivers/cdrom/ : CD-ROM 드라이버
   –   drivers/scsi/ : SCSI 인터페이스 관리

• Sound :sound card 드라이버
• ipc/
   – 프로세스간 통신을 지원하기 위한 루틴
   – 세마포어(semaphores), 공유 메모리(shared memory), 메시지 큐
     (message queues)


                          http://www.mangoboard.com
각 디렉토리 설명 (4)
• net/
   – TCP/IP, ARP 등 네트웍 통신 프로토콜 (네트웍 장치 드라이버는
     drivers/net에 존재)
   – 소켓 인터페이스
• include/
   – 커널 헤더
   – 하드웨어 독립적인 헤더 : include/linux/
   – 하드웨어 종속적인 헤더 : include/asm-***/ (예를 들어 ARM CPU 종속
     적인 헤더는 include/asm-arm/ 디렉토리에 존재)
• lib/
   – 커널 라이브러리 루틴
• doc/ or Documentation/
   – 커널 문서 디렉토리.



                      http://www.mangoboard.com

More Related Content

What's hot (14)

망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
종인 전
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
Chulgyu Shin
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
유명환 FunFun Yoo
Maker 오해와 진실
Maker 오해와 진실Maker 오해와 진실
Maker 오해와 진실
유명환 FunFun Yoo
MCU(nanheekim)
MCU(nanheekim)MCU(nanheekim)
MCU(nanheekim)
Nanhee Kim
파일시스템 관련 명령어
파일시스템 관련 명령어파일시스템 관련 명령어
파일시스템 관련 명령어
Chulgyu Shin
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
준혁 이
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
hungrok
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
Jong Wook Kim
Linux tutorial
Linux tutorialLinux tutorial
Linux tutorial
Hyun-hwan Jeong
이것이 리눅스다
이것이 리눅스다이것이 리눅스다
이것이 리눅스다
Yeon Tae Kim
Raspberry pi 에서 실행파일 살펴보기
Raspberry pi 에서  실행파일 살펴보기Raspberry pi 에서  실행파일 살펴보기
Raspberry pi 에서 실행파일 살펴보기
정국 정
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
sung ki choi
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
종인 전
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
Chulgyu Shin
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
유명환 FunFun Yoo
파일시스템 관련 명령어
파일시스템 관련 명령어파일시스템 관련 명령어
파일시스템 관련 명령어
Chulgyu Shin
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
준혁 이
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
hungrok
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
Jong Wook Kim
Raspberry pi 에서 실행파일 살펴보기
Raspberry pi 에서  실행파일 살펴보기Raspberry pi 에서  실행파일 살펴보기
Raspberry pi 에서 실행파일 살펴보기
정국 정
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
sung ki choi

Viewers also liked (8)

망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도
종인 전
망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30
종인 전
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
종인 전
AHRI Article on HR 2.0
AHRI Article on HR 2.0AHRI Article on HR 2.0
AHRI Article on HR 2.0
gxdoyle
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
종인 전
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
종인 전
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3
종인 전
Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x
종인 전
망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30망고210 매뉴얼 2010 12-30
망고210 매뉴얼 2010 12-30
종인 전
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
종인 전
AHRI Article on HR 2.0
AHRI Article on HR 2.0AHRI Article on HR 2.0
AHRI Article on HR 2.0
gxdoyle
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
종인 전
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
종인 전
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3
종인 전
Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x
종인 전

Similar to 망고100 보드로 놀아보자 12 (20)

Tcp summary
Tcp summaryTcp summary
Tcp summary
Jooho Lee
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요
chcbaram
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driver
jumiss
Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for Beginner
InfraEngineer
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
Daniel Shin
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
Jaeock Shim
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
sprdd
Foss open sorucesw_6902
Foss open sorucesw_6902Foss open sorucesw_6902
Foss open sorucesw_6902
승우 백
Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)
WAVENIX CO.,LTD.
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
Peter YoungSik Yun
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
GangSeok Lee
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
J J
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systems
H K Yoon
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
sprdd
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제
Lee Sang-Ho
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
NAVER D2
망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6
종인 전
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
주항 박
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
중선 곽
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요
chcbaram
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driver
jumiss
Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for Beginner
InfraEngineer
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
Daniel Shin
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
Jaeock Shim
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
sprdd
Foss open sorucesw_6902
Foss open sorucesw_6902Foss open sorucesw_6902
Foss open sorucesw_6902
승우 백
Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)Acute travel logic logic analyzer(s)
Acute travel logic logic analyzer(s)
WAVENIX CO.,LTD.
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
GangSeok Lee
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
J J
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systems
H K Yoon
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
sprdd
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제
Lee Sang-Ho
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
NAVER D2
망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6
종인 전
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
주항 박
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
중선 곽

More from 종인 전 (18)

망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
종인 전
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
종인 전
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법
종인 전
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
종인 전
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18
종인 전
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
종인 전
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
종인 전
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16
종인 전
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15
종인 전
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14
종인 전
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기
종인 전
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
종인 전
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드
종인 전
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8
종인 전
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7
종인 전
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4
종인 전
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2
종인 전
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1
종인 전
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
종인 전
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
종인 전
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법
종인 전
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
종인 전
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18
종인 전
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
종인 전
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
종인 전
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16
종인 전
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15
종인 전
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14
종인 전
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기
종인 전
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
종인 전
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드
종인 전
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8
종인 전
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7
종인 전
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4
종인 전
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2
종인 전
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1
종인 전

망고100 보드로 놀아보자 12

  • 1. 망고100 보드로 놀아보자 -12 커널 디렉토리 설명 http://cafe.naver.com/embeddedcrazyboys http://www.mangoboard.com
  • 2. Linux 커널 소스 트리 구조 sound ipc lib block kernel mm Doc scripts SRC/ cdrom driver char arch alpha fs net net init include i386 802 pci coda asm-alpha appletalk pnp m68k ext2 asm-arm decnet sbus mips hpfs ethernet scsi ppc boot msdos asm-i386 ipv4 sparc kernel nfs linux unix video arm lib sunrpc isofs net math-emu ntfs x25 scsi mm video http://www.mangoboard.com
  • 3. 각 디렉토리 설명 • arch/ – CPU 종속적인 부분, 각 처리기 마다 하위 디렉토리로 구성됨 (arch/arm, arch/i386, arch/alpha … ) – arch/arm/boot/ • 부트스트랩핑 코드 – arch/arm/kernel/ • 하드웨어 종속적인(hardware dependent) 커널 관리 루틴 • 트랩, 인터럽트 처리 루틴 • 문맥 교환 루틴 • 장치 구성, 초기화 루틴 – arch/arm/mm/ • 하드웨어 종속적인 메모리 관리 루틴 • init/ – 하드웨어 독립적인 커널 초기화 루틴 (start_kernel) – 태스크 0 (init_task or task[0]) 생성 – 태스크 1, 2, 3 등 데몬 프로세스 생성 http://www.mangoboard.com
  • 4. 각 디렉토리 설명 (2) • kernel/ – 리눅스 커널의 가장 중심적인 디렉토리 (central section of the kernel) – 하드웨어 독립적인 커널 관리 루틴 (하드웨어 종속적인 커널 관리 루틴 은 arch/arm/kernel 디렉토리에 존재) – fork, exit 등 태스크 관련 시스템 호출 처리 루틴 – 스케줄러 (scheduler) 루틴 – 시그널 처리 (signal handling)/시간 관리 (time management) 루틴 • mm/ – 하드웨어 독립적인 메모리 관리 루틴 (하드웨어 종속적인 메모리 관리 루틴은 arch/arm/mm 디렉토리에 존재) – 가상 메모리 관리, 페이징 (paging), 스와핑(swapping) • fs/ – 가상 파일 시스템 (virtual file system ) 관리 루틴 – open, read 등 태스크 관련 시스템 호출 처리 루틴 – 특정 파일 시스템 관리 루틴은 하위 디렉토리에 존재 (ext2, ext3, ramfs, minix, jffs2, proc, nfs, msdos, coda, .. ) http://www.mangoboard.com
  • 5. 각 디렉토리 설명 (3) • drivers/ – 개개의 장치를 제어하기 위한 장치 드라이버 루틴 – 디바이스 드라이버는 크게 문자/블록/네트워크 드라이버로 구분 – drivers/block/ : 블록 장치 드라이버. 예를 들어 IDE 디스크 (hd) – drivers/char/ : 문자 장치 드라이버. serial ports, tty, modem, ..) – drivers/net : 네트웍 장치 드라이버. 예를 들어 3C509, ... – drivers/pci/ : PCI bus 제어 – drivers/cdrom/ : CD-ROM 드라이버 – drivers/scsi/ : SCSI 인터페이스 관리 • Sound :sound card 드라이버 • ipc/ – 프로세스간 통신을 지원하기 위한 루틴 – 세마포어(semaphores), 공유 메모리(shared memory), 메시지 큐 (message queues) http://www.mangoboard.com
  • 6. 각 디렉토리 설명 (4) • net/ – TCP/IP, ARP 등 네트웍 통신 프로토콜 (네트웍 장치 드라이버는 drivers/net에 존재) – 소켓 인터페이스 • include/ – 커널 헤더 – 하드웨어 독립적인 헤더 : include/linux/ – 하드웨어 종속적인 헤더 : include/asm-***/ (예를 들어 ARM CPU 종속 적인 헤더는 include/asm-arm/ 디렉토리에 존재) • lib/ – 커널 라이브러리 루틴 • doc/ or Documentation/ – 커널 문서 디렉토리. http://www.mangoboard.com