##으로 inictl, 싱글 이벤트 또는 이벤트 브릿지 ( 많은 복잡한 이벤트들을 통합하기 위한 ) 들의 사용을 통해 자신의 이벤트 모델을 가능케 한다. [ 11 ] 디폴트로 Upstart는 소켓, dbus, udev, file 그리고 dconf 이벤트들의 브릿지들을 포함한다. [ 12 ] runit [ 편집 ] Runit은 유닉스 계열 운영 체제들을 위한 init 구조로서 운영 체제를 통해 초기화, 감독 그리고 프로세스들의 종료를 담당한다. 이것은 리눅스, 맥, BSD 등에서 돌아가는 " seminal " 데몬툴즈 프로세스 감독 툴킷 [ 13 ] 의 " 재구현 " 이다. Runit은 운영 체제의 부트 시간을 줄여줄 수 있는 시스템 서비스의 스타트업의 병렬성을 특징으로 갖는다. [ 14 ] Runit은 init 데몬으로서 모든 다른 프로세스들의 직접적인 또는 간접적인 조상이다. 이것은 부팅 시에 시작되는 첫 번째 프로세스이며 시스템이 종료되기 전까지 실행된다. 같이 보기 [ 편집 ] SYSLINUX Windows startup process 각주 [ 편집 ] ↑ 가 나 " Product Documentation ". Redhat. com. 2013년 9월 30일. 2014년 1월 22일에 확인
##uct Documentation ". Redhat. com. 2013년 9월 30일. 2014년 1월 22일에 확인함. ↑ " Product Documentation ". Redhat. com. 2013년 9월 30일. 2014년 1월 22일에 확인함. ↑ " 보관 된 사본 ". 2008년 5월 31일에 원본 문서에서 보존된 문서. 2007년 4월 3일에 확인함. ↑ 가 나 다 Linux Boot Process - by Kim Oldfield ( 2001 ) ↑ " Initramfs arrives ". 2011년 11월 14일에 확인함. ↑ 가 나 From Power Up To Bash Prompt : Init ↑ init ↑ " systemd README ". 《 freedesktop. org 》. 2012년 9월 9일에 확인함. ↑ 〈 Upstart 〉, 《 Launch Pad 》 ( 605007 ), Ubuntu ↑ 〈 Discussion of design and implementation of Upstart 〉, 《 Ubuntu Wiki 》, Canonical ↑ " The Upstart Cookbook ". Canonical. 2014년 1월 26일에 확인함. | 장 = 이 무시됨 ( 도움말 ) ↑ " The Upstart Cookbook
##의 제어를 갖으며, init 프로세스는 사용자 공간에서 사용자 환경을 계속 부팅하기 위해 남아 있는다. 초기 사용자 공간 [ 편집 ] initramfs, 또한 초기 사용자 공간으로도 불리는 이것은 리눅스 커널 버전 2. 5. 46 이후로 사용 가능하며, [ 5 ] 스타트업 과정 동안 커널이 수행되기 이전에 가능한 많은 함수들을 대체하기 위한 목적으로 사용된다. 초기 사용자 공간의 일반적인 사용은 주요 사용자 공간 파일 시스템을 로드하기 위해 어떤 장치 드라이버들이 필요한지를 탐지하고 임시 파일 시스템에서 이것들을 로드하는 것이다. Init 프로세스 [ 편집 ] SysV init [ 편집 ] Init이 하는 일은 커널이 완전히 실행되기 시작할 때 " 그렇게 되어야 하는 모든 것을 얻는 " 것이다. [ 6 ] 근본적으로 이것은 전체 사용자 공간을 수립하고 가동한다. 이것은 파일 시스템을 검사하고 마운트하며 필요한 사용자 서비스를 시작하고 궁극적으로 시스템 스타트업이 완료될 때 사용자 환경으로 전환하는 것을 포함한다. 이것은 유닉스와 BSD의 init 과정들과 비슷하지만 몇몇 차이점이 존재한다. 표준 리눅스 시스템에서 Init은 런레벨로 알려진 ( 0부터 6의 값을 갖는 ) 파라미터와 함께 실행되며 어떤 서브시스템이 동작할 지를 결정한다
##와 메모리 페이징 같은 시스템 함수들을 설치하며 시스템 설치의 대부분을 수행하는 start - kernel를 호출한다 ( 인터럽트, 나머지의 메모리 관리, 장치와 드라이버 초기화 등 ). 그 후 idle 프로세스, 스케줄러 그리고 사용자 공간에서 실행되는 init 프로세스를 각각 시작한다. init은 셸에 의해 실행되는 스크립트들 ( sysv, bsd, runit ) 또는 바이너리 구성 요소로 실행되는 설정 파일 ( systemd, upstart ) 로 이루어진다. init은 특정한 레벨 ( sysv, bsd ) 또는 대상 ( systemd ) 을 갖는데 각각은 서비스들 ( daemons ) 의 특정한 집합으로 이루어져 있다. 이것들은 다양한 비 운영 체제 서비스들과 구조들 그리고 사용자 환경 구성을 제공한다. 일반적인 서버 환경은 웹 서버, 데이터베이스 서비스 그리고 네트워킹을 시작한다. 일반적인 데스크탑 환경은 디스플레이 매니저라고 불리는 데몬을 실행하며, 이것은 기본적인 그래픽 스택과 로그인 매니저를 제공하는 그래픽 환경을 시작한다. 사용자가 비밀번호를 입력하고 나면 세션 매니저가 세션을 시작한다. 세션은 완전한 데스크탑 환경을 구성할 수 있는 UI 요소들 같은 프로그램들의 집합이다. 종료 시에, 모든 init은 모든 사용자 공간 기능을 종료하기 위해
##된다. Loadlin은 시에 실행 중인 도스 또는 윈도우 9x 커널을 리눅스 커널로 대체할 수 있는 부트 로더이다. 이 부팅 방식은 리눅스가 다양한 하드웨어 장치들을 위한 드라이버를 갖기 때문에 현재는 그다지 사용되지 않지만 모바일 장치에서는 아직 볼 수 있다. 커널 국면 [ 편집 ] 리눅스에서 커널은 메모리 관리, 태스크 스케줄링, 입출력, 프로세스 간 통신 그리고 전체적인 시스템 제어 같은 모든 운영 체제 프로세스들을 다룬다. 이것은 두 단계로 로드되는데 첫 단계에서 커널은 ( 압축된 이미지 파일로서 ) 메모리에 로드되며 압축 해제되고 몇몇의 중요한 함수들이 설치된다. 제어는 이후 주요 커널 시작 프로세스로 넘어간다. 커널이 완전하게 동작 가능해지면 커널은 실행 시킬 init 프로세스 ( 각각 요구되는 사용자 환경과 로그인을 위한 사용자 공간과 프로세스들을 설치하는 ) 를 찾는다. 커널 자체는 이후 idle 상태로 가며 다른 프로세스의 호출을 기다린다. 커널 로딩 단계 [ 편집 ] 로드된 커널은 일반적으로 이미지 파일이며 zImage 또는 bzImage 포맷으로 압축되어 있다. 헤드 부분의 루틴은 최소한의 하드웨어 설치, 이미지를 완전하게 메모리로 압축 해제 그리고 설정된 경우 램 디스크를
리눅스 시작 프로세스 - 위키백과, 우리 모두의 백과사전 리눅스 시작 프로세스 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 리눅스 시작 프로세스는 리눅스 부팅 시에 수행되는 다단계 초기화 과정이다. 이것은 리눅스가 파생된 BSD 및 다른 유닉스 계열 부팅 프로세스와 비슷하다. 리눅스를 부팅하는 것은 펌웨어 초기화, 부트 로더의 실행, 리눅스 커널 이미지의 로딩과 시작 그리고 다양한 시작 스크립트들과 데몬들의 실행을 포함하는 여러 단계와 여러 소프트웨어 구성 요소들과 관련된다. 이 단계들 각각에서는 다른 방식과 접근법이 존재한다 ; 예를 들면 GRUB, LILO, SYSLINUX 또는 Loadlin는 부트 로더로서 사용될 수 있지만, 시작 스크립트들도 전통적인 init 스타일 또는 ( systemd나 Upstart 같은 현대의 대체재들을 통해 수행될 수 있는 ) 시스템 설정으로도 가능하다. 목차 1 개요 2 부트 로더 단계 3 커널 국면 3. 1 커널 로딩 단계 3. 2 커널 스타트업 단계 4 초기 사용자 공간 5 Init 프로세스 5. 1 SysV init 5. 2 systemd 5. 3 Upstart
수 있는 UI 요소들 같은 프로그램들의 집합이다. 종료 시에, 모든 init은 모든 사용자 공간 기능을 종료하기 위해 호출된다. init은 그 후 종료되며 커널은 자신의 종료를 수행한다. 부트 로더 단계 [ 편집 ] 부트 로더 단계는 컴퓨터 구조에 따라 다르다. 초기 단계들은 운영 체제에 관련 없었기 때문에, 바이오스 기반 부트 과정은 마스터 부트 레코드 코드가 리얼 모드에서 실행되고 첫 번째 단계 부트 로더가 로드되었을 때 실행될 것이라고 여겨진다. UEFI 시스템에서 리눅스 커널 같은 페이로드는 직접적으로 실행된다. 그래서 부트 로더가 필요치 않다. 아래는 몇몇 유명한 부트 로더들에 대한 개략적인 설명이다. LILO는 파일 시스템 레이아웃을 이해하지 않는다. 대신 설정 파일 ( / etc / lilo. conf ) 이 현재 시스템에 생성되는데, 이것은 커널과 램 디스크 ( initrd 또는 initramfs ) 의 위치에 관한 raw 오프셋 정보를 매핑한다. 부트 파티션과 커널 경로명 같은 데이터 그리고 필요한 경우 커스터마이징된 옵션들을 포함하는 설정 파일은 MBR 부트섹터에 부트로더 코드와 함께 쓰여진다. 이 부트
##로 알려진 ( 0부터 6의 값을 갖는 ) 파라미터와 함께 실행되며 어떤 서브시스템이 동작할 지를 결정한다. 각 런레벨은 자신만의 스크립트를 가지며 주어진 런레벨에서 해야할 일이 적어져 있다. Init 스크립트들은 일반적으로 " / etc / rc... " 와 같은 이름을 갖는 디렉토리에 존재한다. init의 상위 수준 설정 파일은 / etc / inittab에 존재한다. [ 6 ] 시스템 부트 동안 디폴트 런레벨이 / etc / inittab에 명시되어 있는지를 검사하고 존재하지 않는다면 시스템 콘솔을 통해서 런레벨을 요청한다. 이후 주어진 런레벨 하에서 관련된 부트 스크립트들을 진행하고 ( 모듈들의 로딩, 루트 파일 시스템의 무결성 검사 등 ) 완전 읽기 - 쓰기 접근으로 리마운팅하며 네트워크를 설정한다. [ 4 ] 명시된 모든 과정들이 진행된 후에, init은 휴면 상태에 진입하고 세 이벤트 중 하나가 일어나기를 기다린다 : 종료를 위한 과정의 시작, 정전 신호, 런레벨을 바꾸기 위한 / sbin / telinit을 통한 요청. [ 7 ] 이것은 SysV - 스타일 init에서 적용된다. systemd [ 편집 ] Systemd의
##널 스타트업 단계 4 초기 사용자 공간 5 Init 프로세스 5. 1 SysV init 5. 2 systemd 5. 3 Upstart 5. 4 runit 6 같이 보기 7 각주 8 외부 링크 개요 [ 편집 ] 리눅스 시작 프로세스의 초기 단계들은 컴퓨터 구조에 매우 의존적이다. IBM PC 호환의 하드웨어가 리눅스가 일반적으로 사용되는 가장 흔한 구조이다 ; 이러한 시스템들에서 바이오스가 중요한 역할을 하는데, 다른 시스템들에서도 똑같은 방식이 사용되는 것은 아니다. 다음의 예시에서 IBM PC 호환 하드웨어는 : 바이오스는 실제 하드웨어 플랫폼 특유의 시작 태스크를 수행한다. 하드웨어가 열거되고 부트에 필요한 하드웨어가 정확히 초기화되면 바이오스는 설정된 부트 장치에서 부트 코드를 로드하고 실행한다. 부트 로더는 종종 사용자에게 가능한 부트 옵션의 메뉴를 보여주기도 하며 선택하지 않은 채 일정 시간 이상 지나면 자동으로 선택되는 기본 옵션을 갖고 있다. 선택이 되면 부트 로더는 커널을 메모리로 로드하고, 몇몇 파라미터들을 제공하며 제어를 넘겨준다. 커널은 자체적으로 압축을 해제하고 필수 하드웨어와 메모리 페이징 같은 시스템 함수들을 설치하며 시스템 설치의 대부분을 수행하는 start - kernel를 호출한다
파티션 부트 섹터의 다른 부트 로더에 의해서 로드되고 실행된다. 이것이 하는 일은 설정이 추후에 읽어질 수 있는 다양한 파일 시스템들을 발견하고 접근하는 것이다. 옵션으로 중간 단계 로더 ( stage1. 5 ) 는 두 번째 단계 로더가 인접하지 않거나 파일 시스템 또는 하드웨어가 두번째 단계 로더에 접근하기 위해 특별한 처리를 요구하는 경우에 로드되고 실행된다. 두 번째 단계 로더 ( stage2 ) 는 마지막에 로드되며 GRUB 시작 메뉴를 표시한다. 메뉴가 선택되고 추가적인 인자가 주어지면 GRUB은 커널을 메모리에 로드하고 제어를 넘긴다. GRUB 2는 또한 다른 부트 로더의 체임 로딩이 가능하다. SYSLINUX / ISOLINUX는 FAT 파일 시스템에서 전체 리눅스 설치를 부팅하는데 특화된 부트 로더이다. 이것은 종종 플로피 디스크, 라이브 USB 그리고 다른 경량 부트 시스템을 부트하는데 사용된다. ISOLINUX은 일반적으로 리눅스 라이브 CD와 부팅 가능한 설치 CD들에서 사용된다. Loadlin은 시에 실행 중인 도스 또는 윈도우 9x 커널을 리눅스 커널로 대체할 수 있
리눅스 시작 프로세스는 리눅스 부팅 시에 수행되는 다단계 초기화 과정이다. 이것은 리눅스가 파생된 BSD 및 다른 유닉스 계열 부팅 프로세스와 비슷하다. 리눅스를 부팅하는 것은 펌웨어 초기화, 부트 로더의 실행, 리눅스 커널 이미지의 로딩과 시작 그리고 다양한 시작 스크립트들과 데몬들의 실행을 포함하는 여러 단계와 여러 소프트웨어 구성 요소들과 관련된다. 이 단계들 각각에서는 다른 방식과 접근법이 존재한다; 예를 들면 GRUB, LILO, SYSLINUX 또는 Loadlin는 부트 로더로서 사용될 수 있지만 시작 스크립트들도 전통적인 init 스타일 또는 (systemd나 Upstart 같은 현대의 대체재들을 통해 수행될 수 있는) 시스템 설정으로도 가능하다.