问题标签 [netbsd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 此 netbsd 代码是否可重入
我正在通过阅读 NetBSD 源代码来研究“阅读代码”。
(有兴趣的可以看<代码阅读:开源视角>我正在阅读)
我发现了这个功能:
它引入了 4 个不同的临时缓冲区来包装 inet_ntoa 函数,因为 inet_ntoa 不是可重入的。
但在我看来,这个 naddr_ntoa 函数也不是可重入
的:静态 bufno 变量可以由其他变量操作,因此临时缓冲区在这里似乎没有按预期工作。
那么这是一个潜在的错误吗?
git - Git 以用户身份安装?
我正在尝试通过使用来自github的源代码tarball从源代码编译git 1.8.0,以用户身份在netbsd系统(4.0.1_PATCH)上安装git。我在这个系统上拥有用户权限,但没有 root 权限。我正在我的主目录中编译源代码。
我现在收到这组错误消息:
关于什么是错的以及如何纠正这个问题的任何想法?
关于在 netbsd 上以用户身份安装 git 的任何建议(我认为相当旧的 4.0.1 版)?
c - OpenSSH 失败
我在一个项目中使用OpenSSH version13 。然而,当我们尝试使用 ssh 连接到产品时,nchan.c 时不时地返回一个错误,我们在产品中得到以下打印,然后连接关闭。
所有这些输出都来自nchan.c
. 至少对我来说,仅仅阅读代码并尝试查看可能发生的事情似乎是不可能的!有谁知道为什么OpenSSH
会打印此错误消息并关闭连接?我希望有人非常熟悉 OpenSSH 实现,为我指明正确的方向!
我python
用来连接到产品,更具体地说是python pexpect module
. 我建立了一个 SSH 连接,使用用户名、密码登录,然后执行一些命令并检查输出。这在大多数情况下都可以正常工作,但如前所述,连接时不时地失败。上面提供的输出可以在产品中看到,并且从产品pexpect
中收到(文件结束)的异常引发EOF
(意味着无法建立连接)。这几乎是我得到的所有打印输出。我希望有人能理解为什么 OpenSSH 不想建立连接!
objective-c - 用于 netbsd 的 gnustep
我想问一下 gnustep 的工具链是否适用于通常使用纯 C 的 netbsd 开发。我对 Obj-C 的好处感兴趣,只有基本的 API,比如 NSObject 的引用计数和动态的东西。
我的问题是双重的:
- gcc 的Obj-C ABI 是否与gcc的C ABI 兼容?这样我就可以使用常规的 C 库
- Obj-C 的运行时层是否适合嵌入 netbsd 目标?
先感谢您!
c - 如果我使用睡眠,为什么测量的网络延迟会发生变化?
我正在尝试确定机器接收数据包、处理数据包并返回答案所需的时间。
这台机器,我称之为“服务器”,运行一个非常简单的程序,它在缓冲区中接收数据包(recv(2)
),将接收到的内容(memcpy(3)
)复制到另一个缓冲区,然后将数据包发回(send(2)
)。服务器运行 NetBSD 5.1.2。
我的客户多次测量往返时间(pkt_count
):
为了清楚起见,我删除了错误检查和其他小事。客户端在 Ubuntu 12.04 64 位上运行。这两个程序都以实时优先级运行,尽管只有 Ubuntu 内核是实时的 (-rt)。程序之间的连接是 TCP。这工作正常,平均给我 750 微秒。
但是,如果我启用注释掉的 nanosleep 调用(睡眠时间为 100 µs),我的测量值会下降 100 µs,平均为 650 µs。如果我睡了 200 µs,测量值会下降到 550 µs,依此类推。这一直持续到 600 µs 的睡眠,平均为 150 µs。然后,如果我将睡眠时间提高到 700 µs,我的测量值平均会上升到 800 µs。我用 Wireshark 确认了我的程序的措施。
我无法弄清楚发生了什么。我已经在客户端和服务器中设置了 TCP_NODELAY 套接字选项,没有区别。我使用了UDP,没有区别(相同的行为)。所以我猜这种行为不是由于 Nagle 算法。会是什么呢?
[更新]
这是客户端与 Wireshark 一起输出的屏幕截图。现在,我在另一台机器上运行我的服务器。我使用具有相同配置的相同操作系统(因为它是笔式驱动器中的 Live System),但硬件不同。这种行为没有出现,一切都按预期工作。但问题仍然存在:为什么它会发生在以前的硬件中?
[更新 2:更多信息]
正如我之前所说,我在两台不同的服务器计算机上测试了我的一对程序(客户端/服务器)。我绘制了获得的两个结果。
第一台服务器(奇怪的)是一台RTD 单板计算机,具有 1Gbps 以太网接口。第二台服务器(普通服务器)是具有 100Mbps 以太网接口的Diamond 单板计算机。他们都从相同的 pendrive 运行相同的操作系统 (NetBSD 5.1.2)。
从这些结果来看,我确实相信这种行为是由于驱动程序或网卡本身造成的,尽管我仍然无法想象为什么会发生这种情况......
c - 缓冲区溢出漏洞利用:函数 ret 上的段错误以堆栈代码
我试图利用测试程序中的缓冲区溢出来执行任意代码。我在 NetBSD 6 i386 上。这是C代码:
我将代码插入savePassword
缓冲区(at %ebp - 0x58
)。这是使用 GDB 进行的调试:
我打破了函数返回,然后确保在堆栈上正确写入了任意代码(96 字节长度):
然后我继续直到ret
汇编指令:
然后我检查堆栈顶部的返回地址(at %esp
):
这个地址将被弹出ret
,然后我们将跳转到它。让我们看看我们在该地址的说明:
我们的任意代码!
但是如果我执行ret
它的段错误:
操作系统似乎禁止我跳转堆栈内存。但我禁用了不可执行的堆栈保护:
readelf
向我们确认堆栈是可执行的:
serial-communication - 在 NetBSD 中创建串行通信
我正在尝试在 NetBSD 中创建串行通信。此通信将通过 RS-485 将计算机与控制器连接起来。
问题是我不知道是否需要一些配置或驱动程序来做到这一点。
具体来说,通信将通过 RS-485 端口进行。我尝试使用 /dev/tty01,但串行输出中没有脉冲。
在 NetBSD 中打开、发送和接收串行数据是否需要一些配置、驱动程序或代码?
直到现在我都没有成功。
谢谢
task - 为什么在 FreeBSD 和 NetBSD 中删除 u_area
我听说 BSD 的 proc 结构中有一个名为 u_area 的成员。
所以我试图找到u_area,但只是失败了。
谁知道为什么在proc结构上删除了u_area?
c - 编译错误我想不通
我有一段代码,我以前运行时没有问题。但是现在我要回去了,我什至无法编译它!
未编译的部分是 .c 文件,我认为它在抱怨库。
我尝试通过这样做来编译它:
我得到:
这是我的 .c 文件:
还有更多,但我认为它与图书馆有关,所以你可以帮助我。
有人能在这里看到什么吗?
另外,如果这很重要,我在 NetBSD 上这样做,但我在 FreeBSD 上尝试过,它是一样的。
macos - 如何使用 IPMI 监控本地设置?
我目前的任务是交叉引用 ENVSTAT 数据和 IPMITOOL 数据。我设法让 envstat 正常工作而没有太多痛苦,但我一直坚持配置 iPMITOOL 有一段时间了。
据我所知,使用 IPMITOOL 的唯一方法是使用有效的 IP。这应该不是问题,因为我可以将它定向到计算机主地址或只是“127.0.0.1”。我执行以下命令:
也
在两台不同的计算机上产生相同的输出:
我正在本地 VM 上使用 NetBSD 处理 Mac 站。
我的问题是双重的:
你可以
ipmitool
用来收集本地数据吗?你如何配置
ipmitool
和/或操作系统来接受ipmitool
命令?