新项目用rust, 新代码也用rust

今天在Hacker New上看到了一篇称赞rust的文章Writing New Code in Rust Is a Win for All of Us。 原文内容就不贴出来了,maillist的内容一般都可以活的很久,随时可以去阅读。 虽然我很喜欢rust, 甚至从golang转了rust开发。 但是我没有过任何内核开发的经验,而且具体到C/C++语言我也只有大学的理论,没有实际的工作经验。 我只是一个一般的linux用户,和内核的交集只有内核升级以及编译裁剪内核,所以我没有和这篇文章产生强烈共鸣。 Gemini 我使用gemini总结了一下,存挡,看什么时候能和这篇文章共鸣。 这封邮件来自 rust-for-linux 邮件列表,讨论了在 Linux 内核中使用 Rust 语言的可能性。 Greg KH (Greg Kroah-Hartman) 是一位著名的 Linux 内核开发者和维护者。 他以在 staging 子系统、USB 子系统和驱动核心方面的工作而闻名。 他是内核社区中非常有影响力的人物,也是稳定内核版本的维护者。他的意见非常重要。 在这封邮件中,他强烈主张在新内核代码/驱动程序中采用 Rust 语言。 他指出,Rust 可以防止常见的 C 语言错误,例如内存覆盖、释放后使用错误以及错误处理问题。 他认为,使用 Rust 编写新代码将使开发人员能够专注于更复杂的错误,并创建更安全、更强大的 API。 Boqun Feng: 一位内核开发人员,他发起了这个特定的讨论主题,他对 Rust 内核策略提出了担忧。 他最初的电子邮件(未显示)可能质疑了采用 Rust 的明智性或可行性。 H. Peter Anvin (hpa): 另一位长期从事内核开发的开发人员,以其在 x86 架构和启动过程方面的工作而闻名。 他参与了关于底层内核细节的讨论。在显示的片段中,他提出 C++ 可能比 Rust 更渐进的方法,因为它可能更直接地改进现有的 C 代码。 Miguel Ojeda: 他似乎是 Rust for Linux 项目中最活跃的开发人员之一。他很可能完成了 Rust 绑定的很多工作。 Christoph Hellwig: 一位以其在存储和内存管理方面的工作而闻名的内核开发人员。他参与了关于性能和核心内核基础设施的讨论。 邮件还强调: 不断努力改进现有 C 代码的重要性。 Rust 在改进 API 设计和安全性方面的潜力。 开发人员为 Rust 集成做出贡献的意愿。 总的来说,这封邮件提出了一个令人信服的理由, 说明为什么应该在 Linux 内核中采用 Rust,强调了它在提高代码质量、安全性和可维护性方面的潜力。Greg KH 的支持是这次讨论中的一个重要因素。 ...

February 21, 2025 · datewu

安装wireguard server

今天在hacker news上看到 wireguard macos client 发布了,决定试用一下。 和所有的vpn安装一样,wireguard的安装也是分两步,一是安装vpn server,二是安装 vpn的client。 安装不分先后,配置先配置vpn server,然后再配置client。 服务端 安装wireguard server 服务器为 RHEL 7.6 (Maipo), 服务端的安装流程: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/bin/bash sudo -i [root@deoops ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.6 (Maipo) [root@deoops ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf [root@deoops ~]# sysctl -p ### install packages [root@deoops ~]# curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo [root@deoops ~]# yum install -y epel-release wireguard-dkms wireguard-tools [root@deoops ~]# yum install -y epel-release [root@deoops ~]# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@deoops ~]# yum update -y [root@deoops ~]# yum install -y epel-release wireguard-dkms wireguard-tools [root@deoops ~]# init 6 配置wireguard server 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ### wireguard server conf [root@deoops ~]# cat wg.conf [Interface] ListenPort = 58855 PrivateKey = private_key [Peer] PublicKey = public_key_one #AllowedIPs = 0.0.0.0/0 AllowedIPs = 10.0.0.7/32 [Peer] PublicKey = public_key_two #AllowedIPs = 0.0.0.0/0 AllowedIPs = 10.0.0.9/32 启动服务端wg0 设备 记得加上iptables设置: ...

January 6, 2020 · datewu

内核升级

众所周知centos的内核版本选择很保守,很多新内核的新特性,特别是网络和debug方面的特性都没有,所以我们来给centos升级下 kernel吧。 整个升级安装的过程其实挺简单的一共分为4步: 找到repo源; yum安装最新的kernel; 修改grub2启动项; 移除旧的kernel。 安装 elrepo 访问elrepo website查看对应 centos 版本最新的kernel repo源。 然后使用rpm添加kernel源: 1 2 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm install 安装内核: 1 2 yum --disablerepo="\*" --enablerepo="elrepo-kernel" list available yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel boot 修改grub2启动项,开机使用新的内核: 1 2 3 awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg grub2-set-default 0 init 6 cleanup 删除旧内核 1 2 3 yum install yum-utils package-cleanup --oldkernels --count=1 uname -a 参考 How to Upgrade Kernel on CentOS 7 ...

May 16, 2018 · datewu