Ch 08. 부트 프로세스 Flatstar.

Slides:



Advertisements
Similar presentations
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
Advertisements

수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
장승빈 SSD 최적화. Index 1. AHCI 기능 활성화 ( 필수 ) 2. TRIM 기능 활성화 ( 필수 ) 3. 가상메모리 비활성화 ( 선택 ) 4. 슈퍼패치 (Superfetch) 기능 끄기 ( 자동 ) 5. 시스템 보호 기능 끄기 ( 선택 )
강 명 수 LINUX 부팅과정 & 부트로더.
2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.
지하철 안내 앱 소개 제작자 : 손성준 P.S 이 사진은 내용과 관계없음을 명백히 알립니다.( 솔직히 전기동차라는 공통점이 있긴 하지만 ) 그리고 본인이 촬영하였음을 알립니다.
1. Drive A, Drive B 표준 CMOS 설정 화면에서는 하드디스크 드라이브의 특성 외에 플로피디스크 드라이브도 설정해야 합니다. PC에서 FDD를 2개까지 사용할 수 있다. 표준 CMOS  설정 화면의 Drive A와 Drive B 항목에서는 플로피디스크.
시스템 운영계획 OS 설치 및 드라이버 설치 패치 및 업그레이드 보안설정
Understanding of Ubiquitous & Computers Plus
Managing Filesystems, Swap Space, and Devices
LOGO 주기억장치와 보조기억장치 한재성.
부트 프로세스 박철승.
성상품화와 성매매 성상품화란 성을 매개로 하여 성매매는 주로 여성의 성을 돈을 주고 사는 것을 말한다.
하드웨어특강 (중요장치) 작성자 : 오창중.
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
원격교육과 이러닝 우미희.
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
소프트웨어와 운영체제.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Boot cd제작방법과 윈도 Administrator Password 초기
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
17 20 정보보안 개인정보보호 능력 향상 마침표 없는 정보보호!.
제12강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
4. 시스템 관리 기본 naldo.
안드로이드 스터디 => 언어만 잘 알면 어플리케이션을 만들 수 있을 것이다!
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
제6장 FUSING.
크로스 컴파일 환경 구축.
3.1 기억장치와 저장장치의 구분 3.2 기억장치 3.3 자기 저장장치 3.4 광 저장장치 3.5 백업의 중용성
FUSING.
운 영 체 제 실 습 (리눅스 서버관리입문) 02. 리눅스 설치.
제8장 커널 & 파일 시스템 분석.
Complementary Metal Oxide Semiconductor
Tftp, nfs, samba 실습 임베디드 시스템 I.
Firewall & N-IDS 김창현.
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
목차 커널의 개념 및 기능 커널 포팅 램디스크.
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Development Environment of Embedded System : part 1
컴퓨터 구조.
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
(PROJECT명: Web Server관리)
Operating System 5주차 - System Call Analysis -
강철(cancho_at_sparcs)
부트로더와 커널 이미지 부트로더 개요 타겟 시스템 부트로더 분석 부트로더 생성 커널 빌드 과정 커널 컴파일 규칙 커널 포팅
장애인과 함께하는 시민도서관 “신체적, 사회적 여건에 관계없이 공평하게 이용해야 할 것” 큰글자도서, 촉각도서, 오디오북, DVD, CD-ROM 등의 특수자료와 62만 여권의 도서를 장애인정보누리터와 각 자료실에.
망고100 보드로 놀아보자 -12 커널 디렉토리 설명
D:\win_9X\setup.exe 또는 D:\win_XP\setup.exe 을 클릭하여 설치합니다.
4장 서버 구축을 위해 알아야 할 핵심 개념과 명령어
개인정보처리와 개인정보보호 2017년 2월.
Windows7 – 글꼴, 시스템, 장치관리자, 전원옵션
Linux 9.X 기초에서 활용까지 Chapter 03 리눅스 설치.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
아카데미나이스 RFID설치 방법 아카데미나이스 RFID설치 방법
2-3-1 민주 시민의 경제적 구실 3 (3)민주시민의 다양한 경제적 역할 주요 학습 내용 민주 시민의 다양한 경제적 역할
Ⅰ 기록물이란 Ⅱ 기록 관리 흐름 “꿈과 희망을 주는 대전교육” Ⅲ 기록물분류기준표 운영 Ⅳ 기록관리 절차 Ⅴ 실무처리 요령.
바이러스와 악성코드.
노년기 발달 장안대 행정법률과 세류반 정 오 손
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
2-3-1 민주 시민의 경제적 구실 2 (2)민주 시민으로서의 생산자 역할 바람직한 기업의 활동 주요 기업의 사회적 책임 학습
워밍업 실뭉치 전달게임.
음파성명학 최종욱.
임베디드 리눅스 설치 및 동작 Lecture #5.
과목명: 사회 학년 학기: 3학년 1학기 시장경제의 이해> 시장경제의 특성 ( 1 / 7 )
Presentation transcript:

Ch 08. 부트 프로세스 Flatstar

부트 프로세스란? 컴퓨터의 시동 과정을 부트 과정(Boot process)라고 합니다. 시스템의 부팅 과정을 이해하는 것은 매우 중요한 과정으로 리눅스 시스템 운영의 기본이 됩니다. 리눅스 시스템의 부트 과정은 다음과 같이 7단계로 구분되어 있습니다.

부트 프로세스 1 2 3 4 5 6 7 시스템 전원 ON BIOS 프로그램의 실행 부팅매체 검색 부트로더 실행 부팅매체 검색 4 부트로더 실행 5 커널 부트 이미(vmlinuz) 적재 6 루트(\) 파일시스템 마운트 7 init 프로세스 실행 Conclusion

1 시스템 전원 ON 시스템에 전원을 공급하는 과정입니다. 메인보드의 ROM-BIOS*에 있는 BIOS** 프로그램들이 자동으로 시작되고 이 프로그램들은 전원이 공급됨에 따라 메모리와 CPU를 동작시킵니다. *ROM-BIOS = BIOS들이 들어있는 롬. 롬과 램이 뭔지 모르시는 분? **BIOS = Basic Input Output System, 나머지는 다음 장에.. Conclusion

전력이 공급되면 마더보드의 ROM-BIOS에 있는 BIOS들이 자동으로 동작합니다. 2 BIOS 프로그램의 실행 BIOS란? BIOS(Basic Input Output System)는 시스템의 부팅(Booting)시에 가장 먼저 실행되는 프로그램입니다. 전력이 공급되면 마더보드의 ROM-BIOS에 있는 BIOS들이 자동으로 동작합니다. 가장 근본적인 어떻게 화면에 표시를 할 지, 어떻게 디스크에 저장을 할 것인지, 어떻게 키보드로부터 입력을 받을 것인지 등에 대한 프로그램이 들어가 있습니다. 우리가 무의식적으로 호흡을 하고, 잠자면서도 심장이 뛰는 것과 마찬가지로 모든 컴퓨터 시스템의 안쪽에서 돌아가고 있는 시스템입니다. ROM-BIOS Conclusion

2 BIOS 프로그램의 실행 POST POST(Power-On Self Test)란 시스템 부팅(Booting)시 CPU, 메모리, 그래픽카드, 키보드 등등의 정상작동 상태를 확인하는 프로그램입니다. 이 과정에서 문제가 발견되지 않으면 정상적인 부팅 과정으로 넘어가고, 문제가 발견되면 ‘삑’하는 비프음(beep)과 함께 SETUP을 위해 시스템 기능이 잠시 정지합니다. POST도 마더보드 운영의 일환인므로 BIOS 안에 포함되지만 보통 BIOS에서 POST 기능을 따로 떼어내서 해석하기 때문에 따로 다룹니다. Ps. POST 문제 발생 시 발생하는 비프음에 관한 정보. http://blog.daum.net/hanlimpark/13565134 Ps2. 내 블로그 아님. Conclusion

3 부팅매체 검색 POST 과정에서 문제가 발견되지 않고 검사가 무사히 완료되면 검색된 부팅매체*중 CMOS**에 설정되어 있는 순서대로 부팅을 시도합니다. 이 때, 하드디스크로의 부팅에 있어서는 MBR***로 부팅의 제어권을 넘기게 되는데 그에 따라서 MBR에 존재하는 부트로더(Boot loader)인 GRUB을 읽어 들이게 됩니다. *부팅매체 = 하드디스크, CD-ROM, DVD, 네트워크 등등 **CMOS = 트랜지스터 관련 테크놀러지가 아니다. CMOS BIOS. ***MBR = Master Booting Record, 시스템 파일의 첫 번째 부분. 부트로더, GRUB = 다음 장에서..

4 부트로더 실행 BOOT LOADER란? 윈도우 운영체제만을 사용할 때에는 부트로더에 큰 관심을 가지지 않아도 되겠지만 리눅스 시스템을 사용하기 위해서는 반드시 부트로더에 대한 이해가 필요합니다. 부트로더(Boot Loader)라 함은 운영 체제의 부팅 이전에 먼저 실행되는 프로그램으로 *커널이 올바르게 부팅되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 부팅 시키는 프로그램입니다. 리눅스 커널을 위한 부트로더로는 LILO(Linux Loader)와 GRUB(Grand Unified Bootloader) 등이 있으며, 현재는 GRUB가 대표적으로 사용되고 있습니다.

커널 = kernel, 알맹이란 뜻으로 시스템이 부팅될 때 가장 먼저 읽혀지는 핵심 부분입니다 커널은 다음과 같이 크게 몇 부분의 기능으로 구성되어 있습니다: 그 시스템의 메모리와 각 프로세스의 할당문제를 관리하는 기능 . CPU를 사용하는 순서를 정하는 일. 이렇게 함으로 해서, 모든 사용자가 골고루 원하는 작업을 동시에 할 수 있도록 하는 일 . 그 시스템에서 처리되는 각종 데이타를 변환, 전송 하는 기능 . 쉘과 연관되어 쉘에서 지시한 작업을 수행하고, 그 결과를 쉘로 보내는 일 . 파일 시스템의 접근 권한을 처리하는 일 .

4 부트로더 실행 GRUB GNU GRUB은 Erich Stefan Boleyn에 의해 개발된 부트로더로 GRand Unified Bootloader의 약자입니다. 처음 GRUB은 GNU Hurd를 위해 개발이 되었었지만 점차 리눅스의 전통적인 부트로더였던 LILO의 단점을 보완한 매우 막강한 기능 때문에 공개 운영체제인 Linux의 기본 부트로더로 자리 잡았습니다. 부트로더 GRUB의 가장 큰 특징은 파일시스템과 커널 실행 포맷을 인식하여 하드디스크 상에서의 커널의 물리적인 위치를 기록하지 않고도 커널 파일명과 커널이 위치하고 있는 파티션의 위치만을 알고 있으면 시스템 부팅이 가능하다는 점입니다. LILO의 경우에는 새로운 커널을 설치하거나 커널 컴파일 후에는 LILO를 다시 인식 시켜주어야만 했습니다. 다음은 GRUB의 특징입니다.

4 부트로더 실행 GRUB의 특징 사용하기 편하며, 설정이 매우 편리합니다. 부트로더 실행 GRUB의 특징 사용하기 편하며, 설정이 매우 편리합니다. Chain-loader를 이용하여 Linux, FreeBSD, NetBSD, OpenBSD, Windows등 기타 운영체제들과 멀티 부팅이 가능합니다. 메뉴 인터페이스를 제공합니다. 부트 정보가 잘못되었을 경우 바로 수정하여 부팅할 수 있습니다. 시스템의 BIOS에서 인식하는 모든 디바이스들에 액세스가 가능합니다. 네트워크 상에서 GRUB을 수정할 수 있습니다. gzip 형식의 파일을 사용할 수 있습니다. 파일시스템과 커널 실행 포맷을 인식하여 하드디스크 상에서의 커널의 물리적인 위치를 기록하지 않고도 커널 파일명과 커널이 위치하고 있는 파티션의 위치만을 알고 있으면 시스템 부팅이 가능합니다.

4 부트로더 실행 GRUB의 설정 GRUB의 설정파일은 /boot/grub/grub.conf입니다. 부트로더 실행 GRUB의 설정 GRUB의 설정파일은 /boot/grub/grub.conf입니다. GRUB은 리눅스에서 사용하는 디스크 이름과는 차이가 있습니다. 리눅스의 경우에는 IDE하드디스크는 hda, hdb 등으로 사용하고 SCSI하드디스크는 sda, sdb와 같은 형태로 사용합니다. 또한 파티션별로 hda1, hda2로 sda1, sda2와 같은 형태로 사용합니다. 하지만, GRUB에서는 IDE하드디스크와 SCSI하드디스크를 구별하지 않습니다. 즉, 첫 번째 하드디스크는 (hd0)이 됩니다. 예를 들어, 리눅스의 had와 sda를 (hd0)으로 표현한다는 것입니다. 또한, (hd0,0)은 hda1혹은 sda1을 의미하는 것입니다. Default=0 GRUB에서 기본 부팅을 시도할 부트 엔트리 값입니다. 부트 엔트리는 ‘title’로 명시된 것을 말하게 되는데, 각 엔트리를 0번부터 순서대로 숫자를 매깁니다. Default=0 은 첫 번째 엔트리를 의미합니다.

4 부트로더 실행 GRUB의 설정 Timeout=5 부트로더 실행 GRUB의 설정 Timeout=5 지정된 시간동안 키보드의 아무런 입력이 없으면 지정된 엔트리로 부팅하라는 의미입니다. Timeout=5라면 5초 안에 키보드의 입력이 들어오지 않는다면 디폴트로 정해둔 엔트리로 시작합니다. Splashimage=(hd0,1)/grub/splash.xpm.gz GRUB의 부팅 이미지 파일 위치를 지정합니다. Hiddenmenu hiddenmenu가 적용된 이후로는 메뉴를 숨기게 됩니다. Password GRUB 부트로더에 암호를 지정하는 옵션입니다. Title 런타임 시 사용자 인터페이스에서 부팅이 될 부트 엔트리 설정 영역을 가리킵니다. Root, kernel, initrd와 함께 운영체제의 위치, 커널 이미지, initrd의 위치를 지정해 줍니다. Title옵션에는 부트 엔트리명, 즉 부팅할 운영체제의 이름을 정의해 줍니다.

5 커널 부트 이미지(vmlinuz) 적재 GRUB의 부트 메뉴에서 커널을 선택하게 되면 커널 이미지가 동작을 하게 됩니다. 이 때 커널 이미지*(/boot/vmlinuz-2.6.9-34.EL)은 압축되어 있기 때문에 PID 0번인 swapper 프로세스를 호출하게 됩니다. Swapper 프로세스는 커널 이미지를 압축헤제하고 커널이 사용할 각 장치드라이브들을 초기화하고 자세한 정보를 콘솔에 뿌려줍니다. *커널 이미지 = 커널이 하나의 파일로 디스크에 저장되어 있는 것을 의미합니다. 커널은 원래 파일에 저장되어있는 성격이 아니라 컴퓨터가 꺼지기 전까지는 항상 메모리 안에 존재합니다. Conclusion

6 루트(\) 파일시스템 마운트 하드웨어의 검색 후에 커널은 루트(\) 파일 시스템을 마운트 합니다. 이 때 마운트는 파일시스템이 안전하게 점검될 수 있도록 읽기 전용(read-only)으로 마운트 되며, 이후에 읽기/쓰기로 마운트가 이루어집니다. Conclusion

7 init 프로세스 실행 모든 프로세스의 부모 역할을 하는 PID 1번의 init 프로세스를 실행합니다. Init 프로세스는 사용자가 시스템을 사용할 수 있는 환경을 만들어 주는데 이 과정을 시스템 초기화라고 합니다. 여러 명령이 스크립트 파일을 호출하여 시스템 초기화가 진행됩니다. Init프로세스는 기본 시스템 초기화 스크립트인 sysinit 스크립트를 실행하고 sysinit 스크립트는 fack명령어를 이요하여 로그인 프롬프트가 나오기 전까지 파일시스템 점검, 필요한 커널 모듈의 메모리 적재, 스왑 파티션 초기화, 네트워크 포기화, 서비스 프로세스 관리, 가상 콘솔 접속 관리, 실행 레벨 관리를 실행하고, /etc/fstab에 명시되어 있는 각 파티션들을 마운트 하는 과정을 수행합니다. Sysinit 프로세스의 호출이 끝나게 되면 init프로세스는 가장 먼저 /etc/inittab 파일을 읽어 들입니다. /etc/inittab 파일에는 시스템의 기본 실행 단계가 정의되어 있으며, 리눅스 시스템의 부팅에 매우 중요한 역할을 하게 됩니다. 그러면 이러한 inittab파일을 자세히 살펴보도록 합시다.

INIT프로세스의 설정 파일은 다음과 같은 항목으로 구성되어 있습니다. 7 init 프로세스 실행 INIT프로세스의 설정 파일(/etc/inittab) INIT프로세스의 설정 파일은 다음과 같은 항목으로 구성되어 있습니다. Id : runlevel : action : process Id : id는 inittab에서 다른 설정과 구분하기 위해서 사용하는 것으로 1~4글자로 이루어져 있습니다. Runlevel : 특정한 동작을 하게 되는 실행 레벨 리스트입니다. Action : 그 줄의 프로세스가 어떤 동작을 취할지 설정하는 것으로 respawn과 wait입니다. -respawn : 프로세스가 종료되면 재실행되는 것을 의미 -wait : 프로세스의 특정 레벨에서 한번 실행된 init는 이 프로세스가 종료될 때까지 대기합니다. -once : 영화..가 아니라 지정한 runlevel이 실행되면 한번만 그 프로세스를 실행합니다.

-boot : 시스템 부팅 때에 그 프로세스를 실행합니다. 이때는 runlevel 값은 무시됩니다. 7 init 프로세스 실행 INIT프로세스의 설정 파일(/etc/inittab) -boot : 시스템 부팅 때에 그 프로세스를 실행합니다. 이때는 runlevel 값은 무시됩니다. -bootwait : 시스템 부팅시에 그 프로세스가 실행되는데, 이 때 init는 그 프로세스가 종료되기를 기다리게 됩니다. 이때는 runlevel값은 무시됩니다. -off : 아무것도 아닙니다. 단지 id만 존재하게 됩니다. -ondemand : 지정한 ondemand runlevel이 호출될 때마자 그 프로세스를 실행합니다. 하지만 runlevel값은 바뀌지 않습니다. -initdefault : 시스템 부팅 뒤에 실행될 runlrvel을 지정합니다. 만일 이 부분이 없을 경우에는 어떠한 runlevel로 실행할 것인지 콘솔에서 물어보게 됩니다. -sysinit : 시스템 부팅시에 그 프로세스가 실행됩니다. 이것은 boot, bootwait로 지정된 프로세스보다 먼저 실행됩니다. Process 필드는 무시됩니다. Process : 실행될 프로세스를 지정합니다.

7 init 프로세스 실행 Default runlevel Inittab파일의 설정에는 ‘실행레벨’에 대한 설정이 있습니다. 실행레벨은 init 프로세스에 의해 시스템이 어떻게 동작할 것인지를 결정하는 실행 값을 의미하는데, 윈도우를 실행하고 ‘f8’키를 누르게 되면 시스템을 어떻게 시작하려는지 결정할 수 있고, 안전모드라는 것도 보았을 것입니다. 즉, 리눅스 시스템도 이와 같은 실행레벨이 존재하게 되는데 0번~6번까지 7개의 값을 가지게 됩니다. 보통 리눅스 시스템을 운영할 경우 가장 많이 사용하는 것이 runlevel3이지만, 시스템의 성능이 향상되면서 요즈음에는 runlevel5로 운영하는 시스템들이 많이 있습니다. 이러한 runlevel에 대해 살펴보면 다음과 같습니다.

Runlevel 0 : 시스템 종료(halt) Runlevel 1 : 단일 사용자 모드, 싱글 모드 7 init 프로세스 실행 Default runlevel Runlevel 0 : 시스템 종료(halt) Runlevel 1 : 단일 사용자 모드, 싱글 모드 Runlevel 2 : NFS를 지원하지 않는 다중 사용자 모드 Runlevel 3 : 모든 기능을 포함한 다중 사용자 모드, TUI 환경 Runlevel 4 : 사용되지 않는 실행 모드(사용자가 직접 정의하여 사용 가능) Runlevel 5 : x윈도우 부팅 Runlevel 6 : 시스템 재부팅

7 init 프로세스 실행 S(start) 파일 /etc/rc.d/rc5.d 디렉토리를 보면 여러 개의 파일들로 구성되어 있습니다. S00microcode_ctl-> so4readahead_early-> so5kudzu-> SO6cpuspeed-> so8arptables_if 순으로 스크립트들이 실행 됩니다.

7 init 프로세스 실행 K(kill) 파일 /etc/rc.d/rc5.d 디렉토리를 보면 여러 개의 파일들로 구성되어 있습니다. S00microcode_ctl-> so4readahead_early-> so5kudzu-> SO6cpuspeed-> so8arptables_if 순으로 스크립트들이 실행 됩니다.

Thank You !