2010. 10 안양대학교 전기전자공학과 서 삼 준 Kernel Image Generation.

Slides:



Advertisements
Similar presentations
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
Advertisements

2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
Embedded S/W 기초이론 및 실습.
When Poll is Better than Interrupt
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
조교: 컴퓨터 응용 실험 컴퓨터공학 연구실 2005년 11월 10일
Linux Debugging issues
Mar OSEK/VDK Woo Dong Kyun.
임베디드 시스템 개발 환경 (1) Lecture #3.
소프트웨어와 운영체제.
임베디드 SW 시스템 소개 - 임베디드 운영체제 - 임베디드 리눅스 - 임베디드 인터넷
임베디드 시스템 개발을 위한 리눅스 환경설정.
제 2장 컴퓨터 구조.
IT R&D Global Leader Finger Motion 인식 SoC ETRI Technology Marketing
1장 유닉스 소개.
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
컴퓨터 네트워크 실습.
Kernel Image Generation
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Windows CE 시스템 개발 환경 구축.
제6장 FUSING.
크로스 컴파일 환경 구축.
Operating Systems Overview
Kernel Porting Lecture #7.
System Call Linux Kernel 수업 3번째.
제4장 Cross Compiler 설치.
임베디드 하드웨어 Lecture #6.
Minicom,tftp,nfs설정,vnc설정
FUSING.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
제8장 커널 & 파일 시스템 분석.
컴퓨터 구조학 정보보호학과.
소개: Unix란 무엇인가? 숙명여대 창병모 2009/09.
임베디드 운영체제 (리눅스 중심) Lecture #2.
Linux를 이용한 Embedded 장비 개발
리눅스 커널의 이해 중에서 1장. 소개 이원구 네트워크 실험실.
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
목차 커널의 개념 및 기능 커널 포팅 램디스크.
DSP와 TMS320F28x의 이해.
Development Environment of Embedded System : part 1
컴퓨터 구조.
컴퓨터 네트워크 실습.
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
1. Embedded System의 이해.
임베디드 소프트웨어 동향. 임베디드 소프트웨어 동향 임베디드 S/W 시장분류 솔루션 측면 시스템 측면 운영체제 개발도구 설계도구 테스트도구 유선통신 무선통신 정보가전 자동차제어 산업자동화 사무자동화 군사/항공우주 의료장비 솔루션 공급 업체 임베디드 S/W시장 임베디드.
Operating System 5주차 - System Call Analysis -
Lecture #3 프로세스(Process).
운영체제 (Operating Systems) (Multi-Thread Programming)
Geek-OS Project 정영진
Xen and the Art of Virtualization
제2장 프로세스 이나현.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
문자 디바이스 드라이버 임베디드 시스템.
Linux/UNIX Programming
망고100 보드로 놀아보자 -12 커널 디렉토리 설명
운영체제 (Operating Systems) (Memory Management Strategies)
Stocker Controller System 소개
JFS operation HP Korea / Operations JFS operation.
12장. 파일 시스템 구현.
Chapter 12 파일 시스템 이해 Solaris1 . 파일 타입
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
화 일 구 조 Chapter 3 화일의 입출력 제어.
임베디드 하드웨어 Lecture #6.
임베디드 리눅스 설치 및 동작 Lecture #5.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
Presentation transcript:

안양대학교 전기전자공학과 서 삼 준 Kernel Image Generation

Contents Understanding of Linux kernel – 기능 – 구조 –file system Kernel image generation (compile) 방법 –CPU dependent patch: ARM(SA 1100), Xscale(PXA 255) – make menuconfig, make depend, make clean, make zImage Kernel zImage generation Summary

Kernel ? Kernel, Nucleus – 운영체제의 핵심 기능 (core functions) 을 담당 –DRAM 에 상주하며, 시스템 구동에 필요한 환경설정과 수행되는 프 로세스의 scheduling Kernel 기능 –Process Management –Memory Management –File System Management –Device Driver Management –Network Management – 기타 : Interrupt processing, Procedure Call/Recover 정보통신, 컴퓨터기술의 발전으로 커널의 기능 변화 – 종래 커널은 단순한 process, memory, device, file system 관리에서 network, GUI 관리까지 확장

Kernel Function Core (kernel) + Utilities Hardware Scheduler User Processes System Call User Processes Interface(Library Routines) I/O ServicesProcess Management Memory ManagementFile System I/O Buffer Device Driver Kernel

Linux Kernel 기본 구조 Process, Memory, File System, Networking, Device Drivers Management 사용자 관점에서 Kernel: User program (User Application), Library & Shell, System Call, Kernel, Hardware

Kernel 의 세부 기능 Process management – 프로세스의 생성 및 소멸, 프로세스간의 통신 (IPC, pipe, signal), CPU 스케 줄링 동기화, 제한된 자원에서 다중 프로세서의 효율적인 관리 기법 등 Memory management – 가상 메모리 관리기법, 메모리 하드웨어의 효율적인 관리 File system management – 가상 파일 시스템 ( VFS ) 에 의한 여러 파일 시스템 지원, 디스크의 물리구조에 따른 논리기법 표현, 파일 /directory 관리, block 입출력을 위한 버퍼 cache 관리 Device management – 입출력 요청의 검증, 입출력 작업 scheduling, 주변장치간의 자료전송, 제어 기 관리, 인터럽트 요청 및 처리 Network management – 통신 프로토콜 구현 (TCP/UDP, IP 등 ), 네트워크 routing 및 주소 지정, 네트 워크 제어기 관리, 네트워크 드라이버와 접속

Linux kernel 특징 (1) The process/Kernel mode –System call: User mode, kernel mode 로 수행 –Kernel threads: Boot 초기에 init 를 kernel thread 로 생성 Process Implementation –Process descriptor Reentrant Kernels –Reentrant, Reentrant functions, Kernel control path Process Address Space – mmap( ) Synchronization & Critical Regions –Non-preemptive kernel, interrupt disabling, semaphores, spin locks, avoiding deadlock

Linux kernel 특징 (2) Signal & IPC –Notifications, synchronous errors & exceptions –Semaphores, message queues, shared memory Process Management –Process groups, login sessions Memory Management –Random access memory usage, kernel memory allocator, process virtual address space handing, swapping & caching Device Drivers

Linux Kernel Architecture (1) 5 Functional Blocks –File system management: VFS(Virtial File System) –Process management –Device (I/O) management –Memory management –Network management Device Interface –Device Driver (Character, Stream, Block unit) System Call Interface –User mode, Supervisor/Kernel mode

Linux Kernel Architecture (2) Process-1Process-2Process-3Process-n System Call Interface File Manager Ext2fs, proc, nfs Msdoc, ………. Process Manager Task manager Scheduler Signaling Memory Manager Network Manager Ipv4, ipv6 Ethernet, ATM, … Device Manager Console, Keyboard SCSI, CD-ROM PCIbus BlockChar Device Interface Device-1Device-2Device-3Device-n buffer cache User Space Device Space Kernel Space VFS (Virtial File System)

Monolithic vs Micro kernel (1) Monolithic kernel – 하나의 커널에 필요한 모든 기능이 통합되어 있는 형태 – 코널 내부에 시스템 운영에 필요한 서비스 루틴으로 구성 – 적은 메모리 공간에 필요한 기능을 내장 함으로서 “ function call ” 로 기능 제공 – 구현이 간단, 시스템 자원을 효율적으로 관리하는 장점 – 다양한 환경의 시스템에 포팅이 어려운 단점과 커널의 크기가 상대적으 로 커지는 단점 – Linux, Solaris, AIX, HP-UX, DG-UX, IRIX 등 Micro kernel – 핵심적인 기능 구현한 최소한의 기능을 커널로 구성 – 서버 모듈 ( 서비스 프로세스 ) 로 나눠 설계하고, 이들 서버를 관리하는 기능 을 커널로 구성 – 기능 확장이 용의, 시스템의 재사용에 장점 – 메시지 전달 방식에 의한 기능 접근으로 태스크 스위칭에 오버헤드 – 자원의 효율적 이용에 단점 –CPU Mach OS, Digital Unix, Sunsoft Chorus 등

Monolithic vs Micro kernel (2) Monolithic, Micro kernel 구조 (b) Micro kernel(a) Monolithic kernel System Service API Hardware Integrated Kernel Architecture 1 1 n n 2 2 System Service API Hardware Micro Kernel Architecture 1 1 n n 2 2 Service Server

System Call User 모드에서 커널 모드로 변환 : System Call, Interrupt 모드 변환과정 –Trap –IRQ(IRQ service : ISR, Interrupt Service Routine) User ModeKernel Mode System Call & Interrupt (trap, IRQ)

System Call: Mode Conversion Mode Conversion Task is Running Execute ISRSystem Call Placed Execute System Functions Return from System Call Schedule New TaskTask Continues Running Schedule Bottom half if Needed IRQTrap Slow Fast ret_from-sys_call ISR: Interrupt Service Routine res_from-sys_call

Kernel 모듈과 관계 프로그램 수행 모드 : Kernel model, User mode Context Switch ( 환경 전환 ) User Application 은 1) System Library, 2) Software Interrupt 를 이 용하여 Trap 을 걸어서 Kernel 에 접근 : System call interface User mode  System mode(TRAP)  Kernel mode : ret_from_sys_call( )

Kernel Generation Procedures (1) Kernel source 를 작업 디렉토리 (/usr/src/linux) 에 복사 Tool Chain 환경 설치 확인 : cross-compiler (/usr/local/arm/bin) ARM, Xscale 환경으로 patch 커널의 컴파일 환경을 타켓보드에 맞게 적용 : make empos_config 작업 디렉토리에서 이전에 작업한 관련 커널 작업 환경을 삭제 : make clean 커널 설정 수행 ( make menuconfig ):. config – Make empos_config 를 통해 구성된 메뉴를 소스에 적용 GNU C compiler 를 이용하여 Makefile 간의 상호 연관성 파일 생성 : make dep (.depend 파일에 소스의 pass 정보가 저장 ) – 컴파일을 수행한 후에 불필요한 object 파일을 삭제 : make clean 커널을 compile ( make zImage ): arch/arm /boot/zImage

Kernel Generation Procedures (2) 주요 kernel generation 작업 make menuconfig make depend make zImage Kernel Image file: zImage Kernel configuration file:.config depend file:.depend Device Drivers Hardware Environments

Kernel Source 구조 커널 소스 : 소스 버전 할당 원칙 : – 메인 버젼 번호 ( 커널 상의 변화 ) – 짝수 버젼은 안정 버전으로 일정 시험을 통과, 홀수 버전은 시험용 버전 – 커널의 작은 변화에 따른 업그레이드 버전 주요 소스 디렉토리 –arch( arch/arm/kernel, mach-sa-1100, mm ), drivers –init, kernel, fs, mm, net, lib, include

Linux File system Ext2 파일 시스템 사용 –NTFS, VFAT, UFS, NFS 등의 다양한 파일 시스템의 사용 가능 –VFS 으로 실제 사용자와 인터페이스 : 커널과 파일 시스템 의 중간에서 일 관성 있는 파일 시스템을 제공 –2Gbytes 의 파일 크기와 4Tbytes 늬 전체 파일 시스템 구성 가능 – 가변 블록 크기와 확장가능 기능 JFFS(Journalling Flash File System) – 스웨덴 Axis Communications 에세 개발, 디스크가 없는 임베디드 시스템 에 flash 메모리를 이용한 전원 / 파손에 안전한 파일 시스템 –MTD 디바이스를 통해 접근 디렉토리 /root bin boot dev etc home lib mnt proc root sbin tmp usr var user1 user2 include lib local sbin src

Kernel Source Directories Source directory LINUX Modules mmnetkernelinitlib include lpc unix inet fsarchdrivers mips alpha sparc ppc i386 net char block scsi sound asm-alpha linux asm-i386 asm-m88k asm-generic asm-mips asm-sparc ext ext2 xiafs lsofs hpfs unsdos nfs proc minix msdos sysv kernel boot mm math-emu

Kernel Compile Blob> tftp zImage kernel Blob> flash kernel #jflash-Xscale zImage make menuconfig make depend make zImage Kernel Image file: /arch/arm/boot/ zImage (compressed image file) Kernel configuration file:.config (make empos_config, make oldconfig) depend file:.depend Device Drivers Check Hardware Environments make clean Delete object files (xxx.o) Target Board: HB-EMPOS Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 move zImage to ROM 득정 하드웨어인 경우 scripts 로 설정

make menuconfig (1)

make menuconfig (2)

make menuconfig (3)

make menuconfig (4)

make menuconfig (5)

make menuconfig (6)

Configuration (1).config ( make menuconfig ) 에서 해당 하드웨어 환경에 따른 Configuration Parameter 를 정의 – COBFIG_CPU_32=y, COBFIG_CPU_SA1100=y, CONFIG_VT=y 등등 하드웨어 환경에 따른 설정에 해당되는 서브 모듈을 해당 디렉토리에서 바인딩 (make dep): Config.in 가상터미널 설정 환경의 예제

Configuration (2) UART 예제 Makefile

make menuconfig (7)

make menuconfig:.config (1)

make menuconfig:.config (2)

make dep: end (2)

make dep: start (1)

make dep:.depend

make dep:.hdepend

make clean: start (1)

make clean: end (2)

make zImage: start (1)

make zImage: end (2)

Summary Understanding of Linux Kernel (for Embedded System) The procedure of kernel configuration (regeneration) Problems –Understanding of kernel functions and sources –Hardware Environments: device drivers –The Basics of kernel and embedded system “ 백번 듣는 것보다 한번 보는 것이 이해하는데 유리하다 ”

Report Lunux 에서 제공되는 파일 시스템에 대한 조사 예 ) ext2, ext3, cramfs, jffs2, MTD 등 Root File System ext2ext3cramfsjffs2 RAM Frash ROM HDD DOC Which file system ? What media ? What method ? initd MTD