标签: system-programming

进程创建时间、shell脚本和系统调用开销

我有一台使用 Arch Linux 和 Ubuntu (16.04) 双重启动的机器。

我最近开始使用Kakoune 文本编辑器,并注意到它的启动时间根据我使用的操作系统而有很大不同。但我相信根本问题并不是kakoune 直接造成的。

启动时,kakoune 运行一堆 shell 脚本,以启用与 x11 和 tmux、git、语法突出显示/颜色方案等的集成。可以禁用此功能,以便仅使用标志加载“vanilla”编辑器-n

命令:kak -e q将启动 kakoune,运行所有启动脚本并立即退出。

在 Arch 上:
time kak -e q需要1 秒
time kak -n -e q(无 shell 脚本),不到20 毫秒即可完成。

在 Ubuntu 上:
time kak -e q大约需要450 毫秒
time kak -n -e q,再次低于20 毫秒

在削减脂肪并删除一些启动脚本之后,我确实看到两个操作系统的改进与删除的数量成比例。

我使用UnixBench运行了一些基准测试,发现两个系统之间的主要差异体现在“进程创建”和“shell 脚本”测试中。

shell 脚本测试测量进程每分钟可以启动并获取 shell 脚本的一组(一个、两个、四个和八个并发副本)的次数,其中 shell 脚本对数据文件应用一系列转换。

这是相关的输出。“每秒循环次数”的单位越多越好: …

performance system-programming shell-script strace benchmark

5
推荐指数
1
解决办法
1711
查看次数

如何让我的 Linux 服务器在不使用时在 LAN 上休眠和唤醒?

我最近为自己购买了一台 HP 机架服务器,用作个人文件服务器。该服务器目前位于我的床下,因为我没有其他地方可以放置它。对于那些不知道的人(因为我不完全知道),这个服务器非常吵

我需要能够在白天的很多时间访问我的文件,并且由于我的服务器的情况,每天晚上在墙上将其关闭(它喜欢突然没有明显原因地启动)是'确实不是一个选择。我真的希望服务器能够一直保持开机状态,但在不使用时进入睡眠状态,这样风扇就可以通过 LAN 关闭(如果没有其他情况)。服务器也运行 Debian。

如果由于某种原因无法进行这种设置,我可以满足于让机器在一天中的某个时间(或晚上)关闭并在早上再次启动,或者类似的效果。

除了使用 LAN 唤醒/睡眠之外,我对如何完成此类任务知之甚少。

programming system-programming file-server debian hp

5
推荐指数
1
解决办法
7456
查看次数

根据 Robert Love 教科书的文件大小限制

来自 Robert Love 的Linux System Programming (2007, O'Reilly),这是第一段(第 1 章,第 10 页)中给出的内容:

文件位置的最大值仅受用于存储它的 C 类型大小的限制,在当代 Linux 中为 64 位。

但在下一段中,他说:

文件可能为空(长度为零),因此不包含有效字节。与最大文件位置一样,最大文件长度仅受 Linux 内核用于管理文件的 C 类型大小的限制。

我知道这可能非常非常基本,但是他是说文件大小受FILE数据类型或int数据类型的限制吗?

linux system-programming limit files

4
推荐指数
1
解决办法
394
查看次数

开发者 SDK

Linux 下有没有针对开发者的 SDK?我的意思不仅仅是手册页,它更像是 Windows 下的 MSDN 库或 Windows SDK,其中有关编程和开发人员指南的所有文档都在一个地方记录和构建。

man system-programming development documentation

3
推荐指数
2
解决办法
164
查看次数

低级系统调用

C 为系统调用提供了诸如 write(),read().. 等库函数。如何在不使用 Linux 中的任何库的情况下在 C 中进行系统调用?

system-programming system-calls

3
推荐指数
1
解决办法
1447
查看次数