Python 与苹果应用商店的审核之争

2024-07-18

由于 Python 3.12 版本包含了苹果应用商店禁止的字符串“itms-services”,导致部分 Python 应用被拒绝上架。Python 开发者就此展开了讨论,最终决定在 Python 3.13 版本中添加一个名为“--with-app-store-compliance”的编译选项,以解决这个问题。该选项允许开发者在构建应用时移除可能引发审核问题的代码。

阅读更多
50
未分类

Rust能否为Linux文件系统开发带来福音?

2024-07-15

本文探讨了在Linux文件系统中使用Rust语言的优势和挑战。支持者认为,Rust的类型系统和抽象能力可以帮助开发者在编译阶段捕获更多错误,减少内存相关漏洞,并提高开发效率。然而,反对者担心Rust绑定过于复杂且难以维护,尤其是在C代码不断演进的情况下。他们认为,强制所有文件系统开发者都使用Rust是不现实的,并且可能会导致C代码和Rust绑定之间出现同步问题。

阅读更多
54
未分类

Unison:另辟蹊径的编程语言

2024-07-05

Unison是一种编程语言,它将代码存储在数据库中,而不是文本文件中。这种方法简化了分布式编程,并提供了一种新的编程语言接口方式。Unison使用结构哈希来标识代码,使得重命名函数或使用不同版本的库变得更加容易。它还引入了“能力”的概念,用于管理代码与外部世界的交互,从而简化测试。Unison Cloud平台允许开发者运行使用自定义云能力的Unison程序。然而,Unison也存在一些缺点,例如缺乏对其他语言的稳定FFI支持,以及需要从头开始构建社区工具。

阅读更多
50
未分类 Unison

悼念Daniel Bristot de Oliveira

2024-06-28

文章悼念了英年早逝的计算机科学家Daniel Bristot de Oliveira,他年仅37岁。Daniel是一位专注于实时系统和调度理论的专家,在学术界和Linux内核社区中享有盛誉。他致力于将理论研究应用于现实世界的问题,推动了Linux在实时关键应用领域的成功。他为人谦逊、幽默,乐于与人合作,为Linux内核做出了杰出贡献,例如开发SCHED_DEADLINE调度策略、RTLA和RV工具等。他的离去是社区的巨大损失,但他留下的工作成果和精神将激励后人。

阅读更多
69

面向懒人开发者的Aeon:openSUSE新桌面环境

2024-06-28

openSUSE项目发布了Aeon桌面环境的第二个候选版本(RC2),Aeon之前被称为MicroOS Desktop GNOME。Aeon的目标是使用可原子应用的快照提供自动系统更新,从而为那些希望专注于工作而不是桌面管理的“懒惰开发者”减轻系统维护的负担。Aeon使用名为transactional-update的实用程序(底层是openSUSE的Zypper包管理器)和Btrfs子卷来创建和更新系统快照。用户安装的软件与系统软件分离,安装在可变文件系统上,并使用Flatpak等应用程序容器化技术进行管理。

阅读更多
55
未分类 openSUSE Aeon

Python 与苹果应用商店审核之争

2024-06-27

Python 3.12 版本升级后,部分 Python 应用因包含字符串“itms-services”而被苹果应用商店自动拒绝。经开发者讨论,Python 计划在 3.13 版本中添加名为“--with-app-store-compliance”的构建选项,以解决苹果应用商店的这项审核问题。

阅读更多
61
未分类

GNU C 库的内存密封

2024-06-22

即将发布的 Linux 6.10 内核将引入 mseal() 系统调用,它允许进程防止对其地址空间部分的任何未来更改。GNU C 库 (glibc) 计划利用此系统调用来增强安全性。glibc 将能够密封程序的各个部分,包括二进制代码、共享库和动态加载的库。此举旨在使攻击者更难修改进程的地址空间,从而提高安全性。

阅读更多
52
未分类 glibc

Ladybird 浏览器展翅高飞

2024-06-21

Ladybird 是一款开源浏览器,致力于构建独立于 Chrome 的浏览器引擎。开发者 Andreas Kling 最初将其作为 SerenityOS 项目的一部分,但最近将其分离出来,以便完全专注于浏览器的开发。Ladybird 目前处于 pre-alpha 阶段,可在 Linux、macOS 和其他类 UNIX 系统上运行。尽管功能有限且稳定性有待提高,但 Ladybird 已经展现出一定的潜力,并以惊人的速度持续迭代。

阅读更多
64
未分类 Ladybird

自由软件如何“绑架”了 Philip Hazel 的一生

2024-06-20

本文讲述了 Philip Hazel 从一名程序员到自由软件开发者的心路历程。Hazel 从大学时期接触计算机编程,到后来参与开发邮件传输代理 Exim 和正则表达式库 PCRE 及其后续版本 PCRE2。如今,80岁高龄的 Hazel 仍然活跃在软件开发领域,并希望能为 PCRE2 找到合适的继任者。

阅读更多
81
未分类 Exim PCRE

Debian 的 /tmp 风波

2024-06-05

Debian 将在即将发布的 Debian 13 "Trixie" 版本中默认将 /tmp 目录挂载为 RAM-based tmpfs,并定期自动清理 /tmp 和 /var/tmp 中的临时文件。这一改动引发了 Debian 社区的广泛讨论,用户和开发者就其优缺点展开了激烈的辩论。支持者认为,将 /tmp 放置在内存中可以提高应用程序的运行速度,而反对者则担心这会导致数据丢失和应用程序兼容性问题。

阅读更多
56
未分类 tmpfs

Trinity:为 KDE 3 续命

2024-05-31

尽管全新的 KDE Plasma 6 桌面环境正在进入发行版,但仍有一小群开发者试图保留 KDE 在 2008 年左右的体验。Trinity 桌面环境 (TDE) 是 KDE 3 的延续,自 2010 年以来一直通过半定期发布来维护这款老式桌面。TDE 的目标受众是那些喜欢 KDE 3 且不想切换到更高版本 KDE 或其他桌面环境的用户。它吸引其他用户的地方可能是其低资源使用率、主题和广泛的可配置性。

阅读更多
60
未分类

KeePassXC 密码管理器 Debian 软件包争议

2024-05-30

Debian 开发者 Julian Klode 禁用 KeePassXC 密码管理器 Debian 软件包中的浏览器集成和密码数据库共享等可选功能,以提高安全性,此举引发争议。Klode 认为可选功能更容易出现漏洞,而 Debian 用户选择本地存储密码的软件正是因为注重安全和隐私。但 KeePassXC 项目团队和部分用户反对该决定,认为禁用这些功能会降低用户体验,并增加密码泄露的风险。最终,Klode 决定在 Debian Trixie 发布时提供过渡版本,允许用户选择完整版或精简版软件包。

阅读更多
57
未分类

参与Eudyptula挑战

2024-05-21

Eudyptula挑战是一系列针对内核开发的难度递增的任务,旨在帮助人们学习Linux内核开发。挑战者通过电子邮件与Little互动,完成构建、修改和运行内核等任务,并学习内核编程风格、提交补丁等知识。挑战涵盖了内核的众多领域,包括设备创建、调试文件系统、内核数据结构、内存分配、内核线程等。尽管挑战存在一些问题,比如文档分散、等待时间长等,但它仍然是学习内核开发的一种有趣且有效的方式。

阅读更多
56

内核中的面向对象设计模式(第一部分)

2024-05-10

这篇文章探讨了 Linux 内核中面向对象编程风格的设计模式,特别是方法调度。尽管 Linux 内核主要用 C 语言编写,但它广泛使用了面向对象编程中的一些技术,例如虚函数表(vtable)。文章详细分析了 vtable 的结构、NULL 函数指针的使用、vtable 中非函数指针成员的存在,以及将不同对象的方法组合在一起的模式。作者认为,理解这些模式及其选择原因可以促进内核中模式的更统一应用,并使新开发者更容易理解正在使用的模式。

阅读更多
76

使用gittuf保护Git仓库

2024-05-09

gittuf项目旨在为Git提供安全层,解决当前Git在代码安全性上的不足。它借鉴了TUF和RSL的概念,通过强制执行安全策略、管理密钥以及防范版本控制层的攻击来保护Git仓库。gittuf利用in-toto项目提供证明,允许项目声明软件的属性,例如记录多个签名。目前该项目处于Alpha阶段,未来计划添加对角色和团队的支持、签名推送等功能。

阅读更多
63
未分类 订阅

PostgreSQL社区关于ALTER SYSTEM的争论

2024-04-21

PostgreSQL社区就一项看似简单的功能——禁用ALTER SYSTEM命令,进行了一场旷日持久的争论。该提议旨在提升PostgreSQL在Kubernetes等云原生环境下的“默认安全”姿态,但也引发了关于其是否 truly 是安全功能的质疑。开发者们就禁用ALTER SYSTEM的最佳方式提出了多种方案,最终选择添加一个新的配置参数allow_alter_system来实现。这场争论凸显了开源社区在功能设计和实现上的复杂性。

阅读更多
49
未分类

介绍 BPF trampoline

2024-04-20

BPF trampoline 作为内核函数、BPF 程序和其他 BPF 程序之间的桥梁。第一个用例是 fentry/fexit BPF 程序,它们大致相当于 kprobe/kretprobe,与 k[ret]probe 不同的是,在内核函数之前或之后调用一组 BPF 程序几乎没有开销。第二个用例受到 XDP 开发痛点的严重影响,BPF trampoline 允许将类似的 fentry/fexit BPF 程序附加到任何网络 BPF 程序,现在可以在任何 XDP、TC、lwt、cgroup 程序的输入和输出上查看数据包而不会干扰它们,这极大地帮助了基于 BPF 的网络故障排除。

阅读更多
51
未分类 BPF 内核函数
1 3 下页 →