文章目录
简介
最近在看一些英文资料,看到这个词经常性的出现:canonical,canon。
下面这个链接是一个不同的解释,里面的显示看着有些代码问题,凑合着看。
https://wikidiff.com/canonical/typical
我的理解是
Typical的意思是典型,是普通意义上的典型,比如典型的斧头样式,颜色的典型性,等不具有严格定义的东西,更像是定义了一个范围,类型范围。
Canonical,和教会相关,更具严肃性,更严格定义的典型,适合于知识的通用性规律,比如定理是一个经典的定理。适应更长时间的经典。
举例
https://lwn.net/Articles/465311/
But there are, of course, things that users need to be able to do that require privileges (changing passwords is a canonical example), which is why the setuid/setgid facility exists in Unix.
这一句感觉使用typical,也是可用。但是passwords的修改有严格的定义,所以使用canonical。
For programs running with a user’s privileges, those kinds of errors typically just lead to bugs of various sorts (some of which could have fairly catastrophic consequences for the user, but not the system as a whole)
典型的一类错误。
https://lwn.net/Articles/101723/
The typical use for this is low latency audio, and the patch has been extensively field tested by Linux audio users.
chatGPT的回答
怎么翻译“Because only bits 47:0 of a linear address are used in address-translation, the processor reserves bits 63:48 for future expansion using a concept known as canonicality. A linear address is canonical if bits 63:47 of the address are identical. (Put differently, a linear address is canonical only if bits 63:48 are a sign-extension of bit 47, which is the uppermost bit used in linear-address translation.)”
When a 64-bit linear address is generated to access memory, the processor first confirms that the address is canonical. If the address is not canonical, the memory access causes a fault, and the processor makes no attempt to translate the address.1
ChatGPT: 这段文字的翻译可以如下:
“因为在地址转换中只使用线性地址的 47:0 位,处理器保留了 63:48 位用于未来扩展,使用了一种称为规范性的概念。只有当线性地址的 63:47 位相同时,该地址才是规范的。(换句话说,仅当地址的 63:48 位是对 47 位的符号扩展时,线性地址才是规范的,而 47 位是线性地址转换中使用的最高位。)”
什么叫线性地址是规范的?就是有一定的规律。
在计算机体系结构中,线性地址的规范性指的是一个特定的地址格式,它遵循一些规则以确保系统的一致性和可扩展性。在上面提到的上下文中,线性地址是规范的,如果该地址的高位(63:47位)相同。
具体而言,一个线性地址是规范的,如果其 63:47 位是相同的。换句话说,规范性要求线性地址的高位在特定范围内是一致的。这个范围是通过使用地址转换的方式来实现的,其中只有线性地址的低位(47:0位)用于实际的地址转换,而高位(63:48位)被保留以供未来扩展。因此,只有当线性地址的高位在使用的位数内是相同的,该地址才被认为是规范的。这有助于确保系统在未来进行扩展时保持兼容性。
那为什么要用单词“canonical ”,又没有合适的其他词,替代之?
ChatGPT
在计算机科学和体系结构的领域中,“canonical”(规范)一词通常用于表示一种符合规则或标准的格式或状态。在上下文中,"canonical"用于描述线性地址的规范性,即其高位(63:47位)遵循特定的规则。
"Canonical"的使用是为了强调符合某种规范或标准,使得该地址在系统中的处理和解释都更加一致。这种术语的选择是为了在描述中传达这种符合性和规范性的含义,而没有混淆或歧义。
在这个上下文中,"canonical"是一种专业术语,用来指代特定的规范性,而其他词语可能无法精确传达这种概念。因此,使用"canonical"有助于确保在计算机体系结构领域的文档中有清晰而准确的表达。