选择特殊符号

选择搜索类型

热门搜索

首页 > 百科 > 给排水百科

Linux内核模块

尽管Linux是"单块内核"(monolithic)的操作系统--这是说整个系统内核都运行于一个单独的保护域中,但是linux内核是模块化组成的,它允许内核在运行时动态地向其中插入或从中删除代码。这些代码(包括相关的子线程、数据、函数入口和函数出口)被一并组合在一个单独的二进制镜像中,即所谓的可装载内核模块中,或简称为模块。支持模块的好处是基本内核镜像尽可能的小,因为可选的功能和驱动程序可以利用模块形式再提供。模块允许我们方便地删除和重新载入内核代码,也方便了调试工作。而且当热插拔新设备时,可通过命令载入新的驱动程序。

Linux内核模块造价信息

  • 市场价
  • 信息价
  • 询价

模块化机房

  • FusionModule800
  • 华为
  • 13%
  • 山东科普电源系统有限公司
  • 2022-12-06
查看价格

PWJ蓄水模块

  • 1200×600×600
  • 华畅科技
  • 13%
  • 河南华畅建筑科技有限公司
  • 2022-12-06
查看价格

信号转接控制模块

  • DS-XHZHKZ-02(内部信号转换模块)
  • 江苏明朗
  • 13%
  • 江苏明朗照明科技有限公司
  • 2022-12-06
查看价格

雷达流量检测模块

  • 雷达流量检测模块
  • 海通
  • 13%
  • 江苏海通交通集团有限公司南宁分公司
  • 2022-12-06
查看价格

模块(模块箱)

  • 1.名称:2防区报警模块2.其他:详见招标图纸及技术要求 DS7460i-CHI
  • 博世
  • 13%
  • 广州澳星电子有限公司
  • 2022-12-06
查看价格

模块

  • MKX2-1
  • 湛江市2005年2月信息价
  • 建筑工程
查看价格

输入模块

  • 湛江市2022年3季度信息价
  • 建筑工程
查看价格

输出模块

  • 湛江市2022年3季度信息价
  • 建筑工程
查看价格

输入模块

  • 清远市2022年2季度信息价
  • 建筑工程
查看价格

输出模块

  • 湛江市2022年2季度信息价
  • 建筑工程
查看价格

操作系统(Linux)

  • Linux Enterprise 12.0(2cpu)一年服务,盒包
  • 2套
  • 1
  • Suse 
  • 中档
  • 含税费 | 含运费
  • 2018-05-17
查看价格

Linux系统

  • Linux Enterprise 12.0(2cpu)一年服务,盒包
  • 15套
  • 1
  • Suse 
  • 中档
  • 含税费 | 含运费
  • 2018-05-17
查看价格

操作系统(Linux)

  • Linux Enterprise 12.0(2cpu)一年服务,盒包
  • 4套
  • 1
  • Suse 
  • 中档
  • 含税费 | 含运费
  • 2018-05-17
查看价格

通信内核软件系统

  • 1、电话功能:对所有调度终端(电话)进行单呼、选呼、群呼、组呼(一键呼),电话巡检;对下级调度终端(电话)进行强插、强拆、监听.2、通讯录管理:支持用户管理、组管理,黑名单等功能.3、录音管理功能
  • 1套
  • 1
  • 中高档
  • 不含税费 | 含运费
  • 2022-10-24
查看价格

Linux企业版64位7.6及以上版本

  • 相当于Linux企业版64位7.6及以上版本
  • 4个
  • 1
  • /
  • 中高档
  • 含税费 | 含运费
  • 2021-09-09
查看价格

Linux内核模块常见问题

查看详情

Linux内核模块文献

基于Linux模块的防火墙系统 基于Linux模块的防火墙系统

基于Linux模块的防火墙系统

格式:pdf

大小:1.5MB

页数: 3页

本文首先分析了Linux的Netfilter内核架构。并在此基础上,采用模块编程方式开发了一个高效实用的包过滤型防火墙系统。引言在计算机网络技术飞速发展的今天,网络安全问题一直困扰着人们。防火墙便是为了保证网络安全而架设的计算机硬件或者软件系统。商品化的防火墙产品,由于是通

Linux安全模块实现的研究 Linux安全模块实现的研究

Linux安全模块实现的研究

格式:pdf

大小:1.5MB

页数: 3页

直到2.6内核的出现,Linux操作系统一直缺乏对安全机制融入内核的普遍支持,Linux安全模块(Linux Securiy Module)可以克服这个缺陷。对LSM的体系结构、安全域和钩子函数以及能力模块进行了研究,探讨了LSM如何作为一个基本框架将Linux内核与具体的安全模块相结合,从而提高Linux操作系统的安全性。

IP内核模块ip内核模块的分类介绍

ip内核模块有3 种不同形式:软ip 核(soft ip core)、固ip 核(firm ip core)和硬ip 核(hard ip core)。 1.软ip 核 软ip 核主要是基于ip 模块功能的描述。它在抽象的较高层次上对ip 的功能进行描述,并且已经过行为级设计优化和功能验证。它通常以hdl 文档的形式提交给用户,文档中一般包括逻辑描述、网表,以及一些可以用于测试,但不能物理实现的文件。使用软ip,用户可以综合出正确的门电路级网表,进行后续结构设计,并借助eda 综合工具与其他外部逻辑电路结合成一体,设计出需要的器件。虽然,软ip 的灵活性大,可移植性好,但同硬ip 相比,因为它不含有任何具体的物理信息,所以如果后续设计不当,很可能导致设计失败。另外,后续的布局布线工作也将花费大量的时间。 2.硬ip 核硬ip 核主要是基于ip 模块物理结构的描述。它提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。其优点为,完成了全部的前端和后端设计,已有固定的电路布局局和具体工艺,可以确保性能,并缩短soc 的设计时间。但因为其电路布局和工艺是固定的,同时也导致了灵活性较差,难以移植到不同的加工工艺。 3.固ip 核 固ip 核主要是基于ip 模块结构的描述,可以理解为介于硬ip 和软ip 之间的ip 核。固ip 一般以门电路级网表和对应具体工艺网表的混合形式提交用户使用。以便用户根据需要进行修改,使它适合某种可实现的工艺流程。近年来电子产品的更新换代周期不断缩短,而系统芯片的复杂程度却在增长,为了缓和这一矛盾,soc 设计普遍采用基于ip 模块的设计方法。因为ip模块是预先设计好的,并通过了验证,设计者可以把注意力集中于整个系统,而不必考虑各个模块的正确性和性能,这除了能缩短soc 芯片设计的时间外,还能降低设计和制造成本,提高可靠性。ip 重用技术使芯片设计从以硬件为中心,逐渐转向以软件为中心,从门级的设计,转向ip 模块和ip 接口级的设计。

查看详情

Linux 调度器简介

linux调度器(BFS )是一款专门为 Linux 桌面环境所设计的内核调度器,它基于 Staircase Deadline和 EEVDF 算法,支持 Linux 2.6.31之后的内核。它提供了前所未有的流畅桌面性能,不仅得到了用户的认可,也为一些商业系统所采用。

查看详情

Linux 调度器对比

BFS vs CFS,设计上的不同 白天 Con Kolivas 在医院里当麻醉师,为人们解除痛苦,业余的时候借 Linux 解除自己的痛苦。额,Kolivas 学习 Linux 并不是为了解决痛苦,我臆测而已。但据 Kolivas 自述,他接触 Linux 内核时连 C 语言也没有学习过。。。这个事实证明,语言只是一项工具,对问题本质的深入理解才是写程序的关键。可能还有执着,CFS 和 RSDL 之争导致 Kolivas 离开 Linux 社区,此去经年,当 Kolivas 再次开始看内核代码的时候,他立即发现 CFS 存在以下几个设计上的问题:

CFS 的目标是支持从桌面到高端服务器的所有应用场景,这种大而全的设计思路导致其必须做一些实现上的折中,此外,那些只有在高端机器中才需要的特性将引入不必要的复杂代码。

其次,为了维护多 CPU 上的公平性,CFS 采用了负载平衡机制,Kolivas 认为,这些复杂代码抵消了 per cpu queue 曾带来的好处。

最后,主流内核的 CFS 还是对睡眠进程存在一些偏好,这意味着"不公平"。

设计目标不同

在现实中,调度算法类似一个处境尴尬的主妇,满足孩子对晚餐的要求便有可能伤害到老人的食欲。Linux 内核一直试图做出一道让全家老少都喜欢的菜,在这方面,CFS 已经做的很好。但一道能被所有人接受的菜,或许就意味着稍许平淡。而 BFS 只打算满足一种口味,以便将这种口味发展到极限。

根据 Linux Magazine的说法,Con Kolivas是看到了下面这则来自 xkcd 的漫画而开始思考 BFS 的。

事情源于一些 Linux 用户,他们发现 Linux 虽然号称能够充分发挥 4096 颗 CPU 系统的计算能力,但在普通的 laptop 上却无法流畅地播放 Youtube 视频。

这让人们开始思考,对于 Desktop 环境来讲,CFS 哪些复杂的特性究竟是否还有意义?人们是否有必要在自己的个人电脑中使用一个支持 4096 个 CPU 的调度器?

BFS 正是对这种质疑的自然反应。它不打算支持 4096 个 CPU 的庞然大物,BFS 的目标是普通人使用的桌面电脑。此外,BFS 还删除了那些只有在服务器上才需要的特性。比如,BFS 抛弃了 CFS 的组调度特性,类似 CGROUP 这样的特性对于普通的桌面用户是多余的技术。

这很容易理解:在只有一个 CPU 的系统中,谁还会设计多个 CGroup,哪里还能用到 NUMA domain等概念呢?

此外 BFS 使用单一的 run queue,不再需要复杂的负载均衡机制。由于不再有 CGROUP 概念,也不再需要 Group 间的负载均衡。

这些简单的裁剪使得 BFS 的代码极大地简化,简化的代码意味着执行一次调度所需要的指令数减少了,相应的 footprint 自然也减少了。

当然简化代码只是一个显而易见的方面,更重要的是,这种理念的不同会对最终的调度器实现产生更加深远的影响,这实在是难以尽述。

多队列 vs 单一队列

​在 Linux 内核进入 2.6 时,调度器采用 per cpu run queue 从而克服了单一 run queue 的局限。在多 CPU 系统中,单一 run queue 意味着 run queue 成为了系统的瓶颈,因为在同一时刻,一个 CPU 访问 run queue 时,其他的 CPU 即使空闲也必须等待。当使用 per CPU 的 run queue 之后,每个 CPU 不必再使用大锁,从而能够并行地处理调度。

但很多事情都不像第一眼看上去那样简单。

Kolivas 发现,采用 per cpu run queue 所带来的好处会被追求公平性的 load balance 代码所抵消。在目前的 CFS 调度器中,每颗 CPU 只维护本地 run queue 中所有进程的公平性,为了实现跨 CPU 的调度公平性,CFS 必须定时进行 load balance,将一些进程从繁忙的 CPU 的 run queue 中移到其他空闲的 run queue 中。

这个 load balance 的过程需要获得其他 run queue 的锁,这种操作降低了多运行队列带来的并行性。

并且在复杂情况下,这种因 load balance 而引入的 footprint 将非常可观。

当然,load balance 引入的加锁操作依然比全局锁的代价要低,这种代价差异随着 CPU 个数的增加而更加显著。但请您注意,BFS 并不打算为那些拥有 1024 个 CPU 的系统工作,假若系统中的 CPU 个数有限时,多 run queue 的优势便不明显了。

而 BFS 采用单一队列之后,每一个需要调度的新进程都可以在全局范围内查找最合适的 CPU,而无需 CFS 那样等待 load balance 代码来决定,这减少了多 CPU 之间裁决的延迟,最终的结果是更小的调度延迟。

向前看还是向后看?

多年来 Kolivas 一直关注着 Linux 在 desktop 上的表现。对于 desktop 的用户,最注重的不是系统的吞吐量,而是交互性程序的流畅体验。从 SD 开始,Kolivas 就告诉内核黑客们,完全公平能够从根本上保证交互性。他始终坚持一个基本观点:调度器应该 forward look only。决不要去考虑一个进程的过去。

CFS 却偏偏要考虑进程的过去。2.6.23 的时候,CFS 记录并使用 sleep time。之后不久,在 2.6.24 发布的时候,CFS 合并了"Real Fair Scheduler",删除了 sleep time。因此在 2.6.24 之后的内核中,CFS 终于也不再考虑进程过去的睡眠时间。

但 CFS 还是保留了 sleeper fairness 的思想,当进程 wakeup 的时候,在 place_entity() 函数中,CFS 将对 sleeper 进行奖励,以便其能尽快得到 CPU。这个策略是非常微妙的,我们在 2.1 节中详细介绍了 sleeper fairness 的演进过程。假如您花些时间回头再看看,就会发现 sleeper fairness 曾造成怎样严重的延迟问题。虽然 Ingo 自称 Gentle fairness 解决了延迟问题,但从代码上看,Gentle Fairness 只是对 sleeper 的奖励减半而已。因此我们可以说,CFS 依然对 Sleeper 进程进行奖励,这代表着一种偏好,一种"不公平"。而这,正是 BFS 所反对的。

BFS 中,当一个进程 wakeup 时,调度器将根据进程的 deadline 来进行选择(关于 deadline 本文将在第 4 章中详细描述),其结果是,更早睡眠的进程能更快地得到调度;CFS 的 sleeper fairness 则意味着要根据 wakeup 的时间来选择下一个被调度的进程,更早 wakeup 的进程会更快得到调度。

这种不同究竟会对桌面应用造成何种影响尚没有理论依据可以参考。但我个人认为,BFS 的策略更加合理。

您现在可能已经读得有些烦躁了 ( 这些英文加中文的说些啥啊 ),所以我还是尽快介绍一下 BFS 的实现细节吧。然后或许您会理解我,有些词还是不翻译更好。

查看详情

相关推荐

立即注册
免费服务热线: 400-888-9639