我不知道如何表达我的问题,但就这样吧。
我有一个设置,其中 Linux PC 应该通过串行端口与我的自定义硬件进行通信。我安装了“Damn Small Linux V4.10”作为我的发行版,到目前为止,Web 服务器运行良好。我遇到的问题是与串行端口的高速通信(56kbps)。
我使用 cat 命令通过串行端口测试了自定义硬件的操作,然后在我的硬件上关闭,返回的数据符合预期。
我听说过使用 RTLinux 或 RTAI,但在尝试采用该方法之前,我想禁用一些不必要的系统守护进程。
以下是上次测试时我的 Linux 上运行的内容:
init [5]
[keventd]
[ksoftirqd_CPU0]
[kswapd]
[bdflush]
[kupdated]
[khubd]
-su
bash
/opt/monkey-0.9.2/bin/monkey -D
[run.cgi]
ps
run.cgi 是我的 CGI 脚本,它尝试从串行端口检索有效数据并将结果作为网页传递给连接到同一网络的远程用户。
Monkey 是网络服务器。
当我检查 top 时,看起来没有任何东西消耗 CPU。
我也在没有使用 X 的情况下进行了最后的测试。
有没有办法通过某种方式删除进程来获得性能增益(例如可以通过串行端口不间断地读取数据)[ ]
?
我还注意到 /proc/sys/vm 中没有可用的“swappiness”文件,但有“bdflush”和“kswapd”文件。我很想将这些文件中的数字设置为 0,但这会弊大于利吗?
到目前为止,对我的项目不利的唯一最终解决方案是将硬件的波特率降低到 9600bps。但我宁愿有57600bps。