7장7장7장7장 한빛미디어 ( 주 ) 파일시스템 개요 파일시스템 종류 파일시스템 구조 루트 파일시스템 커널 부팅 방식 램디스크 JFFS2 파일시스템 파일시스템 개요 파일시스템 종류 파일시스템 구조 루트 파일시스템 커널 부팅 방식 램디스크 JFFS2 파일시스템 파일시스템.

Slides:



Advertisements
Similar presentations
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
Advertisements

데이터 완전삭제프로그램 Perfect Delete 사용설명서  주의 이 프로그램을 이용하여 삭제된 데이터는 어떠한 방법으 로도 복구가 불가능합니다. 그러므로 실제 데이터 삭제시 신중을 기하기 바랍니다.
임베디드시스템 RaspberryPi Sejin Oh.
Flash SSD 강원대학교 `01 최경집.
컴퓨터와 인터넷.
Linux Seminar Cahpter 10. Linux File System
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
EZ Board-M In-Ho, Roh Real Time System Lab.
뇌를 자극하는 Windows Server 2012 R2
소리가 작으면 이어폰 사용 권장!.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
Image & Video processing
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Cross Compiler를이용한 커널 컴파일 및 포팅
MYSQL 설치.
Linux/UNIX Programming
뇌를 자극하는 Windows Server 2012 R2
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
임베디드 시스템.
Windows Server 장. 사고를 대비한 데이터 백업.
임베디드 리눅스 설치 및 동작 Lecture #5.
Ubiquitous Computing Practice - Part I (Installation) -
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
리눅스 라우터 (iii_lrp) 컴퓨터응용과학부 담당교수님 : 이상훈 마 의 호.
강 명 수 LINUX 설치 강 명 수
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Root Filesystem Porting
리눅스 운영체제 운영체제 리눅스 소개 임베디드 리눅스 리눅스 명령어 한빛미디어(주).
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Linux Master 김희승 임승한 OneScore 임승한.
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
3장. CentOS 리눅스 설치.
Cross Compiler를이용한 커널 컴파일 및 포팅
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
27장. 모듈화 프로그래밍.
Device Driver 임베디드 시스템 I.
뇌를 자극하는 Windows Server 2012 R2
임베디드 시스템 개론 임베디드 타겟 보드 포팅 및 H/W 제어 3일차 강의 자료 Embedded System Lab.
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
USN(Ubiquitous Sensor Network)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
뇌를 자극하는 Solaris bible.
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
12 그리드 시스템.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
임베디드 시스템 개론 3주차.
Installation Guide.
06. 디바이스의 등록과 해제 김진홍
CHAP 15. 데이터 스토리지.
Docker Study 6~7.
시스템 해킹과 보안 permission과 SetUID.
CCISS 어레이 형식 centos7 설치방법
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

7장7장7장7장 한빛미디어 ( 주 ) 파일시스템 개요 파일시스템 종류 파일시스템 구조 루트 파일시스템 커널 부팅 방식 램디스크 JFFS2 파일시스템 파일시스템 개요 파일시스템 종류 파일시스템 구조 루트 파일시스템 커널 부팅 방식 램디스크 JFFS2 파일시스템 파일시스템

Section 01 파일시스템 개요 IT CookBook 2 파일 : 저장 매체에 보관된 데이터 집합의 추상적 개념 용도에 따라 다른 파일시스템을 사용하는 것이 효율적 FAT(File Allocation Table): MS-DOS 와 윈도우즈 95 NTFS(NT File System): 윈도우즈 XP EXT2, EXT3: 리눅스 ISO 파일시스템 : CD-ROM NFS: 네트워크 EXT3, JFFS2: 저널링 파일시스템 임베디드 시스템 제한된 자원을 사용 : 효율성 추구 열악한 환경에서도 안정적으로 가동 문제가 발생하면 자동으로 복구 전원을 차단해도 데이터 손실 없이 재가동 불필요한 파일을 제거 플래시 등에서 부팅하기 때문에 파일시스템의 설치에도 주의

3 Section 02 파일시스템 종류 IT CookBook

4 Section 02 파일시스템 종류 IT CookBook 휘발성 파일시스템 전원 인가를 제거하면 사라지는 파일시스템 메모리 일부를 하드디스크처럼 사용 시스템 설치나 장애 복구에 유용하게 사용 gzip 으로 압축 필요 시 메모리 할당, 크기 조정 하나 이상 사용 가능 디스크가 없는 시스템에 유용 램디스크 파일시스템 (RAMFS, RAM File System 혹은 RAMDISK File System) 초기 램디스크 (initrd)

5 Section 02 파일시스템 종류 IT CookBook 비휘발성 파일시스템 FAT(File Allocation Table), FAT32 NTFS(New Technology File System) EXT2, EXT3, EXT4 ReiserFS CRAMFS(Compressed ROM File System) JFFS(Journaling Flash File System), JFFS2 ISO(International Organization for Standardization) 9660

6 Section 02 파일시스템 종류 IT CookBook 특수 파일시스템 NFS(Network File System) Coda PROC(PROCess File System) VFS(Virtual File System)

파일시스템 구조 Section 03 IT CookBook 7

파일시스템 구조 Section 03 IT CookBook 8

파일시스템 구조 Section 03 IT CookBook 9 아이노드 (inode) 리눅스 파일시스템의 가장 기초가 되는 데이터 구조체 파일에 관한 필수 정보를 포함 index node 의 약어 각 파일마다 하나씩 존재 파일에 대한 제어 정보와 데이터 블록 포인터를 포함  파일 소유자 이름  파일 접근 허가권  파일 크기  파일의 마지막 접근 시간  파일의 생성 시간  디스크의 블록 위치 등

파일시스템 구조 Section 03 IT CookBook 10 10

파일시스템 구조 Section 03 IT CookBook 11 11

파일시스템 구조 Section 03 IT CookBook 수퍼 블록 (superblock) 해당 파일시스템과 관련된 정보를 관리 파일시스템을 마운트할 때 커널이 디스크에서 가장 먼저 읽는 정보 할당된 아이노드, 사용할 수 있는 아이노드, 동기화를 위 한 잠금, 파일시스템의 크기와 같은 정보를 포함 수퍼 블록이 손상되면 전체 파일시스템에 대한 정보를 잃 어버리므로 수퍼 블록의 복사본을 여러 군데 유지 아이노드에 대한 조작은 아이노드 연산 구조체를 사용

루트 파일시스템 Section 04 IT CookBook / 디렉토리에 마운트되는 파일시스템 커널이 동작하기 위한 공간, 라이브러리, 유틸리티 등을 포함 램디스크, JFFS2, NFS 등을 주로 사용 직접 구축하기 위해 준비할 데이터 glibc 라이브러리 시스템 초기화 프로그램인 sysvinit termcap 혹은 ncurses 등과 같은 라이브러리 쉘 패키지 bash 로그인을 위한 tinylogin 각종 유틸리티를 위한 패키지 busybox 커널 모듈을 관리하기 위한 유틸리티 modutils

14 IT CookBook  최초의 프로세스 init 가 공유하는 라이브러리 찾아보기  bash 쉘을 실행하기 위해 필요한 라이브러리 찾아보기 실습 7-1 실습 7-1 프로세스에 필요한 라이브러리 찾기

커널 부팅 방식 Section 05 IT CookBook 일반적인 임베디드 리눅스의 부팅 과정

커널 부팅 방식 Section 05 IT CookBook 초기 램디스크 이미지를 이용한 부팅 과정 부트로더가 커널과 초기 램디스크를 플래시에서 메모리로 적재  커널은 압축된 초기 램디스크를 메모리의 다른 장소로 압축을 품. 압축된 초기 램디스크에 의해 사용되었던 메모리 반환  초기 램디스크가 임시 루트 파일시스템으로 커널을 읽기 / 쓰기로 마운트  루트 파일시스템에서 최초로 실행하도록 설정된 쉘 스크립트 /linuxrc 를 실 행. 프로세스 1 번 init 에 의해 초기화 등의 서비스 진행  /linuxrc 가 종료될 때 실제 루트 파일시스템을 커널에 마운트  커널에 마운트된 루트 파일시스템에 /initrd 디렉토리가 존재하면 초기 램디 스크는 그곳으로 이동 ( 없으면 초기 램디스크는 언마운트 )  루트 파일시스템에서 /sbin/init 를 포함한 일반적인 부팅 과정 수행

램디스크 Section 06 IT CookBook 램디스크를 이용한 루트 파일시스템을 사용하기 커널이 램디스크를 지원하도록 환경 설정 램디스크를 지원하는 커널을 생성 램디스크를 이용한 루트 파일시스템을 빌드 필요시 생성된 램디스크 루트 파일시스템을 수정 생성된 램디스크 루트 파일시스템을 이용하려면 커널 이 미지도 타겟 시스템에 탑재해야 한다.

18 IT CookBook  커널 설정 화면에서 [Block devices] 메뉴 선택  [RAM disk support] 항목 선택 → 초기 램디스크 항목 선택 실습 7-2 실습 7-2 램디스크 만들기 ① ③ ②

19 IT CookBook  [Esc] 키를 3 번 누른 후 수정한 커널 설정 저장  루프백 디바이스와 램디스크를 지원하는 커널 이미지 Image 빌드 ( 교재 229 페이지 [ 실습 6-4] 의 ⑦ 과정 참고 )  루프백 디바이스 존재 여부 확인 실습 7-2 실습 7-2 램디스크 만들기 ② ① ③ ④

20 IT CookBook  루프백 디바이스 파일 image_file 을 ext2 형식으로 포맷  image_file 을 임시 디렉토리 (tmp) 에 루프백 디바이스로 마운 트 →df 명령어로 생성된 파일시스템의 가용량 확인 실습 7-2 실습 7-2 램디스크 만들기 ② ① ③

21 IT CookBook  생성한 파일시스템 내부 살펴보기  생성된 파일시스템에 필요한 파일을 복사 or 새로 생성  파일시스템을 임시 디렉토리 tmp 로부터 언마운트 → image_file 을 gzip 으로 압축 (image_file.gz) ⑪ zImage( 커널 이미지 파일 ) 와 image_file.gz( 파일시스템을 압축한 파일 ) 을 타겟 시스템으로 탑재 실습 7-2 실습 7-2 램디스크 만들기 ② ① ② ① ③ ④ ⑤

22 IT CookBook  기존의 램디스크 파일시스템을 임시 디렉토리에 루프백 디 바이스로 마운트 → 파일시스템 내부로 이동  수정 혹은 추가할 내용에 대해 파일시스템 내에서 작업을 수행  수정한 파일시스템 압축  수정된 파일시스템 이미지를 타겟 보드에 탑재 실습 7-3 실습 7-3 램디스크 수정하기 ② ① ③

JFFS2 파일시스템 Section 07 IT CookBook JFFS MTD(Memory Technology Device) 계층 위에서 동작  플래시 메모리를 포장하는 하부 시스템 작은 비용으로 파일시스템의 항상성을 유지 압축과 하드 링크를 지원하지 않고, 가비지 컬렉션 (garbage collection) 수행 시간이 크다 JFFS2 는 JFFS 의 문제점을 보완 마모 - 균등화 (wear-leveling) 상태를 유지 파일을 압축해 용량을 극대화 작은 기억장치를 탑재한 임베디드시스템에 최적화 CPU 성능이 떨어질 때는 파일시스템의 성능 저하 커널 2.4 부터 사용 가능

24 IT CookBook  [File systems]-[Miscellaneous filesystems] 메뉴에서 JFFS2 관련 사항 선택  [Memory Technology Devices (MTD)] 메뉴 선택 실습 7-4 실습 7-4 JFFS2 생성하기

25 IT CookBook  [RAM/ROM/Flash chip drivers] 메뉴에서 항목 선택  [Mapping drivers for chip access] 메뉴에서 항목 선택 실습 7-4 실습 7-4 JFFS2 생성하기

26 IT CookBook  /drivers/mtd/maps/xhyper270.c 파일에서 메모리 맵 설정 실습 7-4 실습 7-4 JFFS2 생성하기

27 IT CookBook  JFFS2 파일시스템 이미지 rootfs.tgz 의 압축 해제  압축을 푼 파일에 대해 수정 / 삭제 / 추가 등의 작업을 수행한 후./mkjffs2 스크립트를 실행해 루트 파일시스템 이미지를 생성 실습 7-5 실습 7-5 JFFS2 파일시스템 이미지 생성하기 ② ① ③ ④ ⑤ ⑥

28 IT CookBook - mkjffs2 스크립트  타겟 시스템을 수동 부팅 → 생성된 rootfs.img 이미지를 부트로더 명령어를 이용해 타겟 시스템의 RAM 에 전송하고 플래시에 퓨징  타겟 시스템 재부팅 실습 7-5 실습 7-5 JFFS2 파일시스템 이미지 생성하기 01 #!/bin/sh srcpath=${1:-"rootfs"} 04 imgname=${2:-"rootfs.img"} test !-x./mkfs.jffs2 && {echo "mkfs.jffs2 does not exist."; exit1; } 07 test !-d $srcpath && { echo "$srcpath does not exist."; exit 1; } 08./mkfs.jffs2 -e 0x d $srcpath -p -o $imgname 09 exit 0

요 약요 약 요 약요 약 IT CookBook 임베디드시스템에서 사용 가능한 파일시스템은 램디스크, CRAMFS, JFFS2 등 여러 종류가 있다. 리눅스 파일시스템의 가장 기초가 되는 데이터 구조체는 아이노드며, 파 일에 대한 제어 정보와 블록 포인터를 가지고 있다. 파일시스템은 타겟 시스템의 사양에 따라 다양하게 선택할 수 있다. 리눅스 파일시스템은 부트 블록, 수퍼 블록, 아이노드 리스트, 테이터 블 록 등으로 이루어진다. 루트 파일시스템은 여러 유틸리티 등을 포함하므로 시스템 크기에 영향 을 많이 준다. 램디스크는 읽기 / 쓰기가 아주 빠르기 때문에 소규모의 루트 파일시스템 을 생성할 때 흔히 사용한다. 램디스크를 이용한 루트 파일시스템을 이용하려면 커널 환경 설정에서 램디스크를 지원하도록 수정한 후 커널 이미지를 다시 빌드해야 한다. JFFS2 는 데이터를 안정적으로 보호하는 저널링 파일시스템으로 마모 균 등화 기능을 갖추고 있고 압축으로 용량을 극대화해 플래시 메모리 기반 의 임베디드시스템에 널리 사용한다.

요 약요 약 요 약요 약 IT CookBook Thank you