标签: development

在线修补 Linux 内核(即无需重启)

对不起 - 我不记得确切的名字。我知道有一种机制可以在运行时通过加载模块而不需要重新启动来修补内核,只要所涉及的结构不受影响。它被服务器用于安全补丁,最近被 Ubuntu 和 Fedora 使用。

  1. 机制名称是什么
  2. 是否有手动编译内核的操作方法
  3. 是否可以自动检查更改 xyza -> xyza+1 是否更改了任何结构

linux kernel development patch

8
推荐指数
1
解决办法
1023
查看次数

GNU PDF 库是否正在积极开发中?

2007 年以来,我一直在听说The GNU PDF Library。从那时起,我一直期待在野外看到这个工具,但四年过去了,在我看来,这是一段痛苦的漫长时间。我知道该项目的复杂性,但我记得 GNU 基金会已将其标记为最高优先级项目。到底是怎么回事?

development gnu pdf

8
推荐指数
1
解决办法
2353
查看次数

对于发送到 lkml 的补丁,我应该如何征求树维护者的反馈?

我已经向 linux 内核提交了一个补丁,该补丁得到了一些评论,并在邮件列表上进行了几次迭代。它已由两名开发人员确认和审查,但他们表示是否批准该补丁取决于特定的开发人员。该开发人员相对不在邮件列表中。我不想亲自骚扰他,但我想得到某种承认,该补丁可以或不能被接受。向该开发人员征求反馈的最佳方式是什么?向他或其中一位审阅者发送私人电子邮件是否可以接受,或者通过邮件列表公开所有通信是否重要?

development patch linux-kernel

8
推荐指数
1
解决办法
174
查看次数

小项目使用`make`有什么好处?

我已经看到这make对大型项目很有用,尤其是在 a 中描述的令人困惑的依赖项Makefile,并且还有助于工作流程。我还没有听说make用于小型项目的任何优势。有吗?

compiling scripting development make

8
推荐指数
3
解决办法
1834
查看次数

标准终端字体纵横比

为终端使用而设计的单色字体的纵横比是多少,或者更具体地说,任何单个字符将填充的单元格的大小是多少?

我读过标准终端是80x24按行排列的,标准终端屏幕是 4:3。

因此,考虑到这些信息:

每个单元格是屏幕宽度的 4/80,或 1/20,每个单元格是屏幕高度的 3/24,或 1/8。

1/20:1/8 = 1:20/8 = 1:2.5

这听起来对吗?

我很好奇,因为我想为 iOS 制作一些游戏,我想模拟终端的感觉,我相信尺寸很重要。

development terminal graphics ios

7
推荐指数
1
解决办法
3567
查看次数

/usr/include 中的 .x 文件是什么?

我的/usr/include包含多个文件.x扩展名的文件,例如/usr/include/rpcsvc/rquota.x.

它们看起来像 C 源代码(在 中运行file /usr/include/rpcsvc/rquota.x结果C source, ASCII text),但它们不是有效的 C(例如programversion似乎关键字)。

它们究竟是什么?鉴于扩展名很短,很难用谷歌搜索,有些网站只是错误/不完整(例如维基百科说“旧的 DirectX 文件”)。

c development onc-rpc

7
推荐指数
2
解决办法
4735
查看次数

Linux 内核开发人员如何发现 Linux 内核中的 bug 和其他需要改进的地方?

这可能是也可能不是题外话。如果是的话,请发表评论,我会将其删除。

我自己正在努力成为一名内核开发人员,在阅读一些邮件列表时,我不禁想知道 Linux 内核开发人员在 Linux 内核中哪里可以找到改进的地方。查看内核的错误跟踪器,实际上并没有那么多内核错误,并且很多补丁都与优化或以其他方式改进内核内部有关。这引出了我的问题,即这些开发人员如何找出 Linux 内核中需要改进的地方。

再次强调,如果这不是主题,请发表评论,我会将其删除。

linux kernel development

7
推荐指数
1
解决办法
2672
查看次数

确定静态/动态库的名称

我经常使用使用 Unix/Linux C 库的第三方 C 代码片段,例如#include <glib.h>. #include <net/if.h>他们要求我知道具体的库文件名或 pkg-config 名称,例如-lglib-2.0, -lbluetooth, pkg-config --libs dbus-1. 请注意,其中很多与具有“2.0”、“1”的头文件不同,因此您无法猜测它。

我到底如何才能找到 API/库所拥有的库文件的确切名称?使用我上面的例子;我如何找到该#include <glib.h>库文件的名称-lglib-2.0?令人沮丧的是,Glib/dbus/all 的在线参考文献不仅仅说“库文件的名称是 glib-2.0”。

我可以使用任何终端命令来找出这个问题吗?我可以使用一些实用程序来找出这个问题吗?在线 API/库参考对于找出这一点来说确实很糟糕。

如果我想找到hci.h它的位置,我可以轻松地locate hci.h找到它的位置。有没有类似终端命令的东西来查找库名称?

compiling c development libraries

6
推荐指数
1
解决办法
2107
查看次数

我应该向上游提交错误,向我的发行版维护者提交错误,还是两者都提交?

我最近在他们的网站(上游)上向 GNOME 维护者提交了一个带有gnome-shell错误

但是,我不确定我是否应该将其提交给我的发行版 ( Fedora )的软件包维护者。

将来,我应该更喜欢哪个类似的程序?或者我应该向上游和我的发行版维护者提交错误(老实说这没有多大意义)?

linux fedora gnome development bugs

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

防止 POSIX 功能扩散

一般来说,unix(或者特别是 Linux)程序不能执行类似使用 ICMP_ECHO(“ping”)来检查路由器的可访问性的操作,除非超级用户setuid root运行具有适当的 POSIX 功能。显然,在任何正常运行的系统上,将 setuid 或 POSIX 功能应用于二进制文件都需要超级用户干预。

如果开发环境拥有 CAP_SETFCAP 功能,那么它应该能够在其构建的程序上设置适当的 POSIX 功能,至少就本地操作而言。

赞同 Ken Thompson 的《关于信任信任的反思》论文并假设所有库的静态链接,原则上应该可以在每个程序源模块中构建指纹,将其传播到对象和二进制文件,从而提供审计跟踪表明特定的二进制文件是从特定的源集合构建的。因此,要求祝福新建的 IDE 副本的管理员应该能够满足自己的要求,即 IDE 只能在它自己生成的程序中设置功能,并且不会被恶意用户修改,以便他可以通过例如未记录的启动选项将其用作 setcap 的个人副本。

这里的问题是,大多数成熟的开发环境(例如Lazarus IDE)可以自行构建,因此,如果本地管理员使用 CAP_SETFCAP 祝福可证明干净的副本,则恶意用户可以重建它以包含恶意代码并自己将 CAP_SETFCAP 应用于它,破坏本地系统安全。

是否可以将 POSIX CAP_SETFCAP 功能应用于二进制文件,使其无法传播到新建程序的是另一个 CAP_SETFCAP 或其超集功能之一?

linux security development capabilities

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