diff --git a/po/messages.pot b/po/messages.pot index d743041..be0e0d8 100644 --- a/po/messages.pot +++ b/po/messages.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: LinuxBoot\n" -"POT-Creation-Date: 2025-04-28T16:48:12+08:00\n" +"POT-Creation-Date: 2025-05-22T11:08:57+08:00\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -32,63 +32,75 @@ msgstr "" msgid "Evaluation of tools" msgstr "" -#: src/SUMMARY.md:6 src/u-root.md:1 +#: src/SUMMARY.md:6 src/petitboot.md:1 +msgid "Petitboot" +msgstr "" + +#: src/SUMMARY.md:7 +msgid "OpenPOWER" +msgstr "" + +#: src/SUMMARY.md:8 +msgid "ODROID" +msgstr "" + +#: src/SUMMARY.md:9 src/u-root.md:1 msgid "All about u-root" msgstr "" -#: src/SUMMARY.md:7 src/u-root-qemu-demo.md:1 +#: src/SUMMARY.md:10 src/u-root-qemu-demo.md:1 msgid "u-root demo with QEMU" msgstr "" -#: src/SUMMARY.md:8 +#: src/SUMMARY.md:11 msgid "LinuxBoot utilities" msgstr "" -#: src/SUMMARY.md:9 src/utilities/UEFI_Tool_Kit.md:1 +#: src/SUMMARY.md:12 src/utilities/UEFI_Tool_Kit.md:1 msgid "UEFI Tool Kit" msgstr "" -#: src/SUMMARY.md:10 +#: src/SUMMARY.md:13 msgid "The magical cpu command" msgstr "" -#: src/SUMMARY.md:11 +#: src/SUMMARY.md:14 msgid "Device Under Test" msgstr "" -#: src/SUMMARY.md:12 src/implementation.md:1 +#: src/SUMMARY.md:15 src/implementation.md:1 msgid "Implementing LinuxBoot" msgstr "" -#: src/SUMMARY.md:13 src/coreboot.u-root.systemboot/index.md:1 +#: src/SUMMARY.md:16 src/coreboot.u-root.systemboot/index.md:1 msgid "LinuxBoot using coreboot, u-root and systemboot" msgstr "" -#: src/SUMMARY.md:14 src/glossary.md:1 +#: src/SUMMARY.md:17 src/glossary.md:1 msgid "Glossary" msgstr "" -#: src/SUMMARY.md:15 src/history.md:1 +#: src/SUMMARY.md:18 src/history.md:1 msgid "History" msgstr "" -#: src/SUMMARY.md:16 src/case_studies/index.md:1 +#: src/SUMMARY.md:19 src/case_studies/index.md:1 msgid "Case Studies" msgstr "" -#: src/SUMMARY.md:17 +#: src/SUMMARY.md:20 msgid "Ampere study" msgstr "" -#: src/SUMMARY.md:18 +#: src/SUMMARY.md:21 msgid "Google study" msgstr "" -#: src/SUMMARY.md:19 +#: src/SUMMARY.md:22 msgid "OCP TiogaPass" msgstr "" -#: src/SUMMARY.md:20 +#: src/SUMMARY.md:23 msgid "Frequently Asked Questions" msgstr "" @@ -136,7 +148,7 @@ msgid "" "and Heads. The [`linuxboot`](https://github.com/linuxboot/linuxboot) build " "system outputs a boot payload consisting of a Linux kernel and an " "[initramfs](https://de.wikipedia.org/wiki/Initramfs) that contains a minimal " -"Golang user-space built using [u-root](https://github.com/u-root/u-root)." +"Go user-space built using [u-root](https://github.com/u-root/u-root)." msgstr "" #: src/intro.md:25 @@ -247,7 +259,7 @@ msgstr "" #: src/intro.md:82 msgid "" "[![comparison of UEFI boot and " -"LinuxBoot](../images/UEFI-versus-LinuxBoot.svg)](../images/UEFI-versus-LinuxBoot.svg)" +"LinuxBoot](./images/UEFI-versus-LinuxBoot.svg)](./images/UEFI-versus-LinuxBoot.svg)" msgstr "" #: src/intro.md:84 @@ -842,7 +854,7 @@ msgid "[Giving bootloaders the boot with nmbl](https://lwn.net/Articles/979789)" msgstr "" #: src/components.md:3 -msgid "![image](../images/LinuxBoot-components.svg)" +msgid "![image](./images/LinuxBoot-components.svg)" msgstr "" #: src/components.md:5 @@ -889,7 +901,7 @@ msgstr "" #: src/components.md:32 msgid "" "When Linux boots it needs a root file system that provides boot and startup " -"utilities. LinuxBoot uses [u-root](../glossary) to create an initramfs for " +"utilities. LinuxBoot uses [u-root](./glossary.md) to create an initramfs for " "this purpose." msgstr "" @@ -994,143 +1006,304 @@ msgstr "" msgid "Root filesystem" msgstr "" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:17 +msgid "" +"Linux needs a root filesystem with at least one binary that is called " +"[`init`](https://docs.kernel.org/admin-guide/init.html). Since booting a " +"system is a cumbersome task, additional tools aid in both development and " +"investigating possible issues." +msgstr "" + +#: src/tools-evaluation.md:22 +msgid "Core utilities" +msgstr "" + +#: src/tools-evaluation.md:24 +msgid "" +"Unix already came with lots of little utilities for the user of the system, " +"which may be anyone from a system developer to an administrator of a shared " +"or provided system, or an end user. Further tools have been created over the " +"years, and the [GNU core " +"utilities](https://en.wikipedia.org/wiki/GNU_Core_Utilities) are essentially " +"a collection of tools resulting from merging other collections. Note that " +"there are still many other utilities that are not part of coreutils. At the " +"same time, there are multiple other implementations now, which differ in " +"terms of arguments and flags and possibly additional utilities they include." +msgstr "" + +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 msgid "tool" msgstr "" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 msgid "language" msgstr "" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 msgid "license" msgstr "" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 msgid "usage" msgstr "" -#: src/tools-evaluation.md:19 +#: src/tools-evaluation.md:35 msgid "[BusyBox](https://busybox.net/)" msgstr "" -#: src/tools-evaluation.md:19 src/tools-evaluation.md:20 -#: src/tools-evaluation.md:21 src/tools-evaluation.md:29 -#: src/tools-evaluation.md:30 src/tools-evaluation.md:31 +#: src/tools-evaluation.md:35 src/tools-evaluation.md:36 +#: src/tools-evaluation.md:37 src/tools-evaluation.md:55 +#: src/tools-evaluation.md:56 src/tools-evaluation.md:57 msgid "C" msgstr "" -#: src/tools-evaluation.md:19 src/tools-evaluation.md:29 -#: src/tools-evaluation.md:31 +#: src/tools-evaluation.md:35 src/tools-evaluation.md:55 +#: src/tools-evaluation.md:57 msgid "GPLv2" msgstr "" -#: src/tools-evaluation.md:19 src/history.md:51 +#: src/tools-evaluation.md:35 src/history.md:51 msgid "Heads" msgstr "" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 msgid "[toybox](http://landley.net/toybox)" msgstr "" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 msgid "0BSD" msgstr "" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 msgid "Android" msgstr "" -#: src/tools-evaluation.md:21 +#: src/tools-evaluation.md:37 msgid "[GNU coreutils](https://www.gnu.org/software/coreutils/)" msgstr "" -#: src/tools-evaluation.md:21 +#: src/tools-evaluation.md:37 msgid "GPLv3" msgstr "" -#: src/tools-evaluation.md:21 src/tools-evaluation.md:23 +#: src/tools-evaluation.md:37 src/tools-evaluation.md:39 msgid "not for LinuxBoot" msgstr "" -#: src/tools-evaluation.md:22 +#: src/tools-evaluation.md:38 msgid "[u-root](https://u-root.org)" msgstr "" -#: src/tools-evaluation.md:22 src/tools-evaluation.md:32 +#: src/tools-evaluation.md:38 src/tools-evaluation.md:58 msgid "Go" msgstr "" -#: src/tools-evaluation.md:22 src/tools-evaluation.md:32 +#: src/tools-evaluation.md:38 src/tools-evaluation.md:58 msgid "BSD 3-Clause" msgstr "" -#: src/tools-evaluation.md:22 +#: src/tools-evaluation.md:38 msgid "ByteDance, Google et al" msgstr "" -#: src/tools-evaluation.md:23 +#: src/tools-evaluation.md:39 msgid "[uutils/coreutils](http://uutils.github.io/)" msgstr "" -#: src/tools-evaluation.md:23 src/tools-evaluation.md:33 +#: src/tools-evaluation.md:39 src/tools-evaluation.md:59 msgid "Rust" msgstr "" -#: src/tools-evaluation.md:23 +#: src/tools-evaluation.md:39 msgid "MIT" msgstr "" -#: src/tools-evaluation.md:25 +#: src/tools-evaluation.md:41 msgid "kexec implementations" msgstr "" -#: src/tools-evaluation.md:29 +#: src/tools-evaluation.md:43 +msgid "" +"While [kexec itself is a Linux " +"syscall](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/kexec.h), " +"it is not a one-shot operation. Loading multiple segments into memory, " +"synchronizing and unmounting file systems, and the eventual syscall to " +"[reboot](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/reboot.h) " +"belong to the procedure. In addition, there are architecture specifics to " +"take into account. Thus, there are multiple implementations of kexec, which " +"are Linux programs that offer their own interfaces again to pass extra " +"arguments. Besides those standalone implementations, there are also " +"specialized boot loaders based on kexec that have their own extra logic, " +"such as FreeBSD's kload or petitboot." +msgstr "" + +#: src/tools-evaluation.md:55 msgid "" "[kexec-tools](https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git) " "([GitHub mirror](https://github.com/horms/kexec-tools))" msgstr "" -#: src/tools-evaluation.md:29 +#: src/tools-evaluation.md:55 msgid "Heads, Petitboot" msgstr "" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 msgid "[systemd](https://systemd.io/) (wrapper)" msgstr "" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 msgid "LGPL-2.1+" msgstr "" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 msgid "systemd on UEFI" msgstr "" -#: src/tools-evaluation.md:31 +#: src/tools-evaluation.md:57 msgid "[kexecboot](https://github.com/kexecboot/kexecboot)" msgstr "" -#: src/tools-evaluation.md:31 src/tools-evaluation.md:33 +#: src/tools-evaluation.md:57 src/tools-evaluation.md:59 msgid "?" msgstr "" -#: src/tools-evaluation.md:32 +#: src/tools-evaluation.md:58 msgid "u-root (CLI+mod)" msgstr "" -#: src/tools-evaluation.md:32 +#: src/tools-evaluation.md:58 msgid "Google et al" msgstr "" -#: src/tools-evaluation.md:33 +#: src/tools-evaluation.md:59 msgid "[kexlinux](https://github.com/im-0/kexlinux)" msgstr "" -#: src/tools-evaluation.md:33 +#: src/tools-evaluation.md:59 msgid "LGPL-3.0+" msgstr "" +#: src/petitboot.md:3 +msgid "" +"petitboot is a Linux user-space application written in C that calls `kexec`. " +"The `kexec` installed in the initramfs is not the mainline kexec-tools " +"implementation, but a smaller implementation named " +"[kexec-lite](https://github.com/antonblanchard/kexec-lite). It is claimed to " +"be roughly 32 KB compared to kexec-tools, which is roughly 200 KB.[^1]" +msgstr "" + +#: src/petitboot.md:9 +msgid "" +"" +msgstr "" + +#: src/openpower.md:1 +msgid "OpenPOWER boot chain" +msgstr "" + +#: src/openpower.md:3 +msgid "" +"```mermaid\n" +"flowchart LR\n" +" skiroot([\"skiroot (petitboot)\"])\n" +" SBEs-->hostboot-->skiboot-->skiroot-->OS\n" +"```" +msgstr "" + +#: src/openpower.md:9 +msgid "" +"[Self-boot engines](https://github.com/open-power/sbe) (SBE) are split " +"between an on-chip ROM and an external EEPROM" +msgstr "" + +#: src/openpower.md:11 +msgid "" +"[hostboot](https://github.com/open-power/hostboot) is a C++ boot loader that " +"does DRAM initialization provides runtime services to skiboot or a hypervisor" +msgstr "" + +#: src/openpower.md:13 +msgid "" +"[skiboot](https://github.com/open-power/skiboot) is a C boot loader and " +"runtime firmware for OpenPOWER that loads skiroot." +msgstr "" + +#: src/openpower.md:16 +msgid "" +"skiroot is a term used to describe the LinuxBoot implementation for " +"OpenPOWER. A skiroot repository or package does not exist. The term is only " +"used in the kernel configuration, `skiroot_defconfig`.[^1]" +msgstr "" + +#: src/openpower.md:20 src/odroid.md:26 src/history.md:57 +msgid "See also" +msgstr "" + +#: src/openpower.md:22 +msgid "" +"[coreboot and Heads as an alternative firmware for OpenPOWER Talos " +"II](https://openpower.foundation/blog/coreboot-on-talos2/)" +msgstr "" + +#: src/openpower.md:25 +msgid "" +"" +msgstr "" + +#: src/odroid.md:1 +msgid "ODROID boot chain" +msgstr "" + +#: src/odroid.md:3 +msgid "" +"The [ODROID-N2](https://wiki.odroid.com/odroid-n2/hardware) comes with a SPI " +"flash as well as a connector for an eMMC flash and an SD card slot. The SoC " +"is an [Amlogic S922X which can boot from all those " +"storages](https://wiki.odroid.com/odroid-n2/software/boot_sequence), " +"depending on GPIO configuration and a fallback flow in the mask ROM. For " +"booting from SPI flash, the ODROID-N2 board has a switch, and comes with " +"[Petitboot](./petitboot.md) preinstalled[^1]." +msgstr "" + +#: src/odroid.md:10 +msgid "The SPI flash boot flow is as follows:" +msgstr "" + +#: src/odroid.md:12 +msgid "" +"```mermaid\n" +"flowchart LR\n" +" maskrom[\"mask ROM\"]\n" +" spl[\"U-Boot SPL\"]\n" +" uboot[\"U-Boot main\"]\n" +" petitboot([\"petitboot\"])\n" +" maskrom-->spl-->uboot-->petitboot-->OS\n" +"```" +msgstr "" + +#: src/odroid.md:21 +msgid "" +"[U-Boot SPL](https://docs.u-boot.org/en/latest/usage/spl_boot.html) " +"initializes DRAM and loads U-Boot main (\"proper\")" +msgstr "" + +#: src/odroid.md:23 +msgid "" +"U-Boot main is set up to directly load Linux with Petitboot, which " +"implements LinuxBoot" +msgstr "" + +#: src/odroid.md:28 +msgid "" +"[ODROID forum discussion on porting Petitboot to " +"ODROID-N2](https://forum.odroid.com/viewtopic.php?f=182&t=33873)" +msgstr "" + +#: src/odroid.md:31 +msgid "" +"" +msgstr "" + #: src/u-root.md:3 msgid "" "U-root is an embeddable root file system intended to be placed in a flash " @@ -1170,9 +1343,9 @@ msgstr "" #: src/u-root.md:28 msgid "" "Embedding kernels and root file systems in BIOS flash is a common technique " -"for gaining boot time performance and platform customization[^25][^14][^23]. " -"Almost all new firmware includes a multiprocess operating system with a full " -"complement of file systems, network drivers, and protocol stacks, all " +"for gaining boot time performance and platform customization[^25] [^14] " +"[^23]. Almost all new firmware includes a multiprocess operating system with " +"a full complement of file systems, network drivers, and protocol stacks, all " "contained in an embedded file system. In some cases, the kernel is only " "booted long enough to boot another kernel. In others, the kernel that is " "booted and the file system it contains constitute the operational " @@ -1192,7 +1365,7 @@ msgid "" "environment than even a few years ago. In response to the many successful " "attacks against shell interpreters[^11] and C programs[^8], we have started " "to look at using a more secure, modern language in embedded root file " -"systems, namely, Go[^21][^16]." +"systems, namely, Go[^21] [^16]." msgstr "" #: src/u-root.md:49 @@ -1227,11 +1400,11 @@ msgid "" "possible. Firmware is extremely complex; UEFI is roughly equivalent in size " "and capability to a Unix kernel. Firmware is usually closed and proprietary, " "with nowhere near the level of testing of kernels. These properties make " -"firmware an ideal place for so-called advanced persistent " -"threats[^10][^18][^5]. Once an exploit is installed, it is almost impossible " -"to remove, since the exploit can inhibit its removal by corrupting the " -"firmware update process. The only sure way to mitigate a firmware exploit is " -"to destroy the hardware." +"firmware an ideal place for so-called advanced persistent threats[^10] [^18] " +"[^5]. Once an exploit is installed, it is almost impossible to remove, since " +"the exploit can inhibit its removal by corrupting the firmware update " +"process. The only sure way to mitigate a firmware exploit is to destroy the " +"hardware." msgstr "" #: src/u-root.md:80 @@ -1368,7 +1541,7 @@ msgstr "" msgid "" "There is no `/bin/sh` at this point; the first `sh` found in $PATH is " "`/buildbin/sh`. This is a symlink to `installcommand`. `Installcommand`, " -"once started, examines argv\\[0\\], which is `sh`, and takes this as " +"once started, examines `argv[0]`, which is `sh`, and takes this as " "instruction to build `/src/cmds/sh/.go` into `/bin` and then exec `/bin/sh`. " "There is no difference between starting the first shell and any other " "program. Hence, part of the boot process involves the construction of an " @@ -1945,7 +2118,7 @@ msgstr "" #: src/u-root.md:505 msgid "" -"The LinuxBIOS project[^14][^1], together with clustermatic[^25], used an " +"The LinuxBIOS project[^14] [^1], together with clustermatic[^25], used an " "embedded kernel and simple root file system to manage supercomputing " "clusters. Due to space constraints of 1 MiB or less of flash, clusters " "embedded only a single-processor Linux kernel with a daemon. The daemon was " @@ -2017,163 +2190,56 @@ msgstr "" msgid "" "AGNEW, A., SULMICKI, A., MINNICH, R., AND ARBAUGH, W. A. Flexibility in rom: " "A stackable open source bios. In USENIX Annual Technical Conference, FREENIX " -"Track (2003), pp. 115–124." -msgstr "" - -#: src/u-root.md:555 -msgid "(AUTHOR OF SLOF), S. B. Personal conversation." -msgstr "" - -#: src/u-root.md:556 -msgid "" -"BENAVIDES, T., TREON, J., HULBERT, J., AND CHANG, W. The enabling of an " -"execute-in-place architecture to reduce the embedded system memory footprint " -"and boot time. Journal of computers 3, 1 (2008), 79–89." -msgstr "" - -#: src/u-root.md:559 -msgid "" -"BOGOWITZ, B., AND SWINFORD, T. Intel⃝R active management technology reduces " -"it costs with improved pc manageability. Technology@ Intel Magazine (2004)." -msgstr "" - -#: src/u-root.md:562 -msgid "" -"CELEDA, P., KREJCI, R., VYKOPAL, J., AND DRASAR, M. Embedded malware-an " -"analysis of the chuck norris botnet. In Computer Network Defense (EC2ND), " -"2010 European Conference on (2010), IEEE, pp. 3–10." -msgstr "" - -#: src/u-root.md:565 -msgid "" -"CUI, A., COSTELLO, M., AND STOLFO, S. J. When firmware modifications attack: " -"A case study of embedded exploitation. In NDSS (2013)." -msgstr "" - -#: src/u-root.md:567 -msgid "" -"DALY, D., CHOI, J. H., MOREIRA, J. E., AND WATERLAND, A. Base operating " -"system provisioning and bringup for a commercial supercomputer. In Parallel " -"and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International " -"(2007), IEEE, pp. 1–7." -msgstr "" - -#: src/u-root.md:571 -msgid "" -"DURUMERIC, Z., KASTEN, J., ADRIAN, D., HALDERMAN, J. A., BAILEY, M., LI, F., " -"WEAVER, N., AMANN, J., BEEKMAN, J., PAYER, M., ET AL. The matter of " -"heartbleed. In Proceedings of the 2014 Conference on Internet Measurement " -"Conference (2014), ACM, pp. 475–488." -msgstr "" - -#: src/u-root.md:575 -msgid "" -"KALLENBERG, C., AND BULYGIN, Y. All your boot are belong to us intel, mitre. " -"cansecwest 2014." -msgstr "" - -#: src/u-root.md:577 -msgid "" +"Track (2003), pp. 115–124. [^2]: (AUTHOR OF SLOF), S. B. Personal " +"conversation. [^3]: BENAVIDES, T., TREON, J., HULBERT, J., AND CHANG, W. The " +"enabling of an execute-in-place architecture to reduce the embedded system " +"memory footprint and boot time. Journal of computers 3, 1 (2008), 79–89. " +"[^4]: BOGOWITZ, B., AND SWINFORD, T. Intel⃝R active management technology " +"reduces it costs with improved pc manageability. Technology@ Intel Magazine " +"(2004). [^5]: CELEDA, P., KREJCI, R., VYKOPAL, J., AND DRASAR, M. Embedded " +"malware-an analysis of the chuck norris botnet. In Computer Network Defense " +"(EC2ND), 2010 European Conference on (2010), IEEE, pp. 3–10. [^6]: CUI, A., " +"COSTELLO, M., AND STOLFO, S. J. When firmware modifications attack: A case " +"study of embedded exploitation. In NDSS (2013). [^7]: DALY, D., CHOI, J. H., " +"MOREIRA, J. E., AND WATERLAND, A. Base operating system provisioning and " +"bringup for a commercial supercomputer. In Parallel and Distributed " +"Processing Symposium, 2007. IPDPS 2007. IEEE International (2007), IEEE, pp. " +"1–7. [^8]: DURUMERIC, Z., KASTEN, J., ADRIAN, D., HALDERMAN, J. A., BAILEY, " +"M., LI, F., WEAVER, N., AMANN, J., BEEKMAN, J., PAYER, M., ET AL. The matter " +"of heartbleed. In Proceedings of the 2014 Conference on Internet Measurement " +"Conference (2014), ACM, pp. 475–488. [^9]: KALLENBERG, C., AND BULYGIN, Y. " +"All your boot are belong to us intel, mitre. cansecwest 2014. [^10]: " "KALLENBERG, C., KOVAH, X., BUTTERWORTH, J., AND CORNWELL, S. Extreme " -"privilege escalation on windows 8/uefi systems." -msgstr "" - -#: src/u-root.md:579 -msgid "" -"KOZIOL, J., LITCHFIELD, D., AITEL, D., ANLEY, C., EREN, S., MEHTA, N., AND " -"HASSELL, R. The Shellcoder’s Handbook. Wiley Indianapolis, 2004." -msgstr "" - -#: src/u-root.md:581 -msgid "LEWIS, T. Uefi overview, 2007." -msgstr "" - -#: src/u-root.md:582 -msgid "MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79." -msgstr "" - -#: src/u-root.md:583 -msgid "MINNICH, R. G. Linuxbios at four. Linux J. 2004, 118 (Feb. 2004), 8–." -msgstr "" - -#: src/u-root.md:584 -msgid "" +"privilege escalation on windows 8/uefi systems. [^11]: KOZIOL, J., " +"LITCHFIELD, D., AITEL, D., ANLEY, C., EREN, S., MEHTA, N., AND HASSELL, R. " +"The Shellcoder’s Handbook. Wiley Indianapolis, 2004. [^12]: LEWIS, T. Uefi " +"overview, 2007. [^13]: MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79. [^14]: " +"MINNICH, R. G. Linuxbios at four. Linux J. 2004, 118 (Feb. 2004), 8–. [^15]: " "MOON, S.-P., KIM, J.-W., BAE, K.-H., LEE, J.-C., AND SEO, D.-W. Embedded " "linux implementation on a commercial digital tv system. Consumer " -"Electronics, IEEE Transactions on 49, 4 (Nov 2003), 1402–1407." -msgstr "" - -#: src/u-root.md:587 -msgid "" -"PIKE, R. Another go at language design. Stanford University Computer Systems " -"Laboratory Colloquium." -msgstr "" - -#: src/u-root.md:589 -msgid "" -"RITCHIE, D. M. The limbo programming language. Inferno Programmer’s Manual 2 " -"(1997)." -msgstr "" - -#: src/u-root.md:591 -msgid "" -"SACCO, A. L., AND ORTEGA, A. A. Persistent bios infection. In CanSecWest " -"Applied Security Conference (2009)." -msgstr "" - -#: src/u-root.md:593 -msgid "" -"SAMPATHKUMAR, R. Vulnerability Management for Cloud Computing-2014: A Cloud " -"Computing Security Essential. Rajakumar Sampathkumar, 2014." -msgstr "" - -#: src/u-root.md:595 -msgid "" +"Electronics, IEEE Transactions on 49, 4 (Nov 2003), 1402–1407. [^16]: PIKE, " +"R. Another go at language design. Stanford University Computer Systems " +"Laboratory Colloquium. [^17]: RITCHIE, D. M. The limbo programming language. " +"Inferno Programmer’s Manual 2 (1997). [^18]: SACCO, A. L., AND ORTEGA, A. A. " +"Persistent bios infection. In CanSecWest Applied Security Conference (2009). " +"[^19]: SAMPATHKUMAR, R. Vulnerability Management for Cloud Computing-2014: A " +"Cloud Computing Security Essential. Rajakumar Sampathkumar, 2014. [^20]: " "SUGANUMA, T., OGASAWARA, T., TAKEUCHI, M., YASUE, T., KAWAHITO, M., " "ISHIZAKI, K., KOMATSU, H., AND NAKATANI, T. Overview of the ibm java " -"just-in-time compiler. IBM systems Journal 39, 1 (2000), 175–193." -msgstr "" - -#: src/u-root.md:598 -msgid "" +"just-in-time compiler. IBM systems Journal 39, 1 (2000), 175–193. [^21]: " "TEAM, G. The go programming language specification. Tech. rep., Technical " "Report [http://golang](http://golang/). org/doc/doc/go spec. html, Google " -"Inc, 2009." -msgstr "" - -#: src/u-root.md:601 -msgid "" -"VAN HENSBERGEN, E., AND MINNICH, R. Grave robbers from outer space: Using " -"9p2000 under linux. In USENIX Annual Technical Conference, FREENIX Track " -"(2005), pp. 83–94." -msgstr "" - -#: src/u-root.md:604 -msgid "VARIOUS. No papers have been published on onie; see onie.org." -msgstr "" - -#: src/u-root.md:605 -msgid "VARIOUS. No papers were published; see perllinux.sourceforge.net." -msgstr "" - -#: src/u-root.md:606 -msgid "" -"WATSON, G. R., SOTTILE, M. J., MINNICH, R. G., CHOI, S.-E., AND HERTDRIKS, " -"E. Pink: A 1024-node single-system image linux cluster. In High Performance " -"Computing and Grid in Asia Pacific Region, 2004. Proceedings. Seventh " -"International Conference on (2004), IEEE, pp. 454–461." -msgstr "" - -#: src/u-root.md:610 -msgid "" -"WELLS, N. Busybox: A swiss army knife for linux. Linux J. 2000, 78es (Oct. " -"2000)." -msgstr "" - -#: src/u-root.md:612 -msgid "" -"WINTERBOTTOM, P. Alef language reference manual. Plan 9 Programmer’s Man " -"(1995)." +"Inc, 2009. [^22]: VAN HENSBERGEN, E., AND MINNICH, R. Grave robbers from " +"outer space: Using 9p2000 under linux. In USENIX Annual Technical " +"Conference, FREENIX Track (2005), pp. 83–94. [^23]: VARIOUS. No papers have " +"been published on onie; see onie.org. [^24]: VARIOUS. No papers were " +"published; see perllinux.sourceforge.net. [^25]: WATSON, G. R., SOTTILE, M. " +"J., MINNICH, R. G., CHOI, S.-E., AND HERTDRIKS, E. Pink: A 1024-node " +"single-system image linux cluster. In High Performance Computing and Grid in " +"Asia Pacific Region, 2004. Proceedings. Seventh International Conference on " +"(2004), IEEE, pp. 454–461. [^26]: WELLS, N. Busybox: A swiss army knife for " +"linux. Linux J. 2000, 78es (Oct. 2000). [^27]: WINTERBOTTOM, P. Alef " +"language reference manual. Plan 9 Programmer’s Man (1995)." msgstr "" #: src/u-root-qemu-demo.md:3 @@ -4002,7 +4068,7 @@ msgstr "" #: src/implementation.md:25 msgid "" "LinuxBoot replaces most of the UEFI software with Linux. LinuxBoot has an " -"initramfs provided by [u-root](../u-root.md)." +"initramfs provided by [u-root](./u-root.md)." msgstr "" #: src/implementation.md:28 @@ -5497,10 +5563,6 @@ msgid "" "strong platform security. It is currently maintained by Thierry Laurion." msgstr "" -#: src/history.md:57 -msgid "See also" -msgstr "" - #: src/history.md:59 msgid "[osresearch.net](https://osresearch.net/)" msgstr "" diff --git a/po/zh-TW.po b/po/zh-TW.po index 1933a8c..9390862 100644 --- a/po/zh-TW.po +++ b/po/zh-TW.po @@ -1,15 +1,14 @@ - msgid "" msgstr "" "Project-Id-Version: LinuxBoot\n" -"POT-Creation-Date: 2025-04-28T16:48:12+08:00\n" +"POT-Creation-Date: 2025-05-22T11:08:57+08:00\n" "PO-Revision-Date: 2025-04-28 16:48+0800\n" "Last-Translator: CHIAOSUNG YANG \n" "Language-Team: Language zh-TW\n" +"Language: zh-TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh-TW\n" "Plural-Forms: nplurals=1; plural=0;\n" #: src/SUMMARY.md:1 src/intro.md:1 @@ -32,65 +31,75 @@ msgstr "LinuxBoot 的組成" msgid "Evaluation of tools" msgstr "工具評估" -#: src/SUMMARY.md:6 src/u-root.md:1 +#: src/SUMMARY.md:6 src/petitboot.md:1 +msgid "Petitboot" +msgstr "Petitboot" + +#: src/SUMMARY.md:7 +msgid "OpenPOWER" +msgstr "OpenPOWER" + +#: src/SUMMARY.md:8 +msgid "ODROID" +msgstr "ODROID" + +#: src/SUMMARY.md:9 src/u-root.md:1 msgid "All about u-root" msgstr "關於 u-root" -#: src/SUMMARY.md:7 src/u-root-qemu-demo.md:1 +#: src/SUMMARY.md:10 src/u-root-qemu-demo.md:1 msgid "u-root demo with QEMU" msgstr "使用 QEMU 的 u-root 示範" -#: src/SUMMARY.md:8 -#, fuzzy +#: src/SUMMARY.md:11 msgid "LinuxBoot utilities" -msgstr "Linux 啟動實用程式" +msgstr "Linux 工具" -#: src/SUMMARY.md:9 src/utilities/UEFI_Tool_Kit.md:1 -#, fuzzy +#: src/SUMMARY.md:12 src/utilities/UEFI_Tool_Kit.md:1 msgid "UEFI Tool Kit" -msgstr "UEFI工具包" +msgstr "UEFI 工具包" -#: src/SUMMARY.md:10 +#: src/SUMMARY.md:13 msgid "The magical cpu command" msgstr "神奇的 CPU 指令" -#: src/SUMMARY.md:11 +#: src/SUMMARY.md:14 msgid "Device Under Test" msgstr "被測試的設備" -#: src/SUMMARY.md:12 src/implementation.md:1 +#: src/SUMMARY.md:15 src/implementation.md:1 msgid "Implementing LinuxBoot" msgstr "實作 LinuxBoot" -#: src/SUMMARY.md:13 src/coreboot.u-root.systemboot/index.md:1 +#: src/SUMMARY.md:16 src/coreboot.u-root.systemboot/index.md:1 msgid "LinuxBoot using coreboot, u-root and systemboot" msgstr "使用 coreboot、u-root 和 systemboot 的 LinuxBoot" -#: src/SUMMARY.md:14 src/glossary.md:1 +#: src/SUMMARY.md:17 src/glossary.md:1 msgid "Glossary" msgstr "詞彙表" -#: src/SUMMARY.md:15 src/history.md:1 +#: src/SUMMARY.md:18 src/history.md:1 msgid "History" msgstr "歷史" -#: src/SUMMARY.md:16 src/case_studies/index.md:1 +#: src/SUMMARY.md:19 src/case_studies/index.md:1 msgid "Case Studies" msgstr "案例研究" -#: src/SUMMARY.md:17 +#: src/SUMMARY.md:20 msgid "Ampere study" msgstr "Ampere 的案例研究" -#: src/SUMMARY.md:18 +#: src/SUMMARY.md:21 msgid "Google study" msgstr "Google 的案例研究" -#: src/SUMMARY.md:19 +#: src/SUMMARY.md:22 msgid "OCP TiogaPass" msgstr "OCP TiogaPass 的案例研究" -#: src/SUMMARY.md:20 +#: src/SUMMARY.md:23 msgid "Frequently Asked Questions" msgstr "常見問題" @@ -125,40 +134,41 @@ msgstr "什麼是 LinuxBoot?" #: src/intro.md:13 msgid "" -"LinuxBoot is the idea of replacing proprietary or corporate-driven " -"late-stage boot [firmware](./glossary.md) with the Linux kernel and a " -"community-based user-space. That idea grew into a project that over the " -"years includes various initiatives with the overarching goal of moving from " -"obscure and complex firmware to simpler and open source firmware." +"LinuxBoot is the idea of replacing proprietary or corporate-driven late-" +"stage boot [firmware](./glossary.md) with the Linux kernel and a community-" +"based user-space. That idea grew into a project that over the years includes " +"various initiatives with the overarching goal of moving from obscure and " +"complex firmware to simpler and open source firmware." msgstr "" -"LinuxBoot 的想法是用 Linux 核心和基於社群的用戶空間(user-space) 取代專有或企業主導的後期" -"啟動[韌體](./glossary.md)。這個想法逐漸發展成為一個項目,多年來包括各種舉措,其總體目標是" -"從晦澀複雜的韌體轉變為更簡單和開源的韌體。" +"LinuxBoot 的想法是用 Linux 核心和基於社群的用戶空間(user-space) 取代專有或" +"企業主導的後期啟動[韌體](./glossary.md)。這個想法逐漸發展成為一個項目,多年來" +"包括各種舉措,其總體目標是從晦澀複雜的韌體轉變為更簡單和開源的韌體。" #: src/intro.md:19 msgid "" "The LinuxBoot project provides two reference implementations; `linuxboot` " "and Heads. The [`linuxboot`](https://github.com/linuxboot/linuxboot) build " -"system outputs a boot payload consisting of a Linux kernel and an " -"[initramfs](https://de.wikipedia.org/wiki/Initramfs) that contains a minimal " -"Golang user-space built using [u-root](https://github.com/u-root/u-root)." +"system outputs a boot payload consisting of a Linux kernel and an [initramfs]" +"(https://de.wikipedia.org/wiki/Initramfs) that contains a minimal Go user-" +"space built using [u-root](https://github.com/u-root/u-root)." msgstr "" -"LinuxBoot 專案提供兩個參考實作;`linuxboot` 和 Heads。" -"[`linuxboot`](https://github.com/linuxboot/linuxboot) " -"建置系統輸出一個啟動載荷 (boot payload) ,包含一個 Linux 核心和一個 " -"[initramfs](https://de.wikipedia.org/wiki/Initramfs),其中包含使用 " -"[u-root](https://github.com/u-root/u-root) 建置的最小 Golang 使用者空間(user-space)。" +"LinuxBoot 專案提供兩個參考實作;`linuxboot` 和 Heads。[`linuxboot`](https://" +"github.com/linuxboot/linuxboot) 建置系統輸出一個啟動載荷 (boot payload) ,包" +"含一個 Linux 核心和一個 [initramfs](https://de.wikipedia.org/wiki/" +"Initramfs),其中包含使用 [u-root](https://github.com/u-root/u-root) 建置的最" +"小 Go 使用者空間(user-space)。" #: src/intro.md:25 msgid "" -"The Heads build system is more focused on local attestation, TPM DUK " -"seal/unseal operations, GPG-based security measurement, reproducible builds " -"and uses BusyBox to provide a much larger suite of Linux tools allowing it " -"to also be used as a recovery environment." +"The Heads build system is more focused on local attestation, TPM DUK seal/" +"unseal operations, GPG-based security measurement, reproducible builds and " +"uses BusyBox to provide a much larger suite of Linux tools allowing it to " +"also be used as a recovery environment." msgstr "" -"Heads 構建系統更側重於本地證明(local attestation)、TPM DUK 密封/解封(seal/unseal)" -"操作、基於 GPG 的安全措施、可重現構建(reproducible builds),並使用 BusyBox 提供更大的 " -"Linux 工具套件,使其也可以用作修復環境(recovery environment)。" +"Heads 構建系統更側重於本地證明(local attestation)、TPM DUK 密封/解封(seal/" +"unseal)操作、基於 GPG 的安全措施、可重現構建(reproducible builds),並使用 " +"BusyBox 提供更大的 Linux 工具套件,使其也可以用作修復環境(recovery " +"environment)。" #: src/intro.md:30 msgid "Many other implementations exist independently of the project:" @@ -169,16 +179,16 @@ msgid "" "[petitboot](https://github.com/open-power/petitboot) under the OpenPOWER " "project originally targeting the PS3" msgstr "" -"[petitboot](https://github.com/open-power/petitboot) 屬於 OpenPOWER 項目,最初針" -"對的是 PS3" +"[petitboot](https://github.com/open-power/petitboot) 屬於 OpenPOWER 項目,最" +"初針對的是 PS3" #: src/intro.md:34 msgid "" "[k-boot](https://github.com/BayLibre/k-boot) developed by BayLibre in 2023 " "using BusyBox" msgstr "" -"[k-boot](https://github.com/BayLibre/k-boot) 由 BayLibre 於 2023 年使用 BusyBox " -"開發" +"[k-boot](https://github.com/BayLibre/k-boot) 由 BayLibre 於 2023 年使用 " +"BusyBox 開發" #: src/intro.md:36 msgid "[nmbl](https://github.com/rhboot/nmbl-poc) developed by RedHat in 2024" @@ -196,11 +206,11 @@ msgstr "此外,過去也曾有許多類似的實作,其中包含一些已不 #: src/intro.md:42 msgid "" -"MILO on Alpha started before 2000 (see [What is " -"MILO?](https://tldp.org/HOWTO/MILO-HOWTO/what-section.html))" +"MILO on Alpha started before 2000 (see [What is MILO?](https://tldp.org/" +"HOWTO/MILO-HOWTO/what-section.html))" msgstr "" -"Alpha 版 MILO 於 2000 年之前就已啟動(請參閱[什麼是 " -"MILO?](https://tldp.org/HOWTO/MILO-HOWTO/what-section.html))" +"Alpha 版 MILO 於 2000 年之前就已啟動(請參閱[什麼是 MILO?](https://tldp.org/" +"HOWTO/MILO-HOWTO/what-section.html))" #: src/intro.md:44 msgid "kboot developed by Werner Almesberger in 2005" @@ -208,16 +218,17 @@ msgstr "kboot 由 Werner Almesberger 於 2005 年開發" #: src/intro.md:46 msgid "" -"These projects all attempt to reduce the role of firmware to a small, " -"fixed-function core whose only purpose is to get a flash-based Linux kernel " +"These projects all attempt to reduce the role of firmware to a small, fixed-" +"function core whose only purpose is to get a flash-based Linux kernel " "started. This “bare essentials” firmware prepares the hardware and starts a " "Linux kernel and a user-space environment will run on the machine. Go is the " "recommended user-space environment, but is not required." msgstr "" -"這些專案都試圖將韌體的角色簡化為一個小型、固定功能的核心,其唯一目的是啟動一個儲存在快閃記憶體" -"(flash)中的 Linux 核心(Linux kernel)。這個「最低必要」(bare essentials)的韌體會負" -"責初始化硬體,接著啟動 Linux 核心,並讓使用者空間環境(user-space environment)在機器上" -"運行。Go 是建議使用的使用者空間環境,但並非必須。" +"這些專案都試圖將韌體的角色簡化為一個小型、固定功能的核心,其唯一目的是啟動一" +"個儲存在快閃記憶體(flash)中的 Linux 核心(Linux kernel)。這個「最低必要」" +"(bare essentials)的韌體會負責初始化硬體,接著啟動 Linux 核心,並讓使用者空" +"間環境(user-space environment)在機器上運行。Go 是建議使用的使用者空間環境," +"但並非必須。" #: src/intro.md:52 msgid "Why LinuxBoot is needed" @@ -236,13 +247,14 @@ msgid "" "drivers are currently being run around the clock at scale, they will have " "fewer bugs." msgstr "" -"有時候,韌體會包含驅動程式和工具程式(utilities)。這些元件可能存在漏洞,或是已無人維護,進而" -"成為問題或資安風險的來源。LinuxBoot 以 Linux 驅動程式取代了供應商提供的專有閉源韌體驅動" -"(proprietary, closed-source firmware drivers),讓開發 Linux 驅動與韌體驅動的工程師" -"能專注於同一套驅動程式。如此一來,這些驅動程式將擁有更多的貢獻者 (contributors) 與審閱者" -"(reviewers),又因為它們是 Linux 的一部分,能夠運用業界標準的開發流程與工具" -"(standard industry coding infrastructure)來持續改善。最終,由於這些 Linux 驅動目前" -"已在大量系統上長時間穩定運作(run around the clock at scale),其錯誤率也會相對較低。" +"有時候,韌體會包含驅動程式和工具程式(utilities)。這些元件可能存在漏洞,或是" +"已無人維護,進而成為問題或資安風險的來源。LinuxBoot 以 Linux 驅動程式取代了供" +"應商提供的專有閉源韌體驅動(proprietary, closed-source firmware drivers),讓" +"開發 Linux 驅動與韌體驅動的工程師能專注於同一套驅動程式。如此一來,這些驅動程" +"式將擁有更多的貢獻者 (contributors) 與審閱者(reviewers),又因為它們是 " +"Linux 的一部分,能夠運用業界標準的開發流程與工具(standard industry coding " +"infrastructure)來持續改善。最終,由於這些 Linux 驅動目前已在大量系統上長時間" +"穩定運作(run around the clock at scale),其錯誤率也會相對較低。" #: src/intro.md:64 msgid "What LinuxBoot does" @@ -255,10 +267,10 @@ msgid "" "particularly the network stack and file system modules, with Linux " "applications." msgstr "" -"LinuxBoot 以 Linux 應用程式取代了統一可擴充韌體介面" -"(Unified Extensible Firmware Interface,UEFI)與其他韌體中大量的驅動程式執行環境" -"(Driver Execution Environment,DXE)模組,特別是網路協定堆疊(network stack)和檔案" -"系統(file system)模組。" +"LinuxBoot 以 Linux 應用程式取代了統一可擴充韌體介面(Unified Extensible " +"Firmware Interface,UEFI)與其他韌體中大量的驅動程式執行環境(Driver " +"Execution Environment,DXE)模組,特別是網路協定堆疊(network stack)和檔案系" +"統(file system)模組。" #: src/intro.md:70 msgid "" @@ -269,11 +281,12 @@ msgid "" "detection applications as cross-architecture and cross-platform portable " "Linux applications." msgstr "" -"LinuxBoot 將 Linux 核心(Linux kernel)作為快閃記憶體(flash ROM)中的驅動程式執行環境" -"(Driver Execution Environment, DXE)啟動,而非傳統的 UEFI shell。接著,Linux 核心" -"可透過隨附的基於 Go 的使用者空間(user-space)來載入運行時核心(runtime kernel)。" -"LinuxBoot 的架構(paradigm)使得傳統的韌體應用程式(例如開機載入器、偵錯工具、診斷與錯誤偵" -"測應用程式)能夠以跨架構、跨平台的可攜式 Linux 應用程式形式實作。" +"LinuxBoot 將 Linux 核心(Linux kernel)作為快閃記憶體(flash ROM)中的驅動程" +"式執行環境(Driver Execution Environment, DXE)啟動,而非傳統的 UEFI shell。" +"接著,Linux 核心可透過隨附的基於 Go 的使用者空間(user-space)來載入運行時核" +"心(runtime kernel)。LinuxBoot 的架構(paradigm)使得傳統的韌體應用程式(例" +"如開機載入器、偵錯工具、診斷與錯誤偵測應用程式)能夠以跨架構、跨平台的可攜式 " +"Linux 應用程式形式實作。" #: src/intro.md:77 msgid "" @@ -282,18 +295,18 @@ msgid "" "in Go. The following diagram shows the current state of the UEFI boot " "process and what is planned for the transition to LinuxBoot." msgstr "" -"當 Linux 啟動時,它需要一個包含工具程式(utilities)的根檔案系統(root file system)。" -"LinuxBoot 使用的其中一種根檔案系統是基於使用 Go 語言編寫的 u-root 標準工具程式" -"(standard utilities)。下圖顯示了目前 UEFI 啟動過程的狀況,以及計畫中的 LinuxBoot 過渡" -"流程。" +"當 Linux 啟動時,它需要一個包含工具程式(utilities)的根檔案系統(root file " +"system)。LinuxBoot 使用的其中一種根檔案系統是基於使用 Go 語言編寫的 u-root " +"標準工具程式(standard utilities)。下圖顯示了目前 UEFI 啟動過程的狀況,以及" +"計畫中的 LinuxBoot 過渡流程。" #: src/intro.md:82 msgid "" -"[![comparison of UEFI boot and " -"LinuxBoot](../images/UEFI-versus-LinuxBoot.svg)](../images/UEFI-versus-LinuxBoot.svg)" +"[![comparison of UEFI boot and LinuxBoot](./images/UEFI-versus-" +"LinuxBoot.svg)](./images/UEFI-versus-LinuxBoot.svg)" msgstr "" -"[![UEFI 啟動與 LinuxBoot 的比較]" -"(../images/UEFI-versus-LinuxBoot.svg)](../images/UEFI-versus-LinuxBoot.svg)" +"[![UEFI 啟動與 LinuxBoot 的比較](./images/UEFI-versus-LinuxBoot.svg)](./" +"images/UEFI-versus-LinuxBoot.svg)" #: src/intro.md:84 msgid "Benefits of using the Go user-space environment and compiler" @@ -308,13 +321,12 @@ msgid "" "notation similar to Java that makes it clear to determine what packages a " "given program needs." msgstr "" -"Go 是由 Google 創建的系統程式語言。" -"Go 具有強類型(strong typing)、語言級別的並發支援(concurrency support)、" -"透過通道(channels)進行進程間通訊(inter-process communication)、運行時類型安全性" -"(runtime type safety)和其他保護措施、動態分配(dynamic allocation)和垃圾收集" -"(garbage collection)以及閉包(closures)。" -"Go 具有與 Java 類似的套件名稱符號(package name notation)," -"使得可以清楚地確定給定程式需要哪些套件(packages)。" +"Go 是由 Google 創建的系統程式語言。Go 具有強類型(strong typing)、語言級別的" +"並發支援(concurrency support)、透過通道(channels)進行進程間通訊(inter-" +"process communication)、運行時類型安全性(runtime type safety)和其他保護措" +"施、動態分配(dynamic allocation)和垃圾收集(garbage collection)以及閉包" +"(closures)。Go 具有與 Java 類似的套件名稱符號(package name notation),使" +"得可以清楚地確定給定程式需要哪些套件(packages)。" #: src/intro.md:92 msgid "" @@ -325,22 +337,22 @@ msgid "" "itself written in C. All are proving to be vulnerable to the attack-rich " "environment that the Internet has become." msgstr "" -"現代語言結構使 Go 成為比 C 更安全的語言。這種安全性對於網路連接的嵌入式系統至關重要," -"這些系統通常擁有用 C 編寫的網路工具程式,包括網頁伺服器、" -"包含 sshd 的網路伺服器(network servers),以及提供命令解釋器存取的程式(本身以 C 編寫)。" -"所有這些都證明容易受到互聯網成為攻擊頻繁環境的威脅。" +"現代語言結構使 Go 成為比 C 更安全的語言。這種安全性對於網路連接的嵌入式系統至" +"關重要,這些系統通常擁有用 C 編寫的網路工具程式,包括網頁伺服器、包含 sshd 的" +"網路伺服器(network servers),以及提供命令解釋器存取的程式(本身以 C 編" +"寫)。所有這些都證明容易受到互聯網成為攻擊頻繁環境的威脅。" #: src/intro.md:99 msgid "" "Even the most skilled programmers can make mistakes that in C can be " "unrecoverable, especially on network connected systems. Currently, even the " -"lowest-level firmware in our PCs, printers, and thermostats is " -"network-connected. These programming mistakes are either impossible to make " -"in Go or, if made, are detected at runtime and result in the program exiting." +"lowest-level firmware in our PCs, printers, and thermostats is network-" +"connected. These programming mistakes are either impossible to make in Go " +"or, if made, are detected at runtime and result in the program exiting." msgstr "" -"即使是最熟練的程式設計師也會犯下 C 語言中無法恢復的錯誤," -"尤其是在網路連線系統上。目前,即使我們個人電腦、印表機和恆溫器中最低等級的韌體也是連網的。" -"這些程式錯誤要麼在 Go 中不可能犯,要麼如果犯了,則會在運行時檢測到並導致程式退出。" +"即使是最熟練的程式設計師也會犯下 C 語言中無法恢復的錯誤,尤其是在網路連線系統" +"上。目前,即使我們個人電腦、印表機和恆溫器中最低等級的韌體也是連網的。這些程" +"式錯誤要麼在 Go 中不可能犯,要麼如果犯了,則會在運行時檢測到並導致程式退出。" #: src/intro.md:105 msgid "" @@ -348,8 +360,8 @@ msgid "" "firmware might be stronger than for user programs, because exploits at the " "firmware level are nearly impossible to detect and mitigate." msgstr "" -"在低階嵌入式韌體中使用像 Go 這樣的高級安全語言的理由," -"可能比用戶程式更為充分,因為在韌體層級的漏洞幾乎不可能被檢測和緩解。" +"在低階嵌入式韌體中使用像 Go 這樣的高級安全語言的理由,可能比用戶程式更為充" +"分,因為在韌體層級的漏洞幾乎不可能被檢測和緩解。" #: src/intro.md:109 msgid "" @@ -367,15 +379,15 @@ msgid "" "programs can be fetched over the network, but compiling dynamically with Go " "or creating a BusyBox program are the recommended solutions." msgstr "" -"在韌體等儲存受限的環境中使用 Go 的挑戰在於,高階語言特性會導致二進位檔案過大。即使是簡單的日" -"期程式也約有 2 MiB。一個實現單一功能的 Go 二進位檔案大小是實現多個功能的 BusyBox 二進位檔" -"案的兩倍。當前,典型的 BIOS 快閃記憶體(FLASH)大小為 16 MiB。" -"將多個 Go 二進位檔案裝入單一 BIOS 快閃記憶體區塊是不切實際的。Go 編譯器速度非常快,且其速度" -"顯示了只有在使用程式時進行編譯的解決方案。" -"透過這種方式,您可以建立一個幾乎不含二進位檔案(除了 Go 編譯器本身)的根檔案系統。編譯後的程" -"式和套件可儲存到基於 RAM 的檔案系統中。" -"另一個解決方案是將所有程式編譯成一個 BusyBox 風格的程式。或者,程式可以透過網路獲取,但動態" -"編譯 Go 或創建 BusyBox 程式是建議的解決方案。" +"在韌體等儲存受限的環境中使用 Go 的挑戰在於,高階語言特性會導致二進位檔案過" +"大。即使是簡單的日期程式也約有 2 MiB。一個實現單一功能的 Go 二進位檔案大小是" +"實現多個功能的 BusyBox 二進位檔案的兩倍。當前,典型的 BIOS 快閃記憶體" +"(FLASH)大小為 16 MiB。將多個 Go 二進位檔案裝入單一 BIOS 快閃記憶體區塊是不" +"切實際的。Go 編譯器速度非常快,且其速度顯示了只有在使用程式時進行編譯的解決方" +"案。透過這種方式,您可以建立一個幾乎不含二進位檔案(除了 Go 編譯器本身)的根" +"檔案系統。編譯後的程式和套件可儲存到基於 RAM 的檔案系統中。另一個解決方案是將" +"所有程式編譯成一個 BusyBox 風格的程式。或者,程式可以透過網路獲取,但動態編" +"譯 Go 或創建 BusyBox 程式是建議的解決方案。" #: src/intro.md:123 msgid "Benefits of LinuxBoot with UEFI servers" @@ -385,8 +397,9 @@ msgstr "在 UEFI 伺服器上使用 LinuxBoot 的好處" msgid "" "Most server firmware is based on Intel’s Universal Extensible Firmware " "Interface (UEFI). LinuxBoot provides the following benefits over UEFI:" -msgstr "大多數伺服器韌體基於 Intel 的通用可擴展韌體介面 (UEFI)。與 UEFI 相比,LinuxBoot" -" 具有以下優點:" +msgstr "" +"大多數伺服器韌體基於 Intel 的通用可擴展韌體介面 (UEFI)。與 UEFI 相比," +"LinuxBoot 具有以下優點:" #: src/intro.md:128 msgid "Reliability" @@ -396,14 +409,16 @@ msgstr "可靠性" msgid "" "Improves boot reliability by replacing lightly-tested firmware drivers with " "hardened Linux drivers" -msgstr "透過使用強化的 Linux 驅動程式取代未經充分測試的韌體驅動程式來提高啟動可靠性" +msgstr "" +"透過使用強化的 Linux 驅動程式取代未經充分測試的韌體驅動程式來提高啟動可靠性" #: src/intro.md:132 msgid "" "Proven approach for almost 20 years in military, consumer electronics, and " "supercomputers – wherever reliability and performance are paramount" msgstr "" -"近 20 年來,在軍事、消費性電子和超級電腦領域,可靠性和性能至關重要的領域,該實踐方法已得到驗證" +"近 20 年來,在軍事、消費性電子和超級電腦領域,可靠性和性能至關重要的領域,該" +"實踐方法已得到驗證" #: src/intro.md:134 msgid "" @@ -423,7 +438,8 @@ msgstr "將“Ring 0”引導程式(bootloaders)移至“Ring 3”" #: src/intro.md:140 msgid "`pxeboot` and `diskboot` do parsing and other logic in user-space" -msgstr "`pxeboot` 和 `diskboot` 在使用者空間(user-space)進行解析和其他邏輯處理" +msgstr "" +"`pxeboot` 和 `diskboot` 在使用者空間(user-space)進行解析和其他邏輯處理" #: src/intro.md:141 msgid "Go provides memory safety and type safety" @@ -505,7 +521,8 @@ msgstr "客製化" msgid "" "Allows customization of the initramfs runtime to support site-specific needs " "(both device drivers as well as custom executables)" -msgstr "允許自訂 initramfs 運行時,支援特定環境的需求(包括裝置驅動程式和自訂執行檔)" +msgstr "" +"允許自訂 initramfs 運行時,支援特定環境的需求(包括裝置驅動程式和自訂執行檔)" #: src/intro.md:170 msgid "Engineering Productivity" @@ -568,7 +585,8 @@ msgstr "使用 Linux 資源(如網路)使編寫測試更容易" msgid "" "Open-source projects such as u-root follow excellent software practices such " "as running automated test on each submitted change" -msgstr "u-root 等開源專案遵循優秀的軟體實踐,例如對每個提交的變更執行自動化測試" +msgstr "" +"u-root 等開源專案遵循優秀的軟體實踐,例如對每個提交的變更執行自動化測試" #: src/intro.md:187 msgid "Much easier to debug Go user-space applications" @@ -579,23 +597,20 @@ msgid "Test with a kernel in QEMU" msgstr "使用 QEMU 中的核心進行測試" #: src/use-cases.md:3 -#, fuzzy msgid "" "The general concept of using a Linux kernel to boot into an operating system " "sounds simple at first glance. The challenges in the details, in part not " "only limited to using Linux, are being discussed in this chapter, with ideas " "on solving specific problems in the domain of bootloaders." msgstr "" -"使用 Linux 核心啟動作業系統的一般概念乍看之下很簡單。本章討論了細節中的挑戰,部分挑戰不僅限於使用 " -"Linux,還提出了解決引導程式領域中特定問題的想法。" +"乍看之下,用 Linux 核心啟動作業系統很簡單。不過細節上的挑戰,不只限於 Linux。本章討論這些細" +"節,並提出解決引導程式問題的想法。" #: src/use-cases.md:8 -#, fuzzy msgid "Constrained environments" msgstr "受限環境" #: src/use-cases.md:10 -#, fuzzy msgid "" "Booting a system means dealing with constraints. Those can have either of " "two effects: spark creativity or keep you from pursuing a goal. On foot, you " @@ -603,45 +618,41 @@ msgid "" "With LinuxBoot, we want to take the chance to reevaluate contemporary " "designs and go beyond." msgstr "" -"啟動系統意味著要處理約束。這些可能會產生兩種影響:激發創造力或阻止你追求目標。步行一天只能到達這麼遠,而乘車可以到達更遠的地方。借助 " -"LinuxBoot,我們希望藉此機會重新評估當代設計並超越。" +"啟動系統代表要面對各種約束。這些限制可能激發創意,也可能讓人卻步。步行一天可達有限距離,而搭車" +"則能走得更遠。透過 LinuxBoot,我們想藉機重新審視現有設計,並追求突破。" #: src/use-cases.md:16 -#, fuzzy msgid "" "When it comes to hardware, the vendor would choose the parts for their " "product and consider them in their price calculation." -msgstr "當涉及硬體時,供應商會選擇其產品的零件並在價格計算中考慮它們。" +msgstr "在硬體方面,廠商會選擇產品的零件,並將其納入價格考量。" #: src/use-cases.md:19 -#, fuzzy msgid "" "One main constraint is the initial boot source. A System-on-Chip (SoC) " "typically starts off with a mask ROM and continues with a simple storage " "part, which may range from a SPI flash of a few megabytes up to eMMC or SD " "cards of hundreds of megabytes or even gigabytes." msgstr "" -"一個主要的限制是初始啟動來源。系統單晶片 (SoC) 通常從掩模 ROM 開始,然後是簡單的儲存部分,其範圍可能從幾兆位元組的 SPI " -"快閃記憶體到數百兆位元組甚至千兆位元組的 eMMC 或 SD 卡。" +"其中一個主要限制,是初始啟動來源(boot source)。系統單晶片(SoC)通常先從遮罩唯讀記憶體" +"(mask ROM)開始,接著使用簡單的儲存元件,範圍可能從幾 MB 的 SPI 快閃記憶體(flash),到數" +"百 MB 或甚至 GB 的 eMMC 或 SD 卡。" #: src/use-cases.md:24 -#, fuzzy msgid "" "We neglect other storages here that are attached via NVMe, SATA or other " "high-speed buses, because those are commonly not supported by mask ROMs. " "They are, on the other hand, what a bootloader offers to boot from, as well " "as network sources." msgstr "" -"我們忽略了透過 NVMe、SATA 或其他高速匯流排連接的其他存儲,因為這些儲存通常不受遮罩 ROM " -"支援。另一方面,它們是引導程式提供的引導來源以及網路來源。" +"我們在此不討論透過 NVMe、SATA 或其他高速匯流排(bus)連接的其他儲存裝置,因為這些通常不受遮" +"罩 ROM 支援。相對地,引導程式(bootloader)則可以提供從這些裝置或網路來源啟動的功能。" #: src/use-cases.md:29 -#, fuzzy msgid "Embedded devices" msgstr "嵌入式裝置" #: src/use-cases.md:31 -#, fuzzy msgid "" "Many devices, nowadays known as IoT (Internet of Things), appliances, or " "similar, have a narrow use case. They are meant to perform a specific set of " @@ -649,16 +660,15 @@ msgid "" "an SoC, a bit of storage, and peripherals. Debug interfaces are reduced or " "removed for the final product." msgstr "" -"如今,許多設備(稱為 IoT(物聯網)、家用電器或類似設備)的用途都很狹窄。它們旨在執行一組特定的任務,因此可以進行客製化。從硬體角度來說,這通常意味著 " -"SoC、一些儲存空間和周邊設備。最終產品的調試介面被減少或刪除。" +"現今許多設備,像是 IoT(物聯網,Internet of Things)、家電(appliances)等,使用場景都很" +"狹窄。它們只需執行特定任務,因此可針對需求做客製化。硬體上,通常只需要一顆 SoC、一點儲存空間" +"和周邊裝置(peripherals)。最終產品的除錯介面(debug interface)則會被精簡甚至移除。" #: src/use-cases.md:37 -#, fuzzy msgid "Desktop, laptop, workstation and server systems" -msgstr "桌上型電腦、筆記型電腦、工作站和伺服器系統" +msgstr "桌上型電腦、筆記型電腦、工作站和伺服器" #: src/use-cases.md:39 -#, fuzzy msgid "" "At this point, many systems are still based on x86 processors, coming with a " "SPI flash on the board. While laptops and desktops mostly have a mere 16 or " @@ -667,25 +677,25 @@ msgid "" "which has its own firmware and corresponding storage. Designs around those " "constraints vary among OEMs." msgstr "" -"目前,許多系統仍基於 x86 處理器,主機板上配有 SPI 快閃記憶體。雖然筆記型電腦和桌上型電腦大多只有 16 或 32 MB " -"的儲存空間,但高階伺服器和工作站已經擁有 64 MB 的儲存空間,甚至還有第二個完整的系統,稱為主機板管理控制器 " -"(BMC),它有自己的韌體和相應的儲存空間。針對這些限制的設計因 OEM 而異。" +"目前許多系統仍以 x86 處理器為基礎,主機板上設有 SPI 快閃記憶體(SPI flash)。筆電和桌機通常" +"僅有 16 或 32 MB 的容量,高階伺服器與工作站則可達 64 MB,甚至還有一套稱為主機板管理控制器" +"(BMC, Board Management Controller)的完整系統,擁有獨立韌體和儲存空間。這些限制下的設" +"計會因 OEM 廠商而異。" #: src/use-cases.md:46 -#, fuzzy msgid "" "Note that it need not be that way. Arm based, RISC-V based and other systems " "already show that you can expect more, such as booting off eMMC. Laptops and " "desktop boards in that range are available as of now, even some servers and " "workstations." msgstr "" -"請注意,事實並非必須如此。基於 Arm、基於 RISC-V 和其他系統已經表明您可以期待更多,例如從 eMMC " -"啟動。目前,該範圍內的筆記型電腦和桌上型電腦主機板已經上市,甚至一些伺服器和工作站也已上市。" +"請注意,實際情況未必如此。以 Arm、RISC-V 為基礎的系統" +"(Arm-based, RISC-V based systems)已證明我們可以有更多選擇,像是從 eMMC 啟動。這類筆" +"記型電腦、桌上型主機板甚至部分伺服器與工作站,目前都已經有現成產品。" #: src/use-cases.md:51 -#, fuzzy msgid "Single Board Computers (SBCs)" -msgstr "單板計算機 (SBC)" +msgstr "單板電腦(Single Board Computers, SBCs)" #: src/use-cases.md:53 #, fuzzy @@ -697,341 +707,319 @@ msgid "" "the end user with a very rich environment already early on before the main " "operating system is loaded." msgstr "" -"SBC 市場已經發展到如此程度,以至於如今信用卡大小的主機板既配備了可以作為啟動來源的小型儲存零件,也配備了可以容納 GB 和 TB 級儲存的 NVMe " -"的 PCIe 連接器。這使我們有機會制定一個啟動流程,在主作業系統載入之前儘早為最終用戶提供非常豐富的環境。" +"SBC 市場發展迅速,現今的信用卡大小主機板(board)不僅配有可作為啟動來源的小型儲存零件,還有" +" PCIe 連接器,能支援容量達 GB 或 TB 的 NVMe 裝置。" +"這讓我們有機會設計一套啟動流程(boot flow),在主要作業系統載入前,就能為最終用戶提供相當豐富" +"的環境。" #: src/talks-news.md:1 -#, fuzzy msgid "Coverage" -msgstr "覆蓋範圍" +msgstr "涵蓋主題" #: src/talks-news.md:3 -#, fuzzy msgid "Talks" -msgstr "會談" +msgstr "演講" #: src/talks-news.md:5 src/talks-news.md:39 -#, fuzzy msgid "Date" msgstr "日期" #: src/talks-news.md:5 -#, fuzzy msgid "Presenter" -msgstr "主持人" +msgstr "講者" #: src/talks-news.md:5 src/talks-news.md:39 -#, fuzzy msgid "Title" msgstr "標題" #: src/talks-news.md:7 -#, fuzzy msgid "12/27/2016" msgstr "2016年12月27日" #: src/talks-news.md:7 src/talks-news.md:9 -#, fuzzy msgid "Trammell Hudson" -msgstr "特拉梅爾·哈德森" +msgstr "Trammell Hudson" #: src/talks-news.md:7 -#, fuzzy -msgid "[Bootstraping a slightly more secure laptop](https://trmm.net/Heads_33c3)" -msgstr "[引導一台更安全的筆記型電腦](https://trmm.net/Heads_33c3)" +msgid "" +"[Bootstraping a slightly more secure laptop](https://trmm.net/Heads_33c3)" +msgstr "[啟動一台更加安全的筆記型電腦](https://trmm.net/Heads_33c3)" #: src/talks-news.md:8 -#, fuzzy msgid "10/27/2017" msgstr "2017年10月27日" #: src/talks-news.md:8 -#, fuzzy msgid "Ron Minnich" -msgstr "羅恩·明尼奇" +msgstr "Ron Minnich" #: src/talks-news.md:8 -#, fuzzy msgid "" -"Replace your exploit-ridden firmware with a Linux kernel " -"([YouTube](https://www.youtube.com/watch?v=iffTJ1vPCSo), " -"[slides](https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20with%20Linux.pdf))" +"Replace your exploit-ridden firmware with a Linux kernel ([YouTube](https://" +"www.youtube.com/watch?v=iffTJ1vPCSo), [slides](https://schd.ws/hosted_files/" +"osseu17/84/Replace%20UEFI%20with%20Linux.pdf))" msgstr "" -"以 Linux 核心取代漏洞利用的韌體 " -"([YouTube](https://www.youtube.com/watch?v=iffTJ1vPCSo)、[投影片](https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20with%20Linux.pdf))" +"用 Linux 核心取代你漏洞百出的韌體 ([YouTube](https://www.youtube.com/watch?" +"v=iffTJ1vPCSo)、[投影片](https://schd.ws/hosted_files/osseu17/84/" +"Replace%20UEFI%20with%20Linux.pdf))" #: src/talks-news.md:9 -#, fuzzy msgid "12/29/2017" msgstr "2017年12月29日" #: src/talks-news.md:9 -#, fuzzy msgid "" -"[Bringing Linux back to the server BIOS with " -"LinuxBoot](https://trmm.net/LinuxBoot_34c3)" -msgstr "[使用 LinuxBoot 將 Linux 重新引入伺服器 BIOS](https://trmm.net/LinuxBoot_34c3)" +"[Bringing Linux back to the server BIOS with LinuxBoot](https://trmm.net/" +"LinuxBoot_34c3)" +msgstr "" +"[使用 LinuxBoot 將 Linux 重新引入伺服器 BIOS](https://trmm.net/" +"LinuxBoot_34c3)" #: src/talks-news.md:10 -#, fuzzy msgid "09/13/2018" msgstr "2018年9月13日" #: src/talks-news.md:10 src/talks-news.md:11 -#, fuzzy msgid "Andrea Barberio, David Hendricks" -msgstr "安德里亞·巴貝裡奧,大衛·亨德里克斯" +msgstr "Andrea Barberio, David Hendricks" #: src/talks-news.md:10 -#, fuzzy msgid "" -"[Open Source Firmware @ " -"Facebook](https://www.osfc.io/2018/talks/open-source-firmware-facebook/)" +"[Open Source Firmware @ Facebook](https://www.osfc.io/2018/talks/open-source-" +"firmware-facebook/)" msgstr "" -"[開源韌體@Facebook](https://www.osfc.io/2018/talks/open-source-firmware-facebook/)" +"[開源韌體@Facebook](https://www.osfc.io/2018/talks/open-source-firmware-" +"facebook/)" #: src/talks-news.md:11 -#, fuzzy msgid "10/02/2018" msgstr "2018年10月2日" #: src/talks-news.md:11 -#, fuzzy msgid "" -"[Turning Linux Engineers into Firmware " -"Engineers](https://2018ocpregionalsummit.sched.com/event/F8ax/turning-linux-engineers-into-firmware-engineers) " -"([slides](https://insomniac.slackware.it/static/2018_ocp_regional_summit_linuxboot_at_facebook.pdf), " -"[YouTube](https://www.youtube.com/watch?v=i84df1z6mdI))" +"[Turning Linux Engineers into Firmware Engineers](https://" +"2018ocpregionalsummit.sched.com/event/F8ax/turning-linux-engineers-into-" +"firmware-engineers) ([slides](https://insomniac.slackware.it/static/" +"2018_ocp_regional_summit_linuxboot_at_facebook.pdf), [YouTube](https://" +"www.youtube.com/watch?v=i84df1z6mdI))" msgstr "將 Linux 工程師轉變為韌體工程師" #: src/talks-news.md:12 -#, fuzzy msgid "06/15/2024" msgstr "2024年6月15日" #: src/talks-news.md:12 -#, fuzzy msgid "Marta Lewandowska" -msgstr "瑪塔·萊萬多夫斯卡" +msgstr "Marta Lewandowska" #: src/talks-news.md:12 -#, fuzzy msgid "" -"[No more boot loader: Please use the kernel " -"instead](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/)" -msgstr "[不再使用引導程式:請使用內核取代](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/)" +"[No more boot loader: Please use the kernel instead](https://pretalx.com/" +"devconf-cz-2024/talk/W3AVCT/)" +msgstr "" +"[不再使用引導程式:請使用內核取代(No more boot loader: Please use the kernel " +"instead)](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/)" #: src/talks-news.md:14 -#, fuzzy msgid "" -"[Make Your System Firmware Faster, More Flexible and Reliable with " -"LinuxBoot](https://www.usenix.org/conference/lisa18/presentation/barberio) " -"by [David Hendricks](https://github.com/dhendrix) and [Andrea " -"Barberio](https://github.com/insomniacslk) at [LISA " -"2018](https://www.usenix.org/conference/lisa18) " -"([slides](https://insomniac.slackware.it/static/2018_lisa_linuxboot_at_facebook.pdf)) " -"(2018-10-31)" -msgstr "" -"[使用 LinuxBoot " -"讓您的系統韌體更快、更靈活、更可靠](https://www.usenix.org/conference/lisa18/presentation/barberio),作者:[David " -"Hendricks](https://github.com/dhendrix) 和 [Andrea " -"Barberio](https://github.com/insniaub.com " -"2018](https://www.usenix.org/conference/lisa18) " -"([投影片](https://insomniac.slackware.it/static/2018_lisa_linuxboot_at_facebook.pdf)) " +"[Make Your System Firmware Faster, More Flexible and Reliable with LinuxBoot]" +"(https://www.usenix.org/conference/lisa18/presentation/barberio) by [David " +"Hendricks](https://github.com/dhendrix) and [Andrea Barberio](https://" +"github.com/insomniacslk) at [LISA 2018](https://www.usenix.org/conference/" +"lisa18) ([slides](https://insomniac.slackware.it/static/" +"2018_lisa_linuxboot_at_facebook.pdf)) (2018-10-31)" +msgstr "" +"[使用 LinuxBoot 讓您的系統韌體更快、更靈活、更可靠(Make Your System Firmware Faster, " +"More Flexible and Reliable with LinuxBoot)](https://www.usenix.org/" +"conference/lisa18/presentation/barberio),講者:[David Hendricks](https://" +"github.com/dhendrix) 和 [Andrea Barberio](https://github.com/insniaub.com " +"2018](https://www.usenix.org/conference/lisa18) ([投影片](https://" +"insomniac.slackware.it/static/2018_lisa_linuxboot_at_facebook.pdf)) " "(2018-10-31)" #: src/talks-news.md:20 -#, fuzzy msgid "" -"[Open Source Firmware - A love " -"story](https://www.youtube.com/watch?v=xfqKm190dbU) by [Philipp " -"Deppenwiese](https://cybersecurity.9elements.com) at " -"[35c3](https://events.ccc.de/congress/2018) " -"([slides](https://cdn.media.ccc.de/congress/2018/slides-h264-hd/35c3-9778-deu-eng-Open_Source_Firmware_hd-slides.mp4)) " -"(2018-12-27)" +"[Open Source Firmware - A love story](https://www.youtube.com/watch?" +"v=xfqKm190dbU) by [Philipp Deppenwiese](https://cybersecurity.9elements.com) " +"at [35c3](https://events.ccc.de/congress/2018) ([slides](https://" +"cdn.media.ccc.de/congress/2018/slides-h264-hd/35c3-9778-deu-eng-" +"Open_Source_Firmware_hd-slides.mp4)) (2018-12-27)" msgstr "" -"[開源韌體 - 一個愛情故事](https://www.youtube.com/watch?v=xfqKm190dbU),作者:[Philipp " -"Deppenwiese](https://cybersecurity.9elements.com),發佈於 " -"[35c3](https://events.ccc.de/congress/2018) " -"([幻燈片](https://cdn.media.ccc.de/congress/2018/slides-h264-hd/35c3-9778-deu-eng-Open_Source_Firmware_hd-slides.mp4)) " -"(2018-12-27)" +"[開源韌體 - 一個愛情故事(Open Source Firmware - A love story)]" +"(https://www.youtube.com/watch?v=xfqKm190dbU),講者:[Philipp Deppenwiese]" +"(https://cybersecurity.9elements.com),於 [35c3]" +"(https://events.ccc.de/congress/2018) ([投影片](https://cdn.media.ccc.de/" +"congress/2018/slides-h264-hd/35c3-9778-deu-eng-Open_Source_Firmware_hd-" +"slides.mp4)) 發表 (2018-12-27)" #: src/talks-news.md:25 -#, fuzzy msgid "" -"[Open Source Firmware at " -"Facebook](https://fosdem.org/2019/schedule/event/open_source_firmware_at_facebook/) " -"by [David Hendricks](https://github.com/dhendrix) and [Andrea " -"Barberio](https://github.com/insomniacslk) at [FOSDEM " -"2019](https://fosdem.org/2019/) " -"([video](https://video.fosdem.org/2019/K.4.401/open_source_firmware_at_facebook.mp4)) " -"([slides](https://insomniac.slackware.it/static/2019_fosdem_linuxboot_at_facebook.pdf)) " +"[Open Source Firmware at Facebook](https://fosdem.org/2019/schedule/event/" +"open_source_firmware_at_facebook/) by [David Hendricks](https://github.com/" +"dhendrix) and [Andrea Barberio](https://github.com/insomniacslk) at [FOSDEM " +"2019](https://fosdem.org/2019/) ([video](https://video.fosdem.org/2019/" +"K.4.401/open_source_firmware_at_facebook.mp4)) ([slides](https://" +"insomniac.slackware.it/static/2019_fosdem_linuxboot_at_facebook.pdf)) " "(2019-02-03)" msgstr "" -"[Facebook " -"上的開源韌體](https://fosdem.org/2019/schedule/event/open_source_firmware_at_facebook/),作者:[David " -"Hendricks](https://github.com/dhendrix) 和 [Andrea " -"Barberio](https://github.com/insomniacslk),發佈於 " -"[FFOm2020202020202020202020202020202020)(FF45535959003(F)/30599003())/3059003())/3059590)(FF)555959559595959)話]。 " -"([影片](https://video.fosdem.org/2019/K.4.401/open_source_firmware_at_facebook.mp4)) " -"([投影片](https://insomniac.slackware.it/static/2019_fosdem_linuxboot_at__L.pdf)) " -"(2019-facebook.pdf" +"[Facebook 上的開源韌體(Open Source Firmware at Facebook)](https://fosdem.org/" +"2019/schedule/event/open_source_firmware_at_facebook/),主講人:" +"[David Hendricks](https://github.com/dhendrix) 與 [Andrea Barberio]" +"(https://github.com/insomniacslk),於 [FOSDEM 2019](https://fosdem.org/2019/)" +" 發表([影片](https://video.fosdem.org/2019/K.4.401/" +"open_source_firmware_at_facebook.mp4),[投影片](https://insomniac.slackware.it/" +"static/2019_fosdem_linuxboot_at_facebook.pdf))(2019-02-03)" #: src/talks-news.md:32 -#, fuzzy msgid "" -"[Kexec Evolutions for " -"LinuxBoot](https://www.osfc.io/2022/talks/kexec-evolutions-for-linuxboot/) " -"by David Hu at OSFC 2021" -msgstr "David Hu 在 OSFC 2021 上發表的 Kexec 在 LinuxBoot 上的演進" +"[Kexec Evolutions for LinuxBoot](https://www.osfc.io/2022/talks/kexec-" +"evolutions-for-linuxboot/) by David Hu at OSFC 2021" +msgstr "" +"[Kexec 在 LinuxBoot 上的演進(Kexec Evolutions for LinuxBoot)]" +"(https://www.osfc.io/2022/talks/kexec-evolutions-for-linuxboot/),由 David Hu " +"於 OSFC 2021 主講" #: src/talks-news.md:34 -#, fuzzy msgid "" -"[No more boot loader: Please use the kernel " -"instead](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/) at 2024 DevConf" +"[No more boot loader: Please use the kernel instead](https://pretalx.com/" +"devconf-cz-2024/talk/W3AVCT/) at 2024 DevConf" msgstr "" -"[不再使用開機載入程式:請使用核心](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/) at 2024 " -"DevConf" +"[不再使用開機載入程式:請直接使用核心(No more boot loader: Please use the kernel " +"instead)](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/),於 2024 DevConf 發表" + #: src/talks-news.md:37 -#, fuzzy msgid "News" -msgstr "訊息" +msgstr "新聞" #: src/talks-news.md:39 -#, fuzzy msgid "Website" msgstr "網站" #: src/talks-news.md:41 -#, fuzzy msgid "01/25/2018" msgstr "2018年1月25日" #: src/talks-news.md:41 -#, fuzzy msgid "Linux Foundation" -msgstr "Linux基金會" +msgstr "Linux 基金會(Linux Foundation)" #: src/talks-news.md:41 -#, fuzzy msgid "" -"[System Statup gets a Boost with new LinuxBoot " -"project](https://www.linuxfoundation.org/blog/system-startup-gets-a-boost-with-new-linuxboot-project/)" +"[System Statup gets a Boost with new LinuxBoot project](https://" +"www.linuxfoundation.org/blog/system-startup-gets-a-boost-with-new-linuxboot-" +"project/)" msgstr "" -"[新的 LinuxBoot " -"專案輔助系統啟動](https://www.linuxfoundation.org/blog/system-startup-gets-a-boost-with-new-linuxboot-project/)" +"[新的 LinuxBoot 專案讓系統啟動加速(System Startup gets a Boost with new LinuxBoot" +" project)](https://www.linuxfoundation.org/blog/system-startup-gets-a-boost-" +"with-new-linuxboot-project/)" + #: src/talks-news.md:42 -#, fuzzy msgid "02/15/2018" msgstr "2018年2月15日" #: src/talks-news.md:42 -#, fuzzy msgid "Linux Journal" -msgstr "Linux 雜誌" +msgstr "Linux 雜誌(Linux Journal)" #: src/talks-news.md:42 -#, fuzzy msgid "" -"[Linux Journal: FOSS Project Spotlight: " -"LinuxBoot](https://www.linuxjournal.com/content/foss-project-spotlight-linuxboot/)" +"[Linux Journal: FOSS Project Spotlight: LinuxBoot](https://" +"www.linuxjournal.com/content/foss-project-spotlight-linuxboot/)" msgstr "" -"[Linux 期刊:FOSS " -"專案聚焦:LinuxBoot](https://www.linuxjournal.com/content/foss-project-spotlight-linuxboot/)" +"[Linux 期刊:FOSS 專案聚焦:LinuxBoot(Linux Journal: FOSS Project Spotlight: " +"LinuxBoot)](https://www.linuxjournal.com/content/" +"foss-project-spotlight-linuxboot/)" #: src/talks-news.md:43 -#, fuzzy msgid "03/08/2018" msgstr "2018年3月8日" #: src/talks-news.md:43 src/talks-news.md:48 -#, fuzzy msgid "LWN" -msgstr "低週" +msgstr "LWN" #: src/talks-news.md:43 -#, fuzzy -msgid "[LWN.net: LinuxBoot: Linux as firmware](https://lwn.net/Articles/748586/)" -msgstr "[LWN.net: LinuxBoot:Linux 作為韌體](https://lwn.net/Articles/748586/)" +msgid "" +"[LWN.net: LinuxBoot: Linux as firmware](https://lwn.net/Articles/748586/)" +msgstr "" +"[LWN.net: LinuxBoot:Linux 作為韌體(LWN.net: LinuxBoot: Linux as firmware)]" +"(https://lwn.net/Articles/748586/)" #: src/talks-news.md:44 -#, fuzzy msgid "06/21/2018" msgstr "2018年6月21日" #: src/talks-news.md:44 src/talks-news.md:45 src/talks-news.md:47 -#, fuzzy msgid "Phoronix" -msgstr "福羅尼克斯" +msgstr "Phoronix" #: src/talks-news.md:44 -#, fuzzy msgid "" "[Equus WHITEBOX OPEN: A Line Of Coreboot/LinuxBoot-Ready Xeon Scalable " "Servers](https://www.phoronix.com/news/Equus-WHITEBOX-OPEN)" msgstr "" -"[Equus WHITEBOX OPEN:一系列支援 Coreboot/LinuxBoot 的 Xeon " -"可擴充伺服器](https://www.phoronix.com/news/Equus-WHITEBOX-OPEN)" +"[Equus WHITEBOX OPEN:一系列支援 Coreboot/LinuxBoot 的 Xeon 可擴充伺服器(A Line Of" +" Coreboot/LinuxBoot-Ready Xeon Scalable Servers)]" +"(https://www.phoronix.com/news/Equus-WHITEBOX-OPEN)" #: src/talks-news.md:45 -#, fuzzy msgid "02/06/2019" msgstr "2019年2月6日" #: src/talks-news.md:45 -#, fuzzy msgid "" "[At Just Over One Year Old, LinuxBoot Continues Making Inroads At Facebook & " "Elsewhere](https://www.phoronix.com/news/LinuxBoot-2019)" -msgstr "LinuxBoot 推出僅一年多,持續在 Facebook 及其他領域取得進展" +msgstr "" +"[LinuxBoot 推出僅一年多,已持續在 Facebook 及其他領域取得進展(At Just Over One Year " +"Old, LinuxBoot Continues Making Inroads At Facebook & Elsewhere)]" +"(https://www.phoronix.com/news/LinuxBoot-2019)" #: src/talks-news.md:46 -#, fuzzy msgid "03/14/2019" msgstr "2019年3月14日" #: src/talks-news.md:46 -#, fuzzy msgid "Facebook" msgstr "Facebook" #: src/talks-news.md:46 -#, fuzzy msgid "" -"[Facebook's LinuxBoot-powered F-16 high-performance fabric " -"network](https://code.fb.com/data-center-engineering/f16-minipack/)" -msgstr "Facebook 基於 LinuxBoot 的 F-16 高效能結構網絡" +"[Facebook's LinuxBoot-powered F-16 high-performance fabric network](https://" +"code.fb.com/data-center-engineering/f16-minipack/)" +msgstr "" +"[Facebook 基於 LinuxBoot 的 F-16 高效能結構網路(LinuxBoot-powered F-16 high-" +"performance fabric network)]" +"(https://code.fb.com/data-center-engineering/f16-minipack/)" #: src/talks-news.md:47 -#, fuzzy msgid "03/10/2023" msgstr "2023年3月10日" #: src/talks-news.md:47 -#, fuzzy msgid "" -"[Lenovo Begins Supporting LinuxBoot Firmware With " -"ByteDance](https://www.phoronix.com/news/Lenovo-LinuxBoot-ByteDance)" +"[Lenovo Begins Supporting LinuxBoot Firmware With ByteDance](https://" +"www.phoronix.com/news/Lenovo-LinuxBoot-ByteDance)" msgstr "" -"[聯想開始與位元組跳動合作支援 LinuxBoot " -"韌體](https://www.phoronix.com/news/Lenovo-LinuxBoot-ByteDance)" +"[聯想攜手字節跳動支援 LinuxBoot 韌體(Lenovo Begins Supporting LinuxBoot Firmware " +"With ByteDance)](https://www.phoronix.com/news/Lenovo-LinuxBoot-ByteDance)" #: src/talks-news.md:48 -#, fuzzy msgid "07/08/2024" msgstr "2024年7月8日" #: src/talks-news.md:48 -#, fuzzy -msgid "[Giving bootloaders the boot with nmbl](https://lwn.net/Articles/979789)" -msgstr "使用 nmbl 啟動引導程式" +msgid "" +"[Giving bootloaders the boot with nmbl](https://lwn.net/Articles/979789)" +msgstr "" +"[用 nmbl 取代 bootloader(Giving bootloaders the boot with nmbl)]" +"(https://lwn.net/Articles/979789)" #: src/components.md:3 #, fuzzy -msgid "![image](../images/LinuxBoot-components.svg)" +msgid "![image](./images/LinuxBoot-components.svg)" msgstr "![圖](../images/LinuxBoot-components.svg)" #: src/components.md:5 @@ -1085,11 +1073,11 @@ msgstr "初始 RAM 檔案系統 (initramfs)" #, fuzzy msgid "" "When Linux boots it needs a root file system that provides boot and startup " -"utilities. LinuxBoot uses [u-root](../glossary) to create an initramfs for " +"utilities. LinuxBoot uses [u-root](./glossary.md) to create an initramfs for " "this purpose." msgstr "" -"當 Linux 啟動時,它需要一個提供引導和啟動實用程式的根檔案系統。 LinuxBoot 使用 [u-root](../glossary) " -"為此目的建立 initramfs。" +"當 Linux 啟動時,它需要一個提供引導和啟動實用程式的根檔案系統。 LinuxBoot 使" +"用 [u-root](../glossary) 為此目的建立 initramfs。" #: src/components.md:37 #, fuzzy @@ -1104,19 +1092,21 @@ msgid "" "Linux kernel as part of the firmware image for LinuxBoot. The initramfs is " "essentially a set of directories bundled into a single cpio archive." msgstr "" -"initramfs 是嵌入在韌體映像本身內的根檔案系統。它旨在與 Linux 核心一起放置在快閃裝置中,作為 LinuxBoot 韌體映像的一部分。 " -"initramfs 本質上是一組捆綁到單一 cpio 檔案中的目錄。" +"initramfs 是嵌入在韌體映像本身內的根檔案系統。它旨在與 Linux 核心一起放置在快" +"閃裝置中,作為 LinuxBoot 韌體映像的一部分。 initramfs 本質上是一組捆綁到單一 " +"cpio 檔案中的目錄。" #: src/components.md:44 #, fuzzy msgid "" "At boot time, the boot loader or firmware (for example, coreboot) loads the " "bzImage and initramfs into memory and starts the kernel. The kernel checks " -"for the presence of the initramfs and, if found, unpacks it, mounts it as " -"`/` and runs `/init`." +"for the presence of the initramfs and, if found, unpacks it, mounts it as `/" +"` and runs `/init`." msgstr "" -"在啟動時,引導程式或韌體(例如 coreboot)將 bzImage 和 initramfs 載入到記憶體中並啟動核心。核心檢查 initramfs " -"是否存在,如果找到,則將其解壓縮,將其掛載為“/”並執行“/init”。" +"在啟動時,引導程式或韌體(例如 coreboot)將 bzImage 和 initramfs 載入到記憶體" +"中並啟動核心。核心檢查 initramfs 是否存在,如果找到,則將其解壓縮,將其掛載" +"為“/”並執行“/init”。" #: src/components.md:50 #, fuzzy @@ -1126,8 +1116,9 @@ msgid "" "used to interact with the kernel). It contains a toolset of standard Linux " "applications and commands." msgstr "" -"initramfs 有很多種類型,在本主題中我們重點介紹 u-root。 u-root 是一個 Go 使用者空間(一組用 Go " -"編寫的用於與核心互動的程式和函式庫)。它包含一套標準 Linux 應用程式和命令的工具集。" +"initramfs 有很多種類型,在本主題中我們重點介紹 u-root。 u-root 是一個 Go 使用" +"者空間(一組用 Go 編寫的用於與核心互動的程式和函式庫)。它包含一套標準 Linux " +"應用程式和命令的工具集。" #: src/components.md:55 #, fuzzy @@ -1159,7 +1150,9 @@ msgstr "尋找由 shell 動態編譯的工具原始碼" msgid "" "Busybox (bb) mode: This is one busybox-like binary comprising all the " "requested utilities." -msgstr "Busybox(bb)模式:這是一個類似 busybox 的二進位文件,包含所有請求的實用程式。" +msgstr "" +"Busybox(bb)模式:這是一個類似 busybox 的二進位文件,包含所有請求的實用程" +"式。" #: src/components.md:64 #, fuzzy @@ -1169,7 +1162,8 @@ msgid "" "communicate with different internal boot-related components, and kexec the " "next kernel." msgstr "" -"u-root 提供的 initramfs 實作了從網路安全啟動機器、執行身份驗證、與不同的內部啟動相關元件通訊以及 kexec 下一個核心所需的工具鏈。" +"u-root 提供的 initramfs 實作了從網路安全啟動機器、執行身份驗證、與不同的內部" +"啟動相關元件通訊以及 kexec 下一個核心所需的工具鏈。" #: src/components.md:68 #, fuzzy @@ -1178,7 +1172,8 @@ msgid "" "repository, we have executable commands in `cmds` and the packages " "containing libraries and implementations in `pkg`." msgstr "" -"u-root 是託管在 GitHub 上的開源專案。在 u-root 儲存庫中,我們在「cmds」中擁有可執行命令,在「pkg」中擁有包含庫和實作的套件。" +"u-root 是託管在 GitHub 上的開源專案。在 u-root 儲存庫中,我們在「cmds」中擁有" +"可執行命令,在「pkg」中擁有包含庫和實作的套件。" #: src/tools-evaluation.md:3 #, fuzzy @@ -1205,7 +1200,8 @@ msgstr "什麼是好的環境? (建置 + 運行時)" msgid "" "Not only do we want to answer those questions. We also keep track of the " "options and decision process in this book in order for readers to make sense." -msgstr "我們不僅想回答這些問題。我們也在本書中追蹤選項和決策過程,以便讀者理解。" +msgstr "" +"我們不僅想回答這些問題。我們也在本書中追蹤選項和決策過程,以便讀者理解。" #: src/tools-evaluation.md:12 #, fuzzy @@ -1219,178 +1215,344 @@ msgstr "我們可以利用許多現有的工具來實現使用 Linux 啟動作 msgid "Root filesystem" msgstr "根檔案系統" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:17 +msgid "" +"Linux needs a root filesystem with at least one binary that is called " +"[`init`](https://docs.kernel.org/admin-guide/init.html). Since booting a " +"system is a cumbersome task, additional tools aid in both development and " +"investigating possible issues." +msgstr "" + +#: src/tools-evaluation.md:22 +#, fuzzy +msgid "Core utilities" +msgstr "Linux 啟動實用程式" + +#: src/tools-evaluation.md:24 +msgid "" +"Unix already came with lots of little utilities for the user of the system, " +"which may be anyone from a system developer to an administrator of a shared " +"or provided system, or an end user. Further tools have been created over the " +"years, and the [GNU core utilities](https://en.wikipedia.org/wiki/" +"GNU_Core_Utilities) are essentially a collection of tools resulting from " +"merging other collections. Note that there are still many other utilities " +"that are not part of coreutils. At the same time, there are multiple other " +"implementations now, which differ in terms of arguments and flags and " +"possibly additional utilities they include." +msgstr "" + +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 #, fuzzy msgid "tool" msgstr "工具" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 #, fuzzy msgid "language" msgstr "語言" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 #, fuzzy msgid "license" msgstr "執照" -#: src/tools-evaluation.md:17 src/tools-evaluation.md:27 +#: src/tools-evaluation.md:33 src/tools-evaluation.md:53 #, fuzzy msgid "usage" msgstr "用法" -#: src/tools-evaluation.md:19 +#: src/tools-evaluation.md:35 #, fuzzy msgid "[BusyBox](https://busybox.net/)" msgstr "[BusyBox](https://busybox.net/)" -#: src/tools-evaluation.md:19 src/tools-evaluation.md:20 -#: src/tools-evaluation.md:21 src/tools-evaluation.md:29 -#: src/tools-evaluation.md:30 src/tools-evaluation.md:31 +#: src/tools-evaluation.md:35 src/tools-evaluation.md:36 +#: src/tools-evaluation.md:37 src/tools-evaluation.md:55 +#: src/tools-evaluation.md:56 src/tools-evaluation.md:57 #, fuzzy msgid "C" msgstr "碳" -#: src/tools-evaluation.md:19 src/tools-evaluation.md:29 -#: src/tools-evaluation.md:31 +#: src/tools-evaluation.md:35 src/tools-evaluation.md:55 +#: src/tools-evaluation.md:57 #, fuzzy msgid "GPLv2" msgstr "GPLv2" -#: src/tools-evaluation.md:19 src/history.md:51 +#: src/tools-evaluation.md:35 src/history.md:51 #, fuzzy msgid "Heads" msgstr "頭部" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 #, fuzzy msgid "[toybox](http://landley.net/toybox)" msgstr "[玩具箱](http://landley.net/toybox)" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 #, fuzzy msgid "0BSD" msgstr "0BSD" -#: src/tools-evaluation.md:20 +#: src/tools-evaluation.md:36 #, fuzzy msgid "Android" msgstr "安卓" -#: src/tools-evaluation.md:21 +#: src/tools-evaluation.md:37 #, fuzzy msgid "[GNU coreutils](https://www.gnu.org/software/coreutils/)" msgstr "[GNU coreutils](https://www.gnu.org/software/coreutils/)" -#: src/tools-evaluation.md:21 +#: src/tools-evaluation.md:37 #, fuzzy msgid "GPLv3" msgstr "GPLv3" -#: src/tools-evaluation.md:21 src/tools-evaluation.md:23 +#: src/tools-evaluation.md:37 src/tools-evaluation.md:39 #, fuzzy msgid "not for LinuxBoot" msgstr "不適用於 LinuxBoot" -#: src/tools-evaluation.md:22 +#: src/tools-evaluation.md:38 #, fuzzy msgid "[u-root](https://u-root.org)" msgstr "[u-root](https://u-root.org)" -#: src/tools-evaluation.md:22 src/tools-evaluation.md:32 +#: src/tools-evaluation.md:38 src/tools-evaluation.md:58 #, fuzzy msgid "Go" msgstr "去" -#: src/tools-evaluation.md:22 src/tools-evaluation.md:32 +#: src/tools-evaluation.md:38 src/tools-evaluation.md:58 #, fuzzy msgid "BSD 3-Clause" msgstr "BSD 3 條款" -#: src/tools-evaluation.md:22 +#: src/tools-evaluation.md:38 #, fuzzy msgid "ByteDance, Google et al" msgstr "位元組跳動、谷歌等" -#: src/tools-evaluation.md:23 +#: src/tools-evaluation.md:39 #, fuzzy msgid "[uutils/coreutils](http://uutils.github.io/)" msgstr "[uutils/coreutils](http://uutils.github.io/)" -#: src/tools-evaluation.md:23 src/tools-evaluation.md:33 +#: src/tools-evaluation.md:39 src/tools-evaluation.md:59 #, fuzzy msgid "Rust" msgstr "鏽" -#: src/tools-evaluation.md:23 +#: src/tools-evaluation.md:39 #, fuzzy msgid "MIT" msgstr "麻省理工學院" -#: src/tools-evaluation.md:25 +#: src/tools-evaluation.md:41 #, fuzzy msgid "kexec implementations" msgstr "kexec 實作" -#: src/tools-evaluation.md:29 +#: src/tools-evaluation.md:43 +msgid "" +"While [kexec itself is a Linux syscall](https://git.kernel.org/pub/scm/linux/" +"kernel/git/torvalds/linux.git/tree/include/uapi/linux/kexec.h), it is not a " +"one-shot operation. Loading multiple segments into memory, synchronizing and " +"unmounting file systems, and the eventual syscall to [reboot](https://" +"git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/" +"linux/reboot.h) belong to the procedure. In addition, there are architecture " +"specifics to take into account. Thus, there are multiple implementations of " +"kexec, which are Linux programs that offer their own interfaces again to " +"pass extra arguments. Besides those standalone implementations, there are " +"also specialized boot loaders based on kexec that have their own extra " +"logic, such as FreeBSD's kload or petitboot." +msgstr "" + +#: src/tools-evaluation.md:55 #, fuzzy msgid "" -"[kexec-tools](https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git) " -"([GitHub mirror](https://github.com/horms/kexec-tools))" +"[kexec-tools](https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-" +"tools.git) ([GitHub mirror](https://github.com/horms/kexec-tools))" msgstr "" -"kexec-tools(https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git)(GitHub " -"鏡像(https://github.com/horms/kexec-tools))" +"kexec-tools(https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-" +"tools.git)(GitHub 鏡像(https://github.com/horms/kexec-tools))" -#: src/tools-evaluation.md:29 +#: src/tools-evaluation.md:55 #, fuzzy msgid "Heads, Petitboot" msgstr "頭,小靴子" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 #, fuzzy msgid "[systemd](https://systemd.io/) (wrapper)" msgstr "[systemd](https://systemd.io/) (包裝器)" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 #, fuzzy msgid "LGPL-2.1+" msgstr "LGPL-2.1+" -#: src/tools-evaluation.md:30 +#: src/tools-evaluation.md:56 #, fuzzy msgid "systemd on UEFI" msgstr "UEFI 上的 systemd" -#: src/tools-evaluation.md:31 +#: src/tools-evaluation.md:57 #, fuzzy msgid "[kexecboot](https://github.com/kexecboot/kexecboot)" msgstr "[kexecboot](https://github.com/kexecboot/kexecboot)" -#: src/tools-evaluation.md:31 src/tools-evaluation.md:33 +#: src/tools-evaluation.md:57 src/tools-evaluation.md:59 #, fuzzy msgid "?" msgstr "?" -#: src/tools-evaluation.md:32 +#: src/tools-evaluation.md:58 #, fuzzy msgid "u-root (CLI+mod)" msgstr "u-root(CLI+mod)" -#: src/tools-evaluation.md:32 +#: src/tools-evaluation.md:58 #, fuzzy msgid "Google et al" msgstr "谷歌等" -#: src/tools-evaluation.md:33 +#: src/tools-evaluation.md:59 #, fuzzy msgid "[kexlinux](https://github.com/im-0/kexlinux)" msgstr "[kexlinux](https://github.com/im-0/kexlinux)" -#: src/tools-evaluation.md:33 +#: src/tools-evaluation.md:59 #, fuzzy msgid "LGPL-3.0+" msgstr "LGPL-3.0+" +#: src/petitboot.md:3 +msgid "" +"petitboot is a Linux user-space application written in C that calls `kexec`. " +"The `kexec` installed in the initramfs is not the mainline kexec-tools " +"implementation, but a smaller implementation named [kexec-lite](https://" +"github.com/antonblanchard/kexec-lite). It is claimed to be roughly 32 KB " +"compared to kexec-tools, which is roughly 200 KB.[^1]" +msgstr "" + +#: src/petitboot.md:9 +msgid "" +"" +msgstr "" + +#: src/openpower.md:1 +msgid "OpenPOWER boot chain" +msgstr "" + +#: src/openpower.md:3 +msgid "" +"```mermaid\n" +"flowchart LR\n" +" skiroot([\"skiroot (petitboot)\"])\n" +" SBEs-->hostboot-->skiboot-->skiroot-->OS\n" +"```" +msgstr "" + +#: src/openpower.md:9 +msgid "" +"[Self-boot engines](https://github.com/open-power/sbe) (SBE) are split " +"between an on-chip ROM and an external EEPROM" +msgstr "" + +#: src/openpower.md:11 +msgid "" +"[hostboot](https://github.com/open-power/hostboot) is a C++ boot loader that " +"does DRAM initialization provides runtime services to skiboot or a hypervisor" +msgstr "" + +#: src/openpower.md:13 +msgid "" +"[skiboot](https://github.com/open-power/skiboot) is a C boot loader and " +"runtime firmware for OpenPOWER that loads skiroot." +msgstr "" + +#: src/openpower.md:16 +msgid "" +"skiroot is a term used to describe the LinuxBoot implementation for " +"OpenPOWER. A skiroot repository or package does not exist. The term is only " +"used in the kernel configuration, `skiroot_defconfig`.[^1]" +msgstr "" + +#: src/openpower.md:20 src/odroid.md:26 src/history.md:57 +#, fuzzy +msgid "See also" +msgstr "參見" + +#: src/openpower.md:22 +msgid "" +"[coreboot and Heads as an alternative firmware for OpenPOWER Talos II]" +"(https://openpower.foundation/blog/coreboot-on-talos2/)" +msgstr "" + +#: src/openpower.md:25 +msgid "" +"" +msgstr "" + +#: src/odroid.md:1 +msgid "ODROID boot chain" +msgstr "" + +#: src/odroid.md:3 +msgid "" +"The [ODROID-N2](https://wiki.odroid.com/odroid-n2/hardware) comes with a SPI " +"flash as well as a connector for an eMMC flash and an SD card slot. The SoC " +"is an [Amlogic S922X which can boot from all those storages](https://" +"wiki.odroid.com/odroid-n2/software/boot_sequence), depending on GPIO " +"configuration and a fallback flow in the mask ROM. For booting from SPI " +"flash, the ODROID-N2 board has a switch, and comes with [Petitboot](./" +"petitboot.md) preinstalled[^1]." +msgstr "" + +#: src/odroid.md:10 +#, fuzzy +msgid "The SPI flash boot flow is as follows:" +msgstr "LinuxBoot flash 核心建構如下:" + +#: src/odroid.md:12 +msgid "" +"```mermaid\n" +"flowchart LR\n" +" maskrom[\"mask ROM\"]\n" +" spl[\"U-Boot SPL\"]\n" +" uboot[\"U-Boot main\"]\n" +" petitboot([\"petitboot\"])\n" +" maskrom-->spl-->uboot-->petitboot-->OS\n" +"```" +msgstr "" + +#: src/odroid.md:21 +msgid "" +"[U-Boot SPL](https://docs.u-boot.org/en/latest/usage/spl_boot.html) " +"initializes DRAM and loads U-Boot main (\"proper\")" +msgstr "" + +#: src/odroid.md:23 +msgid "" +"U-Boot main is set up to directly load Linux with Petitboot, which " +"implements LinuxBoot" +msgstr "" + +#: src/odroid.md:28 +msgid "" +"[ODROID forum discussion on porting Petitboot to ODROID-N2](https://" +"forum.odroid.com/viewtopic.php?f=182&t=33873)" +msgstr "" + +#: src/odroid.md:31 +msgid "" +"" +msgstr "" + #: src/u-root.md:3 #, fuzzy msgid "" @@ -1398,29 +1560,32 @@ msgid "" "device as part of the firmware image, along with a Linux kernel. The program " "source code is installed in the root file system contained in the firmware " "flash part and compiled on demand. All the u-root utilities, roughly " -"corresponding to standard Unix utilities, are written in Go, a modern, " -"type-safe language with garbage collection and language-level support for " +"corresponding to standard Unix utilities, are written in Go, a modern, type-" +"safe language with garbage collection and language-level support for " "concurrency and inter-process communication." msgstr "" -"U-root 是一個可嵌入的根檔案系統,旨在作為韌體映像的一部分與 Linux " -"核心一起放置在快閃裝置中。程式原始碼安裝在韌體flash部分包含的根檔案系統中,並按需編譯。所有 u-root 實用程式(大致對應於標準 Unix " -"實用程式)都是用 Go 編寫的,Go 是一種現代的、類型安全的語言,具有垃圾收集功能以及對並發和進程間通訊的語言級支援。" +"U-root 是一個可嵌入的根檔案系統,旨在作為韌體映像的一部分與 Linux 核心一起放" +"置在快閃裝置中。程式原始碼安裝在韌體flash部分包含的根檔案系統中,並按需編譯。" +"所有 u-root 實用程式(大致對應於標準 Unix 實用程式)都是用 Go 編寫的,Go 是一" +"種現代的、類型安全的語言,具有垃圾收集功能以及對並發和進程間通訊的語言級支" +"援。" #: src/u-root.md:11 #, fuzzy msgid "" -"Unlike most embedded root file systems, which consist largely of binaries, " -"u-root has only 5: an init program and 4 Go compiler binaries. When a " -"program is first run, it, and any not-yet-built packages it uses are " -"compiled to a RAM-based file system. The first invocation of a program takes " -"a fraction of a second, as it is compiled. Packages are only compiled once, " -"so the slowest build is always the first one, on boot, which takes about 3 " -"seconds. Subsequent invocations are very fast, usually a millisecond or so." +"Unlike most embedded root file systems, which consist largely of binaries, u-" +"root has only 5: an init program and 4 Go compiler binaries. When a program " +"is first run, it, and any not-yet-built packages it uses are compiled to a " +"RAM-based file system. The first invocation of a program takes a fraction of " +"a second, as it is compiled. Packages are only compiled once, so the slowest " +"build is always the first one, on boot, which takes about 3 seconds. " +"Subsequent invocations are very fast, usually a millisecond or so." msgstr "" -"與大多數主要由二進位檔案組成的嵌入式根檔案系統不同,u-root 只有 5 個:一個 init 程式和 4 個 Go " -"編譯器二進位檔案。當程式首次運行時,它和它使用的任何尚未建置的套件都會被編譯到基於 RAM " -"的檔案系統中。程式的第一次呼叫只需要幾分之一秒的時間,因為它是編譯的。軟體包僅編譯一次,因此最慢的構建始終是在啟動時進行的第一次構建,大約需要 3 " -"秒。後續呼叫非常快,通常只需一毫秒左右。" +"與大多數主要由二進位檔案組成的嵌入式根檔案系統不同,u-root 只有 5 個:一個 " +"init 程式和 4 個 Go 編譯器二進位檔案。當程式首次運行時,它和它使用的任何尚未" +"建置的套件都會被編譯到基於 RAM 的檔案系統中。程式的第一次呼叫只需要幾分之一秒" +"的時間,因為它是編譯的。軟體包僅編譯一次,因此最慢的構建始終是在啟動時進行的" +"第一次構建,大約需要 3 秒。後續呼叫非常快,通常只需一毫秒左右。" #: src/u-root.md:19 #, fuzzy @@ -1432,9 +1597,10 @@ msgid "" "distribute file systems for embedded systems, and the use of Go promises a " "dramatic improvement in their security." msgstr "" -"U-root 模糊了基於腳本的發行版(如 Perl Linux[^24])和基於二進位的發行版(如 BusyBox[^26])之間的界限。它具有 " -"Perl Linux 的靈活性和 BusyBox 的性能。腳本和內建指令是用 Go 寫的,而不是 shell 腳本語言。 U-root " -"是一種為嵌入式系統打包和分發檔案系統的新方法,使用 Go 有望顯著提高其安全性。" +"U-root 模糊了基於腳本的發行版(如 Perl Linux[^24])和基於二進位的發行版(如 " +"BusyBox[^26])之間的界限。它具有 Perl Linux 的靈活性和 BusyBox 的性能。腳本和" +"內建指令是用 Go 寫的,而不是 shell 腳本語言。 U-root 是一種為嵌入式系統打包和" +"分發檔案系統的新方法,使用 Go 有望顯著提高其安全性。" #: src/u-root.md:26 #, fuzzy @@ -1445,9 +1611,9 @@ msgstr "U-root 和嵌入式系統" #, fuzzy msgid "" "Embedding kernels and root file systems in BIOS flash is a common technique " -"for gaining boot time performance and platform customization[^25][^14][^23]. " -"Almost all new firmware includes a multiprocess operating system with a full " -"complement of file systems, network drivers, and protocol stacks, all " +"for gaining boot time performance and platform customization[^25] [^14] " +"[^23]. Almost all new firmware includes a multiprocess operating system with " +"a full complement of file systems, network drivers, and protocol stacks, all " "contained in an embedded file system. In some cases, the kernel is only " "booted long enough to boot another kernel. In others, the kernel that is " "booted and the file system it contains constitute the operational " @@ -1459,10 +1625,15 @@ msgid "" "found wide usage in embedded appliance environments, as the entire root file " "system can be contained in under one MiB." msgstr "" -"在 BIOS " -"快閃記憶體中嵌入核心和根檔案系統是提高啟動時間效能和平台客製化的常用技術[^25][^14][^23]。幾乎所有新韌體都包含一個多進程作業系統,該作業系統具有完整的檔案系統、網路驅動程式和協定棧,所有這些都包含在嵌入式檔案系統中。在某些情況下,核心的啟動時間僅夠啟動另一個核心。在其他情況下,啟動的核心及其所包含的檔案系統構成了設備的運作環境[^15]。這些所謂的「嵌入式根檔案系統」還包含一組用於正常操作和維護的標準 " -"Unix 風格程式。設備上的空間非常寶貴,因此這些程式通常使用 BusyBox 工具包[^26] 以 C 語言編寫,或使用 Perl[^24] 或 " -"Forth 等解釋性語言編寫。 BusyBox 在嵌入式設備環境中得到了廣泛的應用,因為整個根檔案系統可以包含在一個 MiB 中。" +"在 BIOS 快閃記憶體中嵌入核心和根檔案系統是提高啟動時間效能和平台客製化的常用" +"技術[^25][^14][^23]。幾乎所有新韌體都包含一個多進程作業系統,該作業系統具有完" +"整的檔案系統、網路驅動程式和協定棧,所有這些都包含在嵌入式檔案系統中。在某些" +"情況下,核心的啟動時間僅夠啟動另一個核心。在其他情況下,啟動的核心及其所包含" +"的檔案系統構成了設備的運作環境[^15]。這些所謂的「嵌入式根檔案系統」還包含一組" +"用於正常操作和維護的標準 Unix 風格程式。設備上的空間非常寶貴,因此這些程式通" +"常使用 BusyBox 工具包[^26] 以 C 語言編寫,或使用 Perl[^24] 或 Forth 等解釋性" +"語言編寫。 BusyBox 在嵌入式設備環境中得到了廣泛的應用,因為整個根檔案系統可以" +"包含在一個 MiB 中。" #: src/u-root.md:42 #, fuzzy @@ -1472,10 +1643,12 @@ msgid "" "environment than even a few years ago. In response to the many successful " "attacks against shell interpreters[^11] and C programs[^8], we have started " "to look at using a more secure, modern language in embedded root file " -"systems, namely, Go[^21][^16]." +"systems, namely, Go[^21] [^16]." msgstr "" -"嵌入式系統曾經是獨立的,但現在幾乎總是透過網路連接。網路連線系統面臨的安全環境比幾年前更加嚴峻。為了回應針對 shell 解釋器[^11] 和 C " -"程式[^8] 的多次成功攻擊,我們開始研究在嵌入式根檔案系統中使用更安全、更現代的語言,即 Go[^21][^16]。" +"嵌入式系統曾經是獨立的,但現在幾乎總是透過網路連接。網路連線系統面臨的安全環" +"境比幾年前更加嚴峻。為了回應針對 shell 解釋器[^11] 和 C 程式[^8] 的多次成功攻" +"擊,我們開始研究在嵌入式根檔案系統中使用更安全、更現代的語言,即 Go[^21]" +"[^16]。" #: src/u-root.md:49 msgid "" @@ -1509,11 +1682,11 @@ msgid "" "possible. Firmware is extremely complex; UEFI is roughly equivalent in size " "and capability to a Unix kernel. Firmware is usually closed and proprietary, " "with nowhere near the level of testing of kernels. These properties make " -"firmware an ideal place for so-called advanced persistent " -"threats[^10][^18][^5]. Once an exploit is installed, it is almost impossible " -"to remove, since the exploit can inhibit its removal by corrupting the " -"firmware update process. The only sure way to mitigate a firmware exploit is " -"to destroy the hardware." +"firmware an ideal place for so-called advanced persistent threats[^10] [^18] " +"[^5]. Once an exploit is installed, it is almost impossible to remove, since " +"the exploit can inhibit its removal by corrupting the firmware update " +"process. The only sure way to mitigate a firmware exploit is to destroy the " +"hardware." msgstr "" #: src/u-root.md:80 @@ -1533,11 +1706,14 @@ msgid "" "more powerful than most shell scripting languages, but also less fragile and " "less prone to parsing bugs." msgstr "" -"U-root 是嵌入式系統的絕佳選擇。 U-root 僅包含 5 個二進位文件,其中 4 個來自 Go 工具鏈,第 5 個是 init " -"二進位檔案。其餘程式(包括軟體包)以原始碼形式包含在 BIOS " -"快閃記憶體中。搜尋路徑的安排使得當呼叫命令時,如果它不在“/bin”中,則呼叫安裝程式將程式編譯到“/bin”中。如果建置成功,則執行該命令。第一次呼叫只需幾分之一秒,具體取決於程式的複雜性。此後,基於 " -"RAM 的靜態連結二進位檔案將在大約一毫秒內運行。腳本是用 Go 編寫的,而不是 shell 腳本語言,這有兩個好處:shell " -"可以很簡單,極端情況更少,並且由於 Go 比大多數 shell 腳本語言更強大,因此腳本環境得到了顯著改善,而且更不容易脆弱,也不容易出現解析錯誤。" +"U-root 是嵌入式系統的絕佳選擇。 U-root 僅包含 5 個二進位文件,其中 4 個來自 " +"Go 工具鏈,第 5 個是 init 二進位檔案。其餘程式(包括軟體包)以原始碼形式包含" +"在 BIOS 快閃記憶體中。搜尋路徑的安排使得當呼叫命令時,如果它不在“/bin”中,則" +"呼叫安裝程式將程式編譯到“/bin”中。如果建置成功,則執行該命令。第一次呼叫只需" +"幾分之一秒,具體取決於程式的複雜性。此後,基於 RAM 的靜態連結二進位檔案將在大" +"約一毫秒內運行。腳本是用 Go 編寫的,而不是 shell 腳本語言,這有兩個好處:" +"shell 可以很簡單,極端情況更少,並且由於 Go 比大多數 shell 腳本語言更強大,因" +"此腳本環境得到了顯著改善,而且更不容易脆弱,也不容易出現解析錯誤。" #: src/u-root.md:93 #, fuzzy @@ -1560,25 +1736,30 @@ msgid "" "Since the init program itself is only 132 lines of code and is easy to " "change, the structure is very flexible and allows for many use cases, for " "example:" -msgstr "由於 init 程式本身只有 132 行程式碼且易於更改,因此結構非常靈活,可用於多種用例,例如:" +msgstr "" +"由於 init 程式本身只有 132 行程式碼且易於更改,因此結構非常靈活,可用於多種用" +"例,例如:" #: src/u-root.md:105 #, fuzzy msgid "" "Additional binaries: if the 3 seconds it takes to get to a shell is too long " "(some applications such as automotive computing require 800 ms startup " -"time), and there is room in flash, some programs can be precompiled into " -"/bin." +"time), and there is room in flash, some programs can be precompiled into /" +"bin." msgstr "" -"附加二進位檔案:如果進入 shell 所需的 3 秒時間太長(某些應用程式(例如汽車運算)需要 800 " -"毫秒的啟動時間),且快閃記憶體中有空間,則可以將某些程式預先編譯到 /bin 中。" +"附加二進位檔案:如果進入 shell 所需的 3 秒時間太長(某些應用程式(例如汽車運" +"算)需要 800 毫秒的啟動時間),且快閃記憶體中有空間,則可以將某些程式預先編譯" +"到 /bin 中。" #: src/u-root.md:108 #, fuzzy msgid "" "Build it all on boot: if on-demand compilation is not desired, a background " "thread in the init process can build all the programs on boot." -msgstr "啟動時建置所有內容:如果不需要按需編譯,init 進程中的後台執行緒可以在啟動時建置所有程式。" +msgstr "" +"啟動時建置所有內容:如果不需要按需編譯,init 進程中的後台執行緒可以在啟動時建" +"置所有程式。" #: src/u-root.md:110 #, fuzzy @@ -1587,7 +1768,8 @@ msgid "" "booted, a script can remove everything in `/bin`. Utilities or commands that " "are used will be rebuilt on demand." msgstr "" -"使用後選擇性地刪除二進位檔案:如果 RAM 空間非常寶貴,一旦啟動,腳本就可以刪除「/bin」中的所有內容。所使用的實用程式或命令將根據需要重建。" +"使用後選擇性地刪除二進位檔案:如果 RAM 空間非常寶貴,一旦啟動,腳本就可以刪除" +"「/bin」中的所有內容。所使用的實用程式或命令將根據需要重建。" #: src/u-root.md:113 #, fuzzy @@ -1595,7 +1777,9 @@ msgid "" "Always build on demand: run in a mode in which programs are never written to " "`/bin` and always rebuilt on demand. This is a very practical option given " "that program compilation is so fast." -msgstr "始終按需建置:以程式永遠不會寫入“/bin”並始終按需重建的模式運行。由於程式編譯速度非常快,這是一個非常實用的選擇。" +msgstr "" +"始終按需建置:以程式永遠不會寫入“/bin”並始終按需重建的模式運行。由於程式編譯" +"速度非常快,這是一個非常實用的選擇。" #: src/u-root.md:116 #, fuzzy @@ -1603,7 +1787,9 @@ msgid "" "Lockdown: if desired, the system can be locked down once booted in one of " "several ways: the entire `/src` tree can be removed, for example, or just " "the compiler toolchain can be deleted." -msgstr "鎖定:如果需要,系統可以在啟動後以多種方式之一鎖定:例如,可以刪除整個“/src”樹,或只刪除編譯器工具鏈。" +msgstr "" +"鎖定:如果需要,系統可以在啟動後以多種方式之一鎖定:例如,可以刪除整個“/" +"src”樹,或只刪除編譯器工具鏈。" #: src/u-root.md:120 #, fuzzy @@ -1622,10 +1808,12 @@ msgid "" "binaries), an init binary, the u-root program source, and the entire Go " "source tree, which provides packages needed for u-root programs." msgstr "" -"U-root 以 cpio 格式打包為 LZMA 壓縮的初始 RAM 檔案系統 (initramfs)。它包含在 Linux 壓縮核心映像中,也稱為 " -"bzImage。引導程式(例如,syslinux)或韌體(例如,coreboot)將 bzImage 載入到記憶體中並啟動它。 " -"Linux核心建立基於RAM的根檔案系統,並將u-root檔案系統解壓縮到其中。這個初始根檔案系統包含 Go 工具鏈(4 個二進位檔案)、一個 init " -"二進位檔案、u-root 程式原始碼和整個 Go 原始碼樹,它提供了 u-root 程式所需的套件。" +"U-root 以 cpio 格式打包為 LZMA 壓縮的初始 RAM 檔案系統 (initramfs)。它包含在 " +"Linux 壓縮核心映像中,也稱為 bzImage。引導程式(例如,syslinux)或韌體(例" +"如,coreboot)將 bzImage 載入到記憶體中並啟動它。 Linux核心建立基於RAM的根檔" +"案系統,並將u-root檔案系統解壓縮到其中。這個初始根檔案系統包含 Go 工具鏈(4 " +"個二進位檔案)、一個 init 二進位檔案、u-root 程式原始碼和整個 Go 原始碼樹,它" +"提供了 u-root 程式所需的套件。" #: src/u-root.md:131 #, fuzzy @@ -1635,8 +1823,9 @@ msgid "" "builds a command installer and invokes the shell. This process is described " "in more detail below. The boot file system layout is shown in Table 1." msgstr "" -"所有 Unix 系統在啟動時都會啟動一個 init 進程,u-root 也不例外。 u-root 的 init " -"設定了一些基本目錄、符號連結和檔案。它建立一個命令安裝程式並呼叫 shell。下面將更詳細地描述這一過程。啟動檔案系統佈局如表1所示。" +"所有 Unix 系統在啟動時都會啟動一個 init 進程,u-root 也不例外。 u-root 的 " +"init 設定了一些基本目錄、符號連結和檔案。它建立一個命令安裝程式並呼叫 shell。" +"下面將更詳細地描述這一過程。啟動檔案系統佈局如表1所示。" #: src/u-root.md:136 msgid "" @@ -1661,46 +1850,48 @@ msgid "" "`/dev` and `/proc` and mounts them. It creates an empty `/bin` which is " "filled with binaries on demand." msgstr "" -"為了使大多數程式能夠正常運作,檔案系統必須更加完整。透過讓 init " -"在啟動時建立額外的檔案系統結構來節省映像空間:它填入根檔案系統缺少的部分。它創建“/dev”和“/proc”並掛載它們。它會建立一個空的“/bin”,並根據需要填入二進位檔案。" +"為了使大多數程式能夠正常運作,檔案系統必須更加完整。透過讓 init 在啟動時建立" +"額外的檔案系統結構來節省映像空間:它填入根檔案系統缺少的部分。它創建“/" +"dev”和“/proc”並掛載它們。它會建立一個空的“/bin”,並根據需要填入二進位檔案。" #: src/u-root.md:152 #, fuzzy msgid "" "In addition to `/bin`, there is a directory called `/buildbin`. `Buildbin` " "and the correct setup of $PATH are the keys to making on-demand compilation " -"work. The init process sets $PATH to " -"`/go/bin:/bin:/buildbin:/usr/local/bin`. Init also builds `installcommand` " -"using the Go bootstrap builder and creates a complete set of symlinks. As a " -"final step, init execs `sh`." +"work. The init process sets $PATH to `/go/bin:/bin:/buildbin:/usr/local/" +"bin`. Init also builds `installcommand` using the Go bootstrap builder and " +"creates a complete set of symlinks. As a final step, init execs `sh`." msgstr "" -"除了 `/bin` 之外,還有一個名為 `/buildbin` 的目錄。 `Buildbin` 和 $PATH 的正確設定是使按需編譯工作的關鍵。 " -"init 程序將 $PATH 設定為 `/go/bin:/bin:/buildbin:/usr/local/bin`。 Init 還使用 Go " -"引導建構器建立「installcommand」並建立一組完整的符號連結。最後一步,init 執行「sh」。" +"除了 `/bin` 之外,還有一個名為 `/buildbin` 的目錄。 `Buildbin` 和 $PATH 的正" +"確設定是使按需編譯工作的關鍵。 init 程序將 $PATH 設定為 `/go/bin:/bin:/" +"buildbin:/usr/local/bin`。 Init 還使用 Go 引導建構器建立「installcommand」並" +"建立一組完整的符號連結。最後一步,init 執行「sh」。" #: src/u-root.md:158 msgid "" -"There is no `/bin/sh` at this point; the first `sh` found in $PATH is " -"`/buildbin/sh`. This is a symlink to `installcommand`. `Installcommand`, " -"once started, examines argv\\[0\\], which is `sh`, and takes this as " -"instruction to build `/src/cmds/sh/.go` into `/bin` and then exec `/bin/sh`. " -"There is no difference between starting the first shell and any other " -"program. Hence, part of the boot process involves the construction of an " -"installation tool to build a binary for a shell which is then run." +"There is no `/bin/sh` at this point; the first `sh` found in $PATH is `/" +"buildbin/sh`. This is a symlink to `installcommand`. `Installcommand`, once " +"started, examines `argv[0]`, which is `sh`, and takes this as instruction to " +"build `/src/cmds/sh/.go` into `/bin` and then exec `/bin/sh`. There is no " +"difference between starting the first shell and any other program. Hence, " +"part of the boot process involves the construction of an installation tool " +"to build a binary for a shell which is then run." msgstr "" #: src/u-root.md:166 #, fuzzy msgid "" -"If a user wants to examine the source to the shell, they can `cat` " -"`/src/cmds/sh/.go`. The `cat` command will be built and then show those " -"files. U-root is intended for network-based devices and hence good network " +"If a user wants to examine the source to the shell, they can `cat` `/src/" +"cmds/sh/.go`. The `cat` command will be built and then show those files. U-" +"root is intended for network-based devices and hence good network " "initialization code is essential. U-root includes a Go version of the IP and " "DHCP programs, along with the docker netlink package and a DHCP package." msgstr "" -"如果使用者想要檢查 shell 的源代碼,他們可以 `cat` `/src/cmds/sh/.go`。將建立“cat”命令並顯示這些檔案。 U-root " -"適用於基於網路的設備,因此良好的網路初始化程式碼至關重要。 U-root 包含 Go 版本的 IP 和 DHCP 程序,以及 docker " -"netlink 套件和 DHCP 套件。" +"如果使用者想要檢查 shell 的源代碼,他們可以 `cat` `/src/cmds/sh/.go`。將建" +"立“cat”命令並顯示這些檔案。 U-root 適用於基於網路的設備,因此良好的網路初始化" +"程式碼至關重要。 U-root 包含 Go 版本的 IP 和 DHCP 程序,以及 docker netlink " +"套件和 DHCP 套件。" #: src/u-root.md:172 #, fuzzy @@ -1711,11 +1902,11 @@ msgstr "下表 1 顯示了 u-root 檔案系統的初始佈局。" #, fuzzy msgid "" "All Go compiler and runtime source is included under `/go/src`. All u-root " -"source is under `/src` and the compiler toolchain binaries are under " -"`/go/pkg`." +"source is under `/src` and the compiler toolchain binaries are under `/go/" +"pkg`." msgstr "" -"所有 Go 編譯器和執行時間來源都包含在“/go/src”下。所有 u-root " -"來源均位於「/src」下,編譯器工具鏈二進位檔案位於「/go/pkg」下。" +"所有 Go 編譯器和執行時間來源都包含在“/go/src”下。所有 u-root 來源均位於「/" +"src」下,編譯器工具鏈二進位檔案位於「/go/pkg」下。" #: src/u-root.md:177 src/u-root.md:229 #, fuzzy @@ -2013,7 +2204,8 @@ msgstr "**表 2**:`/init` 運行後的佈局。" msgid "" "`/buildbin` contains symlinks to enable the on-demand compilation, and other " "standard directories and mount points are ready." -msgstr "`/buildbin` 包含符號連結以啟用按需編譯,其他標準目錄和掛載點已準備就緒。" +msgstr "" +"`/buildbin` 包含符號連結以啟用按需編譯,其他標準目錄和掛載點已準備就緒。" #: src/u-root.md:282 #, fuzzy @@ -2042,8 +2234,8 @@ msgid "" "structure of u-root shell builtins. Then, you will learn about user-defined " "builtins." msgstr "" -"該 shell 有幾個內建命令,您可以使用自己的內建命令來擴展它。首先,您需要了解 u-root shell " -"內建指令的基本來源結構。然後,您將了解使用者定義的內建函數。" +"該 shell 有幾個內建命令,您可以使用自己的內建命令來擴展它。首先,您需要了解 " +"u-root shell 內建指令的基本來源結構。然後,您將了解使用者定義的內建函數。" #: src/u-root.md:299 #, fuzzy @@ -2051,7 +2243,9 @@ msgid "" "All shell builtins, including the ones that come with the shell by default, " "are written with a standard Go init pattern which installs one or more " "builtins." -msgstr "所有 shell 內建指令(包括預設隨 shell 附帶的內建指令)都是用標準 Go init 模式編寫的,該模式會安裝一個或多個內建指令。" +msgstr "" +"所有 shell 內建指令(包括預設隨 shell 附帶的內建指令)都是用標準 Go init 模式" +"編寫的,該模式會安裝一個或多個內建指令。" #: src/u-root.md:302 #, fuzzy @@ -2066,9 +2260,12 @@ msgid "" "is run by Go when the program starts up. In this case, the `init` function " "just installs a builtin for the time command." msgstr "" -"Shell " -"中的內建函數由名稱和功能定義。來源檔案中可以描述一個或多個內建函數。該名稱保存在地圖中,並在檔案系統中查找之前在地圖中搜尋命令名稱。函數必須接受一個字串作為名稱和一個(可能是零長度的)字串參數數組,並傳回一個錯誤。為了將內建函數連接到地圖,程式設計師必須提供一個「init」函數,將名稱和函數新增到地圖中。 " -"`init` 函數比較特殊,它在程式啟動時由 Go 執行。在這種情況下,`init` 函數只是為時間指令安裝一個內建函數。" +"Shell 中的內建函數由名稱和功能定義。來源檔案中可以描述一個或多個內建函數。該" +"名稱保存在地圖中,並在檔案系統中查找之前在地圖中搜尋命令名稱。函數必須接受一" +"個字串作為名稱和一個(可能是零長度的)字串參數數組,並傳回一個錯誤。為了將內" +"建函數連接到地圖,程式設計師必須提供一個「init」函數,將名稱和函數新增到地圖" +"中。 `init` 函數比較特殊,它在程式啟動時由 Go 執行。在這種情況下,`init` 函數" +"只是為時間指令安裝一個內建函數。" #: src/u-root.md:312 #, fuzzy @@ -2216,8 +2413,7 @@ msgstr "可以在命令列上定義基本的 hello 內建指令:" #: src/u-root.md:396 msgid "" "```\n" -"builtin hello '{ fmt.Printf(\"Hello\\n" -"\") }'\n" +"builtin hello '{ fmt.Printf(\"Hello\\n\") }'\n" "```" msgstr "" @@ -2231,8 +2427,9 @@ msgid "" "command name and Go code fragments, allowing multiple new builtin commands " "to be installed in the shell." msgstr "" -"該片段由 {} 對定義。給定一個以 { 開頭的片段,內建指令會產生所需的所有包裝器樣板。內建指令與腳本指令略有不同,因為 Go " -"片段被捆綁到一個參數。該命令接受多對命令名和 Go 程式碼片段,允許在 shell 中安裝多個新的內建命令。" +"該片段由 {} 對定義。給定一個以 { 開頭的片段,內建指令會產生所需的所有包裝器樣" +"板。內建指令與腳本指令略有不同,因為 Go 片段被捆綁到一個參數。該命令接受多對" +"命令名和 Go 程式碼片段,允許在 shell 中安裝多個新的內建命令。" #: src/u-root.md:407 #, fuzzy @@ -2241,8 +2438,8 @@ msgid "" "Invocations of `/bin/sh` by this shell and its children will use the new " "shell." msgstr "" -"Builtin 在 `/bin/sh` 處建立一個新的 shell,其來源位於 `/src/cmds/sh/`。此 shell 及其子 shell " -"對「/bin/sh」的呼叫將使用新的 shell。" +"Builtin 在 `/bin/sh` 處建立一個新的 shell,其來源位於 `/src/cmds/sh/`。此 " +"shell 及其子 shell 對「/bin/sh」的呼叫將使用新的 shell。" #: src/u-root.md:410 #, fuzzy @@ -2259,11 +2456,13 @@ msgid "" "process and other processes outside the private namespace continue to use " "the old shell." msgstr "" -"這個新shell產生的進程可以存取新的shell來源,並且可以再次執行內建指令並建立進一步擴展新shell的shell。新 shell " -"的進程層次結構之外的進程不能使用這個新 shell 或內建來源。當新的 shell 退出時,內建指令在檔案系統的任何部分都不再可見。我們使用 Linux " -"掛載命名空間來創建這種效果[^22]。一旦內建指令驗證了 Go 片段有效,它就會使用 shell " -"來源(包括新的內建來源)建構一個新的私有命名空間。從那時起,新 shell 及其子 shell 將僅使用新 " -"shell。父行程和私有命名空間以外的其他行程繼續使用舊的shell。" +"這個新shell產生的進程可以存取新的shell來源,並且可以再次執行內建指令並建立進" +"一步擴展新shell的shell。新 shell 的進程層次結構之外的進程不能使用這個新 " +"shell 或內建來源。當新的 shell 退出時,內建指令在檔案系統的任何部分都不再可" +"見。我們使用 Linux 掛載命名空間來創建這種效果[^22]。一旦內建指令驗證了 Go 片" +"段有效,它就會使用 shell 來源(包括新的內建來源)建構一個新的私有命名空間。從" +"那時起,新 shell 及其子 shell 將僅使用新 shell。父行程和私有命名空間以外的其" +"他行程繼續使用舊的shell。" #: src/u-root.md:421 #, fuzzy @@ -2286,17 +2485,18 @@ msgid "" "to generate programmatically, building on the techniques used for the script " "command." msgstr "" -"該腳本實現了printenv。請注意,它不是一個完整的 Go " -"程序,因為它缺少套件語句、導入、主函數宣告和最後的返回。所有樣板都由腳本命令添加,該命令使用 Go " -"導入包掃描程式碼並建立編譯所需的導入語句(在本例中,fmt 和 os 包都被導入)。由於 u-root shell " -"非常簡單,因此不需要轉義許多這些特殊字元。複雜的解析任務已轉移到 Go。內建函數的實作方式幾乎相同。內建指令採用 Go 片段並建立符合內建模式的標準 " -"shell 內建 Go 原始檔。基於腳本命令所使用的技術,這種結構很容易透過程式設計產生。" +"該腳本實現了printenv。請注意,它不是一個完整的 Go 程序,因為它缺少套件語句、" +"導入、主函數宣告和最後的返回。所有樣板都由腳本命令添加,該命令使用 Go 導入包" +"掃描程式碼並建立編譯所需的導入語句(在本例中,fmt 和 os 包都被導入)。由於 u-" +"root shell 非常簡單,因此不需要轉義許多這些特殊字元。複雜的解析任務已轉移到 " +"Go。內建函數的實作方式幾乎相同。內建指令採用 Go 片段並建立符合內建模式的標準 " +"shell 內建 Go 原始檔。基於腳本命令所使用的技術,這種結構很容易透過程式設計產" +"生。" #: src/u-root.md:435 msgid "" "```\n" -"script{ fmt.Printf(\"%v\\n" -"\", os.Environ()) }\n" +"script{ fmt.Printf(\"%v\\n\", os.Environ()) }\n" "```" msgstr "" @@ -2351,15 +2551,17 @@ msgid "" "package files, including a file listing any additional package dependencies. " "To load these packages, u-root provides the `tcz` command which fetches the " "package and needed dependencies. Hence, if a user wants emacs, they need " -"merely type `tcz emacs`, and emacs will become available in " -"`/usr/local/bin`. The tinycore packages directory can be a persistent " -"directory or it can be empty on each boot." -msgstr "" -"沒有任何根檔案系統可以提供所有使用者想要的所有軟體包,u-root 也不例外。您需要具有從流行的 Linux 發行版載入外部套件的能力。 `tcz` " -"指令可用於從 TinyCore Linux 發行版(也稱為 _tinycore_)載入外部套件。 tinycore " -"套件是一個可安裝的檔案系統映像,包含所有套件文件,包括列出任何附加套件依賴項的文件。為了載入這些套件,u-root " -"提供了「tcz」命令來取得套件和所需的依賴項。因此,如果用戶想要 emacs,他們只需輸入“tcz emacs”,emacs " -"就會在“/usr/local/bin”中可用。 tinycore 套件目錄可以是持久性目錄,也可以在每次啟動時為空。" +"merely type `tcz emacs`, and emacs will become available in `/usr/local/" +"bin`. The tinycore packages directory can be a persistent directory or it " +"can be empty on each boot." +msgstr "" +"沒有任何根檔案系統可以提供所有使用者想要的所有軟體包,u-root 也不例外。您需要" +"具有從流行的 Linux 發行版載入外部套件的能力。 `tcz` 指令可用於從 TinyCore " +"Linux 發行版(也稱為 _tinycore_)載入外部套件。 tinycore 套件是一個可安裝的檔" +"案系統映像,包含所有套件文件,包括列出任何附加套件依賴項的文件。為了載入這些" +"套件,u-root 提供了「tcz」命令來取得套件和所需的依賴項。因此,如果用戶想要 " +"emacs,他們只需輸入“tcz emacs”,emacs 就會在“/usr/local/bin”中可用。 " +"tinycore 套件目錄可以是持久性目錄,也可以在每次啟動時為空。" #: src/u-root.md:474 #, fuzzy @@ -2376,11 +2578,13 @@ msgid "" "called _srvfiles_, that can be used to serve locally cached tinycore " "packages for testing. The entire server is 18 lines of Go." msgstr "" -"`tcz` 命令對於載入哪些套件以及從哪裡載入這些套件非常靈活。使用者可以指定提供軟體包的主機名稱、要連接的 TCP 連接埠、要使用的 tinycore " -"版本以及架構。 `tcz` " -"命令必須在取得每個套件時將其回送掛載,因此必須在本機上快取它們。它不會重新取得已經快取的套件。此快取可以是易失性的,也可以保存在更永久的記憶體中。效能取決於所使用的網路和載入的套件數量,但在連接 " -"WIFI 的筆記型電腦上,每個套件平均需要 1 秒左右。 U-root 還提供了一個名為 _srvfiles_ 的小型 Web " -"伺服器,可用於提供本地快取的 tinycore 套件以供測試。整個伺服器只有 18 行 Go 程式碼。" +"`tcz` 命令對於載入哪些套件以及從哪裡載入這些套件非常靈活。使用者可以指定提供" +"軟體包的主機名稱、要連接的 TCP 連接埠、要使用的 tinycore 版本以及架構。 " +"`tcz` 命令必須在取得每個套件時將其回送掛載,因此必須在本機上快取它們。它不會" +"重新取得已經快取的套件。此快取可以是易失性的,也可以保存在更永久的記憶體中。" +"效能取決於所使用的網路和載入的套件數量,但在連接 WIFI 的筆記型電腦上,每個套" +"件平均需要 1 秒左右。 U-root 還提供了一個名為 _srvfiles_ 的小型 Web 伺服器," +"可用於提供本地快取的 tinycore 套件以供測試。整個伺服器只有 18 行 Go 程式碼。" #: src/u-root.md:486 #, fuzzy @@ -2396,9 +2600,10 @@ msgid "" "capable of storing all of Open Firmware as source in the flash memory and " "compiling components to indirect threading on demand[^2]." msgstr "" -"按需編譯是電腦科學中最古老的思想之一。 Slimline Open Firmware (SLOF)[^7] 是 IBM 為其部分 Power 和 " -"Cell 處理器開發的基於 FORTH 的開放韌體實作。 SLOF " -"能夠將所有開放韌體作為原始碼儲存在快閃記憶體中,並根據需要將元件編譯為間接執行緒[^2]。" +"按需編譯是電腦科學中最古老的思想之一。 Slimline Open Firmware (SLOF)[^7] 是 " +"IBM 為其部分 Power 和 Cell 處理器開發的基於 FORTH 的開放韌體實作。 SLOF 能夠" +"將所有開放韌體作為原始碼儲存在快閃記憶體中,並根據需要將元件編譯為間接執行緒" +"[^2]。" #: src/u-root.md:494 #, fuzzy @@ -2412,9 +2617,11 @@ msgid "" "process one step further with the Just In Time compilation of byte code to " "machine code[^20] to boost performance." msgstr "" -"在過去的幾十年裡,隨著我們的編譯器基礎設施變得越來越慢、越來越複雜,真正的按需編譯已經分裂成兩種不同的形式。首先是按需將原始碼編譯為可執行字節碼,就像 " -"Python 一樣。字節碼不是本機的,但比原始碼更有效率。如果 Python 解釋器找到字節碼,它將解釋字節碼而不是原始程式碼,以提供更好的效能。 " -"Java 透過將字節碼即時編譯為機器碼[^20],使流程更進一步,從而提高了效能。" +"在過去的幾十年裡,隨著我們的編譯器基礎設施變得越來越慢、越來越複雜,真正的按" +"需編譯已經分裂成兩種不同的形式。首先是按需將原始碼編譯為可執行字節碼,就像 " +"Python 一樣。字節碼不是本機的,但比原始碼更有效率。如果 Python 解釋器找到字節" +"碼,它將解釋字節碼而不是原始程式碼,以提供更好的效能。 Java 透過將字節碼即時" +"編譯為機器碼[^20],使流程更進一步,從而提高了效能。" #: src/u-root.md:503 #, fuzzy @@ -2424,7 +2631,7 @@ msgstr "在快閃記憶體中嵌入核心和根檔案系統" #: src/u-root.md:505 #, fuzzy msgid "" -"The LinuxBIOS project[^14][^1], together with clustermatic[^25], used an " +"The LinuxBIOS project[^14] [^1], together with clustermatic[^25], used an " "embedded kernel and simple root file system to manage supercomputing " "clusters. Due to space constraints of 1 MiB or less of flash, clusters " "embedded only a single-processor Linux kernel with a daemon. The daemon was " @@ -2433,9 +2640,10 @@ msgid "" "nodes in the time it took the standard PXE network boot firmware to find a " "working network interface." msgstr "" -"LinuxBIOS 專案[^14][^1] 與 clustermatic[^25] " -"一起使用嵌入式核心和簡單的根檔案系統來管理超級運算叢集。由於快閃記憶體的空間限制為 1 MiB 或更少,因此叢集僅嵌入了具有守護程序的單處理器 " -"Linux 核心。該守護程序是一個網路引導程序,它下載更複雜的 SMP 核心和根檔案系統並啟動它們。透過這種方式建構的叢集能夠在標準 PXE " +"LinuxBIOS 專案[^14][^1] 與 clustermatic[^25] 一起使用嵌入式核心和簡單的根檔案" +"系統來管理超級運算叢集。由於快閃記憶體的空間限制為 1 MiB 或更少,因此叢集僅嵌" +"入了具有守護程序的單處理器 Linux 核心。該守護程序是一個網路引導程序,它下載更" +"複雜的 SMP 核心和根檔案系統並啟動它們。透過這種方式建構的叢集能夠在標準 PXE " "網路啟動韌體找到工作網路介面的時間內啟動 1024 個節點。" #: src/u-root.md:514 @@ -2448,9 +2656,10 @@ msgid "" "coupled with the small flash size on OLPC, eventually led OLPC to move to " "Open Firmware." msgstr "" -"「每個孩子一台筆記型電腦」的早期版本使用 LinuxBIOS,以快閃記憶體中的 Linux " -"作為開機載入程式來啟動最終目標。這個系統非常方便,因為他們能夠在 Linux 快閃記憶體中嵌入完整的 WIFI 堆疊,並且可以透過 WIFI 啟動測試 " -"OLPC 映像。 Linux 核心的不斷發展,再加上 OLPC 上的快閃記憶體尺寸較小,最終導致 OLPC 轉向開放韌體。" +"「每個孩子一台筆記型電腦」的早期版本使用 LinuxBIOS,以快閃記憶體中的 Linux 作" +"為開機載入程式來啟動最終目標。這個系統非常方便,因為他們能夠在 Linux 快閃記憶" +"體中嵌入完整的 WIFI 堆疊,並且可以透過 WIFI 啟動測試 OLPC 映像。 Linux 核心的" +"不斷發展,再加上 OLPC 上的快閃記憶體尺寸較小,最終導致 OLPC 轉向開放韌體。" #: src/u-root.md:520 #, fuzzy @@ -2460,9 +2669,9 @@ msgid "" "sourceforge.net just as AlphaPower went out of business. Compaq also worked " "with a Linux-As-Bootloader for the iPaq." msgstr "" -"AlphaPower 在其 Alpha 節點上搭載了所謂的 Direct Boot Linux(DBLX)。這項工作從未發表過,但就在 " -"AlphaPower 倒閉時,部分程式碼在 sourceforge.net 上發布。 Compaq 也為 iPaq 採用了 " -"Linux-As-Bootloader。" +"AlphaPower 在其 Alpha 節點上搭載了所謂的 Direct Boot Linux(DBLX)。這項工作" +"從未發表過,但就在 AlphaPower 倒閉時,部分程式碼在 sourceforge.net 上發布。 " +"Compaq 也為 iPaq 採用了 Linux-As-Bootloader。" #: src/u-root.md:525 #, fuzzy @@ -2480,12 +2689,14 @@ msgid "" "cost than the same image stored in RAM since the cost per bit is so much " "higher." msgstr "" -"車載電腦和其他嵌入式 ARM 系統通常在 NOR 快閃記憶體中包含核心和 ext2 " -"格式的檔案系統,也就是說,快閃記憶體可以被視為記憶體而不是區塊裝置。許多此類核心使用所謂的 eXecute In Place[^3] (XIP) " -"補丁,該補丁允許核心直接從記憶體可尋址閃存分頁二進位文件,而不是將其複製到 " -"RAM,從而大大節省了系統啟動時間。這種方法的缺點是可執行檔不能被壓縮,這給優化二進位大小的需求帶來了進一步的壓力。 NOR " -"快閃記憶體非常緩慢,並且對其進行分頁會顯著降低效能。最後,儲存在 NOR 快閃記憶體中的未壓縮二進位影像的貨幣成本比儲存在 RAM " -"中的相同影像高得多,因為每位的成本要高得多。" +"車載電腦和其他嵌入式 ARM 系統通常在 NOR 快閃記憶體中包含核心和 ext2 格式的檔" +"案系統,也就是說,快閃記憶體可以被視為記憶體而不是區塊裝置。許多此類核心使用" +"所謂的 eXecute In Place[^3] (XIP) 補丁,該補丁允許核心直接從記憶體可尋址閃存" +"分頁二進位文件,而不是將其複製到 RAM,從而大大節省了系統啟動時間。這種方法的" +"缺點是可執行檔不能被壓縮,這給優化二進位大小的需求帶來了進一步的壓力。 NOR 快" +"閃記憶體非常緩慢,並且對其進行分頁會顯著降低效能。最後,儲存在 NOR 快閃記憶體" +"中的未壓縮二進位影像的貨幣成本比儲存在 RAM 中的相同影像高得多,因為每位的成本" +"要高得多。" #: src/u-root.md:537 #, fuzzy @@ -2495,8 +2706,9 @@ msgid "" "in the firmware image. It is a full operating system environment realized as " "firmware." msgstr "" -"UEFI[^12] 包含非 Linux 核心(UEFI " -"韌體二進位)以及韌體映像中的一整套驅動程式、檔案系統、網路協定堆疊和命令二進位檔案。它是一個以韌體形式實現的完整作業系統環境。" +"UEFI[^12] 包含非 Linux 核心(UEFI 韌體二進位)以及韌體映像中的一整套驅動程" +"式、檔案系統、網路協定堆疊和命令二進位檔案。它是一個以韌體形式實現的完整作業" +"系統環境。" #: src/u-root.md:541 #, fuzzy @@ -2510,11 +2722,13 @@ msgid "" "ONIE has brought new life to an old idea: packaging a kernel and small set " "of binaries in flash to create a fast, capable boot system." msgstr "" -"ONIE 專案[^23] 是基於 Linux 的 Kernel-in-flash 理念的較新實作。 ONIE 將 Linux 核心和 Busybox " -"二進位檔案打包到一個非常小的套件中。由於 Linux 建置過程允許將初始 RAM " -"檔案系統(initramfs)直接建置到核心二進位檔案中,因此一些公司現在使用 coreboot 將 ONIE 映像嵌入到快閃記憶體中。 Sage " -"Engineering 展示了一個 bzImage,其中有一個小型 Busybox 被打包成一個 4M 圖像。 ONIE " -"為一個舊想法注入了新的活力:將核心和一小組二進位檔案打包在快閃記憶體中,以創建一個快速、強大的啟動系統。" +"ONIE 專案[^23] 是基於 Linux 的 Kernel-in-flash 理念的較新實作。 ONIE 將 " +"Linux 核心和 Busybox 二進位檔案打包到一個非常小的套件中。由於 Linux 建置過程" +"允許將初始 RAM 檔案系統(initramfs)直接建置到核心二進位檔案中,因此一些公司" +"現在使用 coreboot 將 ONIE 映像嵌入到快閃記憶體中。 Sage Engineering 展示了一" +"個 bzImage,其中有一個小型 Busybox 被打包成一個 4M 圖像。 ONIE 為一個舊想法注" +"入了新的活力:將核心和一小組二進位檔案打包在快閃記憶體中,以創建一個快速、強" +"大的啟動系統。" #: src/u-root.md:550 #, fuzzy @@ -2522,229 +2736,68 @@ msgid "References" msgstr "參考" #: src/u-root.md:552 -#, fuzzy msgid "" "AGNEW, A., SULMICKI, A., MINNICH, R., AND ARBAUGH, W. A. Flexibility in rom: " "A stackable open source bios. In USENIX Annual Technical Conference, FREENIX " -"Track (2003), pp. 115–124." -msgstr "" -"AGNEW, A.、SULMICKI, A.、MINNICH, R. 和 ARBAUGH, W. A. ROM 中的靈活性:可堆疊的開源 BIOS。在 " -"USENIX 年度技術會議 FREENIX Track (2003) 中,第 115-124 頁。" - -#: src/u-root.md:555 -#, fuzzy -msgid "(AUTHOR OF SLOF), S. B. Personal conversation." -msgstr "(SLOF 的作者),S. B. 個人對話。" - -#: src/u-root.md:556 -#, fuzzy -msgid "" -"BENAVIDES, T., TREON, J., HULBERT, J., AND CHANG, W. The enabling of an " -"execute-in-place architecture to reduce the embedded system memory footprint " -"and boot time. Journal of computers 3, 1 (2008), 79–89." -msgstr "" -"BENAVIDES, T.、TREON, J.、HULBERT, J. 和 CHANG, W. " -"啟用就地執行架構以減少嵌入式系統記憶體佔用和啟動時間。電腦雜誌 3, 1 (2008), 79-89。" - -#: src/u-root.md:559 -#, fuzzy -msgid "" -"BOGOWITZ, B., AND SWINFORD, T. Intel⃝R active management technology reduces " -"it costs with improved pc manageability. Technology@ Intel Magazine (2004)." -msgstr "" -"BOGOWITZ,B.,和 SWINFORD,T. Intel® 主動管理技術透過提高 PC 可管理性來降低 IT 成本。技術@英特爾雜誌(2004 " -"年)。" - -#: src/u-root.md:562 -#, fuzzy -msgid "" -"CELEDA, P., KREJCI, R., VYKOPAL, J., AND DRASAR, M. Embedded malware-an " -"analysis of the chuck norris botnet. In Computer Network Defense (EC2ND), " -"2010 European Conference on (2010), IEEE, pp. 3–10." -msgstr "" -"CELEDA,P.、KREJCI,R.、VYKOPAL,J. 和 DRASAR,M. " -"嵌入式惡意軟體——對查克·諾里斯殭屍網路的分析。在電腦網路防禦(EC2ND)中,2010 年歐洲會議(2010),IEEE,第 3-10 頁。" - -#: src/u-root.md:565 -#, fuzzy -msgid "" -"CUI, A., COSTELLO, M., AND STOLFO, S. J. When firmware modifications attack: " -"A case study of embedded exploitation. In NDSS (2013)." -msgstr "CUI, A.、COSTELLO, M. 和 STOLFO, S. J. 當韌體修改受到攻擊:嵌入式利用的案例研究。在 NDSS(2013)中。" - -#: src/u-root.md:567 -#, fuzzy -msgid "" -"DALY, D., CHOI, J. H., MOREIRA, J. E., AND WATERLAND, A. Base operating " -"system provisioning and bringup for a commercial supercomputer. In Parallel " -"and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International " -"(2007), IEEE, pp. 1–7." -msgstr "" -"DALY, D.、CHOI, J. H.、MOREIRA, J. E. 和 WATERLAND, A. " -"為商業超級電腦提供基礎作業系統設定和啟動。在平行與分散式處理研討會上,2007 年。 IPDPS 2007。 IEEE 國際(2007),IEEE,第 " -"1-7 頁。" - -#: src/u-root.md:571 -#, fuzzy -msgid "" -"DURUMERIC, Z., KASTEN, J., ADRIAN, D., HALDERMAN, J. A., BAILEY, M., LI, F., " -"WEAVER, N., AMANN, J., BEEKMAN, J., PAYER, M., ET AL. The matter of " -"heartbleed. In Proceedings of the 2014 Conference on Internet Measurement " -"Conference (2014), ACM, pp. 475–488." -msgstr "" -"DURUMERIC, Z.、KASTEN, J.、ADRIAN, D.、HALDERMAN, J. A.、BAILEY, M.、LI, " -"F.、WEAVER, N.、AMANN, J.、BEEKMAN, J.、PAYER, M. 等。心血問題。在 2014 年網路測量會議論文集 " -"(2014) 中,ACM,第 475-488 頁。" - -#: src/u-root.md:575 -#, fuzzy -msgid "" -"KALLENBERG, C., AND BULYGIN, Y. All your boot are belong to us intel, mitre. " -"cansecwest 2014." -msgstr "KALLENBERG,C.,和BULYGIN,Y. 你的所有靴子都屬於我們英特爾,mitre。加拿大西部 2014。" - -#: src/u-root.md:577 -#, fuzzy -msgid "" +"Track (2003), pp. 115–124. [^2]: (AUTHOR OF SLOF), S. B. Personal " +"conversation. [^3]: BENAVIDES, T., TREON, J., HULBERT, J., AND CHANG, W. The " +"enabling of an execute-in-place architecture to reduce the embedded system " +"memory footprint and boot time. Journal of computers 3, 1 (2008), 79–89. " +"[^4]: BOGOWITZ, B., AND SWINFORD, T. Intel⃝R active management technology " +"reduces it costs with improved pc manageability. Technology@ Intel Magazine " +"(2004). [^5]: CELEDA, P., KREJCI, R., VYKOPAL, J., AND DRASAR, M. Embedded " +"malware-an analysis of the chuck norris botnet. In Computer Network Defense " +"(EC2ND), 2010 European Conference on (2010), IEEE, pp. 3–10. [^6]: CUI, A., " +"COSTELLO, M., AND STOLFO, S. J. When firmware modifications attack: A case " +"study of embedded exploitation. In NDSS (2013). [^7]: DALY, D., CHOI, J. H., " +"MOREIRA, J. E., AND WATERLAND, A. Base operating system provisioning and " +"bringup for a commercial supercomputer. In Parallel and Distributed " +"Processing Symposium, 2007. IPDPS 2007. IEEE International (2007), IEEE, pp. " +"1–7. [^8]: DURUMERIC, Z., KASTEN, J., ADRIAN, D., HALDERMAN, J. A., BAILEY, " +"M., LI, F., WEAVER, N., AMANN, J., BEEKMAN, J., PAYER, M., ET AL. The matter " +"of heartbleed. In Proceedings of the 2014 Conference on Internet Measurement " +"Conference (2014), ACM, pp. 475–488. [^9]: KALLENBERG, C., AND BULYGIN, Y. " +"All your boot are belong to us intel, mitre. cansecwest 2014. [^10]: " "KALLENBERG, C., KOVAH, X., BUTTERWORTH, J., AND CORNWELL, S. Extreme " -"privilege escalation on windows 8/uefi systems." -msgstr "" -"KALLENBERG,C.、KOVAH,X.、BUTTERWORTH,J. 和 CORNWELL,S. Windows 8/uefi " -"系統上的極端權限提升。" - -#: src/u-root.md:579 -#, fuzzy -msgid "" -"KOZIOL, J., LITCHFIELD, D., AITEL, D., ANLEY, C., EREN, S., MEHTA, N., AND " -"HASSELL, R. The Shellcoder’s Handbook. Wiley Indianapolis, 2004." -msgstr "" -"KOZIOL, J.、LITCHFIELD, D.、AITEL, D.、ANLEY, C.、EREN, S.、MEHTA, N. 和 HASSELL, " -"R. Shellcoder 手冊。威利印第安納波利斯,2004 年。" - -#: src/u-root.md:581 -#, fuzzy -msgid "LEWIS, T. Uefi overview, 2007." -msgstr "LEWIS,T.Uefi 概述,2007 年。" - -#: src/u-root.md:582 -#, fuzzy -msgid "MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79." -msgstr "MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79。" - -#: src/u-root.md:583 -#, fuzzy -msgid "MINNICH, R. G. Linuxbios at four. Linux J. 2004, 118 (Feb. 2004), 8–." -msgstr "MINNICH, R. G. Linuxbios 四點。 Linux J. 2004, 118 (2004 年 2 月), 8-。" - -#: src/u-root.md:584 -#, fuzzy -msgid "" +"privilege escalation on windows 8/uefi systems. [^11]: KOZIOL, J., " +"LITCHFIELD, D., AITEL, D., ANLEY, C., EREN, S., MEHTA, N., AND HASSELL, R. " +"The Shellcoder’s Handbook. Wiley Indianapolis, 2004. [^12]: LEWIS, T. Uefi " +"overview, 2007. [^13]: MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79. [^14]: " +"MINNICH, R. G. Linuxbios at four. Linux J. 2004, 118 (Feb. 2004), 8–. [^15]: " "MOON, S.-P., KIM, J.-W., BAE, K.-H., LEE, J.-C., AND SEO, D.-W. Embedded " "linux implementation on a commercial digital tv system. Consumer " -"Electronics, IEEE Transactions on 49, 4 (Nov 2003), 1402–1407." -msgstr "" -"MOON, S.-P.、KIM, J.-W.、BAE, K.-H.、LEE, J.-C. 和 SEO, " -"D.-W.嵌入式Linux在商業數位電視系統上的實現。消費性電子產品,IEEE 期刊 49,4(2003 年 11 月),1402–1407。" - -#: src/u-root.md:587 -#, fuzzy -msgid "" -"PIKE, R. Another go at language design. Stanford University Computer Systems " -"Laboratory Colloquium." -msgstr "PIKE,R. 另一種語言設計方式。史丹佛大學電腦系統實驗室座談會。" - -#: src/u-root.md:589 -#, fuzzy -msgid "" -"RITCHIE, D. M. The limbo programming language. Inferno Programmer’s Manual 2 " -"(1997)." -msgstr "RITCHIE,D. M. 邊緣程式語言。 Inferno 程式設計師手冊 2 (1997)。" - -#: src/u-root.md:591 -#, fuzzy -msgid "" -"SACCO, A. L., AND ORTEGA, A. A. Persistent bios infection. In CanSecWest " -"Applied Security Conference (2009)." -msgstr "SACCO,A. L.,AND ORTEGA,A. A.持續性 bios 感染。在 CanSecWest 應用安全會議 (2009) 上。" - -#: src/u-root.md:593 -#, fuzzy -msgid "" -"SAMPATHKUMAR, R. Vulnerability Management for Cloud Computing-2014: A Cloud " -"Computing Security Essential. Rajakumar Sampathkumar, 2014." -msgstr "SAMPATHKUMAR,R.雲端運算漏洞管理-2014:雲端運算安全要點。拉賈庫馬爾桑帕特庫馬爾,2014 年。" - -#: src/u-root.md:595 -#, fuzzy -msgid "" +"Electronics, IEEE Transactions on 49, 4 (Nov 2003), 1402–1407. [^16]: PIKE, " +"R. Another go at language design. Stanford University Computer Systems " +"Laboratory Colloquium. [^17]: RITCHIE, D. M. The limbo programming language. " +"Inferno Programmer’s Manual 2 (1997). [^18]: SACCO, A. L., AND ORTEGA, A. A. " +"Persistent bios infection. In CanSecWest Applied Security Conference (2009). " +"[^19]: SAMPATHKUMAR, R. Vulnerability Management for Cloud Computing-2014: A " +"Cloud Computing Security Essential. Rajakumar Sampathkumar, 2014. [^20]: " "SUGANUMA, T., OGASAWARA, T., TAKEUCHI, M., YASUE, T., KAWAHITO, M., " -"ISHIZAKI, K., KOMATSU, H., AND NAKATANI, T. Overview of the ibm java " -"just-in-time compiler. IBM systems Journal 39, 1 (2000), 175–193." -msgstr "" -"SUGANUMA, T.、OGASAWARA, T.、TAKEUCHI, M.、YASUE, T.、KAWAHITO, M.、ISHIZAKI, " -"K.、KOMATSU, H. 和 NAKATANI, T. IBM Java 即時編譯器概述。 IBM 系統雜誌 39, 1 (2000), " -"175–193。" - -#: src/u-root.md:598 -#, fuzzy -msgid "" -"TEAM, G. The go programming language specification. Tech. rep., Technical " -"Report [http://golang](http://golang/). org/doc/doc/go spec. html, Google " -"Inc, 2009." -msgstr "" -"TEAM, G. Go 程式語言規範。技術。報告,技術報告[http://golang](http://golang/)。 org/doc/doc/go " -"規格。 html,Google 公司,2009 年。" - -#: src/u-root.md:601 -#, fuzzy -msgid "" -"VAN HENSBERGEN, E., AND MINNICH, R. Grave robbers from outer space: Using " -"9p2000 under linux. In USENIX Annual Technical Conference, FREENIX Track " -"(2005), pp. 83–94." -msgstr "" -"VAN HENSBERGEN,E.,和MINNICH,R.來自外太空的盜墓者:在Linux下使用9p2000。在 USENIX 年度技術會議 " -"FREENIX Track (2005) 中,第 83-94 頁。" - -#: src/u-root.md:604 -msgid "VARIOUS. No papers have been published on onie; see onie.org." +"ISHIZAKI, K., KOMATSU, H., AND NAKATANI, T. Overview of the ibm java just-in-" +"time compiler. IBM systems Journal 39, 1 (2000), 175–193. [^21]: TEAM, G. " +"The go programming language specification. Tech. rep., Technical Report " +"[http://golang](http://golang/). org/doc/doc/go spec. html, Google Inc, " +"2009. [^22]: VAN HENSBERGEN, E., AND MINNICH, R. Grave robbers from outer " +"space: Using 9p2000 under linux. In USENIX Annual Technical Conference, " +"FREENIX Track (2005), pp. 83–94. [^23]: VARIOUS. No papers have been " +"published on onie; see onie.org. [^24]: VARIOUS. No papers were published; " +"see perllinux.sourceforge.net. [^25]: WATSON, G. R., SOTTILE, M. J., " +"MINNICH, R. G., CHOI, S.-E., AND HERTDRIKS, E. Pink: A 1024-node single-" +"system image linux cluster. In High Performance Computing and Grid in Asia " +"Pacific Region, 2004. Proceedings. Seventh International Conference on " +"(2004), IEEE, pp. 454–461. [^26]: WELLS, N. Busybox: A swiss army knife for " +"linux. Linux J. 2000, 78es (Oct. 2000). [^27]: WINTERBOTTOM, P. Alef " +"language reference manual. Plan 9 Programmer’s Man (1995)." msgstr "" -#: src/u-root.md:605 -msgid "VARIOUS. No papers were published; see perllinux.sourceforge.net." -msgstr "" - -#: src/u-root.md:606 -#, fuzzy -msgid "" -"WATSON, G. R., SOTTILE, M. J., MINNICH, R. G., CHOI, S.-E., AND HERTDRIKS, " -"E. Pink: A 1024-node single-system image linux cluster. In High Performance " -"Computing and Grid in Asia Pacific Region, 2004. Proceedings. Seventh " -"International Conference on (2004), IEEE, pp. 454–461." -msgstr "" -"WATSON, G. R.、SOTTILE, M. J.、MINNICH, R. G.、CHOI, S.-E. 和 HERTDRIKS, E. " -"Pink:1024 節點單系統映像 Linux 叢集。在2004 年亞太地區的高效能運算和網格中。會議記錄。第七屆國際會議(2004 年),IEEE,第 " -"454-461 頁。" - -#: src/u-root.md:610 -#, fuzzy -msgid "" -"WELLS, N. Busybox: A swiss army knife for linux. Linux J. 2000, 78es (Oct. " -"2000)." -msgstr "WELLS,N. Busybox:Linux 的瑞士軍刀。 Linux J. 2000, 78es (2000 年 10 月)。" - -#: src/u-root.md:612 -#, fuzzy -msgid "" -"WINTERBOTTOM, P. Alef language reference manual. Plan 9 Programmer’s Man " -"(1995)." -msgstr "WINTERBOTTOM,P.Alef 語言參考手冊。 9號計畫程式設計師(1995年)。" - #: src/u-root-qemu-demo.md:3 #, fuzzy msgid "" "You can try out LinuxBoot without needing to build anything! You can try out " "LinuxBoot needing only 3 commands." -msgstr "您無需建立任何東西即可試用 LinuxBoot!您只需 3 個命令即可試用 LinuxBoot。" +msgstr "" +"您無需建立任何東西即可試用 LinuxBoot!您只需 3 個命令即可試用 LinuxBoot。" #: src/u-root-qemu-demo.md:6 #, fuzzy @@ -2752,7 +2805,8 @@ msgid "" "We have made Initial Ram File System (initramfs) images available for four " "architectures: arm, aarch64, amd64 (a.k.a. x86_64), and riscv64." msgstr "" -"我們已為四種架構提供了初始 Ram 檔案系統 (initramfs) 映像:arm、aarch64、amd64(又名 x86_64)和 riscv64。" +"我們已為四種架構提供了初始 Ram 檔案系統 (initramfs) 映像:arm、aarch64、amd64" +"(又名 x86_64)和 riscv64。" #: src/u-root-qemu-demo.md:9 #, fuzzy @@ -2766,7 +2820,8 @@ msgstr "目前,我們只有一個適用於 x86_64 的內核,因此以下說 msgid "" "First, you can get the initramfs image, which mainly contains Go programs " "from the u-root project." -msgstr "首先,您可以取得 initramfs 映像,其中主要包含來自 u-root 專案的 Go 程式。" +msgstr "" +"首先,您可以取得 initramfs 映像,其中主要包含來自 u-root 專案的 Go 程式。" #: src/u-root-qemu-demo.md:19 #, fuzzy @@ -2821,7 +2876,9 @@ msgid "" "In order to bootstrap, build and maintain LinuxBoot projects, we provide a " "handful of utilities for extracting, reducing, reworking, and stitching " "firmware images." -msgstr "為了引導、建置和維護 LinuxBoot 項目,我們提供了一些用於提取、減少、重新加工和拼接韌體映像的實用程式。" +msgstr "" +"為了引導、建置和維護 LinuxBoot 項目,我們提供了一些用於提取、減少、重新加工和" +"拼接韌體映像的實用程式。" #: src/utilities/UEFI_Tool_Kit.md:3 #, fuzzy @@ -2834,7 +2891,9 @@ msgid "" "In previous chapters, you learned how to read a raw ROM image from a flash " "part. If you've been following along, you know the next step is to insert a " "Linux kernel." -msgstr "在前面的章節中,您學習如何從快閃記憶體部分讀取原始 ROM 映像。如果您一直在關注,您就會知道下一步是插入 Linux 核心。" +msgstr "" +"在前面的章節中,您學習如何從快閃記憶體部分讀取原始 ROM 映像。如果您一直在關" +"注,您就會知道下一步是插入 Linux 核心。" #: src/utilities/UEFI_Tool_Kit.md:9 #, fuzzy @@ -2845,8 +2904,9 @@ msgid "" "significantly from the UNIX model of a file systems, thus cannot be " "reasonably mounted in Linux." msgstr "" -"檢查和修改 ROM 圖像很棘手,可能涉及大量的修補。這些圖像通常包含許多檔案系統、驅動程式、表格、資料結構和不透明的斑點。它們與檔案系統的 UNIX " -"模型也有很大不同,因此無法在 Linux 中合理安裝。" +"檢查和修改 ROM 圖像很棘手,可能涉及大量的修補。這些圖像通常包含許多檔案系統、" +"驅動程式、表格、資料結構和不透明的斑點。它們與檔案系統的 UNIX 模型也有很大不" +"同,因此無法在 Linux 中合理安裝。" #: src/utilities/UEFI_Tool_Kit.md:14 #, fuzzy @@ -2856,8 +2916,9 @@ msgid "" "systems. UTK can parse a number of data structures including UEFI firmware " "volumes, Intel firmware descriptors and FIT." msgstr "" -"UEFI 工具包 (UTK) 設計為讀取、寫入和修改 UEFI 映像(x86 系統最常見的韌體映像類型)的一站式服務。 UTK " -"可以解析許多資料結構,包括 UEFI 韌體磁碟區、英特爾韌體描述符和 FIT。" +"UEFI 工具包 (UTK) 設計為讀取、寫入和修改 UEFI 映像(x86 系統最常見的韌體映像" +"類型)的一站式服務。 UTK 可以解析許多資料結構,包括 UEFI 韌體磁碟區、英特爾韌" +"體描述符和 FIT。" #: src/utilities/UEFI_Tool_Kit.md:19 #, fuzzy @@ -2930,7 +2991,9 @@ msgid "" "After that, you can flash NEWROM.bin and test. If anything goes wrong, such " "as not enough space, you will need to refer to the more detailed " "instructions below." -msgstr "之後,您可以刷新 NEWROM.bin 並進行測試。如果出現任何問題,例如空間不足,您將需要參考下面更詳細的說明。" +msgstr "" +"之後,您可以刷新 NEWROM.bin 並進行測試。如果出現任何問題,例如空間不足,您將" +"需要參考下面更詳細的說明。" #: src/utilities/UEFI_Tool_Kit.md:64 #, fuzzy @@ -2944,30 +3007,33 @@ msgid "" "distributions are not officially available. The source code resides in the " "[Fiano Github project](https://github.com/linuxboot/fiano/)." msgstr "" -"在撰寫本文時,您必須從原始程式碼複製和建置 UTK——二進位分佈尚未正式提供。原始碼位於 [Fiano Github " -"專案](https://github.com/linuxboot/fiano/) 中。" +"在撰寫本文時,您必須從原始程式碼複製和建置 UTK——二進位分佈尚未正式提供。原始" +"碼位於 [Fiano Github 專案](https://github.com/linuxboot/fiano/) 中。" #: src/utilities/UEFI_Tool_Kit.md:70 #, fuzzy msgid "" "Aside: what is the difference between Fiano and UTK? The Fiano project " "contains a few more tools besides UTK, but UTK is a big element." -msgstr "P.S.:Fiano 和 UTK 有什麼不同? Fiano 計畫除了 UTK 之外還包含一些其他工具,但 UTK 是重要元素。" +msgstr "" +"P.S.:Fiano 和 UTK 有什麼不同? Fiano 計畫除了 UTK 之外還包含一些其他工具," +"但 UTK 是重要元素。" #: src/utilities/UEFI_Tool_Kit.md:73 #, fuzzy -msgid "We'll assume you already have Go installed. Check your installation with:" +msgid "" +"We'll assume you already have Go installed. Check your installation with:" msgstr "我們假設您已經安裝了 Go。使用以下命令檢查您的安裝:" #: src/utilities/UEFI_Tool_Kit.md:80 #, fuzzy msgid "" "Linux and the latest stable version of Go are recommended. Either download " -"the official binary distributions of Go or install from source. See " -"[https://golang.org/](https://golang.org/) for details." +"the official binary distributions of Go or install from source. See [https://" +"golang.org/](https://golang.org/) for details." msgstr "" -"建議使用 Linux 和最新穩定版本的 Go。下載 Go " -"的官方二進位發行版或從原始碼安裝。詳情請參閱[https://golang.org/](https://golang.org/)。" +"建議使用 Linux 和最新穩定版本的 Go。下載 Go 的官方二進位發行版或從原始碼安" +"裝。詳情請參閱[https://golang.org/](https://golang.org/)。" #: src/utilities/UEFI_Tool_Kit.md:84 #, fuzzy @@ -2981,7 +3047,8 @@ msgid "" "`$HOME/go/bin` if the `GOPATH` environment variable is not set). Adding this " "directory to your `$PATH` is recommended." msgstr "" -"執行上述程式碼將“utk”安裝到您的“$GOPATH/bin”目錄(如果未設定“GOPATH”環境變量,則安裝到“$HOME/go/bin”)。建議將此目錄新增至您的“$PATH”。" +"執行上述程式碼將“utk”安裝到您的“$GOPATH/bin”目錄(如果未設定“GOPATH”環境變" +"量,則安裝到“$HOME/go/bin”)。建議將此目錄新增至您的“$PATH”。" #: src/utilities/UEFI_Tool_Kit.md:94 #, fuzzy @@ -3005,7 +3072,9 @@ msgid "" "Throughout this section, we'll demonstrate commands for inspecting a UEFI " "image. When confronted with a new image, run these commands to get a \"lay " "of the land\"." -msgstr "在本節中,我們將示範檢查 UEFI 映像的命令。當面對新影像時,請執行這些命令以獲取“地形”。" +msgstr "" +"在本節中,我們將示範檢查 UEFI 映像的命令。當面對新影像時,請執行這些命令以獲" +"取“地形”。" #: src/utilities/UEFI_Tool_Kit.md:132 #, fuzzy @@ -3015,8 +3084,8 @@ msgstr "首先下載這些範例中使用的 UEFI 映像:" #: src/utilities/UEFI_Tool_Kit.md:134 msgid "" "```\n" -"wget " -"https://github.com/linuxboot/fiano/raw/master/integration/roms/OVMF.rom\n" +"wget https://github.com/linuxboot/fiano/raw/master/integration/roms/" +"OVMF.rom\n" "```" msgstr "" @@ -3026,12 +3095,13 @@ msgid "" "Aside: alternatively, all UTK operations should work with your own UEFI " "images. Simply substitute \"OVMF.rom\" with your own UEFI image in all the " "examples below. If you encounter any problems, please file an issue at " -"[https://github.com/linuxboot/fiano/issues](https://github.com/linuxboot/fiano/issues)." +"[https://github.com/linuxboot/fiano/issues](https://github.com/linuxboot/" +"fiano/issues)." msgstr "" -"另外:另外,所有 UTK 操作都應該與您自己的 UEFI 映像一起使用。在下面的所有範例中,只需用您自己的 UEFI " -"映像取代「OVMF.rom」即可。如果您遇到任何問題,請在 " -"[https://github.com/linuxboot/fiano/issues](https://github.com/linuxboot/fiano/issues) " -"上提交問題。" +"另外:另外,所有 UTK 操作都應該與您自己的 UEFI 映像一起使用。在下面的所有範例" +"中,只需用您自己的 UEFI 映像取代「OVMF.rom」即可。如果您遇到任何問題,請在 " +"[https://github.com/linuxboot/fiano/issues](https://github.com/linuxboot/" +"fiano/issues) 上提交問題。" #: src/utilities/UEFI_Tool_Kit.md:143 #, fuzzy @@ -3084,8 +3154,10 @@ msgid "" "sections) themselves have an additional type dictated by the UEFI spec. " "There are three major file types you should be aware of:" msgstr "" -"「韌體元素」的定義是有序的。韌體映像是分層的,可以表示為樹。樹中的每個節點都是一個「韌體元素」。每個元素都有一個類型,例如如上所示的「BIOSRegion」、「FirmwareVolume」、「File」和「Section」。文件(和部分)本身俱有由 " -"UEFI 規範規定的附加類型。您應該了解三種主要文件類型:" +"「韌體元素」的定義是有序的。韌體映像是分層的,可以表示為樹。樹中的每個節點都" +"是一個「韌體元素」。每個元素都有一個類型,例如如上所示的「BIOSRegion」、" +"「FirmwareVolume」、「File」和「Section」。文件(和部分)本身俱有由 UEFI 規範" +"規定的附加類型。您應該了解三種主要文件類型:" #: src/utilities/UEFI_Tool_Kit.md:185 #, fuzzy @@ -3093,7 +3165,9 @@ msgid "" "`EFI_FV_FILETYPE_DRIVER`: This is the most numerous file type and is often " "called a \"DXE\". They persist in memory even after their main function " "exits." -msgstr "`EFI_FV_FILETYPE_DRIVER`:這是最常見的檔案類型,通常稱為「DXE」。即使其主函數退出後,它們仍會保留在記憶體中。" +msgstr "" +"`EFI_FV_FILETYPE_DRIVER`:這是最常見的檔案類型,通常稱為「DXE」。即使其主函數" +"退出後,它們仍會保留在記憶體中。" #: src/utilities/UEFI_Tool_Kit.md:187 #, fuzzy @@ -3101,7 +3175,8 @@ msgid "" "`EFI_FV_FILETYPE_APPLICATION`: Applications do not persist in memory after " "exiting. For example, the EFI Shell is an EFI Application." msgstr "" -"`EFI_FV_FILETYPE_APPLICATION`:應用程式退出後不會保留在記憶體中。例如,EFI Shell 是一個 EFI 應用程式。" +"`EFI_FV_FILETYPE_APPLICATION`:應用程式退出後不會保留在記憶體中。例如,EFI " +"Shell 是一個 EFI 應用程式。" #: src/utilities/UEFI_Tool_Kit.md:189 #, fuzzy @@ -3110,7 +3185,8 @@ msgid "" "firmware volumes. You will see this when an entire firmware volume is " "compressed." msgstr "" -"`EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE`:這些檔案類型允許巢狀韌體磁碟區。當整個韌體磁碟區被壓縮時,您將看到這一點。" +"`EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE`:這些檔案類型允許巢狀韌體磁碟區。當整" +"個韌體磁碟區被壓縮時,您將看到這一點。" #: src/utilities/UEFI_Tool_Kit.md:193 #, fuzzy @@ -3130,7 +3206,9 @@ msgid "" "This format is compact and easy for humans reading, but not ideal for " "machine consumption. Use the `json` command to print everything (including " "much more metadata) as JSON:" -msgstr "這種格式緊湊且易於人類閱讀,但不適合機器使用。使用 `json` 指令將所有內容(包括更多元資料)列印為 JSON:" +msgstr "" +"這種格式緊湊且易於人類閱讀,但不適合機器使用。使用 `json` 指令將所有內容(包" +"括更多元資料)列印為 JSON:" #: src/utilities/UEFI_Tool_Kit.md:229 #, fuzzy @@ -3139,8 +3217,9 @@ msgid "" "and other UNIX commands to quickly write powerful queries. For example, the " "following lists all the GUIDs, sorted and without duplicates:" msgstr "" -"將 `utk` 與 JSON 查詢命令、`jq`(`sudo apt-get install jq`)以及其他 UNIX " -"命令結合起來,可以快速編寫強大的查詢。例如,下面列出了所有 GUID,已排序且沒有重複:" +"將 `utk` 與 JSON 查詢命令、`jq`(`sudo apt-get install jq`)以及其他 UNIX 命" +"令結合起來,可以快速編寫強大的查詢。例如,下面列出了所有 GUID,已排序且沒有重" +"複:" #: src/utilities/UEFI_Tool_Kit.md:233 msgid "" @@ -3201,8 +3280,9 @@ msgid "" "which is stored within the file's UI section. Like `find`, most of UTKs " "commands let you match a file by its name or GUID." msgstr "" -"請注意,UEFI 使用 GUID 來識別檔案。有些檔案還有一個名稱,該名稱儲存在檔案的 UI 部分中。與「find」類似,大多數 UTK " -"命令允許您透過檔案名稱或 GUID 來匹配檔案。" +"請注意,UEFI 使用 GUID 來識別檔案。有些檔案還有一個名稱,該名稱儲存在檔案的 " +"UI 部分中。與「find」類似,大多數 UTK 命令允許您透過檔案名稱或 GUID 來匹配檔" +"案。" #: src/utilities/UEFI_Tool_Kit.md:280 #, fuzzy @@ -3212,8 +3292,9 @@ msgid "" "image and saves them to ``. `/summary.json` lists all the paths to " "the extracted files along with their metadata." msgstr "" -"到目前為止的範例僅處理文件元數據,而不是文件的內容。 `extract ` 命令從映像中提取所有檔案並將其儲存到 ``。 " -"`/summary.json` 列出了提取檔案的所有路徑及其元資料。" +"到目前為止的範例僅處理文件元數據,而不是文件的內容。 `extract ` 命令從映" +"像中提取所有檔案並將其儲存到 ``。 `/summary.json` 列出了提取檔案的" +"所有路徑及其元資料。" #: src/utilities/UEFI_Tool_Kit.md:289 #, fuzzy @@ -3231,7 +3312,9 @@ msgid "" "First, let's verify the image works by running it inside QEMU. This step is " "not absolutely necessary, but gives us confidence the image works before and " "after each change we make." -msgstr "首先,讓我們透過在 QEMU 中運行它來驗證映像是否有效。此步驟並非絕對必要,但可以讓我們相信圖像在每次更改之前和之後都能正常運作。" +msgstr "" +"首先,讓我們透過在 QEMU 中運行它來驗證映像是否有效。此步驟並非絕對必要,但可" +"以讓我們相信圖像在每次更改之前和之後都能正常運作。" #: src/utilities/UEFI_Tool_Kit.md:305 #, fuzzy @@ -3251,8 +3334,9 @@ msgid "" "writes the output. The commands in between operate on the image in memory " "and are reminiscent of a UNIX pipeline. The general syntax is:" msgstr "" -"多個命令可以一起使用來形成管道。第一個參數總是將圖像載入到記憶體中,最後一個參數通常寫入輸出。中間的指令對記憶體中的影像進行操作,讓人聯想到 UNIX " -"管道。一般語法是:" +"多個命令可以一起使用來形成管道。第一個參數總是將圖像載入到記憶體中,最後一個" +"參數通常寫入輸出。中間的指令對記憶體中的影像進行操作,讓人聯想到 UNIX 管道。" +"一般語法是:" #: src/utilities/UEFI_Tool_Kit.md:321 #, fuzzy @@ -3264,7 +3348,9 @@ msgstr "為了查看管道的運作情況,我們引入了兩個新命令:" msgid "" "`remove `: Remove a file from a firmware volume. " "The search has the same semantics as `find`." -msgstr "`remove `:從韌體磁碟區移除檔案。搜尋具有與“查找”相同的語義。" +msgstr "" +"`remove `:從韌體磁碟區移除檔案。搜尋具有與“查找”相" +"同的語義。" #: src/utilities/UEFI_Tool_Kit.md:325 #, fuzzy @@ -3281,20 +3367,22 @@ msgstr "" msgid "" "`save `: Save the firmware image to the given file. Usually, this is " "the last command in a pipeline." -msgstr "`save `:將韌體映像儲存到給定的檔案。通常,這是管道中的最後一個命令。" +msgstr "" +"`save `:將韌體映像儲存到給定的檔案。通常,這是管道中的最後一個命令。" #: src/utilities/UEFI_Tool_Kit.md:331 #, fuzzy msgid "" "The following pipeline removes some unnecessary drivers (anything that " -"starts with Usb and the Legacy8259 driver which has the GUID " -"79ca4208-bba1-4a9a-8456-e1e66a81484e) and replaces the Shell with Linux. " -"Often you need to remove drivers to make room for Linux which makes the " -"pipeline convenient. This is the essence of LinuxBoot:" +"starts with Usb and the Legacy8259 driver which has the GUID 79ca4208-" +"bba1-4a9a-8456-e1e66a81484e) and replaces the Shell with Linux. Often you " +"need to remove drivers to make room for Linux which makes the pipeline " +"convenient. This is the essence of LinuxBoot:" msgstr "" "以下管道刪除了一些不必要的驅動程式(以 Usb 開頭的任何驅動程式以及具有 GUID " "79ca4208-bba1-4a9a-8456-e1e66a81484e 的 Legacy8259 驅動程式)並用 Linux 取代 " -"Shell。通常您需要刪除驅動程式以便為 Linux 騰出空間,從而使管道變得方便。這就是LinuxBoot的本質:" +"Shell。通常您需要刪除驅動程式以便為 Linux 騰出空間,從而使管道變得方便。這就" +"是LinuxBoot的本質:" #: src/utilities/UEFI_Tool_Kit.md:347 #, fuzzy @@ -3420,7 +3508,9 @@ msgstr "檔案大小過大" msgid "" "When saving a UEFI image, files are added successively to each firmware " "volume. The first file which overflows the volume's size causes this error." -msgstr "儲存 UEFI 映像時,檔案會依序新增至每個韌體磁碟區。第一個超出磁碟區大小的檔案會導致此錯誤。" +msgstr "" +"儲存 UEFI 映像時,檔案會依序新增至每個韌體磁碟區。第一個超出磁碟區大小的檔案" +"會導致此錯誤。" #: src/utilities/UEFI_Tool_Kit.md:388 #, fuzzy @@ -3446,7 +3536,8 @@ msgstr "怎麼會這樣?不應對該圖像進行任何更改!" msgid "" "Not quite (and the complete list of differences can be found in the \"binary " "equality section\") -- compressed volumes are recompressed." -msgstr "不完全是(完整的差異列表可以在“二進制平等部分”找到)——壓縮卷被重新壓縮。" +msgstr "" +"不完全是(完整的差異列表可以在“二進制平等部分”找到)——壓縮卷被重新壓縮。" #: src/utilities/UEFI_Tool_Kit.md:401 #, fuzzy @@ -3455,8 +3546,8 @@ msgid "" "compression found in most UEFI images. Pass `--systemXZ=xz` as the first " "argument to UTK to use a better compressor." msgstr "" -"預設情況下,UTK 使用 Go 壓縮器,其壓縮效果通常比大多數 UEFI 映像中的壓縮效果差。將“--systemXZ=xz”作為第一個參數傳遞給 " -"UTK 以使用更好的壓縮器。" +"預設情況下,UTK 使用 Go 壓縮器,其壓縮效果通常比大多數 UEFI 映像中的壓縮效果" +"差。將“--systemXZ=xz”作為第一個參數傳遞給 UTK 以使用更好的壓縮器。" #: src/utilities/UEFI_Tool_Kit.md:405 #, fuzzy @@ -3471,7 +3562,8 @@ msgid "" "Find a general solution which works for all images is a topic of research: " "[\\#200](https://github.com/linuxboot/fiano/issues/200)." msgstr "" -"找到適用於所有圖像的通用解決方案是一個研究主題:[\\#200](https://github.com/linuxboot/fiano/issues/200)。" +"找到適用於所有圖像的通用解決方案是一個研究主題:[\\#200](https://github.com/" +"linuxboot/fiano/issues/200)。" #: src/utilities/UEFI_Tool_Kit.md:410 #, fuzzy @@ -3531,7 +3623,9 @@ msgstr "https://en.wikipedia.org/wiki/Visitor_pattern" msgid "" "A good visitor still works when new Firmware are introduced. A good Firmware " "still works when a new visitor is introduced." -msgstr "當引入新的韌體時,好的訪客仍然可以工作。當有新訪客到來時,良好的韌體仍然有效。" +msgstr "" +"當引入新的韌體時,好的訪客仍然可以工作。當有新訪客到來時,良好的韌體仍然有" +"效。" #: src/utilities/UEFI_Tool_Kit.md:431 #, fuzzy @@ -3546,8 +3640,8 @@ msgid "" "simplified model, you're essentially creating an AST. Then think about how " "patterns used in compiler architecture might apply to UTK." msgstr "" -"抽象語法樹-這是從編譯器借用的概念。當您提取 DXE 來建立包含簡化模型的結構樹時,您實際上是在建立 AST。然後思考編譯器架構中使用的模式如何應用在 " -"UTK。" +"抽象語法樹-這是從編譯器借用的概念。當您提取 DXE 來建立包含簡化模型的結構樹" +"時,您實際上是在建立 AST。然後思考編譯器架構中使用的模式如何應用在 UTK。" #: src/utilities/UEFI_Tool_Kit.md:438 #, fuzzy @@ -3635,7 +3729,8 @@ msgstr "將文件概覽列印到終端進行偵錯" msgid "" "It is easy to add more visitors without modifying existing code. Each action " "can be in a separate file." -msgstr "無需修改現有程式碼即可輕鬆新增更多訪客。每個動作都可以放在單獨的文件中。" +msgstr "" +"無需修改現有程式碼即可輕鬆新增更多訪客。每個動作都可以放在單獨的文件中。" #: src/utilities/UEFI_Tool_Kit.md:494 #, fuzzy @@ -3685,11 +3780,11 @@ msgstr "能夠透過命令列將這些小動作連結在一起會很令人興奮 #, fuzzy msgid "" "Again, it is easy to write new actions in Go which modify nodes in the AST. " -"Create a new file, new struct, and implement the " -"visitFV/visitFile/visitSection methods to modify the AST." +"Create a new file, new struct, and implement the visitFV/visitFile/" +"visitSection methods to modify the AST." msgstr "" -"再次,在 Go 中編寫修改 AST 中的節點的新操作很容易。建立一個新檔案、新結構,並實作 visitFV/visitFile/visitSection " -"方法來修改 AST。" +"再次,在 Go 中編寫修改 AST 中的節點的新操作很容易。建立一個新檔案、新結構,並" +"實作 visitFV/visitFile/visitSection 方法來修改 AST。" #: src/utilities/UEFI_Tool_Kit.md:532 #, fuzzy @@ -3739,8 +3834,12 @@ msgid "" "say you'd like to make this all work without having to fill out web forms in " "triplicate to get your organization to Do Magic to your desktop?" msgstr "" -"您是否希望在系統中擁有桌面上的所有工具,但卻無法將它們放入小小的閃存部件中?您是否希望所有桌面檔案都在您的系統上可見,但卻記得您的系統上沒有磁碟?您是否厭倦了使用“scp”或“wget”來移動檔案?您是否想在機器上運行“emacs”或“vim”,但知道它們無法適應?那麼 " -"`zsh` 怎麼樣呢?如何在機器上運行命令並讓輸出出現在主檔案系統上?您說您想讓這一切正常運轉,而不必填寫三份網頁表格來讓您的組織在您的桌面上施展魔法?" +"您是否希望在系統中擁有桌面上的所有工具,但卻無法將它們放入小小的閃存部件中?" +"您是否希望所有桌面檔案都在您的系統上可見,但卻記得您的系統上沒有磁碟?您是否" +"厭倦了使用“scp”或“wget”來移動檔案?您是否想在機器上運行“emacs”或“vim”,但知道" +"它們無法適應?那麼 `zsh` 怎麼樣呢?如何在機器上運行命令並讓輸出出現在主檔案系" +"統上?您說您想讓這一切正常運轉,而不必填寫三份網頁表格來讓您的組織在您的桌面" +"上施展魔法?" #: src/utilities/cpu.md:13 #, fuzzy @@ -3772,15 +3871,18 @@ msgid "" "stability vanishes. Even small variations between Ubuntu versions matter: " "symbol versions in C libraries differ, files are moved, and so on." msgstr "" -"雖然這些系統都是 Linux,因此可以在系統呼叫邊界提供應用程式二進位介面 (ABI) 穩定性,但在該邊界之上穩定性就會消失。即使 Ubuntu " -"版本之間的細微差異也很重要:C 庫中的符號版本不同、檔案被移動等等。" +"雖然這些系統都是 Linux,因此可以在系統呼叫邊界提供應用程式二進位介面 (ABI) 穩" +"定性,但在該邊界之上穩定性就會消失。即使 Ubuntu 版本之間的細微差異也很重要:" +"C 庫中的符號版本不同、檔案被移動等等。" #: src/utilities/cpu.md:29 #, fuzzy msgid "" "What is a user to do if they want to build a binary on one system, and run " "it on another system?" -msgstr "如果使用者想要在一個系統上建置二進位檔案並在另一個系統上運行它,他們該怎麼做?" +msgstr "" +"如果使用者想要在一個系統上建置二進位檔案並在另一個系統上運行它,他們該怎麼" +"做?" #: src/utilities/cpu.md:32 msgid "" @@ -3805,9 +3907,11 @@ msgid "" "linking is frowned upon nowadays and many libraries are only made available " "for dynamic linking." msgstr "" -"下一個選項是使用靜態連結。靜態連結是 Linux " -"系統上最古老的二進位形式。雖然它的缺點是需要創建更大的二進位文件,但在高效編譯器可以刪除死程式碼、100 " -"千兆網路以及巨型磁碟和記憶體的時代,這種損失不再是問題了。靜態二進位檔案大小的成長與我們的資源效率和規模的成長完全不同。然而,靜態連結如今已不受歡迎,許多函式庫僅可用於動態連結。" +"下一個選項是使用靜態連結。靜態連結是 Linux 系統上最古老的二進位形式。雖然它的" +"缺點是需要創建更大的二進位文件,但在高效編譯器可以刪除死程式碼、100 千兆網路" +"以及巨型磁碟和記憶體的時代,這種損失不再是問題了。靜態二進位檔案大小的成長與" +"我們的資源效率和規模的成長完全不同。然而,靜態連結如今已不受歡迎,許多函式庫" +"僅可用於動態連結。" #: src/utilities/cpu.md:48 #, fuzzy @@ -3819,9 +3923,10 @@ msgid "" "uses, and place them into the archive as well. Further, the user can specify " "additional files to carry along in case they are needed." msgstr "" -"我們的用戶可能會使用眾多工具之一將二進位檔案及其所有庫打包成一個文件,然後在其他地方執行。 u-root " -"專案甚至為可移植執行檔提供了一個名為「pox」的工具。 " -"「Pox」使用動態載入器找出程式使用的所有共用程式庫,並將它們放入檔案中。此外,使用者可以指定要隨身攜帶的附加文件,以備不時之需。" +"我們的用戶可能會使用眾多工具之一將二進位檔案及其所有庫打包成一個文件,然後在" +"其他地方執行。 u-root 專案甚至為可移植執行檔提供了一個名為「pox」的工具。 " +"「Pox」使用動態載入器找出程式使用的所有共用程式庫,並將它們放入檔案中。此外," +"使用者可以指定要隨身攜帶的附加文件,以備不時之需。" #: src/utilities/cpu.md:55 msgid "" @@ -3839,7 +3944,9 @@ msgid "" "library! How can this be? The program that packaged it up checked for all " "possible shared libraries." msgstr "" -"因此,我們的用戶使用“pox”或類似工具打包他們的可執行文件,使用“scp”將其發送到遠端機器,通過“ssh”登錄,一切似乎都很順利,直到某個時候出現另一條關於缺少共享庫的消息!怎麼會這樣?打包它的程式檢查了所有可能的共享庫。" +"因此,我們的用戶使用“pox”或類似工具打包他們的可執行文件,使用“scp”將其發送到" +"遠端機器,通過“ssh”登錄,一切似乎都很順利,直到某個時候出現另一條關於缺少共享" +"庫的消息!怎麼會這樣?打包它的程式檢查了所有可能的共享庫。" #: src/utilities/cpu.md:65 msgid "" @@ -3866,8 +3973,12 @@ msgid "" "needed. The remote system will need lots of spare disk or memory! We’re " "right back where we started, with too many files for too little space." msgstr "" -"我們的用戶不僅必須記得帶上“/etc/nsswitch.conf”,還必須記得帶上它可能使用的所有庫。對於其他服務(例如可插入身份驗證模組 " -"(PAM))也是如此。而且,他們帶來的程式可能會運行其他程序,並具有它們自己的依賴關係。在某些時候,隨著文件集的成長,沮喪的使用者可能會決定收集所有「/etc/」、「/bin」和其他目錄,希望足夠寬的網路可以帶來所需的一切。遠端系統將需要大量備用磁碟或記憶體!我們又回到了原點,文件太多,空間太小。" +"我們的用戶不僅必須記得帶上“/etc/nsswitch.conf”,還必須記得帶上它可能使用的所" +"有庫。對於其他服務(例如可插入身份驗證模組 (PAM))也是如此。而且,他們帶來的" +"程式可能會運行其他程序,並具有它們自己的依賴關係。在某些時候,隨著文件集的成" +"長,沮喪的使用者可能會決定收集所有「/etc/」、「/bin」和其他目錄,希望足夠寬的" +"網路可以帶來所需的一切。遠端系統將需要大量備用磁碟或記憶體!我們又回到了原" +"點,文件太多,空間太小。" #: src/utilities/cpu.md:84 #, fuzzy @@ -3877,7 +3988,9 @@ msgid "" "system. That is obviously difficult, and might be impossible if the remote " "system has no disk, only memory." msgstr "" -"在最壞的情況下,為了在另一個系統上正確運行一個系統的二進位文件,必須將本機檔案系統中的所有內容複製到遠端系統。這顯然很困難,如果遠端系統沒有磁碟,只有內存,那可能就不可能了。" +"在最壞的情況下,為了在另一個系統上正確運行一個系統的二進位文件,必須將本機檔" +"案系統中的所有內容複製到遠端系統。這顯然很困難,如果遠端系統沒有磁碟,只有內" +"存,那可能就不可能了。" #: src/utilities/cpu.md:89 msgid "" @@ -3899,7 +4012,9 @@ msgid "" "Still worse, with an NFS root, everyone can see everyone’s files. It’s like " "living in an apartment building with glass walls. Glass houses only look " "good in architecture magazines. People want privacy." -msgstr "更糟的是,有了 NFS 根,每個人都可以看到每個人的檔案。這就像住在一棟有玻璃牆的公寓大樓裡一樣。玻璃屋只有在建築雜誌上才好看。人們想要隱私。" +msgstr "" +"更糟的是,有了 NFS 根,每個人都可以看到每個人的檔案。這就像住在一棟有玻璃牆的" +"公寓大樓裡一樣。玻璃屋只有在建築雜誌上才好看。人們想要隱私。" #: src/utilities/cpu.md:103 #, fuzzy @@ -3915,8 +4030,9 @@ msgid "" "going to a new place, to be able to bring along some survival gear, if not " "your whole house!" msgstr "" -"`ssh` " -"解決了安全登入遠端機器的問題。雖然這不是一個小小的成就,但它就像是被空降到一個陌生的國度,而那裡的規則已經改變了。當去一個新地方時,如果能帶一些生存裝備(即使不是整棟房子)就更好了!" +"`ssh` 解決了安全登入遠端機器的問題。雖然這不是一個小小的成就,但它就像是被空" +"降到一個陌生的國度,而那裡的規則已經改變了。當去一個新地方時,如果能帶一些生" +"存裝備(即使不是整棟房子)就更好了!" #: src/utilities/cpu.md:110 msgid "" @@ -3939,14 +4055,13 @@ msgid "" "`cpu` is a Go-based implementation of Plan 9's `cpu` command. It uses the go " "`ssh` package, so all your communications are as secure as `ssh`. It can be " "started from `/sbin/init` or even replace `/sbin/init`, so you have a tiny " -"flash footprint. You can see the code at " -"[github.com:u-root/cpu](https://github.com/u-root/cpu). It's also small: " -"less than 20 files, including tests." +"flash footprint. You can see the code at [github.com:u-root/cpu](https://" +"github.com/u-root/cpu). It's also small: less than 20 files, including tests." msgstr "" -"`cpu` 是 Plan 9 的 `cpu` 指令的基於 Go 的實作。它使用 go `ssh` 包,因此您的所有通訊都與 `ssh` " -"一樣安全。它可以從“/sbin/init”啟動,甚至可以替換“/sbin/init”,因此您只需要很小的閃存空間。您可以在 " -"[github.com:u-root/cpu](https://github.com/u-root/cpu) " -"上查看程式碼。它也很小:包括測試在內,文件少於 20 個。" +"`cpu` 是 Plan 9 的 `cpu` 指令的基於 Go 的實作。它使用 go `ssh` 包,因此您的所" +"有通訊都與 `ssh` 一樣安全。它可以從“/sbin/init”啟動,甚至可以替換“/sbin/" +"init”,因此您只需要很小的閃存空間。您可以在 [github.com:u-root/cpu](https://" +"github.com/u-root/cpu) 上查看程式碼。它也很小:包括測試在內,文件少於 20 個。" #: src/utilities/cpu.md:126 #, fuzzy @@ -3958,10 +4073,11 @@ msgid "" "private name space at important places like `/home/$USER`, `/bin, /usr,`and " "so on. Nobody gets to see what other people’s files are." msgstr "" -"`cpu` 既作為客戶端(在您的桌面上)運行,又作為 `ssh` " -"伺服器(在您的機器上)運行。在您的桌面上,它不需要特殊權限。在系統上,只需要一個二進位檔案:`cpu` " -"守護程式(`cpud`)。作為設定會話的一部分,除了正常的 `ssh` 操作之外,`cpu` 還在重要位置(如 " -"`/home/$USER`、`/bin、/usr` 等)設定私有名稱空間。沒有人可以看到其他人的文件是什麼。" +"`cpu` 既作為客戶端(在您的桌面上)運行,又作為 `ssh` 伺服器(在您的機器上)運" +"行。在您的桌面上,它不需要特殊權限。在系統上,只需要一個二進位檔案:`cpu` 守" +"護程式(`cpud`)。作為設定會話的一部分,除了正常的 `ssh` 操作之外,`cpu` 還在" +"重要位置(如 `/home/$USER`、`/bin、/usr` 等)設定私有名稱空間。沒有人可以看到" +"其他人的文件是什麼。" #: src/utilities/cpu.md:133 msgid "" @@ -3985,9 +4101,10 @@ msgid "" "want, since the shell binary comes from your desktop, not flash. You don't " "have to worry about fitting `zsh` into flash ever again!" msgstr "" -"`cpu` 將改變你的生活。您可以忘記透過「scp」移動檔案:一旦您「進入」cpu,您節點上的「/home」目錄就是您的主目錄。您可以`cd " -"~`查看所有文件。您可以選擇任何您想要的 shell,因為 shell 二進位檔案來自您的桌面,而不是快閃記憶體。您不必再擔心將“zsh”裝入 " -"flash!" +"`cpu` 將改變你的生活。您可以忘記透過「scp」移動檔案:一旦您「進入」cpu,您節" +"點上的「/home」目錄就是您的主目錄。您可以`cd ~`查看所有文件。您可以選擇任何您" +"想要的 shell,因為 shell 二進位檔案來自您的桌面,而不是快閃記憶體。您不必再擔" +"心將“zsh”裝入 flash!" #: src/utilities/cpu.md:149 #, fuzzy @@ -3996,8 +4113,8 @@ msgid "" "because we have `cpu` and we can redirect `chipsec` output to files in our " "home directory." msgstr "" -"在 Google,我們現在可以運行“chipsec”,它導入了 20M 的 Python " -"庫,因為我們有“cpu”,並且我們可以將“chipsec”輸出重定向到我們的主目錄中的檔案。" +"在 Google,我們現在可以運行“chipsec”,它導入了 20M 的 Python 庫,因為我們" +"有“cpu”,並且我們可以將“chipsec”輸出重定向到我們的主目錄中的檔案。" #: src/utilities/cpu.md:153 #, fuzzy @@ -4006,8 +4123,8 @@ msgstr "以下是一個範例會話:" #: src/utilities/cpu.md:155 msgid "" -"In this command, we `cpu` to a PC Engines APU2. We have built a kernel and " -"u-root initramfs containing just one daemon -- the `cpu` daemon -- into the " +"In this command, we `cpu` to a PC Engines APU2. We have built a kernel and u-" +"root initramfs containing just one daemon -- the `cpu` daemon -- into the " "flash image. The APU2 does not even need a disk; it starts running as a " "“`cpu` appliance.”" msgstr "" @@ -4037,8 +4154,10 @@ msgid "" "systems such as `/proc` and `/sys` will come from the machine they are on, " "not their desktop." msgstr "" -"`cpu` 的一個很大的好處是,只要網路運作,使用者就可以建立非常小的 flash 映像,其中只包含 `cpu` " -"守護進程,足以讓網路運作。一旦網路啟動,用戶就可以「進入」CPU,他們需要的一切都在那裡。實際上看起來他們仍然登入他們的桌面,當然,真正的本機檔案系統(如“/proc”和“/sys”)將來自他們所在的機器,而不是他們的桌面。" +"`cpu` 的一個很大的好處是,只要網路運作,使用者就可以建立非常小的 flash 映像," +"其中只包含 `cpu` 守護進程,足以讓網路運作。一旦網路啟動,用戶就可以「進入」" +"CPU,他們需要的一切都在那裡。實際上看起來他們仍然登入他們的桌面,當然,真正的" +"本機檔案系統(如“/proc”和“/sys”)將來自他們所在的機器,而不是他們的桌面。" #: src/utilities/cpu.md:184 #, fuzzy @@ -4053,8 +4172,9 @@ msgid "" "client and server use an `ssh` transport, meaning that the “wire” protocol " "is `ssh`. In this way, `cpu` is just like `ssh`." msgstr "" -"如同所提到的,`cpu` 由客戶端和伺服器組成。用戶端位於您的桌上型電腦(或筆記型電腦)上,伺服器位於遠端系統上。客戶端和伺服器都使用 `ssh` " -"傳輸,這表示「連線」協定是 `ssh`。這樣一來,`cpu` 就跟 `ssh` 一樣了。" +"如同所提到的,`cpu` 由客戶端和伺服器組成。用戶端位於您的桌上型電腦(或筆記型" +"電腦)上,伺服器位於遠端系統上。客戶端和伺服器都使用 `ssh` 傳輸,這表示「連" +"線」協定是 `ssh`。這樣一來,`cpu` 就跟 `ssh` 一樣了。" #: src/utilities/cpu.md:191 msgid "" @@ -4074,15 +4194,18 @@ msgid "" "Other, external programs continue to use `/tmp`, but they are _different_ " "instantiations of `/tmp`." msgstr "" -"遠端或伺服器電腦上的“cpud”為程式設定了“/tmp”的“私有名稱空間掛載”。 " -"「私有名稱空間掛載」只是表示只有該程式及其子程式才能看到其私有「/tmp」中的內容。其他外部程式繼續使用“/tmp”,但它們是“/tmp”的不同實例。" +"遠端或伺服器電腦上的“cpud”為程式設定了“/tmp”的“私有名稱空間掛載”。 「私有名稱" +"空間掛載」只是表示只有該程式及其子程式才能看到其私有「/tmp」中的內容。其他外" +"部程式繼續使用“/tmp”,但它們是“/tmp”的不同實例。" #: src/utilities/cpu.md:202 #, fuzzy msgid "" "The private name space mount of `/tmp` is on a filesystem in RAM. The data " "stored in `/tmp` is not visible to other processes, and not persistent." -msgstr "“/tmp” 的私有名稱空間掛載位於 RAM 中的檔案系統上。儲存在“/tmp”中的資料對於其他進程來說是不可見的,並且不是持久的。" +msgstr "" +"“/tmp” 的私有名稱空間掛載位於 RAM 中的檔案系統上。儲存在“/tmp”中的資料對於其" +"他進程來說是不可見的,並且不是持久的。" #: src/utilities/cpu.md:204 msgid "" @@ -4101,8 +4224,11 @@ msgid "" "`/usr`, `/home/$USER`, and so on, they are accessing files from the client " "machine via the built-in client file server." msgstr "" -"為了確保像“/bin/bash”和“/usr/lib/libc.so”這樣的名字能夠起作用,“cpud”設定了_bind " -"mounts_,例如從“/tmp/cpu/bin”到“/bin”。這些也是私有掛載,並且不會影響「cpud」啟動之外的任何程式。任何時候程式及其子程式存取「/bin」、「/lib」、「/usr」、「/home/$USER」等目錄中的檔案時,它們都是透過內建客戶端檔案伺服器從客戶端電腦存取檔案。" +"為了確保像“/bin/bash”和“/usr/lib/libc.so”這樣的名字能夠起作用,“cpud”設定了" +"_bind mounts_,例如從“/tmp/cpu/bin”到“/bin”。這些也是私有掛載,並且不會影響" +"「cpud」啟動之外的任何程式。任何時候程式及其子程式存取「/bin」、「/lib」、「/" +"usr」、「/home/$USER」等目錄中的檔案時,它們都是透過內建客戶端檔案伺服器從客" +"戶端電腦存取檔案。" #: src/utilities/cpu.md:213 #, fuzzy @@ -4115,8 +4241,11 @@ msgid "" "property of `cpu`, that the names used on the user’s machine work the same " "way on the remote machine. An overview of the process is shown below." msgstr "" -"客戶端“cpu”程式將完整的環境從客戶端機器傳遞到“cpud”。當客戶端程式請求執行“bash”時,“cpud”使用PATH環境變數來定位“bash”。由於私有名稱空間的掛載和綁定,「bash」將在「/bin/bash」中找到,並且其庫將在其通常的位置找到。這是 " -"`cpu` 的基本屬性,即使用者機器上使用的名稱與遠端機器上的名稱相同。過程的概述如下所示。" +"客戶端“cpu”程式將完整的環境從客戶端機器傳遞到“cpud”。當客戶端程式請求執" +"行“bash”時,“cpud”使用PATH環境變數來定位“bash”。由於私有名稱空間的掛載和綁" +"定,「bash」將在「/bin/bash」中找到,並且其庫將在其通常的位置找到。這是 " +"`cpu` 的基本屬性,即使用者機器上使用的名稱與遠端機器上的名稱相同。過程的概述" +"如下所示。" #: src/utilities/cpu.md:223 #, fuzzy @@ -4128,7 +4257,9 @@ msgstr "`cpu` 啟動" msgid "" "The startup proceeds in several steps. Every session begins with an initial " "contact from the `cpu` client to the `cpu` server." -msgstr "啟動過程分為幾個步驟進行。每個會話都以從“cpu”客戶端到“cpu”伺服器的初始聯繫開始。" +msgstr "" +"啟動過程分為幾個步驟進行。每個會話都以從“cpu”客戶端到“cpu”伺服器的初始聯繫開" +"始。" #: src/utilities/cpu.md:230 #, fuzzy @@ -4138,8 +4269,9 @@ msgid "" "following figure, we compress the Linux kernel mount and bind mounts shown " "above into a smaller box called “name space.”" msgstr "" -"`cpud` 執行的第一步是將掛載設定回客戶端。然後,它會設定綁定掛載,例如將“/bin”設定為“/tmp/cpu/bin”。在下圖中,我們將上面顯示的 " -"Linux 核心掛載和綁定掛載壓縮到一個名為「命名空間」的較小的框中。" +"`cpud` 執行的第一步是將掛載設定回客戶端。然後,它會設定綁定掛載,例如將“/" +"bin”設定為“/tmp/cpu/bin”。在下圖中,我們將上面顯示的 Linux 核心掛載和綁定掛載" +"壓縮到一個名為「命名空間」的較小的框中。" #: src/utilities/cpu.md:237 #, fuzzy @@ -4155,9 +4287,10 @@ msgid "" "locate where everything is. Native kernel mechanisms create requests as " "files are referenced, and the `cpu` file server support does the rest." msgstr "" -"最後,“cpud”設定程式運行。由於 PATH 變數已轉移到 `cpud`,且名稱空間包括 `/bin` 和 `/lib`,因此 `cpud` " -"可以執行標準 Linux `exec` " -"系統調用,而無需定位所有內容的位置。當檔案被引用時,本機核心機制會建立請求,而「cpu」檔案伺服器支援會完成其餘工作。" +"最後,“cpud”設定程式運行。由於 PATH 變數已轉移到 `cpud`,且名稱空間包括 `/" +"bin` 和 `/lib`,因此 `cpud` 可以執行標準 Linux `exec` 系統調用,而無需定位所" +"有內容的位置。當檔案被引用時,本機核心機制會建立請求,而「cpu」檔案伺服器支援" +"會完成其餘工作。" #: src/utilities/cpu.md:249 #, fuzzy @@ -4172,11 +4305,12 @@ msgid "" "process it started, and all its children, have exited. But `cpud`’s " "responsibilities to start a program ends with that first program." msgstr "" -"為什麼我們只展示一個節目而不是多個?從`cpud`的角度來看,它只啟動一個程式。從使用者的角度來看,可以有很多。但是如果有多個程式需要啟動,那就不是 " -"`cpud` " -"的責任了。如果執行多個程序,它們將由「cpud」啟動的程式啟動,也就是像shell這樣的命令解釋器。或者它可以像“date”這樣的一次性命令一樣簡單。從 " -"`cpud` 的角度來看,都是一樣的。 `cpud` 將等待,直到它啟動的進程及其所有子進程都退出。但是 `cpud` " -"啟動程序的職責隨著第一個程式的啟動而結束。" +"為什麼我們只展示一個節目而不是多個?從`cpud`的角度來看,它只啟動一個程式。從" +"使用者的角度來看,可以有很多。但是如果有多個程式需要啟動,那就不是 `cpud` 的" +"責任了。如果執行多個程序,它們將由「cpud」啟動的程式啟動,也就是像shell這樣的" +"命令解釋器。或者它可以像“date”這樣的一次性命令一樣簡單。從 `cpud` 的角度來" +"看,都是一樣的。 `cpud` 將等待,直到它啟動的進程及其所有子進程都退出。但是 " +"`cpud` 啟動程序的職責隨著第一個程式的啟動而結束。" #: src/utilities/cpu.md:259 #, fuzzy @@ -4185,7 +4319,8 @@ msgid "" "interesting, and, depending on your point of view, either magical, " "confounding, or counter-intuitive. We’ll go with magical." msgstr "" -"但是當“cpud”運行第一個程式時會發生什麼?這就是事情變得有趣的地方,而且,取決於你的觀點,它可能是神奇的、令人困惑的、或違反直覺的。我們將充滿魔力。" +"但是當“cpud”運行第一個程式時會發生什麼?這就是事情變得有趣的地方,而且,取決" +"於你的觀點,它可能是神奇的、令人困惑的、或違反直覺的。我們將充滿魔力。" #: src/utilities/cpu.md:263 #, fuzzy @@ -4197,7 +4332,8 @@ msgstr "啟動第一個程序" msgid "" "As mentioned above, `cpud` sets up mounts for a name space, and calls the " "Linux `exec()` call to start the program." -msgstr "如上所述,`cpud` 為命名空間設定掛載,並呼叫 Linux `exec()` 呼叫來啟動程式。" +msgstr "" +"如上所述,`cpud` 為命名空間設定掛載,並呼叫 Linux `exec()` 呼叫來啟動程式。" #: src/utilities/cpu.md:268 msgid "" @@ -4213,14 +4349,17 @@ msgid "" "The trace for running `date` starts right when the remote program has called " "`exec`, and the kernel is starting to find the program to run[^1]. The file " "opens look like this, on a user’s system:" -msgstr "當遠端程式呼叫「exec」時,執行「date」的追蹤就開始了,核心開始尋找要執行的程式[^1]。在使用者係統上,檔案開啟後如下所示:" +msgstr "" +"當遠端程式呼叫「exec」時,執行「date」的追蹤就開始了,核心開始尋找要執行的程" +"式[^1]。在使用者係統上,檔案開啟後如下所示:" #: src/utilities/cpu.md:286 #, fuzzy msgid "" "The kernel opened `/bin/date`, determined what libraries (files ending in " "`.so`) it needed, and opened them as well." -msgstr "核心打開“/bin/date”,確定它需要什麼庫(以“.so”結尾的檔案),並打開它們。" +msgstr "" +"核心打開“/bin/date”,確定它需要什麼庫(以“.so”結尾的檔案),並打開它們。" #: src/utilities/cpu.md:289 #, fuzzy @@ -4231,9 +4370,9 @@ msgstr "我們可以將其與本地執行進行比較:" msgid "" "Note that several files do not show up in our trace; they are in `/etc`, and " "the `cpud` does not set up a bind mount over `/etc`. But the other files " -"look very similar. You might wonder why the local version opens " -"`/etc/localtime`, and the remote version opens " -"`/usr/share/zoneinfo/America/Los_Angeles`." +"look very similar. You might wonder why the local version opens `/etc/" +"localtime`, and the remote version opens `/usr/share/zoneinfo/America/" +"Los_Angeles`." msgstr "" #: src/utilities/cpu.md:307 @@ -4252,7 +4391,9 @@ msgstr "" msgid "" "What about different architectures? What if we are using an x86 but want to " "`cpu` to an ARM processor?" -msgstr "那麼不同的架構又如何呢?如果我們使用的是 x86 但想要將「cpu」轉換為 ARM 處理器該怎麼辦?" +msgstr "" +"那麼不同的架構又如何呢?如果我們使用的是 x86 但想要將「cpu」轉換為 ARM 處理器" +"該怎麼辦?" #: src/utilities/cpu.md:319 #, fuzzy @@ -4261,8 +4402,8 @@ msgid "" "binaries. We might have an entire ARM file system tree in `~/arm`, for " "example. We would then invoke `cpu` as follows:" msgstr "" -"我們可以設定本機「cpu」來與需要不同二進位檔案的遠端「cpu」進行通訊。例如,我們可能在“~/arm”中有一個完整的 ARM " -"檔案系統樹。然後我們將按如下方式調用“cpu”:" +"我們可以設定本機「cpu」來與需要不同二進位檔案的遠端「cpu」進行通訊。例如,我" +"們可能在“~/arm”中有一個完整的 ARM 檔案系統樹。然後我們將按如下方式調用“cpu”:" #: src/utilities/cpu.md:327 #, fuzzy @@ -4300,19 +4441,19 @@ msgstr "一組二進位檔案供您嘗試" #, fuzzy msgid "" "In order for you to try it out, start by working with the set of `cpu` " -"binaries at " -"[https://github.com/u-root/cpubinaries](https://github.com/u-root/cpubinaries). " -"With them, you can create a bootable, mountable USB image that you can " -"download. The image contains a `cpu` client that runs on Linux, a private " -"key, and, when booted, it starts a `cpu` daemon and waits to serve `cpu` " -"clients. The `cpu` client is statically linked and hence should run on any " -"Linux from the last 10 years or so." -msgstr "" -"為了讓您嘗試一下,請先使用 " -"[https://github.com/u-root/cpubinaries](https://github.com/u-root/cpubinaries) " -"上的一組 `cpu` 二進位檔案。使用它們,您可以建立可啟動、可安裝且可下載的 USB 映像。該映像包含一個在 Linux " -"上執行的「cpu」用戶端、一個私鑰,並且在啟動時,它會啟動一個「cpu」守護程式並等待為「cpu」用戶端提供服務。 " -"「cpu」用戶端是靜態連結的,因此應該可以在過去 10 年左右的任何 Linux 上運行。" +"binaries at [https://github.com/u-root/cpubinaries](https://github.com/u-" +"root/cpubinaries). With them, you can create a bootable, mountable USB image " +"that you can download. The image contains a `cpu` client that runs on Linux, " +"a private key, and, when booted, it starts a `cpu` daemon and waits to serve " +"`cpu` clients. The `cpu` client is statically linked and hence should run on " +"any Linux from the last 10 years or so." +msgstr "" +"為了讓您嘗試一下,請先使用 [https://github.com/u-root/cpubinaries](https://" +"github.com/u-root/cpubinaries) 上的一組 `cpu` 二進位檔案。使用它們,您可以建" +"立可啟動、可安裝且可下載的 USB 映像。該映像包含一個在 Linux 上執行的「cpu」用" +"戶端、一個私鑰,並且在啟動時,它會啟動一個「cpu」守護程式並等待為「cpu」用戶" +"端提供服務。 「cpu」用戶端是靜態連結的,因此應該可以在過去 10 年左右的任何 " +"Linux 上運行。" #: src/utilities/cpu.md:349 #, fuzzy @@ -4326,15 +4467,17 @@ msgid "" "as a public key. Also included, should you want to build your own, is the " "config file (`cpu.config`)." msgstr "" -"一個核心(`cpukernel`)帶有一個內建的 " -"initramfs,其中包含`cpud`,以及一個公鑰。如果您想建立自己的設定檔(`cpu.config`),其中還包括設定檔。" +"一個核心(`cpukernel`)帶有一個內建的 initramfs,其中包含`cpud`,以及一個公" +"鑰。如果您想建立自己的設定檔(`cpu.config`),其中還包括設定檔。" #: src/utilities/cpu.md:354 #, fuzzy msgid "" "A binary client program, `cpu`, as well as the private key to use. You can " "place this key in `~/.ssh` or specify it via the `-key` option to `cpu`." -msgstr "一個二進位客戶端程式、`cpu`以及要使用的私鑰。您可以將此金鑰放在 `~/.ssh` 中或透過 `-key` 選項將其指定給 `cpu`。" +msgstr "" +"一個二進位客戶端程式、`cpu`以及要使用的私鑰。您可以將此金鑰放在 `~/.ssh` 中或" +"透過 `-key` 選項將其指定給 `cpu`。" #: src/utilities/cpu.md:356 msgid "" @@ -4354,8 +4497,9 @@ msgid "" "uncompress to about 7GB. You can use the `TESTQEMU` script to try it out, or " "use `dd` to write it to a USB stick and boot that stick on an x86 system." msgstr "" -"`usbstick.xz` 是一個可啟動的壓縮 USB 棒映像。解壓縮後大小約 " -"7GB。您可以使用「TESTQEMU」腳本進行嘗試,或使用「dd」將其寫入 USB 記憶棒並在 x86 系統上啟動該記憶棒。" +"`usbstick.xz` 是一個可啟動的壓縮 USB 棒映像。解壓縮後大小約 7GB。您可以使用" +"「TESTQEMU」腳本進行嘗試,或使用「dd」將其寫入 USB 記憶棒並在 x86 系統上啟動" +"該記憶棒。" #: src/utilities/cpu.md:364 msgid "" @@ -4368,7 +4512,9 @@ msgstr "" msgid "" "The `cpukernel` was built using the `github.com:/mainboards` repo. If you " "clone this repo, the following commands will rebuild the kernel:" -msgstr "`cpukernel` 是使用 `github.com:/mainboards` repo 建構的。如果您克隆此 repo,以下命令將重建內核:" +msgstr "" +"`cpukernel` 是使用 `github.com:/mainboards` repo 建構的。如果您克隆此 repo," +"以下命令將重建內核:" #: src/utilities/cpu.md:370 #, fuzzy @@ -4404,8 +4550,8 @@ msgid "" "not in a windowing environment, add `-nographic` to the command below. In " "any event, at the `boot:` prompt, you can hit return or wait:" msgstr "" -"如何運行“qemu”取決於您是否需要圖形:如果您不在視窗環境中,請在下面的命令中添加“-nographic”。無論如何,在 `boot:` " -"提示字元下,您可以按回車鍵或等待:" +"如何運行“qemu”取決於您是否需要圖形:如果您不在視窗環境中,請在下面的命令中添" +"加“-nographic”。無論如何,在 `boot:` 提示字元下,您可以按回車鍵或等待:" #: src/utilities/cpu.md:403 #, fuzzy @@ -4435,8 +4581,10 @@ msgid "" "so on. For this reason, we can run `date` and it will find its needed " "libraries in `/usr`, as the `ldd` command demonstrates." msgstr "" -"如您所見,`/tmp/cpu` 透過 9p 安裝回 `cpu` 用戶端(回想一下,`cpu` 用戶端是 9p " -"伺服器,因此您的檔案在遠端節點上可見)。此外,您還可以看到「/usr」、「/bin」、「/etc」等上的掛載。因此,我們可以運行“date”,它將在“/usr”中找到所需的庫,如“ldd”命令所示。" +"如您所見,`/tmp/cpu` 透過 9p 安裝回 `cpu` 用戶端(回想一下,`cpu` 用戶端是 " +"9p 伺服器,因此您的檔案在遠端節點上可見)。此外,您還可以看到「/usr」、「/" +"bin」、「/etc」等上的掛載。因此,我們可以運行“date”,它將在“/usr”中找到所需的" +"庫,如“ldd”命令所示。" #: src/utilities/cpu.md:456 #, fuzzy @@ -4456,7 +4604,8 @@ msgid "" "demo. You should not use them for any other purpose, as they are in a Github " "repo and hence open to the world." msgstr "" -"警告!我們在 repo 中提供的 `cpu` 鍵僅用於此演示。您不應將它們用於任何其他目的,因為它們位於 Github 儲存庫中,因此向全世界開放。" +"警告!我們在 repo 中提供的 `cpu` 鍵僅用於此演示。您不應將它們用於任何其他目" +"的,因為它們位於 Github 儲存庫中,因此向全世界開放。" #: src/utilities/cpu.md:465 #, fuzzy @@ -4470,8 +4619,8 @@ msgid "" "replaced with those from your machine. You might, for example, `cpu` into an " "ARM system, and hence only need a `/home`, but nothing else." msgstr "" -"有時,您不希望所有“/usr”和“/bin”目錄都被您機器上的目錄取代。例如,您可以將“cpu”放入 ARM " -"系統中,因此只需要“/home”,而不需要其他任何東西。" +"有時,您不希望所有“/usr”和“/bin”目錄都被您機器上的目錄取代。例如,您可以" +"將“cpu”放入 ARM 系統中,因此只需要“/home”,而不需要其他任何東西。" #: src/utilities/cpu.md:471 #, fuzzy @@ -4482,9 +4631,10 @@ msgid "" "it to be empty: `-namespace=\"\"`, for example. If it is empty, `cpud` will " "only mount the 9p server on `/tmp/cpu`." msgstr "" -"`-namespace` 開關可讓您控制命名空間。它的結構有點像路徑變量,由 `:`\\ " -"分隔的組件組成。預設值是“/lib:/lib64:/usr:/bin:/etc:/home”。您可以修改它,甚至強制它為空:例如`-namespace=\"\"`。如果為空,`cpud` " -"將僅將 9p 伺服器掛載在 `/tmp/cpu` 上。" +"`-namespace` 開關可讓您控制命名空間。它的結構有點像路徑變量,由 `:`\\ 分隔的" +"組件組成。預設值是“/lib:/lib64:/usr:/bin:/etc:/home”。您可以修改它,甚至強制" +"它為空:例如`-namespace=\"\"`。如果為空,`cpud` 將僅將 9p 伺服器掛載在 `/tmp/" +"cpu` 上。" #: src/utilities/cpu.md:477 #, fuzzy @@ -4496,25 +4646,30 @@ msgstr "以下範例將 CPU 連接到 ARM64 主機,共用 /home,但不共用 #: src/utilities/cpu.md:483 #, fuzzy msgid "" -"For an different architecture system, we might want to specify that the " -"/bin, /lib, and other directories have a different path on the remote than " +"For an different architecture system, we might want to specify that the /" +"bin, /lib, and other directories have a different path on the remote than " "they have locally. The -namespace switch allows this via an = sign:" msgstr "" -"對於不同的架構系統,我們可能想要指定 /bin、/lib 和其他目錄在遠端上的路徑與本機的路徑不同。 -namespace 開關透過 = 符號允許這樣做:" +"對於不同的架構系統,我們可能想要指定 /bin、/lib 和其他目錄在遠端上的路徑與本" +"機的路徑不同。 -namespace 開關透過 = 符號允許這樣做:" #: src/utilities/cpu.md:491 #, fuzzy msgid "" "In this case, `/bin`, `/usr`, and `/lib` on the remote system are supplied " "by `/arm/bin`, `/arm/lib`, and `/arm/usr` locally." -msgstr "在這種情況下,遠端系統上的“/bin”、“/usr”和“/lib”由本地的“/arm/bin”、“/arm/lib”和“/arm/usr”提供。" +msgstr "" +"在這種情況下,遠端系統上的“/bin”、“/usr”和“/lib”由本地的“/arm/bin”、“/arm/" +"lib”和“/arm/usr”提供。" #: src/utilities/cpu.md:494 #, fuzzy msgid "" "If we need to test `cpu` without doing bind mounts, we can specify a `PWD` " "that requires no mounts and an empty namespace:" -msgstr "如果我們需要在不進行綁定掛載的情況下測試“cpu”,我們可以指定不需要掛載和空命名空間的“PWD”:" +msgstr "" +"如果我們需要在不進行綁定掛載的情況下測試“cpu”,我們可以指定不需要掛載和空命名" +"空間的“PWD”:" #: src/utilities/cpu.md:511 #, fuzzy @@ -4522,20 +4677,24 @@ msgid "" "There is a bit of a subtlety about the interaction of the namespace and 9p " "switches, which we are still discussing: the -namespace value can override " "the -9p switch." -msgstr "命名空間和 9p 開關的交互作用有一點微妙,我們仍在討論:-namespace 值可以覆蓋 -9p 開關。" +msgstr "" +"命名空間和 9p 開關的交互作用有一點微妙,我們仍在討論:-namespace 值可以覆蓋 " +"-9p 開關。" #: src/utilities/cpu.md:514 #, fuzzy msgid "" "If you set -9p=false but have a non-empty namespace variable, then 9p will " "be set to true. So in this example, the -9p switch has no effect:" -msgstr "如果您設定 -9p=false 但有一個非空的命名空間變量,那麼 9p 將設為 true。因此在這個例子中,-9p 開關沒有任何效果:" +msgstr "" +"如果您設定 -9p=false 但有一個非空的命名空間變量,那麼 9p 將設為 true。因此在" +"這個例子中,-9p 開關沒有任何效果:" #: src/utilities/cpu.md:521 msgid "" "Why is this? Because the default value of -namespace is non-empty. The open " -"question: should -9p=false force the namespace to be empty; or should a " -"none-empty namespace for -9p to be true? For now, we have chosen the latter " +"question: should -9p=false force the namespace to be empty; or should a none-" +"empty namespace for -9p to be true? For now, we have chosen the latter " "approach." msgstr "" @@ -4569,8 +4728,9 @@ msgid "" "suitable options, use docker to start the container with `cpu` as the first " "program it runs." msgstr "" -"維護檔案系統映像不方便。我們可以在遠端主機上使用 Docker 容器。我們可以採用標準的 Docker 容器,並使用合適的選項,使用 docker " -"啟動容器,並以「cpu」作為其運行的第一個程式。" +"維護檔案系統映像不方便。我們可以在遠端主機上使用 Docker 容器。我們可以採用標" +"準的 Docker 容器,並使用合適的選項,使用 docker 啟動容器,並以「cpu」作為其運" +"行的第一個程式。" #: src/utilities/cpu.md:543 msgid "" @@ -4586,10 +4746,8 @@ msgstr "在這個範例中,我們啟動一個標準的 Ubuntu 映像:" #: src/utilities/cpu.md:550 #, fuzzy -msgid "" -"'ubuntu@sha256:073e060cec31fed4a86fcd45ad6f80b1f135109ac2c0b57272f01909c9626486'" -msgstr "" -"'ubuntu@sha256:073e060cec31fed4a86fcd45ad6f80b1f135109ac2c0b57272f01909c9626486'" +msgid "'ubuntu@sha256:073e060cec31fed4a86fcd45ad6f80b1f135109ac2c0b57272f01909c9626486'" +msgstr "'ubuntu@sha256:073e060cec31fed4a86fcd45ad6f80b1f135109ac2c0b57272f01909c9626486'" #: src/utilities/cpu.md:555 #, fuzzy @@ -4602,8 +4760,10 @@ msgid "" "bbin buildbin env go init lib proc tcz ubin var\n" "bin dev etc home key.pub lib64 sys tmp usr\n" msgstr "" -"的平台(linux/arm64/v8)與偵測到的主機平台(linux/amd64)不匹配,並且沒有要求特定平台\n" -"1970/01/01 21:37:32 CPUD:警告:在 /lib64 上安裝 /tmp/cpu/lib64 失敗:沒有此檔案或目錄\n" +"的平台(linux/arm64/v8)與偵測到的主機平台(linux/amd64)不匹配,並且沒有要求" +"特定平台\n" +"1970/01/01 21:37:32 CPUD:警告:在 /lib64 上安裝 /tmp/cpu/lib64 失敗:沒有此" +"檔案或目錄\n" "$ ls\n" "bbin buildbin env go init lib proc tcz ubin var\n" "bin dev etc home key.pub lib64 sys tmp usr" @@ -4613,7 +4773,9 @@ msgstr "" msgid "" "Note that the image was update and then started. The `/lib64` mount fails, " "because there is no `/lib64` directory in the image, but that is harmless." -msgstr "請注意,圖像已更新,然後啟動。 `/lib64` 掛載失敗,因為鏡像中沒有 `/lib64` 目錄,但這是無害的。" +msgstr "" +"請注意,圖像已更新,然後啟動。 `/lib64` 掛載失敗,因為鏡像中沒有 `/lib64` 目" +"錄,但這是無害的。" #: src/utilities/cpu.md:565 #, fuzzy @@ -4629,7 +4791,8 @@ msgstr "“/home/rminnich/go/b…”" #: src/utilities/cpu.md:573 #, fuzzy -msgid "Even though the binaries themselves are running on the remote ARM system." +msgid "" +"Even though the binaries themselves are running on the remote ARM system." msgstr "即使二進位檔案本身在遠端 ARM 系統上運行。" #: src/utilities/cpu.md:575 @@ -4643,14 +4806,18 @@ msgid "" "While 9p is very general, because it is _transport-independent_, there are " "cases where we can get much better performance by using a less general file " "system. One such case is with virtofs." -msgstr "雖然 9p 非常通用,因為它與傳輸無關,但在某些情況下,我們可以透過使用不太通用的檔案系統來獲得更好的效能。其中一個案例是 virtofs。" +msgstr "" +"雖然 9p 非常通用,因為它與傳輸無關,但在某些情況下,我們可以透過使用不太通用" +"的檔案系統來獲得更好的效能。其中一個案例是 virtofs。" #: src/utilities/cpu.md:581 #, fuzzy msgid "" "Because virtiofs is purely from guest kernel vfs to host kernel vfs, via " "virtio transport, it has been measured to run at up to 100 times faster." -msgstr "由於 virtiofs 純粹是從客戶核心 vfs 到主機核心 vfs,透過 virtio 傳輸,因此經測量運行速度最高可提高 100 倍。" +msgstr "" +"由於 virtiofs 純粹是從客戶核心 vfs 到主機核心 vfs,透過 virtio 傳輸,因此經測" +"量運行速度最高可提高 100 倍。" #: src/utilities/cpu.md:584 #, fuzzy @@ -4662,9 +4829,10 @@ msgid "" "contents of the file or by passing the `CPU_FSTAB` environment variable, " "which happens by default." msgstr "" -"我們可以透過指定 virtiofs 掛載來使用 virtiofs。 cpud " -"將尋找環境變數“CPU_FSTAB”,其格式為“fstab(5)”。客戶端可以透過兩種方式之一指定 " -"fstab。要么透過“-fstab”開關,在這種情況下客戶端將使用檔案的內容填充“CPU_FSTAB”變量,要么通過傳遞“CPU_FSTAB”環境變量,這是預設發生的。" +"我們可以透過指定 virtiofs 掛載來使用 virtiofs。 cpud 將尋找環境變" +"數“CPU_FSTAB”,其格式為“fstab(5)”。客戶端可以透過兩種方式之一指定 fstab。要么" +"透過“-fstab”開關,在這種情況下客戶端將使用檔案的內容填充“CPU_FSTAB”變量,要么" +"通過傳遞“CPU_FSTAB”環境變量,這是預設發生的。" #: src/utilities/cpu.md:591 #, fuzzy @@ -4673,7 +4841,8 @@ msgid "" "any value of the CPU_FSTAB environment variable. On the server side, cpud " "does not use the -fstab switch, only using the environment variable." msgstr "" -"在客戶端,透過 -fstab 指定的檔案優先於 CPU_FSTAB 環境變數的任何值。在伺服器端,cpud 不使用 -fstab 開關,只使用環境變數。" +"在客戶端,透過 -fstab 指定的檔案優先於 CPU_FSTAB 環境變數的任何值。在伺服器" +"端,cpud 不使用 -fstab 開關,只使用環境變數。" #: src/utilities/cpu.md:595 #, fuzzy @@ -4685,7 +4854,8 @@ msgstr "以下是使用具有一個條目的 CPU_FSTAB 變數的範例:" msgid "" "In this case, the virtiofs server had the name myfs, and on the remote side, " "virtiofs was mounted on /mnt." -msgstr "在這種情況下,virtiofs 伺服器名為 myfs,而在遠端端,virtiofs 安裝在 /mnt 上。" +msgstr "" +"在這種情況下,virtiofs 伺服器名為 myfs,而在遠端端,virtiofs 安裝在 /mnt 上。" #: src/utilities/cpu.md:604 #, fuzzy @@ -4703,7 +4873,9 @@ msgid "" "Note that both the environment variable and the fstab can have more than one " "entry, but they entries must be separate by newlines. Hence, this will not " "work:" -msgstr "請注意,環境變數和 fstab 都可以有多個條目,但它們的條目必須以換行符號分隔。因此,這是行不通的:" +msgstr "" +"請注意,環境變數和 fstab 都可以有多個條目,但它們的條目必須以換行符號分隔。因" +"此,這是行不通的:" #: src/utilities/cpu.md:624 #, fuzzy @@ -4752,7 +4924,8 @@ msgstr "" #: src/utilities/cpu.md:642 #, fuzzy -msgid "if there are no 9p mounts, and no fstab mounts, cpu is equivalent to ssh." +msgid "" +"if there are no 9p mounts, and no fstab mounts, cpu is equivalent to ssh." msgstr "如果沒有 9p 掛載,也沒有 fstab 掛載,則 cpu 相當於 ssh。" #: src/utilities/cpu.md:644 @@ -4775,7 +4948,9 @@ msgstr "聯絡人:[Ron Minnich](https://github.com/rminnich)" msgid "" "DUT is a simple Device Under Test program that gives you control of a node. " "It is intended to make very fast startup and control easy." -msgstr "DUT 是一個簡單的被測設備程序,可讓您控制節點。其目的是使快速啟動和控制變得簡單。" +msgstr "" +"DUT 是一個簡單的被測設備程序,可讓您控制節點。其目的是使快速啟動和控制變得簡" +"單。" #: src/utilities/dut.md:8 msgid "" @@ -4809,7 +4984,8 @@ msgstr "成分" #: src/utilities/dut.md:21 #, fuzzy -msgid "DUT is intended to be built into a u-root image. First one must fetch it:" +msgid "" +"DUT is intended to be built into a u-root image. First one must fetch it:" msgstr "DUT 旨在建置到 u-root 映像中。首先必須取得它:" #: src/utilities/dut.md:27 @@ -4817,7 +4993,8 @@ msgstr "DUT 旨在建置到 u-root 映像中。首先必須取得它:" msgid "" "DUT source tree is structured such that a program called uinit is produced. " "This is convenient for u-root usage." -msgstr "DUT 來源樹的結構使得產生一個名為 uinit 的程式。這對於 u-root 使用很方便。" +msgstr "" +"DUT 來源樹的結構使得產生一個名為 uinit 的程式。這對於 u-root 使用很方便。" #: src/utilities/dut.md:29 #, fuzzy @@ -4845,9 +5022,10 @@ msgid "" "'tester' mode on 192.168.0.1. Once connected, it functions as a server and " "waits for requests." msgstr "" -"啟動時,標準 init 程式會找到 dut,並執行它。設備上的標準模式是設備模式,dut 將啟動以太網,目前使用 192.168.0.2,並假設測試儀是 " -"192.168.0.1(這應該是固定的...)。然後它將嘗試連接到 192.168.0.1 上以「測試器」模式運行的 " -"uinit。一旦連接,它就會作為伺服器運行並等待請求。" +"啟動時,標準 init 程式會找到 dut,並執行它。設備上的標準模式是設備模式,dut " +"將啟動以太網,目前使用 192.168.0.2,並假設測試儀是 192.168.0.1(這應該是固定" +"的...)。然後它將嘗試連接到 192.168.0.1 上以「測試器」模式運行的 uinit。一旦" +"連接,它就會作為伺服器運行並等待請求。" #: src/utilities/dut.md:47 #, fuzzy @@ -4865,7 +5043,9 @@ msgid "" "On the controller, the program waits for a connection and then starts " "issuing commands to the device. The controller has the option of calling the " "following RPC functions:" -msgstr "在控制器上,程式等待連接,然後開始向裝置發出命令。控制器可以選擇呼叫以下 RPC 函數:" +msgstr "" +"在控制器上,程式等待連接,然後開始向裝置發出命令。控制器可以選擇呼叫以下 RPC " +"函數:" #: src/utilities/dut.md:63 #, fuzzy @@ -4883,16 +5063,17 @@ msgid "" "and reconnect after a reboot. It's been good for finding out if a particular " "DXE can be removed." msgstr "" -"目前測試模式執行我用於 DXE 清理的 RPC " -"序列,即歡迎,然後是重啟,然後是歡迎。此序列驗證我是否可以從開機開始運行網路、重新啟動並在重新啟動後重新連接。這對於找出是否可以刪除特定的 DXE " -"很有幫助。" +"目前測試模式執行我用於 DXE 清理的 RPC 序列,即歡迎,然後是重啟,然後是歡迎。" +"此序列驗證我是否可以從開機開始運行網路、重新啟動並在重新啟動後重新連接。這對" +"於找出是否可以刪除特定的 DXE 很有幫助。" #: src/utilities/dut.md:79 #, fuzzy msgid "" "Once the second Welcome has happened, if an sshd is installed, it will have " "been started, and you can do additional commands." -msgstr "一旦出現第二個歡迎訊息,如果安裝了 sshd,它將啟動,您可以執行其他命令。" +msgstr "" +"一旦出現第二個歡迎訊息,如果安裝了 sshd,它將啟動,您可以執行其他命令。" #: src/utilities/dut.md:81 #, fuzzy @@ -4911,22 +5092,27 @@ msgstr "顯然,我們還可以做更多。但這是建立 DUT 環境的有用 msgid "" "The aim of LinuxBoot is to reduce complexity and obscure firmware by moving " "that functionality into kernel and user-space." -msgstr "LinuxBoot 的目標是透過將功能移入核心和使用者空間來降低複雜性和模糊韌體。" +msgstr "" +"LinuxBoot 的目標是透過將功能移入核心和使用者空間來降低複雜性和模糊韌體。" #: src/implementation.md:6 #, fuzzy msgid "" -"This chapter describes the procedures from a [LinuxBoot " -"workshop](https://docs.google.com/presentation/d/1s9ka4v7leKeJa3116AQoNb9cv3OqmnW6pgn0ov9WiHo/edit?ts=5e2b227b#slide=id.g7ceec54197_4_163) " -"where an Atomic Pi board with UEFI firmware was converted to run LinuxBoot. " -"The build materials associated with this are found at " -"[digitalloggers/atomicpi](https://github.com/linuxboot/mainboards/tree/master/digitalloggers/atomicpi)." +"This chapter describes the procedures from a [LinuxBoot workshop](https://" +"docs.google.com/presentation/d/1s9ka4v7leKeJa3116AQoNb9cv3OqmnW6pgn0ov9WiHo/" +"edit?ts=5e2b227b#slide=id.g7ceec54197_4_163) where an Atomic Pi board with " +"UEFI firmware was converted to run LinuxBoot. The build materials associated " +"with this are found at [digitalloggers/atomicpi](https://github.com/" +"linuxboot/mainboards/tree/master/digitalloggers/atomicpi)." msgstr "" -"本章介紹了 [LinuxBoot " -"研討會](https://docs.google.com/presentation/d/1s9ka4v7leKeJa3116AQoNb9cv3OqmnW6pgn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov954197)板轉換為運行 " -"LinuxBoot。與此相關的建造材料可以在 " -"[digitalloggers/atomicpi](https://github.com/linuxboot/mainboards/tree/master/digitalloggers/atomicpi) " -"中找到。" +"本章介紹了 [LinuxBoot 研討會](https://docs.google.com/presentation/d/" +"1s9ka4v7leKeJa3116AQoNb9cv3OqmnW6pgn0ov9WiHo/edit?" +"ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?" +"ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?" +"ts=5e2b227b#slide=id.ggn0ov9WiHo/edit?ts=5e2b227b#slide=id.ggn0ov954197)板轉" +"換為運行 LinuxBoot。與此相關的建造材料可以在 [digitalloggers/atomicpi]" +"(https://github.com/linuxboot/mainboards/tree/master/digitalloggers/" +"atomicpi) 中找到。" #: src/implementation.md:12 #, fuzzy @@ -4968,10 +5154,10 @@ msgstr "" #, fuzzy msgid "" "LinuxBoot replaces most of the UEFI software with Linux. LinuxBoot has an " -"initramfs provided by [u-root](../u-root.md)." +"initramfs provided by [u-root](./u-root.md)." msgstr "" -"LinuxBoot 用 Linux 取代了大部分 UEFI 軟體。 LinuxBoot 有一個由 [u-root](../u-root.md) 提供的 " -"initramfs。" +"LinuxBoot 用 Linux 取代了大部分 UEFI 軟體。 LinuxBoot 有一個由 [u-root](../u-" +"root.md) 提供的 initramfs。" #: src/implementation.md:28 #, fuzzy @@ -4979,7 +5165,9 @@ msgid "" "The above are stored inside a flash filesystem (FFS) inside a region of " "flash on your motherboard (the BIOS region). Another important region of " "flash is the ME region." -msgstr "以上內容儲存在主機板快閃記憶體區域(BIOS 區域)內的快閃記憶體檔案系統(FFS)內。 Flash的另一個重要區域是ME區域。" +msgstr "" +"以上內容儲存在主機板快閃記憶體區域(BIOS 區域)內的快閃記憶體檔案系統(FFS)" +"內。 Flash的另一個重要區域是ME區域。" #: src/implementation.md:32 #, fuzzy @@ -4991,9 +5179,10 @@ msgid "" "ME is in \"BootGuard\" mode, your machine will be unusable. You need to run " "a tool called `me_cleaner` on the image to disable BootGuard." msgstr "" -"管理引擎 (ME) 是嵌入在英特爾平台控制器中心 (PCH) 中的 x86 CPU。它運行 Minix 作業系統,該系統首先啟動並啟用時脈和 GPIO " -"等硬體。 ME檢查快閃記憶體的內容,用於實現「BootGuard」。如果您重新刷新並且 ME " -"處於“BootGuard”模式,您的機器將無法使用。您需要在映像上執行名為「me_cleaner」的工具來停用 BootGuard。" +"管理引擎 (ME) 是嵌入在英特爾平台控制器中心 (PCH) 中的 x86 CPU。它運行 Minix " +"作業系統,該系統首先啟動並啟用時脈和 GPIO 等硬體。 ME檢查快閃記憶體的內容,用" +"於實現「BootGuard」。如果您重新刷新並且 ME 處於“BootGuard”模式,您的機器將無" +"法使用。您需要在映像上執行名為「me_cleaner」的工具來停用 BootGuard。" #: src/implementation.md:39 #, fuzzy @@ -5005,7 +5194,9 @@ msgstr "如何在你的硬體上安裝 LinuxBoot" msgid "" "Start with a board running standard UEFI and proceed from \"zero changes to " "FLASH\" to \"max changes\" in 4 steps:" -msgstr "從執行標準 UEFI 的主機板開始,透過 4 個步驟從「對 FLASH 進行零更改」到「最大更改」:" +msgstr "" +"從執行標準 UEFI 的主機板開始,透過 4 個步驟從「對 FLASH 進行零更改」到「最大" +"更改」:" #: src/implementation.md:44 #, fuzzy @@ -5074,7 +5265,8 @@ msgstr "用開源組件取代部分 DXE(透過替換進行更改)" msgid "" "One of the challenges in the above is in finding (or reclaiming) enough " "space in flash to shoehorn your kernel and initrd into." -msgstr "上述挑戰之一是找到(或回收)快閃記憶體中的足夠空間來塞入核心和 initrd。" +msgstr "" +"上述挑戰之一是找到(或回收)快閃記憶體中的足夠空間來塞入核心和 initrd。" #: src/implementation.md:61 #, fuzzy @@ -5173,7 +5365,9 @@ msgid "" "By applying `me_cleaner`, it has been observed that almost 4M of flash ram " "can be reclaimed for use. That 4M is enough to store a reasonably full " "featured compressed initrd image." -msgstr "透過應用“me_cleaner”,可以觀察到幾乎 4M 的快閃記憶體可以被回收使用。 4M 足以儲存功能相當齊全的壓縮 initrd 映像。" +msgstr "" +"透過應用“me_cleaner”,可以觀察到幾乎 4M 的快閃記憶體可以被回收使用。 4M 足以" +"儲存功能相當齊全的壓縮 initrd 映像。" #: src/implementation.md:101 #, fuzzy @@ -5263,14 +5457,17 @@ msgid "" "Protocol (DHCP), using broadcast DISCOVER, and Trivial File Transfer " "Protocol (TFTP) to get the boot information you need." msgstr "" -"如果系統只有網路接口,則可以使用動態主機設定協定 (DHCP)、使用廣播 DISCOVER 和簡單檔案傳輸協定 (TFTP) 來取得所需的啟動資訊。" +"如果系統只有網路接口,則可以使用動態主機設定協定 (DHCP)、使用廣播 DISCOVER 和" +"簡單檔案傳輸協定 (TFTP) 來取得所需的啟動資訊。" #: src/implementation.md:127 #, fuzzy msgid "" "Configuration information is provided by REPLY to a DHCP request. The REPLY " "returns an IP, server, and a configuration file name that provides:" -msgstr "設定資訊由 DHCP 請求的回應提供。 REPLY 傳回 IP、伺服器和一個設定檔名,其中包含以下內容:" +msgstr "" +"設定資訊由 DHCP 請求的回應提供。 REPLY 傳回 IP、伺服器和一個設定檔名,其中包" +"含以下內容:" #: src/implementation.md:130 #, fuzzy @@ -5294,8 +5491,9 @@ msgid "" "for 16M kernels. With TFTP it's very slow and TFTP won't work with initramfs " "much large than 32MiB. Most LinuxBoot shops use or are transitioning to HTTP." msgstr "" -"數據由TFTP提供。即使對於 16M 內核,HTTP 下載也只需幾分之一秒。使用 TFTP 非常慢,且 TFTP 無法與大於 32MiB 的 " -"initramfs 一起工作。大多數 LinuxBoot 商店都使用或正在轉換為 HTTP。" +"數據由TFTP提供。即使對於 16M 內核,HTTP 下載也只需幾分之一秒。使用 TFTP 非常" +"慢,且 TFTP 無法與大於 32MiB 的 initramfs 一起工作。大多數 LinuxBoot 商店都使" +"用或正在轉換為 HTTP。" #: src/implementation.md:138 #, fuzzy @@ -5304,8 +5502,8 @@ msgid "" "They can be loaded as three pieces or compiled and loaded as one piece, as " "described in this section." msgstr "" -"注意:啟動映像需要一個核心(bzImage)+一個 initramfs " -"+一個命令列。它們可以作為三個部分加載,也可以作為一個部分進行編譯和加載,如本節所述。" +"注意:啟動映像需要一個核心(bzImage)+一個 initramfs +一個命令列。它們可以作" +"為三個部分加載,也可以作為一個部分進行編譯和加載,如本節所述。" #: src/implementation.md:142 #, fuzzy @@ -5325,13 +5523,17 @@ msgid "" "directly by hardware to have something to roll back to if anything goes " "wrong. Avoid cheap SOIC clip adapters that don't allow you to use standard " "jumper leads. For a good example of using a Raspberry Pi 3/4 to read/write, " -"see [Sakaki's EFI Install Guide/Disabling the Intel Management " -"Engine](https://wiki.gentoo.org/wiki/Sakaki%27s_EFI_Install_Guide/Disabling_the_Intel_Management_Engine#imt_check)" -msgstr "" -"硬體:值得購買 Pomona 5250 SOIC Clip " -"轉接器,以便透過硬體直接讀取,以便在出現任何問題時可以回溯。避免使用不允許您使用標準跳線的廉價 SOIC 夾子轉接器。有關使用 Raspberry Pi " -"3/4 進行讀取/寫入的良好範例,請參閱 [Sakaki 的 EFI " -"安裝指南/停用英特爾管理引擎](https://wiki.gentoo.org/wiki/Sakaki%27s_EFI_Install_Guide/Disabling_the_Intel_Management_Engine#imt_Install_Guide/Disabling_the_Intel_Management_Engine#imt_chch)" +"see [Sakaki's EFI Install Guide/Disabling the Intel Management Engine]" +"(https://wiki.gentoo.org/wiki/Sakaki%27s_EFI_Install_Guide/" +"Disabling_the_Intel_Management_Engine#imt_check)" +msgstr "" +"硬體:值得購買 Pomona 5250 SOIC Clip 轉接器,以便透過硬體直接讀取,以便在出現" +"任何問題時可以回溯。避免使用不允許您使用標準跳線的廉價 SOIC 夾子轉接器。有關" +"使用 Raspberry Pi 3/4 進行讀取/寫入的良好範例,請參閱 [Sakaki 的 EFI 安裝指" +"南/停用英特爾管理引擎](https://wiki.gentoo.org/wiki/" +"Sakaki%27s_EFI_Install_Guide/" +"Disabling_the_Intel_Management_Engine#imt_Install_Guide/" +"Disabling_the_Intel_Management_Engine#imt_chch)" #: src/implementation.md:153 #, fuzzy @@ -5342,8 +5544,9 @@ msgid "" "software methods for reading & writing flash, but with hardware to drop back " "to." msgstr "" -"軟體:使用有效的啟動映像,使用 flashrom 讀取快閃記憶體的映像。要寫入,您可能需要停用快閃記憶體保護(在主機板上尋找「ME " -"製造模式」跳線)。圖中通常使用軟體方法讀取和寫入閃存,但使用硬體來回退。" +"軟體:使用有效的啟動映像,使用 flashrom 讀取快閃記憶體的映像。要寫入,您可能" +"需要停用快閃記憶體保護(在主機板上尋找「ME 製造模式」跳線)。圖中通常使用軟體" +"方法讀取和寫入閃存,但使用硬體來回退。" #: src/implementation.md:159 #, fuzzy @@ -5359,8 +5562,9 @@ msgid "" "volume free space is in that filesystem - this will be an initial limit when " "you come to place your kernel and initramfs in it in step 5." msgstr "" -"使用 UEFITool 開啟您的快閃記憶體映像,並找到包含 DXE 的檔案系統(它將包含 Shell " -"或「Shell_Fu​​ll」)。檢查檔案系統中有多少磁碟區可用空間 - 當您在步驟 5 中將核心和 initramfs 放入其中時,這將是初始限制。" +"使用 UEFITool 開啟您的快閃記憶體映像,並找到包含 DXE 的檔案系統(它將包含 " +"Shell 或「Shell_Fu​​ll」)。檢查檔案系統中有多少磁碟區可用空間 - 當您在步驟 5 " +"中將核心和 initramfs 放入其中時,這將是初始限制。" #: src/implementation.md:166 #, fuzzy @@ -5378,7 +5582,8 @@ msgid "" "Use the tiny.config to configure your first kernel, and embed a small " "initramfs in-kernel (the u-root cpu payload is an excellent starting point)." msgstr "" -"使用 tiny.config 配置您的第一個內核,並在內核中嵌入一個小型的 initramfs(u-root cpu 有效載荷是一個很好的起點)。" +"使用 tiny.config 配置您的第一個內核,並在內核中嵌入一個小型的 initramfs(u-" +"root cpu 有效載荷是一個很好的起點)。" #: src/implementation.md:172 #, fuzzy @@ -5390,7 +5595,9 @@ msgstr "大約 2M 的快閃記憶體中可以容納完整的核心/initramfs。" msgid "" "A more full featured kernel might consume 2M and a u-root bb distribution " "4M, which may well exceed the volume free space." -msgstr "功能更齊全的核心可能消耗 2M,而 u-root bb 分佈可能消耗 4M,這很可能超出磁碟區的可用空間。" +msgstr "" +"功能更齊全的核心可能消耗 2M,而 u-root bb 分佈可能消耗 4M,這很可能超出磁碟區" +"的可用空間。" #: src/implementation.md:175 #, fuzzy @@ -5398,7 +5605,9 @@ msgid "" "When there isn't enough space in this filesystem, one can either start " "removing unused DXE's (step 6), or use space formerly used by the ME Region " "(step 7)." -msgstr "當此檔案系統中沒有足夠的空間時,可以開始刪除未使用的 DXE(步驟 6),或使用先前由 ME 區域使用的空間(步驟 7)。" +msgstr "" +"當此檔案系統中沒有足夠的空間時,可以開始刪除未使用的 DXE(步驟 6),或使用先" +"前由 ME 區域使用的空間(步驟 7)。" #: src/implementation.md:179 #, fuzzy @@ -5425,7 +5634,9 @@ msgstr "它們有多個部分,其中一個是二進位代碼" msgid "" "You need a flash image (in this case called _firmware.bin_). You can get it " "via vendor website, flashrom, or other mechanism." -msgstr "您需要一個快閃記憶體映像(在本例中稱為_firmware.bin_)。您可以透過供應商網站、flashrom 或其他機制來取得它。" +msgstr "" +"您需要一個快閃記憶體映像(在本例中稱為_firmware.bin_)。您可以透過供應商網" +"站、flashrom 或其他機制來取得它。" #: src/implementation.md:186 #, fuzzy @@ -5444,7 +5655,8 @@ msgstr "`utk 韌體.bin replace_pe32 Shell bzImage 保存` _new.bin_" msgid "" "Note: It's always a PE32, even for 64-bit kernels. _new.bin_ is a filename " "of your choosing." -msgstr "注意:即使對於 64 位元內核,它始終是 PE32。 _new.bin_ 是您選擇的檔案名稱。" +msgstr "" +"注意:即使對於 64 位元內核,它始終是 PE32。 _new.bin_ 是您選擇的檔案名稱。" #: src/implementation.md:191 #, fuzzy @@ -5474,8 +5686,9 @@ msgid "" "dependency sections are full of errors and omissions. A lot of UEFI code " "does not check for failed DXE loads." msgstr "" -"`utk` 刪除 DXE,重新刷新,檢查它是否啟動,重複這部分應該很簡單:DXE 可以有一個依賴部分。實際上,這很難:因為依賴部分充滿了錯誤和遺漏。許多 " -"UEFI 程式碼不會檢查失敗的 DXE 載入。" +"`utk` 刪除 DXE,重新刷新,檢查它是否啟動,重複這部分應該很簡單:DXE 可以有一" +"個依賴部分。實際上,這很難:因為依賴部分充滿了錯誤和遺漏。許多 UEFI 程式碼不" +"會檢查失敗的 DXE 載入。" #: src/implementation.md:202 #, fuzzy @@ -5489,7 +5702,8 @@ msgid "" "image using UEFITool. If successful, there will now be padding at the " "beginning of the BIOS region of a substantial size." msgstr "" -"執行“me_cleaner”,然後在來源映像上執行 utk 收緊,然後使用 UEFITool 檢查映像。如果成功,BIOS 區域的開頭將會有相當大的填滿。" +"執行“me_cleaner”,然後在來源映像上執行 utk 收緊,然後使用 UEFITool 檢查映像。" +"如果成功,BIOS 區域的開頭將會有相當大的填滿。" #: src/implementation.md:207 #, fuzzy @@ -5497,14 +5711,18 @@ msgid "" "This padding space can be used, without the filesystem's knowledge, to stash " "an initramfs. The kernel is informed of the location this initramfs as an " "initrd kernel parameter." -msgstr "無需檔案系統的知情,即可使用此填充空間來儲存 initramfs。核心透過 initrd 核心參數獲知此 initramfs 的位置。" +msgstr "" +"無需檔案系統的知情,即可使用此填充空間來儲存 initramfs。核心透過 initrd 核心" +"參數獲知此 initramfs 的位置。" #: src/implementation.md:210 #, fuzzy msgid "" "Use the base address of this padding region to calculate the offset in the " "flash image where the initrd is stashed using dd." -msgstr "使用此填滿區域的基底位址來計算快閃記憶體映像中 initrd 所儲存的偏移量(使用 dd)。" +msgstr "" +"使用此填滿區域的基底位址來計算快閃記憶體映像中 initrd 所儲存的偏移量(使用 " +"dd)。" #: src/implementation.md:212 #, fuzzy @@ -5535,12 +5753,14 @@ msgid "" "are used in the Atomic Pi. Source-based BDS was needed to ensure the UEFI " "Shell was called." msgstr "" -"有一些腳本可讓您編譯單一 DXE,包括 UEFI Shell 和啟動裝置選擇 (BDS)。這兩個 DXE 已經編譯完畢並用於 Atomic Pi " -"中。需要基於來源的 BDS 來確保呼叫 UEFI Shell。" +"有一些腳本可讓您編譯單一 DXE,包括 UEFI Shell 和啟動裝置選擇 (BDS)。這兩個 " +"DXE 已經編譯完畢並用於 Atomic Pi 中。需要基於來源的 BDS 來確保呼叫 UEFI " +"Shell。" #: src/implementation.md:226 #, fuzzy -msgid "You only need the UEFI Shell built long enough to replace it with Linux." +msgid "" +"You only need the UEFI Shell built long enough to replace it with Linux." msgstr "你只需要建置夠長的 UEFI Shell 就可以用 Linux 取代它。" #: src/implementation.md:228 @@ -5555,8 +5775,9 @@ msgid "" "local disk, and run `flashrom -p internal -w _filename.bin_` where " "_filename.bin_ is a filename of your choosing." msgstr "" -"「本機」重新刷新:以最簡單的方式啟動系統:網路啟動、USB、本機磁碟,然後執行“flashrom -p internal -w " -"_filename.bin_”,其中 _filename.bin_ 是您選擇的檔案名稱。" +"「本機」重新刷新:以最簡單的方式啟動系統:網路啟動、USB、本機磁碟,然後執" +"行“flashrom -p internal -w _filename.bin_”,其中 _filename.bin_ 是您選擇的檔" +"案名稱。" #: src/implementation.md:233 #, fuzzy @@ -5565,8 +5786,8 @@ msgid "" "header on the board, or you might have to use a clip. `flashrom -p " "dediprog:voltage=1.8 -w _filename.bin_`" msgstr "" -"使用外部設備(例如 sf100)運行“flashrom”。板上可能有一個標題,或者您可能需要使用夾子。 `flashrom -p " -"dediprog:電壓=1.8 -w _filename.bin_`" +"使用外部設備(例如 sf100)運行“flashrom”。板上可能有一個標題,或者您可能需要" +"使用夾子。 `flashrom -p dediprog:電壓=1.8 -w _filename.bin_`" #: src/implementation.md:237 #, fuzzy @@ -5579,8 +5800,8 @@ msgid "" "Points of contact: [Andrea Barberio](https://github.com/insomniacslk), " "[David Hendricks](https://github.com/dhendrix)" msgstr "" -"聯絡人:[Andrea Barberio](https://github.com/insomniacslk)、[David " -"Hendricks](https://github.com/dhendrix)" +"聯絡人:[Andrea Barberio](https://github.com/insomniacslk)、[David Hendricks]" +"(https://github.com/dhendrix)" #: src/coreboot.u-root.systemboot/index.md:7 #, fuzzy @@ -5589,8 +5810,8 @@ msgid "" "u-root and systemboot. The examples will focus on `x86_64`, and the " "coreboot builds will cover virtual and physical OCP hardware." msgstr "" -"本章介紹如何基於 coreboot、u-root 和 systemboot 建構 LinuxBoot 韌體。 這些範例將集中在「x86_64」上,並且 " -"coreboot 建置將涵蓋虛擬和實體 OCP 硬體。" +"本章介紹如何基於 coreboot、u-root 和 systemboot 建構 LinuxBoot 韌體。 這些範" +"例將集中在「x86_64」上,並且 coreboot 建置將涵蓋虛擬和實體 OCP 硬體。" #: src/coreboot.u-root.systemboot/index.md:11 #, fuzzy @@ -5608,7 +5829,9 @@ msgstr "" msgid "" "This produces a coreboot image in coreboot-4.9/build/coreboot.rom You can " "now run this ROM image:" -msgstr "這會在 coreboot-4.9/build/coreboot.rom 中產生一個 coreboot 映像,您現在可以執行此 ROM 映像:" +msgstr "" +"這會在 coreboot-4.9/build/coreboot.rom 中產生一個 coreboot 映像,您現在可以執" +"行此 ROM 映像:" #: src/coreboot.u-root.systemboot/index.md:29 #, fuzzy @@ -5625,7 +5848,9 @@ msgstr "最終的圖像建立在多個開源元件之上:" msgid "" "[coreboot](https://coreboot.org), used for the platform initialization. " "Silicon and DRAM initialization are done here." -msgstr "[coreboot](https://coreboot.org),用於平台初始化。矽片和 DRAM 初始化在這裡完成。" +msgstr "" +"[coreboot](https://coreboot.org),用於平台初始化。矽片和 DRAM 初始化在這裡完" +"成。" #: src/coreboot.u-root.systemboot/index.md:37 msgid "" @@ -5639,7 +5864,9 @@ msgstr "" msgid "" "[u-root](https://github.com/u-root/u-root), an user-space environment that " "provides basic libraries and utilities to work in a Linux environment." -msgstr "u-root 是一個使用者空間環境,提供在 Linux 環境中工作所需的基本函式庫和實用程式。" +msgstr "" +"u-root 是一個使用者空間環境,提供在 Linux 環境中工作所需的基本函式庫和實用程" +"式。" #: src/coreboot.u-root.systemboot/index.md:42 #, fuzzy @@ -5648,15 +5875,17 @@ msgid "" "tools on top of u-root, that provide a bootloader behaviour for various " "booting scenarios.~~ systemboot was merged into u-root." msgstr "" -"~~[systemboot](https://systemboot.org),u-root 之上的一組附加程式庫和工具,為各種啟動場景提供引導程式行為。 " -"~~ systemboot 已合併到 u-root 中。" +"~~[systemboot](https://systemboot.org),u-root 之上的一組附加程式庫和工具,為" +"各種啟動場景提供引導程式行為。 ~~ systemboot 已合併到 u-root 中。" #: src/coreboot.u-root.systemboot/index.md:46 #, fuzzy msgid "" "These components are built in reverse order. `u-root` and `systemboot` are " "built together in a single step." -msgstr "這些組件是按相反的順序建構的。 `u-root` 和 `systemboot` 在一個步驟中一起建置。" +msgstr "" +"這些組件是按相反的順序建構的。 `u-root` 和 `systemboot` 在一個步驟中一起建" +"置。" #: src/coreboot.u-root.systemboot/index.md:49 #, fuzzy @@ -5668,7 +5897,9 @@ msgstr "建構 u-root" msgid "" "The first step is building the initramfs. This is done using the `u-root` " "ramfs builder, with additional tools and libraries from `systemboot`." -msgstr "第一步是建置 initramfs。這是使用“u-root”ramfs 建構器以及來自“systemboot”的附加工具和庫完成的。" +msgstr "" +"第一步是建置 initramfs。這是使用“u-root”ramfs 建構器以及來自“systemboot”的附" +"加工具和庫完成的。" #: src/coreboot.u-root.systemboot/index.md:54 #, fuzzy @@ -5678,15 +5909,17 @@ msgid "" "recommend using at least version 1.10. Previous versions may not be fully " "supported." msgstr "" -"u-root 是用 Go 寫的。我們建議使用相對較新的 Go 工具鏈版本。在撰寫本文時最新版本為 1.11,我們建議至少使用 1.10 " -"版本。以前的版本可能不完全受支援。" +"u-root 是用 Go 寫的。我們建議使用相對較新的 Go 工具鏈版本。在撰寫本文時最新版" +"本為 1.11,我們建議至少使用 1.10 版本。以前的版本可能不完全受支援。" #: src/coreboot.u-root.systemboot/index.md:58 #, fuzzy msgid "" "Adjust your `PATH` to include `${GOPATH}/bin`, in order to find the `u-root` " "command that we will use in the next steps." -msgstr "調整您的“PATH”以包含“${GOPATH}/bin”,以便找到我們將在下一步中使用的“u-root”命令。" +msgstr "" +"調整您的“PATH”以包含“${GOPATH}/bin”,以便找到我們將在下一步中使用的“u-root”命" +"令。" #: src/coreboot.u-root.systemboot/index.md:61 #, fuzzy @@ -5698,18 +5931,20 @@ msgstr "然後,取得“u-root”及其相依性:" msgid "" "Then build the ramfs in busybox mode, and add fbnetboot, localboot, and a " "custom uinit to wrap everything together:" -msgstr "然後在 busybox 模式下建立 ramfs,並添加 fbnetboot、localboot 和自訂 uinit 將所有內容包裝在一起:" +msgstr "" +"然後在 busybox 模式下建立 ramfs,並添加 fbnetboot、localboot 和自訂 uinit 將" +"所有內容包裝在一起:" #: src/coreboot.u-root.systemboot/index.md:74 #, fuzzy msgid "" -"This command will generate a ramfs named " -"`/tmp/initramfs_${os}_${arch}.cpio`, e.g. `/tmp/initramfs.linux_amd64.cpio`. " -"You can specify an alternative output path with `-o`. Run `u-root -h` for " -"additional command line parameters." +"This command will generate a ramfs named `/tmp/initramfs_${os}_$" +"{arch}.cpio`, e.g. `/tmp/initramfs.linux_amd64.cpio`. You can specify an " +"alternative output path with `-o`. Run `u-root -h` for additional command " +"line parameters." msgstr "" -"此指令將產生一個名為「/tmp/initramfs_${os}_${arch}.cpio」的 " -"ramfs,例如`/tmp/initramfs.linux_amd64.cpio`。您可以使用“-o”指定備用輸出路徑。執行“u-root " +"此指令將產生一個名為「/tmp/initramfs_${os}_${arch}.cpio」的 ramfs,例如`/tmp/" +"initramfs.linux_amd64.cpio`。您可以使用“-o”指定備用輸出路徑。執行“u-root " "-h”以取得更多命令列參數。" #: src/coreboot.u-root.systemboot/index.md:78 @@ -5720,9 +5955,10 @@ msgid "" "in `u-root`. For example, you may want to include static builds of `kexec` " "or `flashrom`, that we build on https://github.com/systemboot/binaries ." msgstr "" -"注意:上述指令將僅包含來自「u-root」的純 Go 指令。如果需要包含其他檔案或非 Go 二進位文件,請使用「u-root」中的「-file」選項。 " -"例如,您可能想要包含我們在 https://github.com/systemboot/binaries " -"上建置的「kexec」或「flashrom」的靜態建置。" +"注意:上述指令將僅包含來自「u-root」的純 Go 指令。如果需要包含其他檔案或非 " +"Go 二進位文件,請使用「u-root」中的「-file」選項。 例如,您可能想要包含我們" +"在 https://github.com/systemboot/binaries 上建置的「kexec」或「flashrom」的靜" +"態建置。" #: src/coreboot.u-root.systemboot/index.md:83 #, fuzzy @@ -5732,8 +5968,8 @@ msgid "" "image size smaller. Linux has a limited XZ compressor, so the compression " "requires specific options:" msgstr "" -"然後,必須壓縮 initramfs。如下所述,此步驟對於將 initramfs 嵌入核心是必要的,以便保持影像尺寸較小。 Linux 的 XZ " -"壓縮器功能有限,因此壓縮需要特定的選項:" +"然後,必須壓縮 initramfs。如下所述,此步驟對於將 initramfs 嵌入核心是必要的," +"以便保持影像尺寸較小。 Linux 的 XZ 壓縮器功能有限,因此壓縮需要特定的選項:" #: src/coreboot.u-root.systemboot/index.md:92 #, fuzzy @@ -5743,13 +5979,12 @@ msgstr "這將產生檔案“/tmp/initramfs.linux_amd64.cpio.xz”。" #: src/coreboot.u-root.systemboot/index.md:94 #, fuzzy msgid "" -"The kernel compression requirements are documented under " -"[Documentation/xz.txt](https://www.kernel.org/doc/Documentation/xz.txt) " -"(last checked 2018-12-03) in the kernel docs." +"The kernel compression requirements are documented under [Documentation/" +"xz.txt](https://www.kernel.org/doc/Documentation/xz.txt) (last checked " +"2018-12-03) in the kernel docs." msgstr "" -"內核壓縮要求記錄在內核文件中的 " -"[Documentation/xz.txt](https://www.kernel.org/doc/Documentation/xz.txt) " -"下(最後檢查時間為 2018-12-03)。" +"內核壓縮要求記錄在內核文件中的 [Documentation/xz.txt](https://www.kernel.org/" +"doc/Documentation/xz.txt) 下(最後檢查時間為 2018-12-03)。" #: src/coreboot.u-root.systemboot/index.md:98 #, fuzzy @@ -5759,11 +5994,11 @@ msgstr "建構合適的Linux內核" #: src/coreboot.u-root.systemboot/index.md:100 #, fuzzy msgid "" -"A sample config to use with QEMU can be downloaded here: " -"[linux-4.19.6-linuxboot.config](linux-4.19.6-linuxboot.config)." +"A sample config to use with QEMU can be downloaded here: [linux-4.19.6-" +"linuxboot.config](linux-4.19.6-linuxboot.config)." msgstr "" -"可以在此處下載與 QEMU " -"一起使用的範例設定:[linux-4.19.6-linuxboot.config](linux-4.19.6-linuxboot.config)。" +"可以在此處下載與 QEMU 一起使用的範例設定:[linux-4.19.6-linuxboot.config]" +"(linux-4.19.6-linuxboot.config)。" #: src/coreboot.u-root.systemboot/index.md:103 #, fuzzy @@ -5772,8 +6007,8 @@ msgid "" "for VPD variables, but a 4.11 can do the job too, if you don't care about " "boot entries and want \"brute-force\" booting only." msgstr "" -"您需要一個相對較新的核心。理想情況下,核心 4.16 可以支援 VPD 變量,但如果您不關心啟動條目並且只想要「強力」啟動,那麼 4.11 " -"也可以完成這項工作。" +"您需要一個相對較新的核心。理想情況下,核心 4.16 可以支援 VPD 變量,但如果您不" +"關心啟動條目並且只想要「強力」啟動,那麼 4.11 也可以完成這項工作。" #: src/coreboot.u-root.systemboot/index.md:107 #, fuzzy @@ -5849,7 +6084,8 @@ msgid "" "a version tag. We recommend at least a kernel 4.16, in order to have VPD " "variables support." msgstr "" -"您可以從 kernel.org 下載 tarball,或透過 git 取得它並使用版本標籤。我們建議至少使用內核 4.16,以便獲得 VPD 變數支援。" +"您可以從 kernel.org 下載 tarball,或透過 git 取得它並使用版本標籤。我們建議至" +"少使用內核 4.16,以便獲得 VPD 變數支援。" #: src/coreboot.u-root.systemboot/index.md:127 msgid "" @@ -5868,7 +6104,9 @@ msgstr "" msgid "" "You can also check out the `linux-stable` branch, that will point to the " "latest stable commit. You need to download it via `git` as follows:" -msgstr "您也可以查看“linux-stable”分支,它將指向最新的穩定提交。您需要透過 `git` 下載它,如下所示:" +msgstr "" +"您也可以查看“linux-stable”分支,它將指向最新的穩定提交。您需要透過 `git` 下載" +"它,如下所示:" #: src/coreboot.u-root.systemboot/index.md:138 msgid "" @@ -5883,9 +6121,11 @@ msgstr "" #: src/coreboot.u-root.systemboot/index.md:145 #, fuzzy msgid "" -"Some more information about tiny configs can be found at " -"https://tiny.wiki.kernel.org (last checked 2018-12-01)." -msgstr "有關微小配置的更多資訊可以在 https://tiny.wiki.kernel.org 上找到(最後檢查時間為 2018-12-01)。" +"Some more information about tiny configs can be found at https://" +"tiny.wiki.kernel.org (last checked 2018-12-01)." +msgstr "" +"有關微小配置的更多資訊可以在 https://tiny.wiki.kernel.org 上找到(最後檢查時" +"間為 2018-12-01)。" #: src/coreboot.u-root.systemboot/index.md:148 #, fuzzy @@ -5914,7 +6154,9 @@ msgstr "`常規設定` → `配置標準核心功能` → `啟用對 printk 的 msgid "" "`General setup` → `Configure standard kernel features` → `Multiple users, " "groups and capabilities support` (this is not strictly required on LinuxBoot)" -msgstr "`常規設定` → `配置標準核心功能` → `多重使用者、群組和功能支援`(這在 LinuxBoot 上不是嚴格要求的)" +msgstr "" +"`常規設定` → `配置標準核心功能` → `多重使用者、群組和功能支援`(這在 " +"LinuxBoot 上不是嚴格要求的)" #: src/coreboot.u-root.systemboot/index.md:158 #, fuzzy @@ -5923,15 +6165,16 @@ msgid "" "your command line here if needed, e.g. `earlyprintk=serial,ttyS0,57600 " "console=ttyS0,57600`)" msgstr "" -"`處理器類型和功能` → `內建核心命令列`(如果需要,可以在此處自訂命令行,例如`earlyprintk=serial,ttyS0,57600 " -"console=ttyS0,57600`)" +"`處理器類型和功能` → `內建核心命令列`(如果需要,可以在此處自訂命令行,例如" +"`earlyprintk=serial,ttyS0,57600 console=ttyS0,57600`)" #: src/coreboot.u-root.systemboot/index.md:161 #, fuzzy msgid "" "`Executable file formats / Emulations` → `Kernel support for ELF binaries` " "(you may want to enable more formats)" -msgstr "`可執行檔格式/模擬` → `核心對 ELF 二進位檔案的支援`(您可能想要啟用更多格式)" +msgstr "" +"`可執行檔格式/模擬` → `核心對 ELF 二進位檔案的支援`(您可能想要啟用更多格式)" #: src/coreboot.u-root.systemboot/index.md:163 #, fuzzy @@ -5953,14 +6196,17 @@ msgstr "`裝置驅動程式` → `字元裝置` → `啟用 TTY`" msgid "" "`Device Drivers` → `Character devices` → `Serial drivers` → `8250/16550 and " "compatible serial support`" -msgstr "`裝置驅動程式` → `字元裝置` → `序列驅動程式` → `8250/16550 及相容序列支援`" +msgstr "" +"`裝置驅動程式` → `字元裝置` → `序列驅動程式` → `8250/16550 及相容序列支援`" #: src/coreboot.u-root.systemboot/index.md:168 #, fuzzy msgid "" "`Device Drivers` → `Character devices` → `Serial drivers` → `Console on " "8250/16550 and compatible serial port`" -msgstr "`裝置驅動程式` → `字元裝置` → `序列驅動程式` → `8250/16550 及相容序列埠上的控制台`" +msgstr "" +"`裝置驅動程式` → `字元裝置` → `序列驅動程式` → `8250/16550 及相容序列埠上的控" +"制台`" #: src/coreboot.u-root.systemboot/index.md:170 #, fuzzy @@ -5984,8 +6230,8 @@ msgid "" "writing, you need to enable `CONFIG_FUTEX` in your kernel config. Older " "versions of Go may require `CONFIG_EPOLL`." msgstr "" -"`Go` 需要一些核心功能才能正常運作。在撰寫本文時,您需要在核心配置中啟用「CONFIG_FUTEX」。舊版的 Go " -"可能需要「CONFIG_EPOLL」。" +"`Go` 需要一些核心功能才能正常運作。在撰寫本文時,您需要在核心配置中啟用" +"「CONFIG_FUTEX」。舊版的 Go 可能需要「CONFIG_EPOLL」。" #: src/coreboot.u-root.systemboot/index.md:179 #: src/coreboot.u-root.systemboot/index.md:199 @@ -6019,8 +6265,8 @@ msgid "" "https://github.com/golang/go/wiki/MinimumRequirements (last checked " "2018-12-01)." msgstr "" -"有關 Go 最低要求的更多信息,請參閱 " -"https://github.com/golang/go/wiki/MinimumRequirements(最後檢查時間為 2018-12-01)。" +"有關 Go 最低要求的更多信息,請參閱 https://github.com/golang/go/wiki/" +"MinimumRequirements(最後檢查時間為 2018-12-01)。" #: src/coreboot.u-root.systemboot/index.md:190 #, fuzzy @@ -6033,7 +6279,9 @@ msgid "" "Our system firmware uses u-root, which does not have (intentionally) an " "`udev` equivalent. Therefore, to have `/dev/` automatically populated at " "boot time you should enable devtmps." -msgstr "我們的系統韌體使用 u-root,它沒有(故意)等效的“udev”。因此,為了在啟動時自動填入“/dev/”,您應該啟用 devtmps。" +msgstr "" +"我們的系統韌體使用 u-root,它沒有(故意)等效的“udev”。因此,為了在啟動時自動" +"填入“/dev/”,您應該啟用 devtmps。" #: src/coreboot.u-root.systemboot/index.md:196 #, fuzzy @@ -6047,14 +6295,18 @@ msgstr "只需在核心配置中啟用“CONFIG_DEVTMPFS”和“CONFIG_DEVTMPFS msgid "" "`Device drivers` → `Generic Driver Options` → `Maintain a devtmpfs " "filesystem to mount at /dev`" -msgstr "`裝置驅動程式` → `通用驅動程式選項` → `維護一個 devtmpfs 檔案系統以掛載在 /dev`" +msgstr "" +"`裝置驅動程式` → `通用驅動程式選項` → `維護一個 devtmpfs 檔案系統以掛載在 /" +"dev`" #: src/coreboot.u-root.systemboot/index.md:203 #, fuzzy msgid "" "`Device drivers` → `Generic Driver Options` → `Automount devtmpfs at /dev, " "after the kernel mounted the rootfs`" -msgstr "`裝置驅動程式` → `通用驅動程式選項` → `在核心掛載 rootfs 後,在 /dev 自動掛載 devtmpfs`" +msgstr "" +"`裝置驅動程式` → `通用驅動程式選項` → `在核心掛載 rootfs 後,在 /dev 自動掛" +"載 devtmpfs`" #: src/coreboot.u-root.systemboot/index.md:206 #, fuzzy @@ -6069,15 +6321,18 @@ msgid "" "need to include NIC drivers, file system drivers, and any other device that " "you need at boot time." msgstr "" -"這實際上取決於您的硬體。您可能想要為計劃運行 LinuxBoot 的平台添加所有相關的驅動程式。例如,您可能需要包含 NIC " -"驅動程式、檔案系統驅動程式以及啟動時所需的任何其他裝置。" +"這實際上取決於您的硬體。您可能想要為計劃運行 LinuxBoot 的平台添加所有相關的驅" +"動程式。例如,您可能需要包含 NIC 驅動程式、檔案系統驅動程式以及啟動時所需的任" +"何其他裝置。" #: src/coreboot.u-root.systemboot/index.md:213 #, fuzzy msgid "" "For example, enable SCSI disk, SATA drivers, EXT4, and e1000 NIC driver. In " "menuconfig:" -msgstr "例如,啟用 SCSI 磁碟、SATA 驅動程式、EXT4 和 e1000 NIC 驅動程式。在 menuconfig 中:" +msgstr "" +"例如,啟用 SCSI 磁碟、SATA 驅動程式、EXT4 和 e1000 NIC 驅動程式。在 " +"menuconfig 中:" #: src/coreboot.u-root.systemboot/index.md:216 #, fuzzy @@ -6119,7 +6374,9 @@ msgstr "`網路支援`(e1000 必需)" msgid "" "`Device drivers` → `Network device support` → `Ethernet driver support` → " "`Intel(R) PRO/1000 Gigabit Ethernet support`" -msgstr "`裝置驅動程式` → `網路裝置支援` → `乙太網路驅動程式支援` → `英特爾(R) PRO/1000 千兆乙太網路支援`" +msgstr "" +"`裝置驅動程式` → `網路裝置支援` → `乙太網路驅動程式支援` → `英特爾(R) PRO/" +"1000 千兆乙太網路支援`" #: src/coreboot.u-root.systemboot/index.md:226 #, fuzzy @@ -6133,8 +6390,9 @@ msgid "" "kernel. Hence you need to enable XZ compression support. Make sure to have " "at least `CONFIG_HAVE_KERNEL_XZ`, `CONFIG_KERNEL_XZ`, `CONFIG_DECOMPRESS_XZ`." msgstr "" -"基於 `u-root`\\ 的 RAMFS 將使用 XZ 壓縮並嵌入到核心中。因此您需要啟用 XZ " -"壓縮支援。確保至少具有“CONFIG_HAVE_KERNEL_XZ”、“CONFIG_KERNEL_XZ”和“CONFIG_DECOMPRESS_XZ”。" +"基於 `u-root`\\ 的 RAMFS 將使用 XZ 壓縮並嵌入到核心中。因此您需要啟用 XZ 壓縮" +"支援。確保至少具" +"有“CONFIG_HAVE_KERNEL_XZ”、“CONFIG_KERNEL_XZ”和“CONFIG_DECOMPRESS_XZ”。" #: src/coreboot.u-root.systemboot/index.md:234 #, fuzzy @@ -6147,8 +6405,8 @@ msgid "" "`General setup` → `Initial RAM filesystem and RAM disk (initramfs/initrd) " "support` → `Support initial ramdisk/ramfs compressed using XZ`" msgstr "" -"`常規設定` → `初始 RAM 檔案系統和 RAM 磁碟 (initramfs/initrd) 支援` → `支援使用 XZ 壓縮的初始 " -"ramdisk/ramfs`" +"`常規設定` → `初始 RAM 檔案系統和 RAM 磁碟 (initramfs/initrd) 支援` → `支援使" +"用 XZ 壓縮的初始 ramdisk/ramfs`" #: src/coreboot.u-root.systemboot/index.md:239 #, fuzzy @@ -6158,16 +6416,16 @@ msgstr "啟用 VPD" #: src/coreboot.u-root.systemboot/index.md:241 #, fuzzy msgid "" -"VPD stands for [Vital Product " -"Data](https://chromium.googlesource.com/chromiumos/platform/vpd/+/1c1806d8df4bb5976eed71a2e2bf156c36ccdce2/README.md). " -"We use VPD to store boot configuration for `localboot` and `fbnetboot`, " -"similarly to UEFI's boot variables. Linux supports VPD out of the box, but " -"you need at least a kernel 4.16." +"VPD stands for [Vital Product Data](https://chromium.googlesource.com/" +"chromiumos/platform/vpd/+/1c1806d8df4bb5976eed71a2e2bf156c36ccdce2/" +"README.md). We use VPD to store boot configuration for `localboot` and " +"`fbnetboot`, similarly to UEFI's boot variables. Linux supports VPD out of " +"the box, but you need at least a kernel 4.16." msgstr "" -"VPD " -"代表[重要產品資料](https://chromium.googlesource.com/chromiumos/platform/vpd/+/1c1806d8df4bb5976eed71a2e2bf156c36ccdce2/README.md)。我們使用 " -"VPD 來儲存「localboot」和「fbnetboot」的啟動配置,類似於 UEFI 的啟動變數。 Linux 開箱即用支援 " -"VPD,但您至少需要核心 4.16。" +"VPD 代表[重要產品資料](https://chromium.googlesource.com/chromiumos/platform/" +"vpd/+/1c1806d8df4bb5976eed71a2e2bf156c36ccdce2/README.md)。我們使用 VPD 來儲" +"存「localboot」和「fbnetboot」的啟動配置,類似於 UEFI 的啟動變數。 Linux 開箱" +"即用支援 VPD,但您至少需要核心 4.16。" #: src/coreboot.u-root.systemboot/index.md:247 #, fuzzy @@ -6179,7 +6437,9 @@ msgstr "確保在核心配置中啟用了“CONFIG_GOOGLE_VPD”。" msgid "" "`Firmware drivers` → `Google Firmware Drivers` → `Coreboot Table Access - " "ACPI` → `Vital Product Data`" -msgstr "`韌體驅動程式` → `Google 韌體驅動程式` → `Coreboot 表格存取 - ACPI` → `重要產品資料`" +msgstr "" +"`韌體驅動程式` → `Google 韌體驅動程式` → `Coreboot 表格存取 - ACPI` → `重要產" +"品資料`" #: src/coreboot.u-root.systemboot/index.md:254 #, fuzzy @@ -6191,7 +6451,9 @@ msgstr "TPM 支援" msgid "" "This also depends on your needs. If you plan to use TPM, and this is " "supported by your platform, make sure to enable `CONFIG_TCG_TPM`." -msgstr "這也取決於您的需求。如果您打算使用 TPM,並且您的平台支援它,請確保啟用「CONFIG_TCG_TPM」。" +msgstr "" +"這也取決於您的需求。如果您打算使用 TPM,並且您的平台支援它,請確保啟用" +"「CONFIG_TCG_TPM」。" #: src/coreboot.u-root.systemboot/index.md:261 #, fuzzy @@ -6212,7 +6474,8 @@ msgid "" "Your kernel configuration should point to the appropriate file using the " "`CONFIG_INITRAMFS_SOURCE` directive. E.g." msgstr "" -"如上所述,核心將嵌入壓縮的 initramfs 映像。您的核心設定應該使用“CONFIG_INITRAMFS_SOURCE”指令指向適當的檔案。例如。" +"如上所述,核心將嵌入壓縮的 initramfs 映像。您的核心設定應該使" +"用“CONFIG_INITRAMFS_SOURCE”指令指向適當的檔案。例如。" #: src/coreboot.u-root.systemboot/index.md:270 msgid "" @@ -6226,7 +6489,9 @@ msgstr "" msgid "" "`General setup` → `Initial RAM filesystem and RAM disk (initramfs/initrd) " "support` → `Initramfs source file(s)`" -msgstr "`常規設定` → `初始 RAM 檔案系統和 RAM 磁碟 (initramfs/initrd) 支援` → `Initramfs 來源檔案`" +msgstr "" +"`常規設定` → `初始 RAM 檔案系統和 RAM 磁碟 (initramfs/initrd) 支援` → " +"`Initramfs 來源檔案`" #: src/coreboot.u-root.systemboot/index.md:279 #, fuzzy @@ -6240,7 +6505,8 @@ msgid "" "different value. You need to set `CONFIG_DEFAULT_HOSTNAME` for the purpose. " "For example:" msgstr "" -"我們使用“linuxboot”作為預設主機名稱。您可能想要將其調整為不同的值。您需要為此目的設定“CONFIG_DEFAULT_HOSTNAME”。例如:" +"我們使用“linuxboot”作為預設主機名稱。您可能想要將其調整為不同的值。您需要為此" +"目的設定“CONFIG_DEFAULT_HOSTNAME”。例如:" #: src/coreboot.u-root.systemboot/index.md:285 msgid "" @@ -6269,16 +6535,18 @@ msgstr "配置準備好後,照常建構核心:" msgid "" "The image will be located under `arch/${ARCH}/boot/bzImage` if your " "architecture supports bzImage (e.g. x86)." -msgstr "如果您的架構支援 bzImage(例如 x86),則該圖像將位於「arch/${ARCH}/boot/bzImage」下。" +msgstr "" +"如果您的架構支援 bzImage(例如 x86),則該圖像將位於「arch/${ARCH}/boot/" +"bzImage」下。" #: src/coreboot.u-root.systemboot/index.md:304 #, fuzzy msgid "" -"For more details on how to build a kernel, see " -"https://kernelnewbies.org/KernelBuild (last checked 2018-12-01)." +"For more details on how to build a kernel, see https://kernelnewbies.org/" +"KernelBuild (last checked 2018-12-01)." msgstr "" -"有關如何建立內核的更多詳細信息,請參閱 https://kernelnewbies.org/KernelBuild(最後檢查時間為 " -"2018-12-01)。" +"有關如何建立內核的更多詳細信息,請參閱 https://kernelnewbies.org/KernelBuild" +"(最後檢查時間為 2018-12-01)。" #: src/coreboot.u-root.systemboot/index.md:307 #, fuzzy @@ -6292,8 +6560,9 @@ msgid "" "built at the previous step as payload. This build is for a Qemu x86 target, " "the process may be somehow different for other platforms." msgstr "" -"在此步驟中,我們將使用上一步建立的 Linux 核心映像作為有效載荷來建立「coreboot」。此建置針對的是 Qemu x86 " -"目標,對於其他平台,該過程可能有所不同。" +"在此步驟中,我們將使用上一步建立的 Linux 核心映像作為有效載荷來建立" +"「coreboot」。此建置針對的是 Qemu x86 目標,對於其他平台,該過程可能有所不" +"同。" #: src/coreboot.u-root.systemboot/index.md:313 #, fuzzy @@ -6348,14 +6617,18 @@ msgstr "建構編譯器工具鏈" msgid "" "This step is required to have, among other things, reproducible builds, and " "a compiler toolchain that is known to work with coreboot." -msgstr "除其他事項外,此步驟還需要具有可重複的建置以及已知可與 coreboot 一起使用的編譯器工具鏈。" +msgstr "" +"除其他事項外,此步驟還需要具有可重複的建置以及已知可與 coreboot 一起使用的編" +"譯器工具鏈。" #: src/coreboot.u-root.systemboot/index.md:338 #, fuzzy msgid "" "The step above may ask you to install a few additional libraries or headers, " "do so as requested, with the exception of gcc-gnat, that we won't need." -msgstr "上述步驟可能會要求您安裝一些額外的庫或頭文件,請按照要求進行操作,但我們不需要 gcc-gnat。" +msgstr "" +"上述步驟可能會要求您安裝一些額外的庫或頭文件,請按照要求進行操作,但我們不需" +"要 gcc-gnat。" #: src/coreboot.u-root.systemboot/index.md:341 #, fuzzy @@ -6382,7 +6655,8 @@ msgstr "`主機板` → `主機板供應商` → `仿真`" msgid "" "`Mainboard` → `Mainboard Model` → `QEMU x86 q35/ich9 (aka qemu -M q35, since " "v1.4)`" -msgstr "`主機板` → `主機板型號` → `QEMU x86 q35/ich9(又稱 qemu -M q35,自 v1.4 起)`" +msgstr "" +"`主機板` → `主機板型號` → `QEMU x86 q35/ich9(又稱 qemu -M q35,自 v1.4 起)`" #: src/coreboot.u-root.systemboot/index.md:351 #, fuzzy @@ -6434,11 +6708,12 @@ msgstr "這可以透過一個簡單的" msgid "" "The coreboot build system will clone the relevant submodules, if it was not " "done already, and will build a coreboot ROM file that will contain the " -"initialization code, and our bzImage payload. The output file is at " -"`build/coreboot.rom`." +"initialization code, and our bzImage payload. The output file is at `build/" +"coreboot.rom`." msgstr "" -"如果尚未完成,coreboot 建置系統將克隆相關子模組,並將建置一個包含初始化程式碼和我們的 bzImage 有效負載的 coreboot ROM " -"檔案。輸出檔位於“build/coreboot.rom”。" +"如果尚未完成,coreboot 建置系統將克隆相關子模組,並將建置一個包含初始化程式碼" +"和我們的 bzImage 有效負載的 coreboot ROM 檔案。輸出檔位於“build/" +"coreboot.rom”。" #: src/coreboot.u-root.systemboot/index.md:375 #, fuzzy @@ -6467,11 +6742,12 @@ msgstr "在虛擬機器上運行" msgid "" "The image built with the above steps can run on a QEMU virtual machine, " "using the machine type `q35`, as specified in the coreboot mainboard " -"section. Assuming that your coreboot image is located at " -"`build/coreboot.rom`, you can run the following command:" +"section. Assuming that your coreboot image is located at `build/" +"coreboot.rom`, you can run the following command:" msgstr "" -"透過上述步驟建構的映像可以在 QEMU 虛擬機器上運行,使用機器類型“q35”,如 coreboot 主機板部分所指定。假設您的 coreboot " -"映像位於“build/coreboot.rom”,您可以執行下列命令:" +"透過上述步驟建構的映像可以在 QEMU 虛擬機器上運行,使用機器類型“q35”,如 " +"coreboot 主機板部分所指定。假設您的 coreboot 映像位於“build/coreboot.rom”,您" +"可以執行下列命令:" #: src/coreboot.u-root.systemboot/index.md:428 #, fuzzy @@ -6480,8 +6756,9 @@ msgid "" "from `coreboot`, `linux`, `u-root`, and `systemboot`. You can press `ctrl-c` " "when Systemboot instructs you to do so, to enter the `u-root` shell." msgstr "" -"如果所有操作都正確完成,您應該會依序看到「coreboot」、「linux」、「u-root」和「systemboot」的輸出。當 Systemboot " -"指示您這樣做時,您可以按「ctrl-c」進入「u-root」shell。" +"如果所有操作都正確完成,您應該會依序看到「coreboot」、「linux」、「u-root」和" +"「systemboot」的輸出。當 Systemboot 指示您這樣做時,您可以按「ctrl-c」進入" +"「u-root」shell。" #: src/coreboot.u-root.systemboot/index.md:432 #, fuzzy @@ -6500,8 +6777,9 @@ msgid "" "\"BIOS compatibility mode\" which makes it behave like an old BIOS, with its " "features." msgstr "" -"BIOS:最初,BIOS 是電腦內建的軟體,用於在作業系統載入之前向硬體發送簡單指令,允許輸入和輸出。它是一個沒有標準化結構的二進位 " -"blob,負責初始化 CPU 和內存,並跳到第一個磁碟機主區塊上的硬編碼位置。 BIOS 已基本被 UEFI 取代。許多 UEFI " +"BIOS:最初,BIOS 是電腦內建的軟體,用於在作業系統載入之前向硬體發送簡單指令," +"允許輸入和輸出。它是一個沒有標準化結構的二進位 blob,負責初始化 CPU 和內存," +"並跳到第一個磁碟機主區塊上的硬編碼位置。 BIOS 已基本被 UEFI 取代。許多 UEFI " "實作仍然提供“BIOS 相容模式”,使其能夠像舊 BIOS 一樣運作並具有其功能。" #: src/glossary.md:11 @@ -6511,12 +6789,13 @@ msgid "" "of a large number of system commands, including a shell. This package can be " "very useful for recovering from certain types of system failures, " "particularly those involving broken shared libraries. There are multiple " -"implementations of busybox, such as git.busybox.net/busybox and " -"github.com/u-root/u-root." +"implementations of busybox, such as git.busybox.net/busybox and github.com/u-" +"root/u-root." msgstr "" -"_**busybox**_:Busybox 是一個單一用戶空間二進位文件,其中包含大量系統命令的版本,包括一個 " -"shell。該軟體包對於恢復某些類型的系統故障非常有用,特別是涉及損壞的共享庫的故障。 busybox 有多個實現,例如 " -"git.busybox.net/busybox 和 github.com/u-root/u-root。" +"_**busybox**_:Busybox 是一個單一用戶空間二進位文件,其中包含大量系統命令的版" +"本,包括一個 shell。該軟體包對於恢復某些類型的系統故障非常有用,特別是涉及損" +"壞的共享庫的故障。 busybox 有多個實現,例如 git.busybox.net/busybox 和 " +"github.com/u-root/u-root。" #: src/glossary.md:17 #, fuzzy @@ -6528,7 +6807,10 @@ msgid "" "provide user interfaces, file system drivers, various policies etc. to load " "the OS." msgstr "" -"[_**coreboot**_](https://doc.coreboot.org/):為各種架構開發開源啟動韌體的專案。其設計理念是盡可能少確保硬體可用,然後將控制權傳遞給稱為有效載荷的另一個程式。然後,有效載荷可以提供使用者介面、檔案系統驅動程式、各種策略等來載入作業系統。" +"[_**coreboot**_](https://doc.coreboot.org/):為各種架構開發開源啟動韌體的專" +"案。其設計理念是盡可能少確保硬體可用,然後將控制權傳遞給稱為有效載荷的另一個" +"程式。然後,有效載荷可以提供使用者介面、檔案系統驅動程式、各種策略等來載入作" +"業系統。" #: src/glossary.md:23 #, fuzzy @@ -6536,7 +6818,9 @@ msgid "" "_**DHCP**_: A networking protocol that runs on a DHCP server and that " "automatically assigns an IP address from a pre-configured pool to any " "machine that queries it on boot up." -msgstr "DHCP:一種在 DHCP 伺服器上執行的網路協議,它會自動從預先配置的池中為啟動時查詢它的任何機器分配一個 IP 位址。" +msgstr "" +"DHCP:一種在 DHCP 伺服器上執行的網路協議,它會自動從預先配置的池中為啟動時查" +"詢它的任何機器分配一個 IP 位址。" #: src/glossary.md:26 #, fuzzy @@ -6548,16 +6832,18 @@ msgstr "EDK II:UEFI 相容韌體的開源參考實現,最初由英特爾開 #: src/glossary.md:28 #, fuzzy msgid "" -"_**firmware**_: A specific class of computer software that provides " -"low-level control for a device's specific hardware. It is installed at the " -"time of manufacturing and is the first program that runs when a computer is " +"_**firmware**_: A specific class of computer software that provides low-" +"level control for a device's specific hardware. It is installed at the time " +"of manufacturing and is the first program that runs when a computer is " "turned on. It checks to see what hardware components the computing device " "has, wakes the components up, and hands them over to the operating system " "that is to be installed on the machine. The current x86 firmware is based on " "Intel’s Universal Extensible Firmware Interface (UEFI)." msgstr "" -"韌體:一種特定類別的電腦軟體,為設備的特定硬體提供低階控制。它在製造時安裝,並且是電腦啟動時運行的第一個程式。它檢查計算設備有哪些硬體組件,喚醒這些組件,並將它們交給機器上要安裝的作業系統。目前的 " -"x86 韌體是基於英特爾的通用可擴展韌體介面 (UEFI)。" +"韌體:一種特定類別的電腦軟體,為設備的特定硬體提供低階控制。它在製造時安裝," +"並且是電腦啟動時運行的第一個程式。它檢查計算設備有哪些硬體組件,喚醒這些組" +"件,並將它們交給機器上要安裝的作業系統。目前的 x86 韌體是基於英特爾的通用可擴" +"展韌體介面 (UEFI)。" #: src/glossary.md:35 #, fuzzy @@ -6568,20 +6854,22 @@ msgid "" "location for embedded devices that can not boot the kernel and initramfs " "using the normal `/boot` mechanism" msgstr "" -"_**flashkernel**_:儲存在快閃記憶體中並用作啟動階段的小型 Linux 核心(例如 LinuxBoot 中使用的核心)。 Debian " -"和 Ubuntu 維護一個 `flash-kernel` 腳本,用於將核心和 initramfs 安裝到特殊位置,用於無法使用正常 `/boot` " -"機制啟動核心和 initramfs 的嵌入式設備" +"_**flashkernel**_:儲存在快閃記憶體中並用作啟動階段的小型 Linux 核心(例如 " +"LinuxBoot 中使用的核心)。 Debian 和 Ubuntu 維護一個 `flash-kernel` 腳本,用" +"於將核心和 initramfs 安裝到特殊位置,用於無法使用正常 `/boot` 機制啟動核心和 " +"initramfs 的嵌入式設備" #: src/glossary.md:40 #, fuzzy msgid "" "[_**Heads**_](https://github.com/linuxboot/heads): An open source firmware " "for laptops and servers, aimed at strong platform security. Developed by " -"Trammell Hudson, based on stripped UEFI plus Linux, and BusyBox instead of " -"u-root." +"Trammell Hudson, based on stripped UEFI plus Linux, and BusyBox instead of u-" +"root." msgstr "" -"[_**Heads**_](https://github.com/linuxboot/heads):筆記型電腦和伺服器的開源固件,旨在實現強大的平台安全性。由 " -"Trammell Hudson 開發,基於剝離的 UEFI 加 Linux,並使用 BusyBox 代替 u-root。" +"[_**Heads**_](https://github.com/linuxboot/heads):筆記型電腦和伺服器的開源固" +"件,旨在實現強大的平台安全性。由 Trammell Hudson 開發,基於剝離的 UEFI 加 " +"Linux,並使用 BusyBox 代替 u-root。" #: src/glossary.md:44 #, fuzzy @@ -6590,7 +6878,8 @@ msgid "" "appear to be a local device to the hosts using it, allowing it to be (among " "other things) mounted as a regular local file system." msgstr "" -"_**iSCSI**_:一種協議,它提供了一種方法,使網路附加儲存對於使用它的主機來說看起來像是一個本地設備,從而允許它(除其他功能外)作為常規本地檔案系統安裝。" +"_**iSCSI**_:一種協議,它提供了一種方法,使網路附加儲存對於使用它的主機來說看" +"起來像是一個本地設備,從而允許它(除其他功能外)作為常規本地檔案系統安裝。" #: src/glossary.md:47 #, fuzzy @@ -6598,7 +6887,9 @@ msgid "" "_**kexec**_: A system call that enables you to load and boot into another " "kernel from the currently running kernel. kexec performs the function of the " "boot loader from within the kernel." -msgstr "_**kexec**_:一種系統調用,可讓您從目前正在運行的核心載入並啟動到另一個核心。 kexec 在核心中執行引導程式的功能。" +msgstr "" +"_**kexec**_:一種系統調用,可讓您從目前正在運行的核心載入並啟動到另一個核" +"心。 kexec 在核心中執行引導程式的功能。" #: src/glossary.md:50 #, fuzzy @@ -6610,9 +6901,10 @@ msgid "" "performance-and-reliability critical environments, it didn't see mass " "adoption. It later became coreboot." msgstr "" -"_**LinuxBIOS**_:由 Ron Minnich、Stefan Reinauer 和其他人於 1999 年發起的一個專案。這是將 Linux " -"作為韌體運行的實驗。當時,Linux 對於硬體初始化專案來說還不夠成熟,儘管 LinuxBIOS " -"在多個效能和可用性關鍵環境中取得了成功,但並未大規模採用。後來它變成了 coreboot。" +"_**LinuxBIOS**_:由 Ron Minnich、Stefan Reinauer 和其他人於 1999 年發起的一個" +"專案。這是將 Linux 作為韌體運行的實驗。當時,Linux 對於硬體初始化專案來說還不" +"夠成熟,儘管 LinuxBIOS 在多個效能和可用性關鍵環境中取得了成功,但並未大規模採" +"用。後來它變成了 coreboot。" #: src/glossary.md:56 #, fuzzy @@ -6623,9 +6915,10 @@ msgid "" "firmware. It is a collection of various open source components, combined to " "work as a consistent firmware OS." msgstr "" -"_**LinuxBoot**_:LinuxBoot " -"不是一個產品,而是一個概念。這就是用Linux(系統韌體)啟動Linux(作業系統)的想法。從某種程度上來說,這與 LinuxBIOS " -"開創的概念相同。它就像一個 Linux 發行版,但用於韌體。它是各種開源元件的集合,組合起來作為一致的韌體作業系統運作。" +"_**LinuxBoot**_:LinuxBoot 不是一個產品,而是一個概念。這就是用Linux(系統韌" +"體)啟動Linux(作業系統)的想法。從某種程度上來說,這與 LinuxBIOS 開創的概念" +"相同。它就像一個 Linux 發行版,但用於韌體。它是各種開源元件的集合,組合起來作" +"為一致的韌體作業系統運作。" #: src/glossary.md:61 #, fuzzy @@ -6637,9 +6930,10 @@ msgid "" "extensibility is nice and often desirable, too much extensibility can make a " "complex project very hard to maintain and keep secure." msgstr "" -"__NERF__:由剝離的 UEFI 加上 Linux 加上 u-root 組成的 LinuxBoot 專案的原始名稱。此名稱代表不可擴展的精簡固件,與 " -"UEFI 的統一可擴展固件介面相對。 NERF 是 UEFI " -"的替代品,更緊湊,擴展性更差。雖然可擴展性很好且通常是可取的,但過多的可擴展性會使複雜的專案很難維護和保持安全。" +"__NERF__:由剝離的 UEFI 加上 Linux 加上 u-root 組成的 LinuxBoot 專案的原始名" +"稱。此名稱代表不可擴展的精簡固件,與 UEFI 的統一可擴展固件介面相對。 NERF 是 " +"UEFI 的替代品,更緊湊,擴展性更差。雖然可擴展性很好且通常是可取的,但過多的可" +"擴展性會使複雜的專案很難維護和保持安全。" #: src/glossary.md:67 #, fuzzy @@ -6657,8 +6951,9 @@ msgid "" "set of guidelines with contributions from Microsoft, Google, Facebook, " "Intel, 9elements, TwoSigma, and several other companies." msgstr "" -"開放系統韌體 (OSF):開放計算項目 (OCP) 的官方子項目。 OSF 是由對開源系統韌體感興趣的 OCP 各成員公開開發的。 OSF " -"在微軟、Google、Facebook、英特爾、9elements、TwoSigma 和其他幾家公司的貢獻下定義了一套指導方針。" +"開放系統韌體 (OSF):開放計算項目 (OCP) 的官方子項目。 OSF 是由對開源系統韌體" +"感興趣的 OCP 各成員公開開發的。 OSF 在微軟、Google、Facebook、英特爾、" +"9elements、TwoSigma 和其他幾家公司的貢獻下定義了一套指導方針。" #: src/glossary.md:74 #, fuzzy @@ -6672,10 +6967,12 @@ msgid "" "soon as RAM is detected and configured, PEI stage give control to the DXE " "through DXE Initial Program Load (IPL) driver" msgstr "" -"OVMF:開啟虛擬機器韌體。開放虛擬機器韌體是 EDK II 為虛擬機構建造的版本。它包括對 UEFI 的完全支持,包括安全啟動,允許在 EFI 初始化 " -"(PEI)|UEFI 階段使用 UEFI 代替傳統 BIOS,該階段在 RAM 初始化之前從快取和 ROM 運行。 PEI 主要是在 32 " -"位元保護平面模式下運行的 C 代碼。 PEI 階段的主要目標是偵測 RAM。一旦偵測到並配置了 RAM,PEI 階段就會透過 DXE 初始程式載入 " -"(IPL) 驅動程式將控制權交給 DXE" +"OVMF:開啟虛擬機器韌體。開放虛擬機器韌體是 EDK II 為虛擬機構建造的版本。它包" +"括對 UEFI 的完全支持,包括安全啟動,允許在 EFI 初始化 (PEI)|UEFI 階段使用 " +"UEFI 代替傳統 BIOS,該階段在 RAM 初始化之前從快取和 ROM 運行。 PEI 主要是在 " +"32 位元保護平面模式下運行的 C 代碼。 PEI 階段的主要目標是偵測 RAM。一旦偵測" +"到並配置了 RAM,PEI 階段就會透過 DXE 初始程式載入 (IPL) 驅動程式將控制權交給 " +"DXE" #: src/glossary.md:82 msgid "" @@ -6691,11 +6988,12 @@ msgstr "" #, fuzzy msgid "" "_**PureBoot**_: A combination of disabling IME, coreboot, a TPM, Heads and " -"the Librem Key (see [Trusted Boot (Anti-Evil-Maid, Heads, and " -"PureBoot)](https://tech.michaelaltfield.net/2023/02/16/evil-maid-heads-pureboot/#pureboot))" +"the Librem Key (see [Trusted Boot (Anti-Evil-Maid, Heads, and PureBoot)]" +"(https://tech.michaelaltfield.net/2023/02/16/evil-maid-heads-pureboot/" +"#pureboot))" msgstr "" -"PureBoot:停用 IME、coreboot、TPM、Heads 和 Librem Key 的組合(請參閱 Trusted Boot " -"(Anti-Evil-Maid、Heads 和 PureBoot))" +"PureBoot:停用 IME、coreboot、TPM、Heads 和 Librem Key 的組合(請參閱 " +"Trusted Boot (Anti-Evil-Maid、Heads 和 PureBoot))" #: src/glossary.md:91 #, fuzzy @@ -6711,8 +7009,8 @@ msgid "" "CPU cache-as-RAM (CAR) and gives control to the PEI dispatcher. It is 99.9% " "assembly code (32-bit protected mode)." msgstr "" -"安全啟動預驗證器 (SEC):在 UEFI 中,SEC 階段初始化 CPU 快取作為 RAM (CAR) 並將控制權交給 PEI 調度程序。它是 " -"99.9% 的彙編代碼(32 位元保護模式)。" +"安全啟動預驗證器 (SEC):在 UEFI 中,SEC 階段初始化 CPU 快取作為 RAM (CAR) 並" +"將控制權交給 PEI 調度程序。它是 99.9% 的彙編代碼(32 位元保護模式)。" #: src/glossary.md:96 #, fuzzy @@ -6726,7 +7024,9 @@ msgstr "u-boot:一個非常流行的開源韌體和引導程式。不要與 u- msgid "" "_**u-root**_: A modern, embedded user-space environment for Linux, with " "bootloader tools. See the section on u-root." -msgstr "u-root:一個現代的、嵌入式的 Linux 使用者空間環境,附有引導程式工具。請參閱有關 u-root 的部分。" +msgstr "" +"u-root:一個現代的、嵌入式的 Linux 使用者空間環境,附有引導程式工具。請參閱有" +"關 u-root 的部分。" #: src/glossary.md:100 #, fuzzy @@ -6739,9 +7039,10 @@ msgid "" "II are UEFI implementations. UEFI is not closed source per-se, but in " "practice most implementations are." msgstr "" -"UEFI:統一可擴充韌體介面。這是英特爾對系統韌體標準的規範。 UEFI " -"定義了從快閃記憶體晶片上的佈局到如何與週邊設備介面的所有內容,支援從磁碟或網路啟動,定義 UEFI 應用程式如何運作等。它不是一個實現,而是一個標準。 " -"EDK II 和 OpenEDK II 是 UEFI 實作。 UEFI 本身並不是閉源的,但實際上大多數實作都是閉源的。" +"UEFI:統一可擴充韌體介面。這是英特爾對系統韌體標準的規範。 UEFI 定義了從快閃" +"記憶體晶片上的佈局到如何與週邊設備介面的所有內容,支援從磁碟或網路啟動,定義 " +"UEFI 應用程式如何運作等。它不是一個實現,而是一個標準。 EDK II 和 OpenEDK II " +"是 UEFI 實作。 UEFI 本身並不是閉源的,但實際上大多數實作都是閉源的。" #: src/history.md:5 #, fuzzy @@ -6752,9 +7053,9 @@ msgid "" "memory, and jumping to a hard-coded position on the MBR of the first disk " "drive." msgstr "" -"[BIOS](https://en.wikipedia.org/wiki/BIOS) 是 UEFI " -"出現之前初始化硬體平台的一種古老而又難以捉摸的方式。它是一個沒有標準化結構的二進位 blob,負責初始化 CPU 和內存,並跳到第一個磁碟機的 MBR " -"上的硬編碼位置。" +"[BIOS](https://en.wikipedia.org/wiki/BIOS) 是 UEFI 出現之前初始化硬體平台的一" +"種古老而又難以捉摸的方式。它是一個沒有標準化結構的二進位 blob,負責初始化 " +"CPU 和內存,並跳到第一個磁碟機的 MBR 上的硬編碼位置。" #: src/history.md:10 #, fuzzy @@ -6764,8 +7065,9 @@ msgid "" "offer a BIOS compatibility mode called CSM (Compatibility Support Module), " "which makes it behave like an old BIOS." msgstr "" -"從 2000 年左右開始,BIOS 已在很大程度上被標準化的 [UEFI](https://en.wikipedia.org/wiki/UEFI) " -"所取代。許多 UEFI 實作仍然提供一種稱為 CSM(相容性支援模組)的 BIOS 相容模式,這使其行為類似於舊的 BIOS。" +"從 2000 年左右開始,BIOS 已在很大程度上被標準化的 [UEFI](https://" +"en.wikipedia.org/wiki/UEFI) 所取代。許多 UEFI 實作仍然提供一種稱為 CSM(相容" +"性支援模組)的 BIOS 相容模式,這使其行為類似於舊的 BIOS。" #: src/history.md:15 #, fuzzy @@ -6776,7 +7078,8 @@ msgid "" "_not_ a BIOS, nor is LinuxBoot a BIOS in the original sense." msgstr "" "請注意,「BIOS」一詞有時會被誤用來指稱系統韌體的一般概念,例如 UEFI 甚至 " -"LinuxBoot。但是,由於「BIOS」是指具有特定功能的固件,因此 UEFI 絕對不是 BIOS,LinuxBoot 也不是原始意義上的 BIOS。" +"LinuxBoot。但是,由於「BIOS」是指具有特定功能的固件,因此 UEFI 絕對不是 " +"BIOS,LinuxBoot 也不是原始意義上的 BIOS。" #: src/history.md:20 #, fuzzy @@ -6786,20 +7089,21 @@ msgstr "Linux BIOS" #: src/history.md:22 #, fuzzy msgid "" -"The " -"[LinuxBIOS](https://web.archive.org/web/20070430170020/http://www.linuxbios.org/Welcome_to_LinuxBIOS) " -"project was created in 1999 by Ron Minnich, Stefan Reinauer and others. It " -"is not much younger than UEFI, but they were already experimenting the idea " -"of running Linux as firmware. Like many great ideas, it was way ahead of its " -"time. At that time Linux was not mature enough to be used in a hardware " -"initialization project, and while LinuxBIOS was successful in several " -"performance-and-reliability critical environments, it didn't see mass " -"adoption." +"The [LinuxBIOS](https://web.archive.org/web/20070430170020/http://" +"www.linuxbios.org/Welcome_to_LinuxBIOS) project was created in 1999 by Ron " +"Minnich, Stefan Reinauer and others. It is not much younger than UEFI, but " +"they were already experimenting the idea of running Linux as firmware. Like " +"many great ideas, it was way ahead of its time. At that time Linux was not " +"mature enough to be used in a hardware initialization project, and while " +"LinuxBIOS was successful in several performance-and-reliability critical " +"environments, it didn't see mass adoption." msgstr "" -"[LinuxBIOS](https://web.archive.org/web/20070430170020/http://www.linuxbios.org/Welcome_to_LinuxBIOS) " -"計畫由 Ron Minnich、Stefan Reinauer 等人於 1999 年創立。它並不比 UEFI 年輕多少,但他們已經在嘗試將 Linux " -"作為韌體運行的想法。就像許多偉大的想法一樣,它遠遠超越了它的時代。當時,Linux 還不夠成熟,無法用於硬體初始化項目,儘管 LinuxBIOS " -"在多個效能和可用性關鍵環境中取得了成功,但並未大規模採用。" +"[LinuxBIOS](https://web.archive.org/web/20070430170020/http://" +"www.linuxbios.org/Welcome_to_LinuxBIOS) 計畫由 Ron Minnich、Stefan Reinauer " +"等人於 1999 年創立。它並不比 UEFI 年輕多少,但他們已經在嘗試將 Linux 作為韌體" +"運行的想法。就像許多偉大的想法一樣,它遠遠超越了它的時代。當時,Linux 還不夠" +"成熟,無法用於硬體初始化項目,儘管 LinuxBIOS 在多個效能和可用性關鍵環境中取得" +"了成功,但並未大規模採用。" #: src/history.md:31 #, fuzzy @@ -6827,23 +7131,28 @@ msgid "" "extensibility and too many \"yes\" can make a complex project very hard to " "maintain and keep secure." msgstr "" -"這是剝離出來的UEFI的原名,加上Linux,加上u-root。此名稱代表不可擴展的精簡固件,與 UEFI 的統一可擴展固件介面相對。基本上,NERF " -"是 UEFI " -"的替代品,它更緊湊、擴展性更差,而且更有主見。雖然可擴展性很好並且常常是人們所希望的,但是過多的可擴展性和過多的“是”會使複雜的項目很難維護和保持安全。" +"這是剝離出來的UEFI的原名,加上Linux,加上u-root。此名稱代表不可擴展的精簡固" +"件,與 UEFI 的統一可擴展固件介面相對。基本上,NERF 是 UEFI 的替代品,它更緊" +"湊、擴展性更差,而且更有主見。雖然可擴展性很好並且常常是人們所希望的,但是過" +"多的可擴展性和過多的“是”會使複雜的項目很難維護和保持安全。" #: src/history.md:45 #, fuzzy msgid "" "NERF was created by Ron Minnich while at Google in 2017. The project grew " "and was maintained by Google's \"NERF team\"." -msgstr "NERF 由 Ron Minnich 於 2017 年在谷歌任職期間創建。該項目由谷歌的“NERF 團隊”發展和維護。" +msgstr "" +"NERF 由 Ron Minnich 於 2017 年在谷歌任職期間創建。該項目由谷歌的“NERF 團隊”發" +"展和維護。" #: src/history.md:48 #, fuzzy msgid "" -"NERF eventually became the " -"[linuxboot](https://github.com/linuxboot/linuxboot/) build system." -msgstr "NERF 最終成為了 [linuxboot](https://github.com/linuxboot/linuxboot/) 建置系統。" +"NERF eventually became the [linuxboot](https://github.com/linuxboot/" +"linuxboot/) build system." +msgstr "" +"NERF 最終成為了 [linuxboot](https://github.com/linuxboot/linuxboot/) 建置系" +"統。" #: src/history.md:53 #, fuzzy @@ -6853,12 +7162,8 @@ msgid "" "strong platform security. It is currently maintained by Thierry Laurion." msgstr "" "[Heads](https://github.com/linuxboot/heads) 是由 Trammell Hudson (又名 " -"osreasrch) 創建的筆記型電腦和伺服器的開源固件,旨在增強平台安全性。它目前由 Thierry Laurion 維護。" - -#: src/history.md:57 -#, fuzzy -msgid "See also" -msgstr "參見" +"osreasrch) 創建的筆記型電腦和伺服器的開源固件,旨在增強平台安全性。它目前由 " +"Thierry Laurion 維護。" #: src/history.md:59 #, fuzzy @@ -6873,34 +7178,37 @@ msgstr "[trmm.net/NERF](https://trmm.net/NERF/)" #: src/history.md:61 #, fuzzy msgid "" -"[NERF-Projekt statt " -"UEFI](https://www.golem.de/news/freie-linux-firmware-google-will-server-ohne-intel-me-und-uefi-1710-130840-2.html)" +"[NERF-Projekt statt UEFI](https://www.golem.de/news/freie-linux-firmware-" +"google-will-server-ohne-intel-me-und-uefi-1710-130840-2.html)" msgstr "" -"[NERF-Projekt statt " -"UEFI](https://www.golem.de/news/freie-linux-firmware-google-will-server-ohne-intel-me-und-uefi-1710-130840-2.html)" +"[NERF-Projekt statt UEFI](https://www.golem.de/news/freie-linux-firmware-" +"google-will-server-ohne-intel-me-und-uefi-1710-130840-2.html)" #: src/history.md:62 #, fuzzy msgid "" -"[Bringing Linux back to the Server BIOS with " -"LinuxBoot](https://www.twosigma.com/articles/bringing-linux-back-to-the-server-bios-with-linuxboot/)" +"[Bringing Linux back to the Server BIOS with LinuxBoot](https://" +"www.twosigma.com/articles/bringing-linux-back-to-the-server-bios-with-" +"linuxboot/)" msgstr "使用 LinuxBoot 將 Linux 重新引入伺服器 BIOS" #: src/history.md:63 #, fuzzy msgid "" -"[LinuxBoot: A Fast, Reliable Open Source Firmware for Linux " -"Servers](https://www.twosigma.com/articles/linuxboot-a-fast-reliable-open-source-firmware-for-linux-servers/)" +"[LinuxBoot: A Fast, Reliable Open Source Firmware for Linux Servers](https://" +"www.twosigma.com/articles/linuxboot-a-fast-reliable-open-source-firmware-for-" +"linux-servers/)" msgstr "LinuxBoot:一款快速、可靠的 Linux 伺服器開源韌體" #: src/history.md:64 #, fuzzy msgid "" -"[safeboot: Improving the Safety of Booting Linux on Normal " -"Laptops](https://www.twosigma.com/articles/safeboot-improving-the-safety-of-booting-linux-on-normal-laptops/)" +"[safeboot: Improving the Safety of Booting Linux on Normal Laptops](https://" +"www.twosigma.com/articles/safeboot-improving-the-safety-of-booting-linux-on-" +"normal-laptops/)" msgstr "" -"[safeboot:提高一般筆記型電腦啟動 Linux " -"的安全性](https://www.twosigma.com/articles/safeboot-improving-the-safety-of-booting-linux-on-normal-laptops/)" +"[safeboot:提高一般筆記型電腦啟動 Linux 的安全性](https://www.twosigma.com/" +"articles/safeboot-improving-the-safety-of-booting-linux-on-normal-laptops/)" #: src/history.md:66 #, fuzzy @@ -6910,18 +7218,18 @@ msgstr "開放平台韌體" #: src/history.md:68 #, fuzzy msgid "" -"[Open Platform " -"Firmware](https://www.opencompute.org/projects/open-system-firmware) (OPF), " -"formerly Open System Firmware (OSF), is an official subproject of the [Open " -"Compute Project](https://www.opencompute.org) (OCP). OPF has been developed " -"in the open, by various members of OCP that were interested in having open " -"source system firmware. OPF defines a set of guidelines with contributions " -"from Microsoft, Google, Facebook, Intel, 9elements, Two Sigma, and several " -"other companies." +"[Open Platform Firmware](https://www.opencompute.org/projects/open-system-" +"firmware) (OPF), formerly Open System Firmware (OSF), is an official " +"subproject of the [Open Compute Project](https://www.opencompute.org) (OCP). " +"OPF has been developed in the open, by various members of OCP that were " +"interested in having open source system firmware. OPF defines a set of " +"guidelines with contributions from Microsoft, Google, Facebook, Intel, " +"9elements, Two Sigma, and several other companies." msgstr "" -"開放平台韌體 (OPF),以前稱為開放系統韌體 (OSF),是開放運算專案 (OCP) 的官方子專案。 OPF 是由對開源系統韌體感興趣的 OCP " -"各成員公開開發的。 OPF 在微軟、Google、Facebook、英特爾、9elements、Two Sigma " -"和其他幾家公司的貢獻下定義了一套指導方針。" +"開放平台韌體 (OPF),以前稱為開放系統韌體 (OSF),是開放運算專案 (OCP) 的官方子" +"專案。 OPF 是由對開源系統韌體感興趣的 OCP 各成員公開開發的。 OPF 在微軟、" +"Google、Facebook、英特爾、9elements、Two Sigma 和其他幾家公司的貢獻下定義了一" +"套指導方針。" #: src/history.md:77 #, fuzzy @@ -6931,8 +7239,8 @@ msgid "" "LinuxBoot or OpenEDK2) can be OPF-compliant if it follows the aforementioned " "guidelines." msgstr "" -"要記住的重要一點是,**開放平台韌體是一個專案名稱**,而不是一個實現,也不是一個想法。如果遵循上述準則,實作(如 LinuxBoot 或 " -"OpenEDK2)可以符合 OPF 標準。" +"要記住的重要一點是,**開放平台韌體是一個專案名稱**,而不是一個實現,也不是一" +"個想法。如果遵循上述準則,實作(如 LinuxBoot 或 OpenEDK2)可以符合 OPF 標準。" #: src/history.md:81 #, fuzzy @@ -6943,7 +7251,8 @@ msgstr "目前,開放平台韌體有兩個工作流程:" #, fuzzy msgid "" "LinuxBoot, led by Google, Facebook, 9elements, ITRenew, TwoSigma, and others" -msgstr "LinuxBoot,由 Google、Facebook、9elements、ITRenew、TwoSigma 等公司領導" +msgstr "" +"LinuxBoot,由 Google、Facebook、9elements、ITRenew、TwoSigma 等公司領導" #: src/history.md:84 #, fuzzy @@ -6983,9 +7292,9 @@ msgstr "Ampere Mt. Jade 平台上的 LinuxBoot" #: src/case_studies/Ampere_study.md:3 #, fuzzy msgid "" -"The Ampere Altra Family processor based Mt. Jade platform is a " -"high-performance ARM server platform, offering up to 256 processor cores in " -"a dual socket configuration. The Tianocore EDK2 firmware for the Mt. Jade " +"The Ampere Altra Family processor based Mt. Jade platform is a high-" +"performance ARM server platform, offering up to 256 processor cores in a " +"dual socket configuration. The Tianocore EDK2 firmware for the Mt. Jade " "platform has been fully upstreamed to the tianocore/edk2-platforms " "repository, enabling the community to build and experiment with the " "platform's firmware using entirely open-source code. It also supports " @@ -6993,37 +7302,40 @@ msgid "" "enhances security, and increases flexibility compared to standard UEFI " "firmware." msgstr "" -"基於 Ampere Altra 系列處理器的 Mt. Jade 平台是一款高效能 ARM 伺服器平台,在雙插槽配置中可提供多達 256 個處理器核心。 " -"Mt. Jade 平台的 Tianocore EDK2 韌體已完全上傳至 tianocore/edk2-platforms " -"儲存庫,使社群能夠使用完全開源程式碼建置和試驗該平台的韌體。它還支援 LinuxBoot,這是一個開源韌體框架,與標準 UEFI " -"韌體相比,它可以縮短啟動時間、增強安全性並提高靈活性。" +"基於 Ampere Altra 系列處理器的 Mt. Jade 平台是一款高效能 ARM 伺服器平台,在雙" +"插槽配置中可提供多達 256 個處理器核心。 Mt. Jade 平台的 Tianocore EDK2 韌體已" +"完全上傳至 tianocore/edk2-platforms 儲存庫,使社群能夠使用完全開源程式碼建置" +"和試驗該平台的韌體。它還支援 LinuxBoot,這是一個開源韌體框架,與標準 UEFI 韌" +"體相比,它可以縮短啟動時間、增強安全性並提高靈活性。" #: src/case_studies/Ampere_study.md:12 #, fuzzy msgid "" "Mt. Jade has also achieved a significant milestone by becoming [the first " -"server certified under the Arm SystemReady LS certification " -"program](https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-systemready-ls). " -"SystemReady LS ensures compliance with standardized boot and runtime " -"environments for Linux-based systems, enabling seamless deployment across " -"diverse hardware. This certification further emphasizes Mt. Jade's " -"readiness for enterprise and cloud-scale adoption by providing assurance of " -"compatibility, performance, and reliability." -msgstr "" -"Mt. Jade 也取得了一個重要的里程碑,成為 [第一個經過 Arm SystemReady LS " -"認證計畫認證的伺服器](https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-systemready-ls)。 " -"SystemReady LS 確保符合基於 Linux 的系統的標準化啟動和運行時環境,從而實現跨不同硬體的無縫部署。 " -"該認證透過提供相容性、效能和可靠性的保證,進一步強調了 Mt. Jade 已為企業和雲端規模採用做好準備。" +"server certified under the Arm SystemReady LS certification program](https://" +"community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/" +"posts/arm-systemready-ls). SystemReady LS ensures compliance with " +"standardized boot and runtime environments for Linux-based systems, enabling " +"seamless deployment across diverse hardware. This certification further " +"emphasizes Mt. Jade's readiness for enterprise and cloud-scale adoption by " +"providing assurance of compatibility, performance, and reliability." +msgstr "" +"Mt. Jade 也取得了一個重要的里程碑,成為 [第一個經過 Arm SystemReady LS 認證計" +"畫認證的伺服器](https://community.arm.com/arm-community-blogs/b/" +"architectures-and-processors-blog/posts/arm-systemready-ls)。 SystemReady LS " +"確保符合基於 Linux 的系統的標準化啟動和運行時環境,從而實現跨不同硬體的無縫部" +"署。 該認證透過提供相容性、效能和可靠性的保證,進一步強調了 Mt. Jade 已為企" +"業和雲端規模採用做好準備。" #: src/case_studies/Ampere_study.md:21 #, fuzzy msgid "" "This case study explores the LinuxBoot implementation on the Ampere Mt. Jade " -"platform, inspired by the approach used in [Google's LinuxBoot " -"deployment](Google_study.md)." +"platform, inspired by the approach used in [Google's LinuxBoot deployment]" +"(Google_study.md)." msgstr "" -"本案例研究探討了 Ampere Mt. Jade 平台上的 LinuxBoot 實現,靈感來自於 [Google 的 LinuxBoot " -"部署](Google_study.md) 中使用的方法。" +"本案例研究探討了 Ampere Mt. Jade 平台上的 LinuxBoot 實現,靈感來自於 [Google " +"的 LinuxBoot 部署](Google_study.md) 中使用的方法。" #: src/case_studies/Ampere_study.md:25 #, fuzzy @@ -7038,8 +7350,8 @@ msgid "" "functionalities. The platform aligns closely with step 6 in the LinuxBoot " "adoption model." msgstr "" -"Mt. Jade 平台採用混合韌體架構,結合 UEFI/EDK2 進行硬體初始化,並結合 LinuxBoot 用於進階啟動功能。該平台與 " -"LinuxBoot 採用模型中的第 6 步緊密結合。" +"Mt. Jade 平台採用混合韌體架構,結合 UEFI/EDK2 進行硬體初始化,並結合 " +"LinuxBoot 用於進階啟動功能。該平台與 LinuxBoot 採用模型中的第 6 步緊密結合。" #: src/case_studies/Ampere_study.md:34 #, fuzzy @@ -7055,19 +7367,19 @@ msgid "" "common and platform code, are fully open source and resides in Tianocore " "edk2-platforms and edk2 repositories." msgstr "" -"**EDK2**:PEI 和最小(精簡)DXE 驅動程式(包括通用程式碼和平台程式碼)都是完全開源的,位於 Tianocore edk2 平台和 " -"edk2 儲存庫中。" +"**EDK2**:PEI 和最小(精簡)DXE 驅動程式(包括通用程式碼和平台程式碼)都是完" +"全開源的,位於 Tianocore edk2 平台和 edk2 儲存庫中。" #: src/case_studies/Ampere_study.md:40 #, fuzzy msgid "" "**LinuxBoot**: The LinuxBoot binary ([flashkernel](../glossary.md)) for Mt. " -"Jade is supported in the " -"[linuxboot/linuxboot](https://github.com/linuxboot/linuxboot/tree/main/mainboards/ampere/jade) " -"repository." +"Jade is supported in the [linuxboot/linuxboot](https://github.com/linuxboot/" +"linuxboot/tree/main/mainboards/ampere/jade) repository." msgstr "" -"**LinuxBoot**:[linuxboot/linuxboot](https://github.com/linuxboot/linuxboot/tree/main/mainboards/ampere/jade) " -"儲存庫支援 Mt. Jade 的 LinuxBoot 二進位檔案 ([flashkerary.md))。" +"**LinuxBoot**:[linuxboot/linuxboot](https://github.com/linuxboot/linuxboot/" +"tree/main/mainboards/ampere/jade) 儲存庫支援 Mt. Jade 的 LinuxBoot 二進位檔" +"案 ([flashkerary.md))。" #: src/case_studies/Ampere_study.md:45 #, fuzzy @@ -7080,15 +7392,16 @@ msgid "" "Ampere has implemented and successfully upstreamed a solution for " "integrating LinuxBoot as a Boot Device Selection (BDS) option into the " "TianoCore EDK2 framework, as seen in commit [ArmPkg: Implement " -"PlatformBootManagerLib for " -"LinuxBoot](https://github.com/tianocore/edk2/commit/62540372230ecb5318a9c8a40580a14beeb9ded0). " -"This innovation simplifies the boot process for the Mt. Jade platform and " -"aligns with LinuxBoot's goals of efficiency and flexibility." +"PlatformBootManagerLib for LinuxBoot](https://github.com/tianocore/edk2/" +"commit/62540372230ecb5318a9c8a40580a14beeb9ded0). This innovation simplifies " +"the boot process for the Mt. Jade platform and aligns with LinuxBoot's goals " +"of efficiency and flexibility." msgstr "" -"Ampere 已實現並成功上游了一項解決方案,將 LinuxBoot 作為啟動設備選擇 (BDS) 選項整合到 TianoCore EDK2 " -"框架中,如提交 [ArmPkg:為 LinuxBoot " -"實現PlatformBootManagerLib](https://github.com/tianocore/edk2/commit/62540372230ecb5318a9c8a40580a14beeb9ded0) " -"所示。這項創新簡化了 Mt. Jade 平台的啟動過程,並符合 LinuxBoot 的效率和靈活性目標。" +"Ampere 已實現並成功上游了一項解決方案,將 LinuxBoot 作為啟動設備選擇 (BDS) 選" +"項整合到 TianoCore EDK2 框架中,如提交 [ArmPkg:為 LinuxBoot 實現" +"PlatformBootManagerLib](https://github.com/tianocore/edk2/commit/" +"62540372230ecb5318a9c8a40580a14beeb9ded0) 所示。這項創新簡化了 Mt. Jade 平台" +"的啟動過程,並符合 LinuxBoot 的效率和靈活性目標。" #: src/case_studies/Ampere_study.md:55 #, fuzzy @@ -7099,9 +7412,10 @@ msgid "" "This approach bypasses the need to load the UEFI Shell or UiApp (UEFI Setup " "Menu), which depend on numerous unnecessary DXE drivers." msgstr "" -"與早期以 LinuxBoot flashkernel 取代 UEFI Shell 的做法不同,Ampere 的解決方案引入了自訂的 BDS " -"實現,可直接啟動到 LinuxBoot 環境作為主動啟動選項。這種方法無需載入 UEFI Shell 或 UiApp(UEFI " -"設定選單),因為它們依賴大量不必要的 DXE 驅動程式。" +"與早期以 LinuxBoot flashkernel 取代 UEFI Shell 的做法不同,Ampere 的解決方案" +"引入了自訂的 BDS 實現,可直接啟動到 LinuxBoot 環境作為主動啟動選項。這種方法" +"無需載入 UEFI Shell 或 UiApp(UEFI 設定選單),因為它們依賴大量不必要的 DXE " +"驅動程式。" #: src/case_studies/Ampere_study.md:61 #, fuzzy @@ -7111,8 +7425,9 @@ msgid "" "GUID. This distinction allows precise identification of LinuxBoot components " "in the firmware." msgstr "" -"為了進一步增強靈活性,Ampere 專門為 LinuxBoot 二進位檔案引入了一個新的 GUID,確保與 UEFI Shell GUID " -"明確分離。這種區別可以精確識別韌體中的 LinuxBoot 元件。" +"為了進一步增強靈活性,Ampere 專門為 LinuxBoot 二進位檔案引入了一個新的 GUID," +"確保與 UEFI Shell GUID 明確分離。這種區別可以精確識別韌體中的 LinuxBoot 元" +"件。" #: src/case_studies/Ampere_study.md:66 #, fuzzy @@ -7127,8 +7442,9 @@ msgid "" "building the LinuxBoot flashkernel and integrating it into the EDK2 firmware " "build." msgstr "" -"為 Ampere Mt. Jade 平台建立具有整合 LinuxBoot flashkernel 的可刷新 EDK2 韌體映像涉及兩個主要步驟:建立 " -"LinuxBoot flashkernel 並將其整合到 EDK2 韌體建置中。" +"為 Ampere Mt. Jade 平台建立具有整合 LinuxBoot flashkernel 的可刷新 EDK2 韌體" +"映像涉及兩個主要步驟:建立 LinuxBoot flashkernel 並將其整合到 EDK2 韌體建置" +"中。" #: src/case_studies/Ampere_study.md:72 #, fuzzy @@ -7145,7 +7461,9 @@ msgstr "LinuxBoot flash 核心建構如下:" msgid "" "After the build process completes, the flash kernel will be located at: " "linuxboot/mainboards/ampere/jade/flashkernel" -msgstr "建置過程完成後,flash 核心將位於:linuxboot/mainboards/ampere/jade/flashkernel" +msgstr "" +"建置過程完成後,flash 核心將位於:linuxboot/mainboards/ampere/jade/" +"flashkernel" #: src/case_studies/Ampere_study.md:84 #, fuzzy @@ -7157,21 +7475,27 @@ msgstr "步驟 2:使用 Flash 核心建置 EDK2 韌體映像" msgid "" "The EDK2 firmware image is built with the LinuxBoot flashkernel integrated " "into the flash image using the following steps:" -msgstr "EDK2 韌體映像是使用整合到快閃映像中的 LinuxBoot 快閃記憶體核心建構的,步驟如下:" +msgstr "" +"EDK2 韌體映像是使用整合到快閃映像中的 LinuxBoot 快閃記憶體核心建構的,步驟如" +"下:" #: src/case_studies/Ampere_study.md:96 #, fuzzy msgid "" "The `buildfw.sh` script automatically integrates the LinuxBoot flash kernel " "(provided via the -l option) as part of the final EDK2 firmware image." -msgstr "`buildfw.sh` 腳本自動將 LinuxBoot 快閃記憶體核心(透過 -l 選項提供)集成為最終 EDK2 韌體映像的一部分。" +msgstr "" +"`buildfw.sh` 腳本自動將 LinuxBoot 快閃記憶體核心(透過 -l 選項提供)集成為最" +"終 EDK2 韌體映像的一部分。" #: src/case_studies/Ampere_study.md:99 #, fuzzy msgid "" "This process generates a flashable EDK2 firmware image with embedded " "LinuxBoot, ready for deployment on the Ampere Mt. Jade platform." -msgstr "此過程產生具有嵌入式 LinuxBoot 的可刷新 EDK2 韌體映像,準備在 Ampere Mt. Jade 平台上部署。" +msgstr "" +"此過程產生具有嵌入式 LinuxBoot 的可刷新 EDK2 韌體映像,準備在 Ampere Mt. " +"Jade 平台上部署。" #: src/case_studies/Ampere_study.md:102 #, fuzzy @@ -7201,24 +7525,24 @@ msgid "" "cmdline instead of uroot.nohwrng\n" "1970/01/01 00:00:10 Booting from the following block devices: " "[BlockDevice(name=nvme0n1, fs_uuid=) BlockDevice(name=nvme0n1p1, " -"fs_uuid=d6c6-6306) BlockDevice(name=nvme0n1p2, " -"fs_uuid=63402158-6266-48fb-b602-5f83f26bd0b9) BlockDevice(name=nvme0n1p3, " -"fs_uuid=) BlockDevice(name=nvme1n1, fs_uuid=) BlockDevice(name=nvme1n1p1, " +"fs_uuid=d6c6-6306) BlockDevice(name=nvme0n1p2, fs_uuid=63402158-6266-48fb-" +"b602-5f83f26bd0b9) BlockDevice(name=nvme0n1p3, fs_uuid=) " +"BlockDevice(name=nvme1n1, fs_uuid=) BlockDevice(name=nvme1n1p1, " "fs_uuid=525c-92fb)]\n" -"1970/01/01 00:00:10 [grub] Got config file " -"file:///tmp/u-root-mounts3457412855/nvme0n1p1/EFI/ubuntu/grub.cfg:\n" +"1970/01/01 00:00:10 [grub] Got config file file:///tmp/u-root-" +"mounts3457412855/nvme0n1p1/EFI/ubuntu/grub.cfg:\n" "search.fs_uuid 63402158-6266-48fb-b602-5f83f26bd0b9 root\n" "set prefix=($root)'/grub'\n" "configfile $prefix/grub.cfg\n" "\n" -"1970/01/01 00:00:10 Warning: Grub parser could not parse [\"search\" " -"\"--fs-uuid\" \"63402158-6266-48fb-b602-5f83f26bd0b9\" \"root\"]\n" -"1970/01/01 00:00:10 [grub] Got config file " -"file:///tmp/u-root-mounts3457412855/nvme0n1p2/grub/grub.cfg\n" -"1970/01/01 00:00:10 Error: Expected 1 device with UUID " -"\"1334d6c5-c16f-46ba-9120-5127ae43bf63\", found 0\n" -"1970/01/01 00:00:10 Error: Expected 1 device with UUID " -"\"1334d6c5-c16f-46ba-9120-5127ae43bf63\", found 0\n" +"1970/01/01 00:00:10 Warning: Grub parser could not parse [\"search\" \"--fs-" +"uuid\" \"63402158-6266-48fb-b602-5f83f26bd0b9\" \"root\"]\n" +"1970/01/01 00:00:10 [grub] Got config file file:///tmp/u-root-" +"mounts3457412855/nvme0n1p2/grub/grub.cfg\n" +"1970/01/01 00:00:10 Error: Expected 1 device with UUID \"1334d6c5-" +"c16f-46ba-9120-5127ae43bf63\", found 0\n" +"1970/01/01 00:00:10 Error: Expected 1 device with UUID \"1334d6c5-" +"c16f-46ba-9120-5127ae43bf63\", found 0\n" "\n" "\n" "Welcome to LinuxBoot's Menu\n" @@ -7332,8 +7656,9 @@ msgid "" "as a leading open source firmware solution. Key areas for future development " "include:" msgstr "" -"雖然 Ampere Mt. Jade 平台上的 LinuxBoot " -"實作代表著一個重要的里程碑,但仍有一些高級功能和改進有待探索。這些增強功能將擴展平台的功能,提高其可用性,並鞏固其作為領先的開源韌體解決方案的地位。未來發展的重點領域包括:" +"雖然 Ampere Mt. Jade 平台上的 LinuxBoot 實作代表著一個重要的里程碑,但仍有一" +"些高級功能和改進有待探索。這些增強功能將擴展平台的功能,提高其可用性,並鞏固" +"其作為領先的開源韌體解決方案的地位。未來發展的重點領域包括:" #: src/case_studies/Ampere_study.md:231 #, fuzzy @@ -7346,17 +7671,19 @@ msgid "" "One of the critical areas for future development is enabling secure boot " "verification for the target operating system. In the LinuxBoot environment, " "the target OS is typically booted using kexec. However, it is unclear how " -"Secure Boot operates in this context, as kexec bypasses traditional " -"firmware-controlled secure boot mechanisms. Future work should investigate " -"how to extend Secure Boot principles to kexec, ensuring that the OS kernel " -"and its components are verified and authenticated before execution. This may " -"involve implementing signature checks and utilizing trusted certificate " -"chains directly within the LinuxBoot environment to mimic the functionality " -"of UEFI Secure Boot during the kexec process." -msgstr "" -"未來發展的關鍵領域之一是為目標作業系統實現安全啟動驗證。在 LinuxBoot 環境中,目標作業系統通常會使用 kexec 啟動。然而,由於 kexec " -"繞過了傳統的韌體控制的安全啟動機制,因此尚不清楚安全啟動在這種情況下如何運作。未來的工作應該研究如何將安全啟動原則擴展到 " -"kexec,確保在執行之前驗證和認證作業系統核心及其元件。這可能涉及在 LinuxBoot 環境中直接實作簽章檢查並利用受信任的憑證鏈來模擬 kexec " +"Secure Boot operates in this context, as kexec bypasses traditional firmware-" +"controlled secure boot mechanisms. Future work should investigate how to " +"extend Secure Boot principles to kexec, ensuring that the OS kernel and its " +"components are verified and authenticated before execution. This may involve " +"implementing signature checks and utilizing trusted certificate chains " +"directly within the LinuxBoot environment to mimic the functionality of UEFI " +"Secure Boot during the kexec process." +msgstr "" +"未來發展的關鍵領域之一是為目標作業系統實現安全啟動驗證。在 LinuxBoot 環境中," +"目標作業系統通常會使用 kexec 啟動。然而,由於 kexec 繞過了傳統的韌體控制的安" +"全啟動機制,因此尚不清楚安全啟動在這種情況下如何運作。未來的工作應該研究如何" +"將安全啟動原則擴展到 kexec,確保在執行之前驗證和認證作業系統核心及其元件。這" +"可能涉及在 LinuxBoot 環境中直接實作簽章檢查並利用受信任的憑證鏈來模擬 kexec " "過程中 UEFI 安全啟動的功能。" #: src/case_studies/Ampere_study.md:244 @@ -7370,7 +7697,9 @@ msgid "" "The platform supports TPM, but its integration with LinuxBoot is yet to be " "defined. Future work could explore utilizing the TPM for secure boot " "measurements, and system integrity attestation." -msgstr "該平台支援 TPM,但其與 LinuxBoot 的整合尚未確定。未來的工作可以探索利用 TPM 進行安全啟動測量和系統完整性證明。" +msgstr "" +"該平台支援 TPM,但其與 LinuxBoot 的整合尚未確定。未來的工作可以探索利用 TPM " +"進行安全啟動測量和系統完整性證明。" #: src/case_studies/Ampere_study.md:250 #, fuzzy @@ -7384,8 +7713,8 @@ msgid "" "expand support to other Ampere platforms. This would ensure broader " "adoption and usability across different hardware configurations." msgstr "" -"基於 LinuxBoot 在 Mt. Jade 上取得成功,未來的努力應該擴大對其他 Ampere 平台的支援。 " -"這將確保在不同硬體配置中更廣泛的採用和可用性。" +"基於 LinuxBoot 在 Mt. Jade 上取得成功,未來的努力應該擴大對其他 Ampere 平台的" +"支援。 這將確保在不同硬體配置中更廣泛的採用和可用性。" #: src/case_studies/Ampere_study.md:256 #, fuzzy @@ -7400,7 +7729,8 @@ msgid "" "initialization process and minimizing redundant operations during the " "handoff." msgstr "" -"提高 UEFI 和 LinuxBoot 之間的切換效率可以進一步縮短啟動時間。 這種優化將涉及改進初始化過程並最大限度地減少切換期間的冗餘操作。" +"提高 UEFI 和 LinuxBoot 之間的切換效率可以進一步縮短啟動時間。 這種優化將涉及" +"改進初始化過程並最大限度地減少切換期間的冗餘操作。" #: src/case_studies/Ampere_study.md:262 #, fuzzy @@ -7415,8 +7745,8 @@ msgid "" "could provide deeper insights into system performance and potential issues, " "improving reliability and maintainability." msgstr "" -"在 LinuxBoot u-root 環境中新增更多診斷和監控工具將增強偵錯和系統管理。 " -"這些工具可以更深入地了解系統效能和潛在問題,並提高可靠性和可維護性。" +"在 LinuxBoot u-root 環境中新增更多診斷和監控工具將增強偵錯和系統管理。 這些" +"工具可以更深入地了解系統效能和潛在問題,並提高可靠性和可維護性。" #: src/case_studies/Ampere_study.md:269 #, fuzzy @@ -7426,11 +7756,13 @@ msgstr "參見" #: src/case_studies/Ampere_study.md:271 #, fuzzy msgid "" -"[LinuxBoot on Ampere Platforms: A new (old) approach to " -"firmware](https://amperecomputing.com/blogs/linuxboot-on-ampere-platforms--a-new-old-approach-to-firmware)" +"[LinuxBoot on Ampere Platforms: A new (old) approach to firmware](https://" +"amperecomputing.com/blogs/linuxboot-on-ampere-platforms--a-new-old-approach-" +"to-firmware)" msgstr "" -"Ampere 平台上的 " -"LinuxBoot:一種新的(舊)韌體方法](https://amperecomputing.com/blogs/linuxboot-on-ampere-platforms--a-new-old-approach-to-firmware)" +"Ampere 平台上的 LinuxBoot:一種新的(舊)韌體方法](https://" +"amperecomputing.com/blogs/linuxboot-on-ampere-platforms--a-new-old-approach-" +"to-firmware)" #: src/case_studies/Google_study.md:1 #, fuzzy @@ -7449,10 +7781,11 @@ msgid "" "include various initiatives with the overarching goal of moving from " "obscure, complex firmware to simpler, open source firmware." msgstr "" -"Google " -"在多個叢集上運行工作負載,每個叢集包含多達數萬台機器。這些機器首次啟動時就會運行韌體。谷歌正在包括韌體在內的許多領域推動最先進的技術。這裡關於 " -"Google 對 LinuxBoot 實作的討論僅限於用 Linux 核心和運行時取代特定的 UEFI [韌體](../glossary.md) " -"功能。多年來,該專案不斷發展,涵蓋了各種舉措,其總體目標是從晦澀複雜的韌體轉變為更簡單的開源韌體。" +"Google 在多個叢集上運行工作負載,每個叢集包含多達數萬台機器。這些機器首次啟動" +"時就會運行韌體。谷歌正在包括韌體在內的許多領域推動最先進的技術。這裡關於 " +"Google 對 LinuxBoot 實作的討論僅限於用 Linux 核心和運行時取代特定的 UEFI [韌" +"體](../glossary.md) 功能。多年來,該專案不斷發展,涵蓋了各種舉措,其總體目標" +"是從晦澀複雜的韌體轉變為更簡單的開源韌體。" #: src/case_studies/Google_study.md:12 #, fuzzy @@ -7509,9 +7842,9 @@ msgid "" "volunteer leads and Ron Minnich is the Open Compute Platform Foundation " "Incubation Committee Representative." msgstr "" -"Ryan O'Leary 是開放運算平台基金會 " -"[開放系統韌體專案](https://www.opencompute.org/projects/open-system-firmware) " -"的志工負責人之一,Ron Minnich 是開放運算平台基金會孵化委員會代表。" +"Ryan O'Leary 是開放運算平台基金會 [開放系統韌體專案](https://" +"www.opencompute.org/projects/open-system-firmware) 的志工負責人之一,Ron " +"Minnich 是開放運算平台基金會孵化委員會代表。" #: src/case_studies/Google_study.md:30 #, fuzzy @@ -7526,20 +7859,23 @@ msgid "" "systems, LinuxBoot consists of a \"full stack\" solution of stripped-down " "UEFI firmware, a Linux kernel, and an initramfs with tools written in Go. " "Although these components all make up one bundle stored in ROM, there are " -"three parts: the closed-source EFI firmware, a Linux kernel, and " -"[u-root](../u-root.md). The Linux kernel is an unmodified kernel. The " -"user-space initramfs image with Go tools for system booting is available as " -"u-root. Due to this modularity, LinuxBoot can be used with a variety of " -"systems. In many cases, for example, the same kernel and initramfs have been " -"used, without recompilation, on both AMD and Intel x86 boards. The UEFI on " -"these boards is always specific to the board, however." -msgstr "" -"Google LinuxBoot 的主要目標是透過簡化韌體使其符合工程師理解和信任的技術,從而使韌體現代化。在 UEFI 系統中,LinuxBoot " -"由精簡的 UEFI 韌體、Linux 核心以及使用 Go 編寫的工具的 initramfs 組成,是一個「全端」解決方案。雖然這些元件都構成了儲存在 " -"ROM 中的一個包,但實際上包含三個部分:閉源 EFI 韌體、Linux 核心和 [u-root](../u-root.md)。 Linux " -"核心是未修改的核心。 具有用於系統啟動的 Go 工具的使用者空間 initramfs 映像可作為 u-root " -"使用。由於這種模組化,LinuxBoot 可以與各種系統一起使用。例如,在許多情況下,AMD 和 Intel x86 主機板上都使用相同的核心和 " -"initramfs,無需重新編譯。然而,這些主機板上的 UEFI 始終特定於主機板。" +"three parts: the closed-source EFI firmware, a Linux kernel, and [u-root](../" +"u-root.md). The Linux kernel is an unmodified kernel. The user-space " +"initramfs image with Go tools for system booting is available as u-root. Due " +"to this modularity, LinuxBoot can be used with a variety of systems. In many " +"cases, for example, the same kernel and initramfs have been used, without " +"recompilation, on both AMD and Intel x86 boards. The UEFI on these boards is " +"always specific to the board, however." +msgstr "" +"Google LinuxBoot 的主要目標是透過簡化韌體使其符合工程師理解和信任的技術,從而" +"使韌體現代化。在 UEFI 系統中,LinuxBoot 由精簡的 UEFI 韌體、Linux 核心以及使" +"用 Go 編寫的工具的 initramfs 組成,是一個「全端」解決方案。雖然這些元件都構成" +"了儲存在 ROM 中的一個包,但實際上包含三個部分:閉源 EFI 韌體、Linux 核心和 " +"[u-root](../u-root.md)。 Linux 核心是未修改的核心。 具有用於系統啟動的 Go 工" +"具的使用者空間 initramfs 映像可作為 u-root 使用。由於這種模組化,LinuxBoot 可" +"以與各種系統一起使用。例如,在許多情況下,AMD 和 Intel x86 主機板上都使用相同" +"的核心和 initramfs,無需重新編譯。然而,這些主機板上的 UEFI 始終特定於主機" +"板。" #: src/case_studies/Google_study.md:46 #, fuzzy @@ -7556,9 +7892,10 @@ msgid "" "these two stages, the Driver Execution Environment (DXE) loads various " "drivers, and then the Boot Device Select (BDS) phase begins." msgstr "" -"向 LinuxBoot 的轉換從通用 UEFI 開始。 UEFI 電腦啟動分為四個主要階段。安全階段 (SEC) 和 Pre-EFI 初始化階段 " -"(PEI) " -"負責準備硬體的低階操作,並且通常特定於它們所實現的硬體。經過這兩個階段後,驅動程式執行環境(DXE)會載入各種驅動程序,然後啟動裝置選擇(BDS)階段開始。" +"向 LinuxBoot 的轉換從通用 UEFI 開始。 UEFI 電腦啟動分為四個主要階段。安全階" +"段 (SEC) 和 Pre-EFI 初始化階段 (PEI) 負責準備硬體的低階操作,並且通常特定於它" +"們所實現的硬體。經過這兩個階段後,驅動程式執行環境(DXE)會載入各種驅動程序," +"然後啟動裝置選擇(BDS)階段開始。" #: src/case_studies/Google_study.md:56 msgid "" @@ -7586,8 +7923,9 @@ msgid "" "converted it to LinuxBoot for production environments. The steps to reach " "this goal are described below." msgstr "" -"Google 的 LinuxBoot 專案專注於將 UEFI 啟動功能移入核心和使用者空間。即轉換UEFI韌體來運行LinuxBoot。該專案採用了標準 " -"UEFI 啟動流程,並將其轉換為適用於生產環境的 LinuxBoot。實現這一目標的步驟如下所述。" +"Google 的 LinuxBoot 專案專注於將 UEFI 啟動功能移入核心和使用者空間。即轉換" +"UEFI韌體來運行LinuxBoot。該專案採用了標準 UEFI 啟動流程,並將其轉換為適用於生" +"產環境的 LinuxBoot。實現這一目標的步驟如下所述。" #: src/case_studies/Google_study.md:75 #, fuzzy @@ -7602,8 +7940,9 @@ msgid "" "modules used by UEFI and other firmware, particularly the network stack and " "file system modules, with Linux applications." msgstr "" -"UEFI 包含專有的、閉源的、供應商提供的韌體驅動程式和韌體。 LinuxBoot 以 Linux 應用程式取代了 UEFI " -"和其他韌體使用的許多驅動程式執行環境 (DXE) 模組,特別是網路堆疊和檔案系統模組。" +"UEFI 包含專有的、閉源的、供應商提供的韌體驅動程式和韌體。 LinuxBoot 以 Linux " +"應用程式取代了 UEFI 和其他韌體使用的許多驅動程式執行環境 (DXE) 模組,特別是網" +"路堆疊和檔案系統模組。" #: src/case_studies/Google_study.md:83 #, fuzzy @@ -7613,29 +7952,35 @@ msgid "" "reduced or eliminated with LinuxBoot. The dark " "blue items on the left cannot be changed." msgstr "" -"下圖顯示了 UEFI 啟動過程的各個階段。 紅色中的項目是使用 LinuxBoot " -"減少或消除的元件。左側的深藍項目無法更改。" +"下圖顯示了 UEFI 啟動過程的各個階段。 紅色中" +"的項目是使用 LinuxBoot 減少或消除的元件。左側的深" +"藍項目無法更改。" #: src/case_studies/Google_study.md:91 #, fuzzy msgid "" "In the real FLASH part, the SEC and PEI are actually only 10% of total, so " "we reduce the size of those boxes in this and following diagrams." -msgstr "在真正的 FLASH 部分中,SEC 和 PEI 實際上只佔總量的 10%,因此我們在此圖和下圖中縮小了這些框的尺寸。" +msgstr "" +"在真正的 FLASH 部分中,SEC 和 PEI 實際上只佔總量的 10%,因此我們在此圖和下圖" +"中縮小了這些框的尺寸。" #: src/case_studies/Google_study.md:96 #, fuzzy msgid "" "Another part of the conversion process was to modify the UEFI boot process " "to boot a LinuxBoot image as shown below." -msgstr "轉換過程的另一部分是修改 UEFI 啟動過程以啟動 LinuxBoot 映像,如下所示。" +msgstr "" +"轉換過程的另一部分是修改 UEFI 啟動過程以啟動 LinuxBoot 映像,如下所示。" #: src/case_studies/Google_study.md:101 #, fuzzy msgid "" "Step 2. Delete or replace as many proprietary DXEs as required to make step " "3 work. In most cases, none need to be removed." -msgstr "步驟 2. 刪除或取代盡可能多的專有 DXE,以使步驟 3 正常運作。大多數情況下,不需要刪除任何內容。" +msgstr "" +"步驟 2. 刪除或取代盡可能多的專有 DXE,以使步驟 3 正常運作。大多數情況下,不需" +"要刪除任何內容。" #: src/case_studies/Google_study.md:106 #, fuzzy @@ -7648,7 +7993,8 @@ msgid "" "When Linux boots it needs a root file system with utilities. LinuxBoot " "provides a file system based on u-root standard utilities written in Go." msgstr "" -"當 Linux 啟動時,它需要一個具有實用程式的根檔案系統。 LinuxBoot 提供了一個基於用 Go 編寫的 u-root 標準實用程式的檔案系統。" +"當 Linux 啟動時,它需要一個具有實用程式的根檔案系統。 LinuxBoot 提供了一個基" +"於用 Go 編寫的 u-root 標準實用程式的檔案系統。" #: src/case_studies/Google_study.md:114 #, fuzzy @@ -7671,8 +8017,9 @@ msgid "" "as network protocols and file systems. In fact we have resolved many system " "reliability and performance issues just by removing DXEs!" msgstr "" -"最理想的情況是刪除它們並讓 Linux 驅動程式接管它們所做的事情。這對於 " -"USB、網路、磁碟和其他驅動程式以及網路協定和檔案系統非常有效。事實上,我們僅透過刪除 DXE 就解決了許多系統可靠性和效能問題!" +"最理想的情況是刪除它們並讓 Linux 驅動程式接管它們所做的事情。這對於 USB、網" +"路、磁碟和其他驅動程式以及網路協定和檔案系統非常有效。事實上,我們僅透過刪除 " +"DXE 就解決了許多系統可靠性和效能問題!" #: src/case_studies/Google_study.md:125 #, fuzzy @@ -7680,7 +8027,9 @@ msgid "" "The second way is to replace the DXE with an open source driver. This is " "less desirable, as the DXE environment is not as hardened as the Linux " "kernel environment." -msgstr "第二種方法是用開源驅動程式取代 DXE。這並不是理想的情況,因為 DXE 環境並不像 Linux 核心環境那樣堅固。" +msgstr "" +"第二種方法是用開源驅動程式取代 DXE。這並不是理想的情況,因為 DXE 環境並不像 " +"Linux 核心環境那樣堅固。" #: src/case_studies/Google_study.md:128 #, fuzzy @@ -7690,8 +8039,9 @@ msgid "" "settings, for example, memory timing or other controls, and there is no " "chance of ever bringing them to open source." msgstr "" -"最後,也是最不受歡迎的選擇是繼續使用 DXE。如果 DXE " -"包含「調整」晶片組設定(例如記憶體時序或其他控制)的專有程式碼,則需要這樣做,並且沒有機會將它們帶到開源。" +"最後,也是最不受歡迎的選擇是繼續使用 DXE。如果 DXE 包含「調整」晶片組設定(例" +"如記憶體時序或其他控制)的專有程式碼,則需要這樣做,並且沒有機會將它們帶到開" +"源。" #: src/case_studies/Google_study.md:136 #, fuzzy @@ -7723,7 +8073,9 @@ msgstr "步驟 6. 後續步驟:完成 LinuxBoot" msgid "" "LinuxBoot is currently in production, but the LinuxBoot project development " "continues to provide an open-source solution that does the following:" -msgstr "LinuxBoot 目前正在生產中,但 LinuxBoot 專案開發繼續提供執行以下操作的開源解決方案:" +msgstr "" +"LinuxBoot 目前正在生產中,但 LinuxBoot 專案開發繼續提供執行以下操作的開源解決" +"方案:" #: src/case_studies/Google_study.md:151 #, fuzzy @@ -7744,7 +8096,9 @@ msgid "" "Enables writing traditional firmware applications such as bootloader, " "debugging, diagnosis, and error detection applications as cross-architecture " "and cross-platform portable Linux applications." -msgstr "支援將傳統韌體應用程式(如引導程式、偵錯、診斷和錯誤檢測應用程式)編寫為跨架構和跨平台的可移植 Linux 應用程式。" +msgstr "" +"支援將傳統韌體應用程式(如引導程式、偵錯、診斷和錯誤檢測應用程式)編寫為跨架" +"構和跨平台的可移植 Linux 應用程式。" #: src/case_studies/Google_study.md:158 #, fuzzy @@ -7760,16 +8114,16 @@ msgstr "OCP TiogaPass 案例研究" #, fuzzy msgid "" "Points of contact: [Jonathan Zhang](https://github.com/jonzhang-fb), [Andrea " -"Barberio](https://github.com/insomniacslk), [David " -"Hendricks](https://github.com/dhendrix), " -"[Adi](https://github.com/agangidi53), [Morgan " -"Jang](https://github.com/morganjangwiwynn), [Johnny " -"Lin](https://github.com/johnnylinwiwynn)" +"Barberio](https://github.com/insomniacslk), [David Hendricks](https://" +"github.com/dhendrix), [Adi](https://github.com/agangidi53), [Morgan Jang]" +"(https://github.com/morganjangwiwynn), [Johnny Lin](https://github.com/" +"johnnylinwiwynn)" msgstr "" -"聯絡人:[Jonathan Zhang](https://github.com/jonzhang-fb)、[Andrea " -"Barberio](https://github.com/insomniacslk)、[David " -"Hendricks](https://github.com/dhendrix)、[Adi](https://github.com/agangidi53)、[Morwinithwywy](https://github.com/agangidi53)、[Morangwemywonwemwionw'w'ndm)/Cemnemn;Kwwemwangwulwangwem​​yd " -"Lin](https://github.com/johnnylinwiwynn)" +"聯絡人:[Jonathan Zhang](https://github.com/jonzhang-fb)、[Andrea Barberio]" +"(https://github.com/insomniacslk)、[David Hendricks](https://github.com/" +"dhendrix)、[Adi](https://github.com/agangidi53)、[Morwinithwywy](https://" +"github.com/agangidi53)、[Morangwemywonwemwionw'w'ndm)/" +"Cemnemn;Kwwemwangwulwangwem​​yd Lin](https://github.com/johnnylinwiwynn)" #: src/case_studies/TiogaPass.md:11 #, fuzzy @@ -7778,8 +8132,9 @@ msgid "" "use [OCP](https://www.opencompute.org/) platform TiogaPass, made by [Wiwynn " "Corporation](http://www.wiwynn.com/english)." msgstr "" -"本案例研究介紹了韌體開發社群使用由 [Wiwynn Corporation](http://www.wiwynn.com/english) 開發的 " -"[OCP](https://www.opencompute.org/) 平台 TiogaPass 的資訊。" +"本案例研究介紹了韌體開發社群使用由 [Wiwynn Corporation](http://" +"www.wiwynn.com/english) 開發的 [OCP](https://www.opencompute.org/) 平台 " +"TiogaPass 的資訊。" #: src/case_studies/TiogaPass.md:15 #, fuzzy @@ -7849,8 +8204,8 @@ msgid "" "embedded Linux kernel and initramfs as UEFI payload. Please contact Wiwynn " "to get a UEFI binary after ordering." msgstr "" -"下載或建置韌體二進位檔。目前的解決方案是將嵌入式 Linux 核心和 initramfs 作為 UEFI 有效負載啟動。訂購後請聯絡 Wiwynn " -"以取得 UEFI 二進位。" +"下載或建置韌體二進位檔。目前的解決方案是將嵌入式 Linux 核心和 initramfs 作為 " +"UEFI 有效負載啟動。訂購後請聯絡 Wiwynn 以取得 UEFI 二進位。" #: src/case_studies/TiogaPass.md:33 #, fuzzy @@ -7887,7 +8242,9 @@ msgstr "如何建構" msgid "" "Follow [Build Details](#Build-Details) for details on how to get the source " "code, and how to build." -msgstr "請按照[建置詳細資料](#Build-Details)了解如何取得原始程式碼以及如何建置的詳細資訊。" +msgstr "" +"請按照[建置詳細資料](#Build-Details)了解如何取得原始程式碼以及如何建置的詳細" +"資訊。" #: src/case_studies/TiogaPass.md:53 #, fuzzy @@ -7911,8 +8268,8 @@ msgstr "建構詳細信息" #: src/case_studies/TiogaPass.md:61 #, fuzzy msgid "" -"Download the code from [linuxboot " -"github](https://github.com/linuxboot/linuxboot)" +"Download the code from [linuxboot github](https://github.com/linuxboot/" +"linuxboot)" msgstr "從[linuxboot github](https://github.com/linuxboot/linuxboot)下載程式碼" #: src/case_studies/TiogaPass.md:62 @@ -7931,8 +8288,8 @@ msgstr "現在您需要套用 Wiwiynn 的 linuxboot 補丁" msgid "" "```\n" "cd linuxboot\n" -"wget -O TiogaPass.patch " -"https://github.com/johnnylinwiwynn/linuxboot/commit/28ae8450b3b05c6e6b8c74e29d0974ccf711d5e6.patch\n" +"wget -O TiogaPass.patch https://github.com/johnnylinwiwynn/linuxboot/commit/" +"28ae8450b3b05c6e6b8c74e29d0974ccf711d5e6.patch\n" "git am TiogaPass.patch\n" "```" msgstr "" @@ -7941,19 +8298,20 @@ msgstr "" #, fuzzy msgid "" "Build the kernel bzImage (has embedded initramfs) for linuxboot, please " -"reference [Building " -"u-root](https://github.com/linuxboot/book/tree/master/coreboot.u-root.systemboot#building-u-root) " -"and [Building a suitable Linux " -"kernel](https://github.com/linuxboot/book/tree/master/coreboot.u-root.systemboot#building-a-suitable-linux-kernel) " -"for how to build the bzImage. You can always customize your Linux kernel " -"configuration to suit your needs, please reference Wiwynn's kernel " -"configuration file as a sample [linux_config](linux_config)." -msgstr "" -"為 linuxboot 建立核心 bzImage(已嵌入 initramfs),有關如何建置 bzImage,請參考 [建置 " -"u-root](https://github.com/linuxboot/book/tree/master/coreboot.u-root.systemb#building-u-oot) " -"和 [設定合適的 " -"Linux內核](https://github.com/linuxboot/book/tree/master/coreboot.u-root.systemboot#building-a-suitable-linux-kernel)。您隨時可以自訂 " -"Linux 核心設定以滿足您的需求,請參考 Wiwynn 的核心設定檔作為範例 [linux_config](linux_config)。" +"reference [Building u-root](https://github.com/linuxboot/book/tree/master/" +"coreboot.u-root.systemboot#building-u-root) and [Building a suitable Linux " +"kernel](https://github.com/linuxboot/book/tree/master/coreboot.u-" +"root.systemboot#building-a-suitable-linux-kernel) for how to build the " +"bzImage. You can always customize your Linux kernel configuration to suit " +"your needs, please reference Wiwynn's kernel configuration file as a sample " +"[linux_config](linux_config)." +msgstr "" +"為 linuxboot 建立核心 bzImage(已嵌入 initramfs),有關如何建置 bzImage,請參" +"考 [建置 u-root](https://github.com/linuxboot/book/tree/master/coreboot.u-" +"root.systemb#building-u-oot) 和 [設定合適的 Linux內核](https://github.com/" +"linuxboot/book/tree/master/coreboot.u-root.systemboot#building-a-suitable-" +"linux-kernel)。您隨時可以自訂 Linux 核心設定以滿足您的需求,請參考 Wiwynn 的" +"核心設定檔作為範例 [linux_config](linux_config)。" #: src/case_studies/TiogaPass.md:77 #, fuzzy @@ -7962,8 +8320,8 @@ msgid "" "Wiwynn after ordering, and also put your bzImage to the root folder of " "linuxboot, and then make" msgstr "" -"將 tioga.rom 放入 Wiwynn 訂購後提供的 linuxboot/boards/tioga 目錄下,並將您的 bzImage 放入 " -"linuxboot 根目錄下,然後 make" +"將 tioga.rom 放入 Wiwynn 訂購後提供的 linuxboot/boards/tioga 目錄下,並將您" +"的 bzImage 放入 linuxboot 根目錄下,然後 make" #: src/case_studies/TiogaPass.md:86 #, fuzzy @@ -7985,7 +8343,9 @@ msgstr "關注**TBD部分**了解詳細資訊:" msgid "" "How to flash. The image can be flashed either out-of-band, or from LinuxBoot " "u-root shell, or from targetOS shell." -msgstr "如何閃現。該圖像可以透過帶外、LinuxBoot u-root shell 或 targetOS shell 進行刷寫。" +msgstr "" +"如何閃現。該圖像可以透過帶外、LinuxBoot u-root shell 或 targetOS shell 進行刷" +"寫。" #: src/case_studies/TiogaPass.md:94 #, fuzzy @@ -8001,8 +8361,8 @@ msgstr "平台資訊" #, fuzzy msgid "" "The SKU contains TiogaPass board, a debug card, a VGA card, a power adapter. " -"The details can be obtained from the [Wiwynn " -"Corporation](http://www.wiwynn.com/english)." +"The details can be obtained from the [Wiwynn Corporation](http://" +"www.wiwynn.com/english)." msgstr "" "SKU 包含 TiogaPass 板、調試卡、VGA 卡、電源適配器。詳情可向 [Wiwynn " "Corporation](http://www.wiwynn.com/english) 取得。" @@ -8011,11 +8371,14 @@ msgstr "" #, fuzzy msgid "" "Platform design details (including the design spec and schematics) can be " -"found on the [Open Compute Project UfiSpace product " -"page](https://www.opencompute.org/products/108/wiwynn-tioga-pass-standard-sv7220g3-s-2u-ocp-server-up-to-768gb-8gb16gb32gb-ddr4-up-to-2666mts-12-dimm-slots)." +"found on the [Open Compute Project UfiSpace product page](https://" +"www.opencompute.org/products/108/wiwynn-tioga-pass-standard-sv7220g3-s-2u-" +"ocp-server-up-to-768gb-8gb16gb32gb-ddr4-up-to-2666mts-12-dimm-slots)." msgstr "" -"平台設計細節(包括設計規格和原理圖)可以在[開放運算專案 UfiSpace " -"產品頁面](https://www.opencompute.org/products/108/wiwynn-tioga-pass-standard-sv7220g3-s-2u-ocp-server-up-to-768gb-8gb16gb32gb-ddr4-up-to-2666mts-12-dimm-slots)上找到。" +"平台設計細節(包括設計規格和原理圖)可以在[開放運算專案 UfiSpace 產品頁面]" +"(https://www.opencompute.org/products/108/wiwynn-tioga-pass-standard-" +"sv7220g3-s-2u-ocp-server-up-to-768gb-8gb16gb32gb-ddr4-up-to-2666mts-12-dimm-" +"slots)上找到。" #: src/case_studies/TiogaPass.md:105 #, fuzzy @@ -8030,9 +8393,10 @@ msgstr "硬體支援" #: src/case_studies/TiogaPass.md:109 #, fuzzy msgid "" -"Hardware support can be obtained from [Wiwynn " -"Corporation](http://www.wiwynn.com/english)." -msgstr "硬體可從 [Wiwynn Corporation](http://www.wiwynn.com/english) 取得硬體支援。" +"Hardware support can be obtained from [Wiwynn Corporation](http://" +"www.wiwynn.com/english)." +msgstr "" +"硬體可從 [Wiwynn Corporation](http://www.wiwynn.com/english) 取得硬體支援。" #: src/case_studies/TiogaPass.md:111 #, fuzzy @@ -8042,13 +8406,13 @@ msgstr "社區支持" #: src/case_studies/TiogaPass.md:113 #, fuzzy msgid "" -"[OCP Open System " -"Firmware](https://www.opencompute.org/projects/open-system-firmware) is " -"where industry collaborates on how to move forward with OSF. The OCP OSF " -"project has regular recorded meetings and a mailing list." +"[OCP Open System Firmware](https://www.opencompute.org/projects/open-system-" +"firmware) is where industry collaborates on how to move forward with OSF. " +"The OCP OSF project has regular recorded meetings and a mailing list." msgstr "" -"[OCP 開放系統韌體](https://www.opencompute.org/projects/open-system-firmware) " -"是業界就如何推進 OSF 進行合作的地方。 OCP OSF 專案有定期記錄的會議和郵件清單。" +"[OCP 開放系統韌體](https://www.opencompute.org/projects/open-system-" +"firmware) 是業界就如何推進 OSF 進行合作的地方。 OCP OSF 專案有定期記錄的會議" +"和郵件清單。" #: src/case_studies/TiogaPass.md:117 #, fuzzy @@ -8057,8 +8421,8 @@ msgid "" "community you can ask any technical questions. LinuxBoot community has a " "slack channel, a IRC channel, a mailing list and regular meetings." msgstr "" -"[LinuxBoot 開源社群](https://www.linuxboot.org/) 是您可以詢問任何技術問題的社群。 LinuxBoot " -"社群有一個 slack 頻道、一個 IRC 頻道、一個郵件清單和定期會議。" +"[LinuxBoot 開源社群](https://www.linuxboot.org/) 是您可以詢問任何技術問題的社" +"群。 LinuxBoot 社群有一個 slack 頻道、一個 IRC 頻道、一個郵件清單和定期會議。" #: src/case_studies/TiogaPass.md:121 #, fuzzy @@ -8099,18 +8463,208 @@ msgid "" "kernel command line so u-root use a non-blocking random number generator " "implementation." msgstr "" -"問題在於缺乏早期熵。如果您的平台有硬體隨機數產生器,請使用「CONFIG_ARCH_RANDOM」啟用它,並使用「CONFIG_RANDOM_TRUST_CPU」信任它。否則,將“uroot.nohwrng”新增至核心命令列,以便 " -"u-root 使用非阻塞隨機數產生器實作。" +"問題在於缺乏早期熵。如果您的平台有硬體隨機數產生器,請使用" +"「CONFIG_ARCH_RANDOM」啟用它,並使用「CONFIG_RANDOM_TRUST_CPU」信任它。否則," +"將“uroot.nohwrng”新增至核心命令列,以便 u-root 使用非阻塞隨機數產生器實作。" -msgid "" -msgstr "" +#, fuzzy +#~ msgid "" +#~ "AGNEW, A., SULMICKI, A., MINNICH, R., AND ARBAUGH, W. A. Flexibility in " +#~ "rom: A stackable open source bios. In USENIX Annual Technical Conference, " +#~ "FREENIX Track (2003), pp. 115–124." +#~ msgstr "" +#~ "AGNEW, A.、SULMICKI, A.、MINNICH, R. 和 ARBAUGH, W. A. ROM 中的靈活性:可" +#~ "堆疊的開源 BIOS。在 USENIX 年度技術會議 FREENIX Track (2003) 中,第 " +#~ "115-124 頁。" -msgid "" -msgstr "" +#, fuzzy +#~ msgid "(AUTHOR OF SLOF), S. B. Personal conversation." +#~ msgstr "(SLOF 的作者),S. B. 個人對話。" -msgid "" -msgstr "" +#, fuzzy +#~ msgid "" +#~ "BENAVIDES, T., TREON, J., HULBERT, J., AND CHANG, W. The enabling of an " +#~ "execute-in-place architecture to reduce the embedded system memory " +#~ "footprint and boot time. Journal of computers 3, 1 (2008), 79–89." +#~ msgstr "" +#~ "BENAVIDES, T.、TREON, J.、HULBERT, J. 和 CHANG, W. 啟用就地執行架構以減少" +#~ "嵌入式系統記憶體佔用和啟動時間。電腦雜誌 3, 1 (2008), 79-89。" -msgid "" -msgstr "" +#, fuzzy +#~ msgid "" +#~ "BOGOWITZ, B., AND SWINFORD, T. Intel⃝R active management technology " +#~ "reduces it costs with improved pc manageability. Technology@ Intel " +#~ "Magazine (2004)." +#~ msgstr "" +#~ "BOGOWITZ,B.,和 SWINFORD,T. Intel® 主動管理技術透過提高 PC 可管理性來降" +#~ "低 IT 成本。技術@英特爾雜誌(2004 年)。" + +#, fuzzy +#~ msgid "" +#~ "CELEDA, P., KREJCI, R., VYKOPAL, J., AND DRASAR, M. Embedded malware-an " +#~ "analysis of the chuck norris botnet. In Computer Network Defense (EC2ND), " +#~ "2010 European Conference on (2010), IEEE, pp. 3–10." +#~ msgstr "" +#~ "CELEDA,P.、KREJCI,R.、VYKOPAL,J. 和 DRASAR,M. 嵌入式惡意軟體——對查克·" +#~ "諾里斯殭屍網路的分析。在電腦網路防禦(EC2ND)中,2010 年歐洲會議(2010)," +#~ "IEEE,第 3-10 頁。" + +#, fuzzy +#~ msgid "" +#~ "CUI, A., COSTELLO, M., AND STOLFO, S. J. When firmware modifications " +#~ "attack: A case study of embedded exploitation. In NDSS (2013)." +#~ msgstr "" +#~ "CUI, A.、COSTELLO, M. 和 STOLFO, S. J. 當韌體修改受到攻擊:嵌入式利用的案" +#~ "例研究。在 NDSS(2013)中。" + +#, fuzzy +#~ msgid "" +#~ "DALY, D., CHOI, J. H., MOREIRA, J. E., AND WATERLAND, A. Base operating " +#~ "system provisioning and bringup for a commercial supercomputer. In " +#~ "Parallel and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE " +#~ "International (2007), IEEE, pp. 1–7." +#~ msgstr "" +#~ "DALY, D.、CHOI, J. H.、MOREIRA, J. E. 和 WATERLAND, A. 為商業超級電腦提供" +#~ "基礎作業系統設定和啟動。在平行與分散式處理研討會上,2007 年。 IPDPS " +#~ "2007。 IEEE 國際(2007),IEEE,第 1-7 頁。" + +#, fuzzy +#~ msgid "" +#~ "DURUMERIC, Z., KASTEN, J., ADRIAN, D., HALDERMAN, J. A., BAILEY, M., LI, " +#~ "F., WEAVER, N., AMANN, J., BEEKMAN, J., PAYER, M., ET AL. The matter of " +#~ "heartbleed. In Proceedings of the 2014 Conference on Internet Measurement " +#~ "Conference (2014), ACM, pp. 475–488." +#~ msgstr "" +#~ "DURUMERIC, Z.、KASTEN, J.、ADRIAN, D.、HALDERMAN, J. A.、BAILEY, M.、LI, " +#~ "F.、WEAVER, N.、AMANN, J.、BEEKMAN, J.、PAYER, M. 等。心血問題。在 2014 年" +#~ "網路測量會議論文集 (2014) 中,ACM,第 475-488 頁。" + +#, fuzzy +#~ msgid "" +#~ "KALLENBERG, C., AND BULYGIN, Y. All your boot are belong to us intel, " +#~ "mitre. cansecwest 2014." +#~ msgstr "" +#~ "KALLENBERG,C.,和BULYGIN,Y. 你的所有靴子都屬於我們英特爾,mitre。加拿大" +#~ "西部 2014。" + +#, fuzzy +#~ msgid "" +#~ "KALLENBERG, C., KOVAH, X., BUTTERWORTH, J., AND CORNWELL, S. Extreme " +#~ "privilege escalation on windows 8/uefi systems." +#~ msgstr "" +#~ "KALLENBERG,C.、KOVAH,X.、BUTTERWORTH,J. 和 CORNWELL,S. Windows 8/uefi " +#~ "系統上的極端權限提升。" + +#, fuzzy +#~ msgid "" +#~ "KOZIOL, J., LITCHFIELD, D., AITEL, D., ANLEY, C., EREN, S., MEHTA, N., " +#~ "AND HASSELL, R. The Shellcoder’s Handbook. Wiley Indianapolis, 2004." +#~ msgstr "" +#~ "KOZIOL, J.、LITCHFIELD, D.、AITEL, D.、ANLEY, C.、EREN, S.、MEHTA, N. 和 " +#~ "HASSELL, R. Shellcoder 手冊。威利印第安納波利斯,2004 年。" + +#, fuzzy +#~ msgid "LEWIS, T. Uefi overview, 2007." +#~ msgstr "LEWIS,T.Uefi 概述,2007 年。" + +#, fuzzy +#~ msgid "MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79." +#~ msgstr "MAY,D.Occam.ACMSigplanNotices18,4(1983),69–79。" + +#, fuzzy +#~ msgid "" +#~ "MINNICH, R. G. Linuxbios at four. Linux J. 2004, 118 (Feb. 2004), 8–." +#~ msgstr "" +#~ "MINNICH, R. G. Linuxbios 四點。 Linux J. 2004, 118 (2004 年 2 月), 8-。" + +#, fuzzy +#~ msgid "" +#~ "MOON, S.-P., KIM, J.-W., BAE, K.-H., LEE, J.-C., AND SEO, D.-W. Embedded " +#~ "linux implementation on a commercial digital tv system. Consumer " +#~ "Electronics, IEEE Transactions on 49, 4 (Nov 2003), 1402–1407." +#~ msgstr "" +#~ "MOON, S.-P.、KIM, J.-W.、BAE, K.-H.、LEE, J.-C. 和 SEO, D.-W.嵌入式Linux在" +#~ "商業數位電視系統上的實現。消費性電子產品,IEEE 期刊 49,4(2003 年 11 " +#~ "月),1402–1407。" + +#, fuzzy +#~ msgid "" +#~ "PIKE, R. Another go at language design. Stanford University Computer " +#~ "Systems Laboratory Colloquium." +#~ msgstr "PIKE,R. 另一種語言設計方式。史丹佛大學電腦系統實驗室座談會。" + +#, fuzzy +#~ msgid "" +#~ "RITCHIE, D. M. The limbo programming language. Inferno Programmer’s " +#~ "Manual 2 (1997)." +#~ msgstr "RITCHIE,D. M. 邊緣程式語言。 Inferno 程式設計師手冊 2 (1997)。" + +#, fuzzy +#~ msgid "" +#~ "SACCO, A. L., AND ORTEGA, A. A. Persistent bios infection. In CanSecWest " +#~ "Applied Security Conference (2009)." +#~ msgstr "" +#~ "SACCO,A. L.,AND ORTEGA,A. A.持續性 bios 感染。在 CanSecWest 應用安全會" +#~ "議 (2009) 上。" +#, fuzzy +#~ msgid "" +#~ "SAMPATHKUMAR, R. Vulnerability Management for Cloud Computing-2014: A " +#~ "Cloud Computing Security Essential. Rajakumar Sampathkumar, 2014." +#~ msgstr "" +#~ "SAMPATHKUMAR,R.雲端運算漏洞管理-2014:雲端運算安全要點。拉賈庫馬爾桑帕特" +#~ "庫馬爾,2014 年。" + +#, fuzzy +#~ msgid "" +#~ "SUGANUMA, T., OGASAWARA, T., TAKEUCHI, M., YASUE, T., KAWAHITO, M., " +#~ "ISHIZAKI, K., KOMATSU, H., AND NAKATANI, T. Overview of the ibm java just-" +#~ "in-time compiler. IBM systems Journal 39, 1 (2000), 175–193." +#~ msgstr "" +#~ "SUGANUMA, T.、OGASAWARA, T.、TAKEUCHI, M.、YASUE, T.、KAWAHITO, M.、" +#~ "ISHIZAKI, K.、KOMATSU, H. 和 NAKATANI, T. IBM Java 即時編譯器概述。 IBM 系" +#~ "統雜誌 39, 1 (2000), 175–193。" + +#, fuzzy +#~ msgid "" +#~ "TEAM, G. The go programming language specification. Tech. rep., Technical " +#~ "Report [http://golang](http://golang/). org/doc/doc/go spec. html, Google " +#~ "Inc, 2009." +#~ msgstr "" +#~ "TEAM, G. Go 程式語言規範。技術。報告,技術報告[http://golang](http://" +#~ "golang/)。 org/doc/doc/go 規格。 html,Google 公司,2009 年。" + +#, fuzzy +#~ msgid "" +#~ "VAN HENSBERGEN, E., AND MINNICH, R. Grave robbers from outer space: Using " +#~ "9p2000 under linux. In USENIX Annual Technical Conference, FREENIX Track " +#~ "(2005), pp. 83–94." +#~ msgstr "" +#~ "VAN HENSBERGEN,E.,和MINNICH,R.來自外太空的盜墓者:在Linux下使用9p2000。" +#~ "在 USENIX 年度技術會議 FREENIX Track (2005) 中,第 83-94 頁。" + +#, fuzzy +#~ msgid "" +#~ "WATSON, G. R., SOTTILE, M. J., MINNICH, R. G., CHOI, S.-E., AND " +#~ "HERTDRIKS, E. Pink: A 1024-node single-system image linux cluster. In " +#~ "High Performance Computing and Grid in Asia Pacific Region, 2004. " +#~ "Proceedings. Seventh International Conference on (2004), IEEE, pp. 454–" +#~ "461." +#~ msgstr "" +#~ "WATSON, G. R.、SOTTILE, M. J.、MINNICH, R. G.、CHOI, S.-E. 和 HERTDRIKS, " +#~ "E. Pink:1024 節點單系統映像 Linux 叢集。在2004 年亞太地區的高效能運算和網" +#~ "格中。會議記錄。第七屆國際會議(2004 年),IEEE,第 454-461 頁。" + +#, fuzzy +#~ msgid "" +#~ "WELLS, N. Busybox: A swiss army knife for linux. Linux J. 2000, 78es " +#~ "(Oct. 2000)." +#~ msgstr "" +#~ "WELLS,N. Busybox:Linux 的瑞士軍刀。 Linux J. 2000, 78es (2000 年 10 " +#~ "月)。" + +#, fuzzy +#~ msgid "" +#~ "WINTERBOTTOM, P. Alef language reference manual. Plan 9 Programmer’s Man " +#~ "(1995)." +#~ msgstr "WINTERBOTTOM,P.Alef 語言參考手冊。 9號計畫程式設計師(1995年)。"