요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
1
What: /sys/firmware/efi/runtime-map/
2
Date: December 2013
3
Contact: Dave Young <[email protected]>
4
Description: Switching efi runtime services to virtual mode requires
5
that all efi memory ranges which have the runtime attribute
6
bit set to be mapped to virtual addresses.
8
The efi runtime services can only be switched to virtual
9
mode once without rebooting. The kexec kernel must maintain
10
the same physical to virtual address mappings as the first
11
kernel. The mappings are exported to sysfs so userspace tools
12
can reassemble them and pass them into the kexec kernel.
14
/sys/firmware/efi/runtime-map/ is the directory the kernel
15
exports that information in.
17
subdirectories are named with the number of the memory range::
19
/sys/firmware/efi/runtime-map/0
20
/sys/firmware/efi/runtime-map/1
21
/sys/firmware/efi/runtime-map/2
22
/sys/firmware/efi/runtime-map/3
23
...
25
Each subdirectory contains five files:
27
========= =========================================
28
attribute The attributes of the memory range.
29
num_pages The size of the memory range in pages.
30
phys_addr The physical address of the memory range.
31
type The type of the memory range.
32
virt_addr The virtual address of the memory range.
33
========= =========================================
35
Above values are all hexadecimal numbers with the '0x' prefix.
36
Users: Kexec
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
EFI runtime physical-to-virtual mappings
1-36| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/firmware/efi/runtime-map/ |
| Date | 2013년 12월 |
| Contact | Dave Young <[email protected]> |
| Description | EFI runtime services를 virtual mode로 전환하려면 runtime attribute bit가 설정된 모든 EFI memory ranges를 virtual addresses에 mapping해야 합니다. Reboot 없이 virtual mode로 전환할 수 있는 횟수는 한 번뿐이므로 kexec kernel은 첫 kernel과 같은 physical-to-virtual address mappings를 유지해야 합니다. Kernel은 userspace tools가 mappings를 다시 조립해 kexec kernel에 전달할 수 있도록 `/sys/firmware/efi/runtime-map/`에 정보를 export합니다. Subdirectories는 memory range 번호인 `0`, `1`, `2`, `3` 등으로 이름을 붙입니다. 각 directory에는 `attribute`, `num_pages`, `phys_addr`, `type`, `virt_addr` 다섯 files가 있으며 모든 값은 `0x` prefix를 붙인 hexadecimal numbers입니다. |
| Users | Kexec |
First kernel switches EFI runtime services to virtual mode→Kernel exports each physical-to-virtual mapping in sysfs→Userspace reassembles the mappings→Kexec kernel receives and preserves the same mappings
첫 kernel의 mapping을 kexec kernel에 동일하게 전달하는 과정입니다.
FileMeaning
attributeMemory range attributes
num_pagesMemory range size in pages
phys_addrPhysical address
typeMemory range type
virt_addrVirtual address
각 numbered memory-range directory의 다섯 hexadecimal fields입니다.
One-time virtual-mode mapping handoff
sysfs-firmware-efi-runtime-map:1-36Runtime virtual-mode switch는 reboot 없이 한 번만 가능하므로 userspace가 첫 kernel의 다섯-field mappings를 복원해 kexec kernel에 전달합니다.