리눅스 부팅 순서가 궁금합니다.

paeksj98의 이미지

리눅스 부팅 순서가 궁금합니다.

1. 커널 시작점은 어디인지...??
어디 소스가 어디가 시작부분이고 끝인지..??

2. 커널 부팅이 끝나면 타겟 보드에서 램디스크로 넘어가서 실행되는데
램디스크 시작 지점이 어디고 끝은 어디인지.??

돌아 가는 흐름을 알아야 하는데 막상 찾아보려니 어디인지 모르겠습니다.
시작지점이 어디인지좀 알려주세요.

익명 사용자의 이미지

어떤 아키텍쳐를 사용하고 계신지는 모르겠으나... 커널상에서 보통 C 코드의 시작점은 init/main.c 의 start_kernel 함수입니다.
이 함수가 호출되기 이전은 arch/ 디렉토리 안에서 mmu나 기타 하드웨어를 초기화 하구요, 부트로더에서 넘겨온 자료구조를 재정의 하기도 하죠..
start_kernel 아랫쪽에 보면 kernel_thread 함수를 이용해 (유명한 1번 프로세스)init 프로세스를 생성하고 자기자신은 idle task로 남게되죠..
init 쓰래드는... 같은 파일에 init 함수를 보면 되는데, init 함수 안에보면 prepare_namespace 등에서 root를 mount 합니다. 잠깐 보니깐 initrd 안에서 시작파일은 /init 파일이군요...
만약 initrd를 사용하지 않는다면 init 함수 아랫쪽에 어떤 시작프로그램을 사용하는지 볼 수 있을껍니다.

나그네나그네의 이미지

kldp문서 중에 리눅스 부팅을 정말 자세히 다룬 문서가 있지 않았나요?

어딨는지 못찾겠네요-;
----------------
agidari.wordpress.com

Necromancer의 이미지

1번 - BIOS에서 MBR로드
2번 - MBR이 시스템에 설치된 LILO/GRUP 로드
3번 - LILO/GRUP은 커널 로드. 이때 리눅스 커널이 여러개 등록되어 있으면 그중 한개 선택받아 로드
4번 - 리눅스 커널에 의한 주변기기 초기화. 루트파티션 마운트
5번 - 루트파일시스템 마운트 완료된뒤 커널은 /sbin/init을 실행시킴 (해보진 않았지만 커널옵션으로 변경가능하다고 합니다)
6번 - init에 의해 각 런레벨별로 부팅스크립트 실행
7번 - 로그인화면 표시 (부팅스크립트 중 가장 마지막이 로그인화면 표시하는겁니다)

Bootdisk HOWTO를 보시면 됩니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.