댓글 8
-
pororo
2014.04.13 13:32
추천:1 댓글
-
없다캐라
2014.04.23 17:30
와...설명 감사합니다. 적극 반영해서 앞으로 공부 방향이 되도록 하겠습니다.
추천 한방 쎄립니다~
-
pororo
2014.04.23 14:05
x86의 옛 부팅 방식에서는 BIOS가 MBR에서 한 섹터를 메모리 0x7c00 로 읽어들여 부트로더 쪽으로 넘겨주면서 시작합니다.
EFI 에서는 파티션을 나눌 때 MBR 대신 GPT 방식을 사용합니다. UEFI BIOS는 FAT32로 된 UEFI system partition에서 기본 위치의 파일을 찾아서 읽어들입니다. 또는 efibootmgr 등으로 특정 위치의 파일을 등록해 부팅시 그 파일부터 읽도록 할 수 있습니다.
여기서 등록하는건 보통 grub이나 elilo등 부트로더가 되겠지만 작년인가 재작년부터부트로더 없이 커널의 bzImage를 지정해서 리눅스 커널만으로 바로 EFI 부팅이 가능해 졌습니다.
엔트리 지점은 arch/x86/boot/compressed/head_64.S 에서
bootloader를 통하는 경우 efi_stub_entry
커널로 바로 부팅하는 경우 efi_pe_entry가 됩니다.
64비트 UEFI의 경우 64비트 모드로 진입한 상태에서 시작하기 때문에 EFI 부팅을 하면 속도가 빠릅니다.
이 상황에서 커널은 BIOS의 인터럽트 처럼 UEFI에서 제공하는 기능들을 이용해(efi_call...) 부팅해 나갑니다.
추천:1 댓글
-
없다캐라
2014.04.23 08:22
^^;;; 아 죄송한데요.
개인적인 의견을 덧붙이자면 x86쪽은 legacy 초기화가 많아서 늘 시간이 부족합니다.
그래서 새로 하시는 분들은 고전적인 boot sequence는 무시하고 새로운 EFI 부팅을 분석해보시는 것도 괜찮다고 생각합니다.
부트로더 없이 bzImage로 64비트 efi로 부팅하는 시나리오로 분석하면 초반부 분석시간을 단축시킬 수 있을 겁니다.이 부분쫌.... 부탁드릴게요.
-
pororo
2014.04.22 17:35
스터디에서 책을 같이 공부하려면 진도를 서로 맞춰야 합니다.
눈으로만 읽는 경우 이 기준이 모호한 경우가 존재합니다.
가장 빨리 읽는 사람 기준? 시간과 페이지를 정해서?
보통은 이 과정이 빠르게 맞춰지지는 않습니다.
다 읽었는지 서로 눈치로 판단해야 하고 시간이 남으면 지루해집니다.
책을 소리내서 읽는 속도에 맞추면 이런 문제는 해결 됩니다.
진도는 자연히 맞춰지게 되고 속도 역시 꽤 빠릅니다.
다만 책의 소스까지 세밀하게 분석하고 싶어하시는 분들께는 너무 빠르게 느껴질 수도 있을겁니다. -
없다캐라
2014.04.22 15:12
5번을 조금 더 자세하게 설명 부탁드릴께요. 아직 스터디 시작단계를 하는 수준이라 5번 내용이 아직 이해가 잘 안갑니다.
-
Jason
2014.04.23 18:20
4번만 답변드리겠습니다.
요 질문을 올리신 분이 책을 읽는 중간에 또는 다른 분의 설명을 듣는 중간에 과감하게 질문을 해보십시오.
그러면 질문과 토론 배틀이 시작됩니다. 그 후에는 물 흐르듯이 흘러갈 겁니다.
단, 질문 하실 때는 다른 사람의 말이 어느 정도 끝날 때를 캐치해서
살짝 손을 들고,
"잠시만요. 질문이 하나 있는데요."
하고 질문을 하시면 혼선을 방지하는데 도움이 될 듯 합니다.
질문할때 부끄러워하거나 다른 분들에게 피해가 될거라는 생각은 하실 필요가 없습니다.
사실, 모두들 궁금해서 미칠 지경인 상황입니다.
한번 믿어보시기 바랍니다. ^^
-
Jason
2014.04.23 18:26
초반 질문은 "남들은 다 알고 있고, 나만 모를 거 같은 것"에 대한 질문 이 좋습니다.
많은 사람들이 답변을 해주면서 전반적인 대화의 양이 늘어날 확률이 높아지니까요 ^^
.
1. 예전에는 <만들면서 배우는 OS 커널의 구조와 원리>를 아키텍쳐 책으로 봤었는데 절판인 것 같네요. <64비트 멀티코어 구조와 원리 1>도 괜찮긴 한데 살짝 부담될 수 있고 그냥 바로 소스 들어가는 방법도 괜찮다고 생각합니다.
2. 팀원분들 원하시는 쪽으로 하는게 좋지 않을까요?
3. lilo는 안보는 쪽을 추천드립니다. 투자하는 시간 대비 얻는게 그리 많지 않고 boot parameter로 부트로더에서 커널에 정보를 넘긴다는 것만 알면 된다고 생각합니다. 보시겠다면 21.x 버전을 추천합니다.
4. 이 부분은 잘 모르겠습니다.
5. 눈으로 읽는 것보다 집중이 더 잘되고 둘 다 해봤을 때 진행 면에서도 더 나았습니다.
개인적인 의견을 덧붙이자면 x86쪽은 legacy 초기화가 많아서 늘 시간이 부족합니다.
그래서 새로 하시는 분들은 고전적인 boot sequence는 무시하고 새로운 EFI 부팅을 분석해보시는 것도 괜찮다고 생각합니다.
부트로더 없이 bzImage로 64비트 efi로 부팅하는 시나리오로 분석하면 초반부 분석시간을 단축시킬 수 있을 겁니다.