임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템 2. 임베디드 리눅스 시스템 3. 호스트와 타겟 4. 호스트/타겟의 개발 환경 5. 호스트/타겟의 디버깅 환경 충북대학교 임베디드 시스템 연구실
1. 임베디드 시스템 임베디드 시스템 임베디드 소프트웨어의 발전 특정한 기능을 수행하기 위한 컴퓨터의 하드웨어와 소프트웨어를 내장하고 있는 고기능의 전자 제어 시스템 임베디드 소프트웨어의 발전 응용 프로그램 모니터 프로그램 + 운영 프로그램 OS (Operating System) + 운영 프로그램 네트워크와 파일 시스템 사용 가능 충북대학교 임베디드 시스템 연구실
2. 임베디드 리눅스 시스템 임베디드 리눅스 리눅스 특징 임베디드 리눅스 커널은 따로 존재하지 않는다. 리눅스 커널을 운영체제로 사용하는 임베디드 시스템이다. 리눅스 특징 Monolithic kernel Soft real time 충북대학교 임베디드 시스템 연구실
3. Host and Target Host Target 임베디드 시스템을 개발하기 위한 컴퓨터 시스템 유형 Linux workstation Unix workstation Windows workstation Target 개발하려는 임베디드 시스템 충북대학교 임베디드 시스템 연구실
호스트의 유형 Linux workstation 가장 많이 사용되는 개발용 호스트 하드웨어 플랫폼 표준 PC, Apple PowerBook, MIPS workstation 등 하드웨어 성능(CPU, memory, HDD)은 좋을수록 좋다. 소프트웨어 (표준 리눅스 배포판) Red Hat, Debian, Mandrake, SuSE, Yellow Dog, etc. 충북대학교 임베디드 시스템 연구실
호스트의 유형 Unix workstation Windows workstation GNU development tool chain을 사용할 수 있다. Windows workstation Windows 환경에서 리눅스를 수행하는 소프트웨어를 설치하고 임베디드 리눅스 시스템 개발 환경으로 사용한다. WMWare, Connectix 등 충북대학교 임베디드 시스템 연구실
4. 호스트/타겟의 개발 환경 세 가지 host/target 환경 Linked setup Removable storage setup Stand alone setup 충북대학교 임베디드 시스템 연구실
Linked setup Host Target Serial cable or Ethernet Cross-Platform development environment Bootloader Kernel Root filesystem 충북대학교 임베디드 시스템 연구실
Removable storage setup Host Target Cross-Platform development environment Bootloader Secondary Bootloader Kernel Root filesystem CompactFlash IDE device Fixed flash chip 충북대학교 임베디드 시스템 연구실
Stand alone setup High-end PC-based embedded system을 개발할 때 주로 사용한다. Target Bootloader Kernel Full root filesystem Native development environment 충북대학교 임베디드 시스템 연구실
5. 호스트/타겟의 디버깅 환경 세가지 유형의 디버깅 환경 Serial link Network interface Special debugging hardware 충북대학교 임베디드 시스템 연구실
Serial link 호스트와 타겟을 직렬 케이블로 연결 가장 간단 단점 속도 제한 타겟에 직렬 포트가 한 개일 때, terminal emulator 용으로 사용되므로 동시에 디버깅 용으로 사용할 수 없다. 충북대학교 임베디드 시스템 연구실
Network interface Serial port보다 bandwidth가 높다. 한 개의 physical network link로 여러 개의 network connection을 사용할 수 있다. 네트워크 인터페이스를 사용한다는 것은 이미 커널에 네트워크 스택이 올라와 있다는 의미이다. 커널 자체를 디버그 하는 데 사용할 수 없다. 커널 디버그는 serial link를 통하여 수행되어야 한다. 충북대학교 임베디드 시스템 연구실
Special debugging hardware 소프트웨어를 제어하는 특수 디버그 용 하드웨어: 비싸다. BDM or JTAG interface In-Circuit Emulator (ICE) 충북대학교 임베디드 시스템 연구실
시스템 개발 도구 목적 내용 임베디드 리눅스 시스템 개발을 위한 호스트 컴퓨터의 환경 구축 Linux directory Linux filesystem Project workspace GNU Cross-Platform Development Toolchain 충북대학교 임베디드 시스템 연구실
Embedded system overview Bootloader Kernel Compile Cross development toolchain RAM Disk User filesystem Host Target 충북대학교 임베디드 시스템 연구실
Linux directory / 최상의 디렉토리인 루트 디렉토리. /bin 중요하고 꼭 필요한 명령어가 있는 디렉토리. /boot 커널(vmlinux등) 시스템 부팅에 관련된 파일을 저장하고 있는 디렉토리. /dev 시스템 디바이스 파일을 저장하고 있는 디렉토리. /etc 패스워드 파일등 시스템의 전체 환경설정 파일을 저장하고 있는 디렉토리. /home 사용자의 홈디렉토리, ID와 동일한 이름으로 디렉토리를 가짐. /lib 프로그램(C, C++등)에 필요한 각종 라이브러리를 저장. /mnt 플로피, CD-ROM 등 마운트를 위한 디렉토리. 충북대학교 임베디드 시스템 연구실
Linux Directory /proc 실행 중인 프로세스나 현재 시스템의 정보를 파일형태로 보여주는 가상 디렉토리. /root root의 홈 디렉토리. /sbin 시스템 관리자용 명령어를 저장하고 있는 디렉토리. /tmp 일시적인 저장을 위한 디렉토리. /usr 각종 어플리케이션등이 설치되어 있는 디렉토리. /usr/X11R6 X 윈도우 시스템의 루트 디렉토리. /usr/include C 프로그램에 필요한 헤더파일(*.h) 디렉토리. /usr/lib /lib에 들어가지 않은 라이브러리 디렉토리. 충북대학교 임베디드 시스템 연구실