问题标签 [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.

0 投票
2 回答
153 浏览

c - 此 netbsd 代码是否可重入

我正在通过阅读 NetBSD 源代码来研究“阅读代码”。
(有兴趣的可以看<代码阅读:开源视角>我正在阅读)

我发现了这个功能:

它引入了 4 个不同的临时缓冲区来包装 inet_ntoa 函数,因为 inet_ntoa 不是可重入的。
但在我看来,这个 naddr_ntoa 函数也不是可重入
的:静态 bufno 变量可以由其他变量操作,因此临时缓冲区在这里似乎没有按预期工作。

那么这是一个潜在的错误吗?

0 投票
1 回答
515 浏览

git - Git 以用户身份安装?

我正在尝试通过使用来自github的源代码tarball从源代码编译git 1.8.0,以用户身份在netbsd系统(4.0.1_PATCH)上安装git。我在这个系统上拥有用户权限,但没有 root 权限。我正在我的主目录中编译源代码。

我现在收到这组错误消息:

关于什么是错的以及如何纠正这个问题的任何想法?

关于在 netbsd 上以用户身份安装 git 的任何建议(我认为相当旧的 4.0.1 版)?

0 投票
2 回答
188 浏览

c - OpenSSH 失败

我在一个项目中使用OpenSSH version13 。然而,当我们尝试使用 ssh 连接到产品时,nchan.c 时不时地返回一个错误,我们在产品中得到以下打印,然后连接关闭。

所有这些输出都来自nchan.c. 至少对我来说,仅仅阅读代码并尝试查看可能发生的事情似乎是不可能的!有谁知道为什么OpenSSH会打印此错误消息并关闭连接?我希望有人非常熟悉 OpenSSH 实现,为我指明正确的方向!

python用来连接到产品,更具体地说是python pexpect module. 我建立了一个 SSH 连接,使用用户名、密码登录,然后执行一些命令并检查输出。这在大多数情况下都可以正常工作,但如前所述,连接时不时地失败。上面提供的输出可以在产品中看到,并且从产品pexpect中收到(文件结束)的异常引发EOF(意味着无法建立连接)。这几乎是我得到的所有打印输出。我希望有人能理解为什么 OpenSSH 不想建立连接!

0 投票
2 回答
233 浏览

objective-c - 用于 netbsd 的 gnustep

我想问一下 gnustep 的工具链是否适用于通常使用纯 C 的 netbsd 开发。我对 Obj-C 的好处感兴趣,只有基本的 API,比如 NSObject 的引用计数和动态的东西。

我的问题是双重的:

  • gcc 的Obj-C ABI 是否与gccC ABI 兼容?这样我就可以使用常规的 C 库
  • Obj-C 的运行时层是否适合嵌入 netbsd 目标?

先感谢您!

0 投票
5 回答
1356 浏览

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)。

从这些结果来看,我确实相信这种行为是由于驱动程序或网卡本身造成的,尽管我仍然无法想象为什么会发生这种情况......

0 投票
1 回答
2021 浏览

c - 缓冲区溢出漏洞利用:函数 ret 上的段错误以堆栈代码

我试图利用测试程序中的缓冲区溢出来执行任意代码。我在 NetBSD 6 i386 上。这是C代码:

我将代码插入savePassword缓冲区(at %ebp - 0x58)。这是使用 GDB 进行的调试:

我打破了函数返回,然后确保在堆栈上正确写入了任意代码(96 字节长度):

然后我继续直到ret汇编指令:

然后我检查堆栈顶部的返回地址(at %esp):

这个地址将被弹出ret,然后我们将跳转到它。让我们看看我们在该地址的说明:

我们的任意代码!

但是如果我执行ret它的段错误:

操作系统似乎禁止我跳转堆栈内存。但我禁用了不可执行的堆栈保护:

readelf向我们确认堆栈是可执行的:

0 投票
1 回答
316 浏览

serial-communication - 在 NetBSD 中创建串行通信

我正在尝试在 NetBSD 中创建串行通信。此通信将通过 RS-485 将计算机与控制器连接起来。

问题是我不知道是否需要一些配置或驱动程序来做到这一点。

具体来说,通信将通过 RS-485 端口进行。我尝试使用 /dev/tty01,但串行输出中没有脉冲。

在 NetBSD 中打开、发送和接收串行数据是否需要一些配置、驱动程序或代码?

直到现在我都没有成功。

谢谢

0 投票
1 回答
128 浏览

task - 为什么在 FreeBSD 和 NetBSD 中删除 u_area

我听说 BSD 的 proc 结构中有一个名为 u_area 的成员。
所以我试图找到u_area,但只是失败了。
谁知道为什么在proc结构上删除了u_area?

0 投票
1 回答
1225 浏览

c - 编译错误我想不通

我有一段代码,我以前运行时没有问题。但是现在我要回去了,我什至无法编译它!

未编译的部分是 .c 文件,我认为它在抱怨库。

我尝试通过这样做来编译它:

我得到:

这是我的 .c 文件:

还有更多,但我认为它与图书馆有关,所以你可以帮助我。

有人能在这里看到什么吗?

另外,如果这很重要,我在 NetBSD 上这样做,但我在 FreeBSD 上尝试过,它是一样的。

0 投票
3 回答
4687 浏览

macos - 如何使用 IPMI 监控本地设置?

我目前的任务是交叉引用 ENVSTAT 数据和 IPMITOOL 数据。我设法让 envstat 正常工作而没有太多痛苦,但我一直坚持配置 iPMITOOL 有一段时间了。

据我所知,使用 IPMITOOL 的唯一方法是使用有效的 IP。这应该不是问题,因为我可以将它定向到计算机主地址或只是“127.0.0.1”。我执行以下命令:

在两台不同的计算机上产生相同的输出:

我正在本地 VM 上使用 NetBSD 处理 Mac 站。

我的问题是双重的:

  1. 你可以ipmitool用来收集本地数据吗?

  2. 你如何配置ipmitool和/或操作系统来接受ipmitool命令?