커널의 종류
모노리딕 커널 : 커널 주소 공간에 모든 커널 서비스가 존재하고 동작. 커널 서비스를 직접 호출 (리눅스)
마이크로 커널 : 커널 서비스 중 일부가 유저 공간에 있음. 커널 서비스를 메시지 전달 방식을 이용해서 호출 (윈도우)
http://blog.naver.com/skyducks111/30128877140
CPU 아키텍쳐
폰노이만 아키텍쳐 : 어드레스 버스와 데이터 버스를 하나로 쓰는 형태 (ARM7)
- 통합 캐시 : 명령어와 데이터를 동일한 공간에 저장
하버드 아키텍쳐 : 어드레스 버스와 데이터 버스를 분리해서 쓰는 형태 (ARM9)
- 분리된 캐시 : 명령어와 데이터를 저장하는 캐시를 분리
ARM 레지스터
R13 (스택 포인터) : 현재 프로세서 모드의 스택 맨 위 주소값을 저장
R14 (링크 레지스터) : 서브 루틴을 호출할 때의 복귀 주소를 저장
R15 (프로그램 카운터) : 프로세서가 읽어들인 명령어의 그 다음 명령어 주소를 저장
R13 (스택 포인터) : 현재 프로세서 모드의 스택 맨 위 주소값을 저장
R14 (링크 레지스터) : 서브 루틴을 호출할 때의 복귀 주소를 저장
R15 (프로그램 카운터) : 프로세서가 읽어들인 명령어의 그 다음 명령어 주소를 저장
CPSR : 프로그램이 수행될 때의 상태 레지스터, 조건 비트를 저장하는데 사용
SPSR : 프로세서가 특권모드(System 모드 제외)로 들어갈 때 CPSR을 저장하기 위해 사용
SPSR : 프로세서가 특권모드(System 모드 제외)로 들어갈 때 CPSR을 저장하기 위해 사용
ARM 프로세서는 익셉션이나 인터럽트가 발생하면 프로그램 카운터에 특정 메모리 주소를 넣어 익셉션/인터럽트를 처리
부트로더 역할
1. RAM 초기화
2. 시리얼 포트 초기화
3. 머신 타입 찾기
4. 커널 tagged list 구성
5. 커널 이미지로 제어 이관
커널의 시작
1단계 : 커널 이미지인 zImage 압축을 해제하기 위한 준비단계
1단계 : 커널 이미지인 zImage 압축을 해제하기 위한 준비단계
1.1 인터럽트 비활성화
1.2 프로세서 버전에 맞는 프로세서 타입 테이블로 부터 캐시 켜기, 끄기 플러시 수행
1.3 동적 메모리 할당
1.4 BSS 영역 초기화
1.5 MMU를 위한 16KB 페이지 디렉토리 구성
2단계 : zImage 압축 해제
3단계 : 커널 시작
3.1 프로세서 및 머신 정보와 부트로더로 부터 넘겨온 atag 정보의 유효성 등을 검사
3.2 MMU 활성화
3.3 start_kernel() 호출
.bss (block started by symbol, block storage segment)
'Study > Note' 카테고리의 다른 글
USN (Ubiquitous Sensor Network) (0) | 2008.07.31 |
---|---|
모바일 개념 및 용어정리 (0) | 2008.07.29 |
객체지향언어 개념 및 용어정리 (0) | 2008.07.29 |
미들웨어, SOA, EAI 개념 및 용어정리 (0) | 2008.07.29 |
C 개념 및 용어정리 (0) | 2008.07.29 |
OS 개념 및 용어정리 (0) | 2008.07.29 |
임베디드 분야 개념 및 용어정리 (0) | 2008.07.29 |
JAVA 개념 및 용어정리 (0) | 2008.07.29 |
개념용어 정리 (0) | 2007.10.08 |
플리플롭이란? (0) | 2007.08.01 |