gpt4 book ai didi

c - 为什么 Berkeley 套接字需要字节交换?

转载 作者:行者123 更新时间:2023-12-02 00:52:34 28 4
gpt4 key购买 nike

我知道在线路上,大多数整数都是大端格式。

但为什么应用程序的负担是在像 sockaddr_in 这样的结构中进行字节交换,而不是内核,所有低级工作实际上都发生在内核中?如果用户空间 API 与平台无关并且不应该处理这个问题,那将更有意义。

为什么 Berkeley socket API 是这样设计的?

最佳答案

原因可能是历史原因

套接字 API 是在(1980 年代)Sun-3 时发明的(MC68030) 和 Sun-4 (Sparc) 工作站是国王。 endianness这些(以今天的标准来看速度较慢)处理器很重要。

我忘记了细节,可能 BSD 套接字约定已经为某些人发明了 PDP-11VAX-780 .

But why is it the burden of the application to do the byte swapping in structures like sockaddr_in and not the kernels

可能是因为在 1980 年代,您不希望计算机(比手机慢一千倍)在内核领域花费太多(不间断的)时间。

这个问题真的应该在 https://retrocomputing.stackexchange.com/ 上提出(答案在 1980 年代 Unix 内核的源代码中)

关于c - 为什么 Berkeley 套接字需要字节交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56407895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com