ncloader  0.1
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 그룹들 페이지들
모듈
다음은 모든 모듈들의 목록입니다.:
[상세 단계 123456]
oNCLoader이 책의 목적
|oDevelopment어떻게 만들 수 있을까?
||oStage 1 Boot Loader최초의 프로그램
|||ox86Bootloader 의 Stage 1 에서 사용된다. ; ; Floppy diskette 의 첫 번째 섹터 512 bytes 에 기록되는 코드로써 ; BIOS 에 의해 0x7c00 번지에 로딩되어 실행된다. ; FAT12 를 위해 BPB 를 포함하고 있다. ; (BPB: Boot Parameter Block) ; ;
||||oMemory
||||oDefine of Activation Record
||||oDisk I/O
||||\Utility functions
|||\ARM
||oStage 2 Boot Loader시스템을 초기화 하고 커널을 로딩한다
|||ox86Stage 2 for x86
||||oMemory initializing for Protected Mode보호모드 메모리 초기화
|||||oMemory Range Descriptors실제 코드로 구현 하면 아래와 같다
|||||\Global Descriptor Table
||||oInterrupt Service RoutinesInterrupt Service Routine
|||||\8259 Programmable Interrupt ControllerPIC 를 초기화 한다
||||oDirect Memory AccessDMA 콘트롤러를 제어하는 코드를 구현
||||oFloppy Drive Controller플로피 디스크 드라이버를 구현한다
||||oSerial Controller시리얼 접근을 위한 x86 전용 함수 인터페이스를 정의한다
||||oVideo ControllerX86 전용 비디오 메모리 접근을 위한 함수 인터페이스를 정의한다
||||\In/Out PortPort In/Out 기능을 위한 함수 인터페이스를 정의한다
|||oExecutable File Format
||||oExecutable & Linkable File FormatELF 파일 로더를 구현한다
||||\Portable Executable File Format
|||oFilesystem파일 시스템
||||oVirtual Filesystem다양한 종류의 파일시스템을 지원하기 위한 인터페이스 계층을 정의하고 구현한다. VFS 는 폴더와 파일의 계층 구조를 Binary tree 형태로 표현하고, 유지 관리한다. 다양한 종류의 파일 시스템들은 주어진 sinfo 구조체에 맞추어 함수를 구현한다. VFS 는 On-demand 형태로 tree 를 구축해 나간다. 즉, 실제 특정 폴더에 접근을 할 때, 해당 폴더의 자식 node 를 생성한다. 자식 노드들을 채우는 것은 파일시스템에서 구현한다
||||oFAT12FAT 파일 시스템을 구현한다
||||\Root Filesystem가상 루트 파일 시스템은 메모리상에 최초로 생성되는 것으로, 파일 시스템 환경을 구축하기 위한 기본 환경 을 구성한다
|||o프로세스(쓰레드)NCLoader 는 커널 쓰레드만 지원한다
|||o메모리
||||oThe simplest memory allocator
||||\Boot memory manager (Wrapper of allocator)Boot loader 가 접근 가능한 영역의 메모리를 관리해하는 컴포넌트이다
|||oDevice외부 장치로의 입출력을 위한 공통된 디바이스 인터페이스를 정의한다
|||oTest functions
|||oConfiguration manager
|||\이중 연결 리스트Linux kenrel 에서 가져온 List 관리 함수들의 구현체
||\C Library가장 기본적으로 사용되는 C Library 인터페이스를 정의한다
|| o디버깅 함수C Library 에서 디버깅을 위한 함수를 정의한다
|| octypeCtype
|| oFile 제어 옵션파일 제어 관련 함수들을 선언/정의 한다
|| o패턴 매칭 함수들을 정의한다.POSIX 표준 문서 규약에 따라 두 함수를 정의한다
|| oextra memory allocating functions표준에서 정의하는 라이브러리 함수들을 구현
|| oPOSIX 쓰레드POSIX 기준의 쓰레드 API set 을 정의하고 구현한다
|| |\POSIX 뮤텍스POSIX 에 준하는 뮤텍스 API set 을 정의한다
|| oPOSIX semaphore
|| o표준 가변 인자 처리 함수가변인자를 처리하는 표준 함수들을 정의한다
|| o표준 형 정의표준 형을 정의한다
|| o표준 입출력 함수C Library 에서 입출력 함수들을 정의한다
|| o표준 라이브러리 함수들을 구현표준에서 정의하는 라이브러리 함수들을 구현
|| o표준 문자열 처리 함수C Library 에서 문자열 처리 함수들을 정의한다
|| o형 정의
|| o시간과 관련된 함수와 자료 구조시간과 관련된 함수들을 정의한다
|| o표준 기호 상수와 형표준 기호 상수와 형을 선언한다
|| \포팅Slibc 에서 필요한 platform 의존적인 코드들을 구현한다
|oTools개발에 필요한 도구들과 사용법
||\Implementation of tools
|| oELF ParserELF 포맷을 파싱해서 링크 하고 메모리에 적재해서 실행시킨다. NCKernel 은 ELF 포맷이기 때문에, 이 로더가 커널을 로딩한다
|| oImage writer
|| oSamplesVarious sample codes
|| oPartition Analyzer
|| oFAT12 Reserved Sector updator
|| \Hexa-dump
|\For the beginners시작하는 사람들을 위해서
\Page frame 관리자Page allocator 는 Page frame 을 관리한다. Buddy allocator 를 나름대로(독자적으로) 이해해서, 구현 하였다