램디스크
- 파일시스템을 램 상에 구현한 가상의 하드디스크
- 부팅 초기에 부팅속도 향상을 위해 루트파일시스템을 마운트하여 사용
- 임베디드 시스템에서는 비휘발성인 플래시 메모리에 램디스크 이미지를 압축해서 저장
- 부팅과정에서 램디스크 이미지를 휘발성 메모리인 램에 로딩해서 사용
- 리눅스 상에서 램디스크를 생성하고 수정하는 절차를 배움
(1) 램디스크 개요
1) 램디스크
2) 램디스크 관련 명령어
3) 램디스크 생성 절차
4) 램디스크 수정 절차
1) 램디스크
램디스크 개요
- 램디스크 : 메모리의 일정공간을 하드디스크 처럼 사용
- 램디스크 이미지 : ext2 파일시스템의이미지를 갖는파일
-> 램디스크 이미지 1개로 표현
- 램디스크 오브젝트 : 램디스크 이미지를 가지고있는 ELF 오브젝트 파일
-> 램디스크를 리눅스 커널에 링크할때 사용
- 램디스크 디바이스 파일명 /dev/ram0
램디스크활용
- 장점 : 하드디스크보다 rw 속도빠름
- 단점 : 휘발성 메모리로 전원공급중단시 파괴
- 부팅 초기에 루트파일시스템의 필수부분만을 마운트하여 부팅속도 향상
1. 플래시 메모리에 램디스크 이미지 압축저장
2. 부팅과정에 램디스크 이미지 압축해재
3. 휘발성 메모리 램에 로딩하여사용
임베디드 시스템에서 하드쓰지 않는경우
- 램드스크, 플래시메모리상에 플래시파일시스템사용하여 시스템구현
응용프로그램개발, 유틸리티 프로그램이 추가되야하는경우
-> 램디스크 이미지 수정작업이 필요
루프백(Loopback) 디바이스
- 파일을 블록디바이스처럼 사용하는 가상디바이스
- 사용전에 파일 시스템에 마운팅
- 램디스크같이 파일 시스템이 파일로 표현되는경우 사용
- 램디스크 이미지는 루프백 디바이스로 설정해주어야 한다.
- 루프백 디바이스명 : /dev/loop0
초기 램디스크 디바이스
- initr : 주번호 1, 부번호 250, 읽기전용 디바이스, 리눅스부팅시 임시루트파일 시스템저장하는 램디스크
init 프로세스 실행에 필요한 디바이스 드라이버 및 유틸리티포함
초기 램디스크 디바이스 사용한 부팅절차
1. 초기램디스크디바이스마운팅완료
2. 램디스크 상에있는 /linuxrc 프로그램실행
3. 실제 루트파일시스템으로 마운팅
-> 실제 루트파일시스템이 /initrd 디렉토리를 포함하고있으면 램디스크 디바이스 마운팅 위치가/에서 /initrd로바뀜
4. 램디스크상에 있는 /linuxr 프로그램이 실행
2) 램디스크 관련 명령어
dd(Data definition) 명령어
- raw 데이터를 저수준에서 복사하거나 변환 하는 명령어
- 초기 램디스크를 만들경우 사용
mke2fs 명령어
- 파티션 초기화
- ext2 or ext3 파일시스템 생성
mount 명령어
- 파일시스템을 마운트하는 명령어
losetup 명령어
- 루프백 디바이스 셋업 및 제어
4) 램디스크 수정
- 램디스크 이미지 파일은 압축된 루프백 디바이스 파일
-> 압축해재후 루프백 디바이스를 사용하여 마운트 과정이 필요
(2) 루트파일시스템
1) 루트파일 시스템개요
2) 루트 파일 시스템 생성
1) 루트파일시스템 개요
개요
- 루트파일시스템 : "/" 디렉토리에 마운트되는 파일시스템
- 시스템 초기화 및 각종 주변장치들을 제어하기위한 파일 및 부팅에 필요한 내용들을 포함하는 파일시스템
- 루트 파일 시스템은 일반적으로 읽기 전용으로 마운트 되었다가 커널이 정상적으로 로딩 되면 RW모드로 변경
루트파일시스템의 구성
- 루트파일 시스템에 필요한 최소 디렉토리로 시스템 운영에 필요한 디렉토리로 구성
1. /dev : 디바이스 파일
2. /proc : 커널 실행정보
3. /etc : 시스템 설정파일
4. /sbin : 시스템 관리에 필요한 필수실행파일
5. /bin : 시스템 기본 실행파일
6. /lib : 런타임 공유 라이브러리
7. /mnt : 마운팅 포인트로 사용
8. /usr : 유틸리티와 응용프로그램
9. /root : 루트사용자의 홈디렉토리
10. /boot : 부트로더의 디렉토리
루트파일시스템 구현
- 임베디드시스템은 하드디스크가 없거나 부팅속도향상을 위해 루트파일시스템을 램디스크상에 구현
- 범용 리눅스시스템은 부팅속도 향상을 위해 부팅 초기단계에서 램디스크 사용
루트 파일시스템 생성 절차
1. dd 명령어로 램디스크 이미지 생성
2. 파일시스템 ext2 포멧
3. 파일 시스템 마운팅
4. 기본 디렉토리 생성 : /dev,/proc,/sbin ...
5. 필수 라이브러리 복사 : glibc 복사
6. init 및 스크립트 설치 : sysvinit 패키지
7. 디바이스 파일 설치 :mknod
8. 필요한 응용프로그램 설치 :busybox, tinylogin
9. 쉘프로그램 설치 ; bash
10. 루트파일 시스템 이미지 생성 : gzip과 mkimage 명령어 사용
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
ARM을 활용한 임베디드 시스템 설계 23 - 입출력 디바이스 제어 (0) | 2020.05.05 |
---|---|
ARM을 활용한 임베디드 시스템 설계 22 - 플래시 파일 시스템 (0) | 2020.05.05 |
ARM을 활용한 임베디드 시스템 설계 20 - 리눅스 파일 시스템 (0) | 2020.05.05 |
ARM을 활용한 임베디드 시스템 설계 19 - 커널 재구성 (0) | 2020.05.05 |
ARM을 활용한 임베디드 시스템 설계 18 - 리눅스 커널 (0) | 2020.05.04 |