泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓RISC-V实验箱,不会吃灰,开箱即用
请稍侯

泰晓资讯·5月 / 第二期 / 2020

Wang Chen 创作于 2020/05/08

“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。

Linux Lab 发布 v0.4 rc2,新增第 16 块开发板

Linux Lab 于 3 月底发布了 v0.4 rc1,五一刚过就发布了 v0.4 的第 2 个候选版本:v0.4-rc2,一同发布的还有 Cloud Lab 的 v0.2-rc3,本次合计有 58 笔变更,本次关键更新如下:

  • 新增第 16 块开发板:arm/mcimx6ul(由 Ping Wu 贡献)
  • 新增独立的 Ubuntu Docker-CE 安装文档:doc/install/ubuntu-docker.md(由 Unicornx 贡献)
  • 文档
    • 新增 vnc 客户端登陆方法
    • 增加 Linux Lab 支持的软硬件信息说明
  • 其他
    • 新增 v4.1.1 qemu 支持
    • 完善 bsp 子仓库更新功能
    • 完善 uboot + nodtb 功能
    • 允许列出指定架构 make list ARCH=arm 或指定关键字的板子 make list FILTER=mx6
    • 新增脚本 tools/docker/env.sh 用于汇总 Linux Lab 成功运行过的软硬件环境

关键词: Linux Lab,v0.4-rc2

共谱开源新篇章: Linux Lab 报名参加 “暑期 2020” 活动

“开源软件供应链点亮计划-暑期2020”的活动是中科院软件所、openEuler 社区联合了许多知名社区和高校,采用社区出题、导师指导、学生解答的方式,组织的一次开源软件贡献活动。具体活动介绍请移步 “暑期 2020”

Linux Lab 已经报名参加,欢迎大家踊跃参与,参与方式有:

  1. 提交项目功能和特性需求
  2. 领取某个需求并完成开发
    • 请先参考 中文手册 安装并运行 Linux Lab
    • 有 Linux 使用经验优先
  3. 担任某个需求的 Mentor
    • 需要有嵌入式 Linux 和 Linux 内核开发背景
    • 使用 Linux Lab 不少于 1 个月,从现在开始用起来也不迟哦
    • 有提交 PR 优先

详情请咨询 Linux Lab 项目接口人的联系微信:tinylab。

关键词: 暑期2020,Linux Lab

openKylin 社区正式成立

openKylin 社区由麒麟软件发起,是一个开源、免费的 Linux 技术平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。

openKylin 一直致力于开源社区的发展和建设,目前维护开源社区近 90 个项目的代码项目,维护代码行数达到百万行,涉及到 HA、oVirt、openNebuler 和 Glusterfs 等开源技术,并积极为开源社区做出贡献。

未来,openKylin 社区将坚持“平台共建、资源共享、联合创新、开放发展”的原则,努力做好开源软件的布道者和推动者,并以更加面向未来的创新思路和实践方案,积极贡献开源社区、建设开源社区,携手合作伙伴共同培养中国开源的核心力量。

  • 官方网站:www.openkylin.com
  • 联系方式:openkylin@kylinos.cn
  • 开源项目地址:https://gitee.com/openkylin

关键词: openKylin

内核线程实时优先级设置的再思考

The realtime scheduler classes are intended to allow a developer to state which tasks have the highest priorities with the assurance that, at any given time, the highest-priority task will have unimpeded access to the CPU. The kernel itself carries out a number of tasks that have tight time constraints, so it is natural to want to assign realtime priorities to kernel threads carrying out those tasks. But, as Peter Zijlstra argues in a new patch set, it makes little sense for the kernel to be assigning such priorities; to put an end to that practice, he is proposing to take away most of the kernel’s ability to prioritize its own threads.

内核中目前使用了大量的内核态线程。大多数内核线程以 SCHED_NORMAL 方式运行,但也有部分内核线程足够特殊,为了让内核优先调度这些内核线程,实现中将它们定义为 SCHED_FIFO 类型或者 SCHED_RR 类型。至于具体的优先级应该设置多少,却是个比较让人头疼的问题,因为这往往需要通盘考虑系统负载和运行状态,目前缺省设置的值其实完全依赖于开发人员的经验,具体的总结可以参考原文 “Controlling realtime priorities in kernel threads” 中总结的一张表。

最近内核调度子系统的主要维护人员 Peter Zijlstra 对这个问题提出了自己的想法,他认为开发人员根据自己的经验去设置这些值是完全没有意义的。从内核的角度来说,根本无需也无法知道实际的用户场景要求,花心思去调整这些值实在无聊(有时候甚至是好心办坏事)。为此他提交了一个补丁,重新定义了一组内部接口供内核子系统为内核态线程设置调度类型,接口十分干净,因为不再需要为实时类型的线程提供优先级的设置选项;而且只有三个函数:第一个是 void sched_set_fifo(struct task_struct *p),在设置线程为 SCHED_FIFO 类的同时内部缺省设置优先级为 50;第二个是 void sched_set_fifo_low(struct task_struct *p),调度类同样为 SCHED_FIFO 但优先级设置为最低值(1);而最后一个接口 void sched_set_normal(struct task_struct *p, int nice) 则是将调度类设置为 SCHED_NORMAL,在这种情况下我们可以通过第二个参数 nice 来调整优先级。

目前该补丁已经经过多人的评审,看上去大家也没什么意见,这其实更证明了过去大家设置这些优先级的值其实也没有什么过硬的根据。采用现在这种方式后,至少使得大家以后在定义内核线程时的行为更统一规范,否则按现在这种状态发展下去,这些说不清道不明的魔数(优先级设置)又有几个人能说得清楚呢?

关键词: Linux,realtime,priority

利用 BPF 技术导出内核数据结构

For as long as operating systems have had kernels, there has been a need to extract information from data structures stored within those kernels. Over the years, a wide range of approaches have been taken to make that information available. In current times, it has become natural to reach for BPF as the tool of choice for a variety of problems, and getting information from kernel data structures is no exception. There are two patches in circulation that take rather different approaches to using BPF to dump information from kernel data structures to user space.

自从操作系统出世以来,就存有需求要从内核中提取内部的数据结构信息。多年来,我们尝试了各种各样的方法来达到这个目的。譬如早期的 Unix 系统中,我们会通过打开 /dev/kmem 这个特殊文件然后扫描内核的内存空间来获取其信息。这种方法的优点是不需要内核的支持,但是缺点也很突出,包括安全性问题,数据访问的原子性问题,甚至可能得到随机的垃圾数据。后来一直到现在,更常用的方法是通过 /proc/sysfsdebugfs 等虚拟操作系统来访问内核数据。这种方法可行,但问题是一旦要输出的信息发生更改,就必须修改并重新编译内核。因此,人们希望有一些更灵活和适应性更强的方法来从用户态获取内核信息。

当前,内核中比较流行采用 BPF 来开发解决问题的工具,而上面我们提到的这个需求也不例外。最近,社区里出现了两个补丁,它们都使用 BPF 技术将内核信息转储(dump)到用户空间,但具体的实现方式并不相同。

一种是 Yonghong Song 由提出,利用 BPF 程序实现一种类似 /proc 的虚拟文件系统。一旦用户需要获取内核中某项数据的信息,他可以利用 BPF 技术加载一段 BPF 代码动态地在这个新的虚拟文件系统下创建一个文件,而这些操作不涉及修改内核的代码。另一个补丁由 Alan Maguire 提出,利用基于 BPF 的 BPF type format (BTF) 技术动态地解析一个内核数据结构并将其通过诸如 printk 或者其他调试跟踪技术,譬如 Ftrace 导出。更多详细的介绍请移步原文 “Dumping kernel data structures with BPF”

关键词: Linux,BPF,kernel data structure

友情转发:LWN 诚招技术记者一名

Keeping LWN going is a full-time job — indeed, it is multiple full-time jobs. We are currently hiring another writer to help us get this work done and to help expand our content range. If you have a deep understanding of the Linux and free-software communities and can write high-quality English, this is your chance to write for one of the most engaged and challenging reader communities around; we would like to hear from you.

LWN.net 正在寻求一名专职技术记者,以为读者提供有关 Linux 和自由软件社区的高质量报道。这是成为一个改变世界的社区的机会,虽然距离完成还很遥远。但自 1998 年以来,LWN 一直在社区中享有盛名。如果您对 Linux 和自由软件社区有深刻的了解,并且可以编写高质量的英语,那么您就有机会为周围最活跃,最具挑战性的读者社区之一写作。更多详细招聘信息请见 “Help wanted at LWN”

关键词: LWN,招聘

联系我们

资讯内容部分来自 “LWN.net“。如果您对某些 LWN 文章感兴趣(譬如希望获得全文翻译的)请扫描二维码加微信联系我们:

tinylab wechat



Read Album:

Read Related:

Read Latest: