관리 메뉴

c0smicb0y

Linux Kernel 본문

프로그래밍/Linux

Linux Kernel

2015. 10. 29. 02:04

리눅스 커널


공개소프트웨어 개발자 센터(http://devlab.oss.kr)


운영체제

커널은 운영체제의핵심으로 컴퓨터 시스템을 사용하는데 꼭 필요한 기능을 제공


프로세스 관리

메모리 관리

파일 시스템

I/O



유닉스 V6는 공짜로 뿌림

이것을 기반으로 나온 것이 리눅스


리눅스가 다른 OS보다 늦었지만 좀 더 발전한 것이 오픈소스이기 때문


유저 스페이스에서 시스템 콜을 통해 메모리를 할당하거나 IO를 컨트롤 함


http://iamroot.org

리눅스 커널 스터디


http://kernelstudy.net

ARM, x86, 리눅스 커널 분석

LLVM 컴파일러

SDN/NFV


http://kernel.bz

커널 연구회


커널을 공부할때 가장 많이 볼 곳 > LWN.net 정기적인 소식을 볼 수 있음



커널을 공부하기 위해 필요한 도구들

Tools : ctags, gtags, cscope

AP Manual

ARM Cortex A Series Programmer Guide

ARM Cortex A15 Technical Reference Manual

Kernel 분석에 필요한 AP user manual(가장 중요하지만...)

DTB

Power ePAPR_APPROVED_v1.1

Kernel 책들

UNIX V6로 배우는 커널의 원리와 구조

코드로 알아보는 ARM 리눅스 커널

리눅스 커널 해설


커널을 공부를 시작할 때 팁

1. 함께 공부할 친구를 찾는다

2. 스터디에서는 존칭을 사용

3. 스터디에 부담을 주는 행동을 자제

4. 커널에 맞는 구하기 쉬운 디바이스 선정

5. 꾸준히 공부 할 수 있는 공간

6. 스터디 내용을 공유할 수 있는 인터넷 공간


커널 분석 목표 설정

kernel boot process

mm_init() 분석

Device Driver 분석

그외 스케쥴러 분석


커널 이론 공부 시작

1. 각자 다른 사람들이 모여서 스터디를 할 경우 서로간의 눈 높이를 맞추기 위해서 이론서를 함께 읽습니다. 

2. 이론서는 얇은 책으로!


커널 소스 코드 기반 스터디

소스 코드 드라이빙

코드를 보면서 토론

구글 독 등으로 자료 공유

위키등을 활용해서 내용정리

Q&A로 오프라인 자료 보강


kerne build up


vmlinux 확인


kernel 이미지가 메모리에 로드되기 까지


start_kernel()

Boot Loader -> start_kernel()

init 프로세스가 동작 할때 까지 커널을 초기화


tag를 이용해서 함수 추적

리눅스 커널 개발을 위한 여러가지 도구제공

ctags, gtags, cscope


예) start_kernel() -> mm_init() -> mem_init()

따라가면서 어떻게 시작하고 어떻게 끝나는지 전체 메모리 맵도 보이고 어떻게 불리는지 확인 가능



'프로그래밍 > Linux' 카테고리의 다른 글

doxygen 사용법  (9) 2015.12.19
Qt5 Install on Ubuntu  (0) 2015.11.18
GDB TUI  (0) 2015.11.18
Linux File System  (0) 2015.09.07
API & ABI  (0) 2015.09.05
Comments