流行天王迈克尔-杰克逊私人医生被判犯过失杀人罪| 称林志玲大胆演出靠自己| 肯-洛奇获柏林终身成就奖| 姜文金句频现抢戏| 儒意| 邓超只是和江一燕聊天| 被晒照片追债| 成为恋人要看缘分| 姚晨经纪人澄清司机杀人案| 男方上下其手毫不避嫌| 东野奎吾| 杨钰莹比韩红大一岁!两人合体画风是这样的…| 小沈阳女儿天生幽默爱说“冷笑话| 赛琳娜被网友嘲笑肥胖| 情歌王子张宇原来才是真正的污妖王| 资金| 称自己爬上老板的床| 风邪| 复仇者导演再现惊悚| 恶补英语走国际路线(组图)| 剧情被指改得面目全非| 区别于哗众取宠的古装剧| 刘亦菲享受假期好时光| 男友撑伞陪同外出散心| 女人之间要不谐和| 不可思异| 电王| 全家总动员| 杨紫存在感低被孤立?| 演好色将军| 施瓦辛格谈与女佣偷腥致婚变| 舒淇晒与海豚Kitty合照| 四太未获分毫欲反扑| 郭富城“天王当得不舒服| 速递| 张博高原演绎| 乔任梁带徐璐重返母校| 巫医| 他婚后与多女保持男女关系| 兄弟两人笑容如出一辙|

电子发烧友网 > 嵌入式技术 > 正文

法国追风级导弹护卫舰高清图 追风级轻型护卫舰价格

? 2018-10-20 10:51 ? 次阅读
3月23日人民日报的评论《数据权力如何尊重用户权利》指出,“从深层次上说,大数据使用引发的几次公众信任危机,与人们对于技术运用的期待,是一体两面的。

1. 引言

Linux系统开放源代码、系统漏洞少,在面对病毒和黑客入侵时能提供更好的安全性和稳定性,基于以上这些优点,近年来对Linux操作系统及其相关技术的应用和研究越来越多。对Linux操作系统扩充或裁剪功能需要在重新编译内核上花费大量的时间。LKM机制由于大大缩短了开发和测试的时间,在 Linux开发、研究的过程中起到了举足轻重的作用。

LKM主要包括内核模块在操作系统中的加载和卸载两部分功能,内核模块是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不需要时由操作系统卸载。它们扩展了操作系统内核功能却不需要重新编译内核、启动系统。如果没有内核模块,就不得不反复编译生成操作系统的内核镜像来加入新功能,当附加的功能很多时,还会使内核变得臃肿。

2. LKM的编写和编译

2.1 内核模块的基本结构

一个内核模块至少包含两个函数,模块被加载时执行的初始化函数init_module()和模块

被卸载时执行的结束函数cleanup_module()。在最新内核稳定版本2.6中,两个函数可以起

任意的名字,通过宏module_init()和module_exit()实现。唯一需要注意的地方是函数必须在宏的使用前定义。例如:

static int __init hello_init(void){}

staTIc void __exit hello_exit(void ){}

module_init(hello_init);

module_exit(hello_exit);

这里声明函数为staTIc的目的是使函数在文件以外不可见,__init的作用是在完成初始化后收回该函数占用的内存,宏__exit用于模块被编译进内核时忽略结束函数。这两个宏只针对模块被编译进内核的情况,而对动态加载模块是无效的。这是因为编译进内核的模块是没有清理收尾工作的,而动态加载模块却需要自己完成这些工作。

2.2 内核模块的编译

编译时需要提供一个makefile来隐藏底层大量的复杂操作,使用户通过make命令就可以完成编译的任务。下面就是一个简单的编译hello.c的makefile文件:

obj-m += hello.ko

KDIR := /lib/modules/$(shell uname -r)/build

PWD := $(shell pwd)

default:

$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

编译后获得可加载的模块文件hello.ko。

内核版本2.6中使用.ko文件后缀代替了.o,这是为了与普通可执行文件相区别。

3. LKM的主要功能

3.1 模块的加载

模块的加载有两种方法,第一种是使用insmod命令加载,另一种是当内核发现需要加载某个模块时,请求内核后台进程kmod加载适当的模块。当内核需要加载模块时,kmod被唤醒并执行modprobe,同时传递需加载模块的名字作为参数。modprobe像insmod一样将模块加载进内核,不同的是在模块被加载时查看它是否涉及到当前没有定义在内核中的任何符号。如果有,在当前模块路径的其他模块中查找。如果找到,它们也会被加载到内核中。但在这种情况下使用insmod,会以“未解析符号”信息结束。

关于模块加载,可以用图3.1来简要描述:

关于Linux操作系统中LKM的优势与不足研究与应用浅析

insmod程序必须找到要求加载的内核模块,这些内核模块是已链接的目标文件,与其他文件不同的是,它们被链接成可重定位映象即映象没有被链接到特定地址上。insmod将执行一个特权级系统调用来查找内核的输出符号,这些符号都以符号名和数值形式如地址值成对保存。内核输出符号表被保存在内核维护的模块链表的第一个module结构中。只有特殊符号才被添加,它们在内核编译与链接时确定。insmod将模块读入虚拟内存并通过使用内核输出符号来修改其未解析的内核函数和资源的引用地址。这些工作采取由insmod程序直接将符号的地址写入模块中相应地址来进行。

当insmod修改完模块对内核输出符号的引用后,它将再次使用特权级系统调用申请足够的空间容纳新模块。内核将为其分配一个新的module结构以及足够的内核内存来保存新模块,并将其插入到内核模块链表的尾部,最后将新模块标志为UNINITIALIZED。insmod将模块拷贝到已分配空间中,如果为它分配的内核内存已用完,将再次申请,但模块被多次加载必然处于不同的地址。另外此重定位工作包括使用适当地址来修改模块映象。如果新模块也希望将其符号输出到系统中,insmod将为其构造输出符号映象表。每个内核模块必须包含模块初始化和结束函数,所以为了避免冲突它们的符号被设计成不输出,但是insmod必须知道这些地址,这样可以将它们传递给内核。在所有这些工作完成以后,insmod将调用初始化代码并执行一个特权级系统调用将模块的初始化和结束函数地址传递给内核。当将一个新模块加载到内核中时,内核必须更新其符号表并修改那些被新模块使用的老模块。那些依赖于其他模块的模块必须在其符号表尾部维护一个引用链表并在其module数据结构中指向它。内核调用模块的初始化函数,如果成功将安装此模块。模块的结束函数地址被存储在其module结构中,将在模块卸载时由内核调用,模块的状态最后被设置成RUNNING。

3.2 模块的卸载

模块可以使用rmmod命令删除,但是请求加载模块在其使用计数为0时,自动被系统删除。kmod在其每次idle定时器到期时都执行一个系统调用,将系统中所有不再使用的请求加载模块删除。

关于模块卸载,可以用图3.2来描述:

关于Linux操作系统中LKM的优势与不足研究与应用浅析

内核中其他部分还在使用的模块不能被卸载。例如系统中安装了多个VFAT文件系统则不能卸载VFAT模块。执行lsmod将看到每个模块的引用计数。模块的引用计数被保存在其映象的第一个常字中,这个字还包含autoclean和visited标志。如果模块被标记成autoclean,则内核知道此模块可以自动卸载。visited标志表示此模块正被一个或多个文件系统部分使用,只要有其他部分使用此模块则这个标志被置位。每次系统要将没有被使用的请求加载模块删除时,内核将在所有模块中扫描,但是一般只查看那些被标志为autoclean并处于running状态的模块。如果某模块的 visited标记被清除则它将被删除。其他依赖于它的模块将修改各自的引用域,表示它们间的依赖关系不复存在。此模块占有的内核内存将被回收。

4. LKM的应用

零拷贝基本思想是:数据分组从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。零拷贝的实现分为实现DMA数据传输和地址映射两个部分。其中DMA数据传输与本文关系不大,就不详细叙述了,这里主要介绍应用LKM机制实现的地址映射。

地址映射的基本原理是在内核空间申请内存,通过proc文件系统和mmap函数将其映射到用户空间来允许应用程序访问,这样就消除了内核空间到应用程序空间的数据拷贝。地址映射部分的实现主要分为以下三步:

第一,建立LKM的基本结构,包括编写初始化和结束函数等。

第二,声明完成映射功能所需要的函数,主要有分配和初始化内核内存函数init_mem(),释放内核内存函数del_mem(),向内核内存输入内容的函数put_mem()等。

第三,在初始化函数中应用第二步建立的函数分配一块内存空间、输入内容、建立proc文件系统入口。在结束函数中释放已分配的内核内存,删除proc文件系统入口。

编写应用程序测试该LKM,发现已经达到了映射内核内存到应用程序空间的目的。在实现零拷贝的过程中采用LKM机制不但便于调试而且大大减少了开发时间。

5. LKM与普通应用程序的比较

LKM与普通应用程序之间的区别主要体现在四个方面。

第一,也是最重要的区别,普通应用程序运行在用户空间,而LKM运行在内核空间。通过区分不同的运行空间,操作系统能够安全地保护操作系统中一些重要数据结构的内容不被普通应用程序所修改,达到保证操作系统正常运转的目的。

第二,普通应用程序的目标很明确,它们从头至尾都是为了完成某一项特定任务。而LKM是在内核中注册并为后续应用程序的请求提供服务的。

第三,普通应用程序可以调用并没有在其中定义的函数,但一个LKM是链接到内核上的,它所能调用的函数只有内核导出来的那些函数。

第四,普通应用程序和LKM处理错误的方式不同。当应用程序中出现错误时并不会给系统造成很大的伤害。LKM则不然,在其中出现的错误对子系统来说通常是致命的,至少对于当前正在运行的进程而言。LKM中的一个错误常常会导致整个系统崩溃。

6. 编写LKM需要注意的问题

LKM运行在内核空间,它们拥有对整个系统所有资源的访问权限,因此,编写LKM首先要注意就是安全问题,而且还应该避免将可能导致出现安全问题的代码带到LKM中。

LKM加载后是作为操作系统内核的一部分运行的,因此,在设计、编写操作系统内核过程中应该注意的问题在LKM中也应该引起足够的重视。在这里,主要指的是并发问题和指针引用问题。并发是指在同一时间有多个进程在操作系统内核中同时运行。并发结合共享资源最终会导致竞态条件,在这种情况下应该对各个并发进程访问共享资源进行严格的控制。如果在LKM中出现指针引用错误,内核将没有办法将内存的虚拟地址映射到物理地址,从而导致出现内核中的意外,如内存访问冲突、除0以及非法操作等。

7. LKM的不足之处

LKM虽然在设备驱动程序的编写和扩充内核功能中扮演着非常重要的角色,但它仍有许多不足的地方。

第一,LKM对于内核版本的依赖性过强,每一个LKM都是靠内核提供的函数和数据结构组织起来的。当这些内核函数和数据结构因为内核版本变化而发生变动时,原先的LKM不经过修改就可能不能正常运行。

第二,虽然现在有针对内核编程调试的工具kgdb,但是在LKM编写过程中调试仍非常麻烦,而且在调试过程中,系统所能提供的出错信息极为晦涩。

创新点:针对Linux内核,利用LKM,在实现了数据的零拷贝(Zero-copy)的过程中,将LKM与普通应用程序进行比较,提出了LKM的优势和不足。

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

关于嵌入式Linux在PMP消费类电子产品上的应...

Linux 是一种适合于嵌入式系统的开源操作系统,可以高效地处理各种复杂的任务。从基于TI DM32...

发表于 2018-10-20 10:47 ? 22次阅读
关于嵌入式Linux在PMP消费类电子产品上的应...

Linux磁盘如何划分 浅谈逻辑卷管理(LVM)...

逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传...

发表于 2018-10-20 09:50 ? 53次阅读
Linux磁盘如何划分 浅谈逻辑卷管理(LVM)...

如何制作一个基于linux 2.6.19内核的小...

ARM9 S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前...

发表于 2018-10-20 17:09 ? 52次阅读
如何制作一个基于linux 2.6.19内核的小...

网格硬件兼容性

发表于 2018-10-20 16:47 ? 23次阅读
网格硬件兼容性

从RTOS到嵌入式Linux的应用移植步骤以及相...

在过去几年中,Linux成功地取代了一些最主要的传统RTOS(实时操作系统)平台,成为了各种各样的...

发表于 2018-10-20 16:47 ? 29次阅读
从RTOS到嵌入式Linux的应用移植步骤以及相...

Linux Shell系列教程之(十五) Shell函数简介

发表于 2018-10-20 16:46 ? 192次阅读
Linux Shell系列教程之(十五) Shell函数简介

Linux的32位驱动程序

发表于 2018-10-20 16:42 ? 15次阅读
Linux的32位驱动程序

Linux Shell系列教程之(十四) Shell Select教程

发表于 2018-10-20 16:36 ? 185次阅读
Linux Shell系列教程之(十四) Shell Select教程

Linux Shell系列教程之(十三)Shell分支语句case … esac教程

发表于 2018-10-20 16:31 ? 189次阅读
Linux Shell系列教程之(十三)Shell分支语句case … esac教程

Linux系统中进程与线程之间的关系

发表于 2018-10-20 15:48 ? 51次阅读
Linux系统中进程与线程之间的关系

适用于Linux的PSoC USBHID Bootloader

发表于 2018-10-20 11:49 ? 15次阅读
适用于Linux的PSoC USBHID Bootloader

一种以ARM920T为核心并嵌入式Linux操作...

随着社会经济和科学技术的飞速发展,电力机车、地铁和电动汽车等将得到广泛的应用。这些用电设备的电能变...

发表于 2018-10-20 17:03 ? 211次阅读
一种以ARM920T为核心并嵌入式Linux操作...

开源是Linux成功的核心要素

Linus 还评论了他作为 Linux 维护者的角色以及为开发者社区发展所能做或应该做些什么。“作为...

发表于 2018-10-20 16:52 ? 126次阅读
开源是Linux成功的核心要素

Linux系统进程的知识总结

发表于 2018-10-20 12:00 ? 44次阅读
Linux系统进程的知识总结

【重磅推荐】嵌入式Linux经典书单(部分含视频)

发表于 2018-10-20 17:41 ? 371次阅读
【重磅推荐】嵌入式Linux经典书单(部分含视频)

关于四种实时嵌入式Linux操作系统的对比分析浅...

本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、Q...

发表于 2018-10-20 17:39 ? 141次阅读
关于四种实时嵌入式Linux操作系统的对比分析浅...

关于嵌入式系统的特点和Linux内核的实时应用分...

Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务...

发表于 2018-10-20 17:25 ? 80次阅读
关于嵌入式系统的特点和Linux内核的实时应用分...

我可以在M0上运行RTOS,在M4上运行linux/android环境吗?

发表于 2018-10-20 16:12 ? 33次阅读
我可以在M0上运行RTOS,在M4上运行linux/android环境吗?

怎么才能更好的理解嵌入式操作系统Linux实时化...

Linux支持PowerPC、MIPS、ARM、DSP等多种嵌入式处理器,逐渐被用于多种关键性场合。...

发表于 2018-10-20 17:44 ? 109次阅读
怎么才能更好的理解嵌入式操作系统Linux实时化...

什么是嵌入式Linux内核调试技术?嵌入式开发又...

近年处理器技术发展速度加快,嵌入式领域发生了翻天覆地的变化。特别是网络的普及,消费电子异军突起,嵌入...

发表于 2018-10-20 17:38 ? 90次阅读
什么是嵌入式Linux内核调试技术?嵌入式开发又...

KASAN是如何实现检测的?如何根据shadow...

shadow memory检测原理的实现主要就是__asan_load##size()和__asan...

发表于 2018-10-20 15:00 ? 200次阅读
KASAN是如何实现检测的?如何根据shadow...

物联网有哪些操作系统?物联网操作系统汇总

首次被翻牌的重点版块包括:物联网芯片(计算芯片、通信芯片为主)、授权频谱物联网网络、非授权频谱物联网...

发表于 2018-10-20 09:04 ? 2319次阅读
物联网有哪些操作系统?物联网操作系统汇总

如何在众多Linux内核版本中选择最适合你最稳当...

Linux Kernel 的稳定分支维护者 Greg Kroah-Hartman 近日在其个人博客上...

发表于 2018-10-20 08:59 ? 262次阅读
如何在众多Linux内核版本中选择最适合你最稳当...

基于嵌入式Linux的工控系统设计详解

随着Internet的飞速发展,网络应用越来越广泛,对各种工业控制设备的网络功能要求也越来越高。当...

发表于 2018-10-20 17:37 ? 76次阅读
基于嵌入式Linux的工控系统设计详解

Linux牛X简史:Linux是如何开发出来的?

可以说,每一次程序员的女票去淘宝“败家”,都受恩惠于Linux。不过,Linux,却被一位来自圣诞老...

发表于 2018-10-20 16:57 ? 300次阅读
Linux牛X简史:Linux是如何开发出来的?

存储器的金字塔结构

如图,当程序调用各类文件操作函数后,用户数据(User Data)到达磁盘(Disk)的流程如图所示...

发表于 2018-10-20 08:16 ? 256次阅读
存储器的金字塔结构

Android是基于Linux内核的操作系统浅谈...

20540650

发表于 2018-10-20 09:28 ? 1027次阅读
Android是基于Linux内核的操作系统浅谈...

如何用DM6446实现Windows CE显示驱...

作为一款多媒体处理芯片,TI公司推出的DM6446 采用ARM+DSP 的双内核架构,有着丰富的外设...

发表于 2018-10-20 02:45 ? 246次阅读
如何用DM6446实现Windows CE显示驱...

27个与Linux和Linus Torvalds...

Linux 差点不叫这个名字!Linus Torvalds 原本想把他的 “业余爱好” 项目称为 “...

发表于 2018-10-20 08:45 ? 337次阅读
27个与Linux和Linus Torvalds...

正确的学习linux的路线

如果想学上层的图形界面的应用,那么学习一下QT,编一个我们最开始学习的helloworld,放到开发...

发表于 2018-10-20 17:41 ? 333次阅读
正确的学习linux的路线

什么是cgroups?有什么作用?

cgroups (Control Groups) 是 Linux 内核提供的一种机制,这种机制可以根...

发表于 2018-10-20 11:35 ? 322次阅读
什么是cgroups?有什么作用?

一文了解Linux平台搭建与环境熟悉

嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,l...

发表于 2018-10-20 10:57 ? 856次阅读
一文了解Linux平台搭建与环境熟悉

以ARM9和Linux为核心的嵌入式视觉系统设计

测试硬件性能稳定之后,在Linux 系统下把图像采集、图像显示和保存图像命令写成一个脚本,放在文件系...

发表于 2018-10-20 09:24 ? 151次阅读
以ARM9和Linux为核心的嵌入式视觉系统设计

Linux开机启动:计算机开机是一个神秘的过程

随后,boot loader会帮助我们加载内核(kernel)。内核实际上是一个用来操作计算机的程序...

发表于 2018-10-20 17:52 ? 412次阅读
Linux开机启动:计算机开机是一个神秘的过程

以Linux 2.6为基础的提高Linux实时性...

它的开发通常受到很多客观条件的限制,诸如较弱的CPU处理能力、较小的内存空间、较少的可供选择的外设、...

发表于 2018-10-20 16:47 ? 93次阅读
以Linux 2.6为基础的提高Linux实时性...

如何在晶心平台上建立Linux基础架构?

鉴于越来越多使用者将Linux移植到晶心平台(Andes Embedded)上(AndesCore ...

发表于 2018-10-20 16:37 ? 61次阅读
如何在晶心平台上建立Linux基础架构?

Linux内核的发展简史与系统层次结构

进程管理还包括处理活动进程之间共享 CPU 的需求。内核实现了一种新型的调度算法,不管有多少个线程在...

发表于 2018-10-20 14:14 ? 267次阅读
Linux内核的发展简史与系统层次结构

从高级的视角来查看Linux引导过程

系统启动阶段依赖于引导Linux系统上的硬件。在嵌入式平台中,当系统加电或重置时,会使用一个启动环境...

发表于 2018-10-20 14:10 ? 747次阅读
从高级的视角来查看Linux引导过程

Linux常用检测性能的10个基本命令汇总

s, sy, id, wa:CPU的统计信息,分别表示user time、system time(k...

发表于 2018-10-20 17:33 ? 424次阅读
Linux常用检测性能的10个基本命令汇总

Bash指南:Bash最佳实践

首先,你可以通过键入 history 来查看整个最近的命令历史记录,或者你可以通过键入 histor...

发表于 2018-10-20 17:29 ? 204次阅读
Bash指南:Bash最佳实践

一种应用于测控系统的基于Linux的嵌入式系统的...

随着网络控制技术的快速发展,工业以太网得到逐步完善,在工业控制领域获得越来越广泛的应用。工业以太网...

发表于 2018-10-20 10:35 ? 95次阅读
一种应用于测控系统的基于Linux的嵌入式系统的...

基于PXA255开发板外围字符设备的嵌入式Lin...

随着嵌入式系统的发展,嵌入式 Linux以其稳定性和开放源代码的优点在嵌入式系统的开发中得到广泛应用...

发表于 2018-10-20 10:19 ? 80次阅读
基于PXA255开发板外围字符设备的嵌入式Lin...

论述学习Linux内核的各个阶段

第三阶段(回归第一阶段):你已经工作了一段时间,写了一些代码,修复了一些bug,提交了一些patch...

发表于 2018-10-20 17:23 ? 375次阅读
论述学习Linux内核的各个阶段

基于嵌入式Linux下的I2C设备驱动的总体思路...

由于I2C总线的通用性,Linux作为一款优秀的嵌入式操作系统,也必须要对其要有很好的支持。在Li...

发表于 2018-10-20 09:04 ? 201次阅读
基于嵌入式Linux下的I2C设备驱动的总体思路...

深度分析Linux内存使用方法

一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内...

发表于 2018-10-20 09:00 ? 986次阅读
深度分析Linux内存使用方法

基于嵌入式操作系统Linux环境中的没有竞争态读...

在对实时采集更新的数据进行处理时,往往会遇到数据更新速度与数据处理的速度不匹配的问题。这种情况下,...

发表于 2018-10-20 08:36 ? 81次阅读
基于嵌入式操作系统Linux环境中的没有竞争态读...

基于嵌入式TMS320DM*6平台上的Linux...

嵌入式系统开发已经进入32位时代,在当前数字信息技术和网络技术高速发展的后PC时代,嵌入式系统已经...

发表于 2018-10-20 09:27 ? 89次阅读
基于嵌入式TMS320DM*6平台上的Linux...

一种应用于测控系统的基于Linux的嵌入式系统的...

随着网络控制技术的快速发展,工业以太网得到逐步完善,在工业控制领域获得越来越广泛的应用。工业以太网...

发表于 2018-10-20 09:04 ? 83次阅读
一种应用于测控系统的基于Linux的嵌入式系统的...

基于linux 2.6.24内核版本浅谈sock...

笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件 Exciting 的事情。

发表于 2018-10-20 11:22 ? 381次阅读
基于linux 2.6.24内核版本浅谈sock...

浅谈Linux权限管理的ACL权限

Linux权限管理是Linux很重要的一项内容,重则引起用户信息泄露,轻则导致文件错乱和丢失。企业服...

发表于 2018-10-20 11:13 ? 295次阅读
浅谈Linux权限管理的ACL权限

ARM架构和总线协议如何支持Linux原子操作?

这篇文章探讨ARM架构和总线协议如何来支持的。对于某款ARM处理器和总线CCI,CCN和CMN产品的...

发表于 2018-10-20 10:57 ? 582次阅读
ARM架构和总线协议如何支持Linux原子操作?

基于Linux的嵌入式实时操作系统研究应如何进行...

在嵌入式产品的开发中,有必要寻找一种廉价的嵌入式实时操作系统,以降低产品的开发成本和系统复杂度。由于...

发表于 2018-10-20 09:13 ? 115次阅读
基于Linux的嵌入式实时操作系统研究应如何进行...

基于嵌入式Linux内核的系统设备驱动程序开发设...

Linux是一个遵循POSIX标准的免费操作系统。具有BSD和SYSV的扩展特性。与其他操作系统相比...

发表于 2018-10-20 15:12 ? 84次阅读
基于嵌入式Linux内核的系统设备驱动程序开发设...

基于Linux2.6内核的实时性增强方案设计

Linux以其功能强大、源代码开放、支持多种硬件平台、模块化设计方案以及丰富的开发工具支持等特点广泛...

发表于 2018-10-20 15:01 ? 56次阅读
基于Linux2.6内核的实时性增强方案设计

Docker到底是什么,要解决什么问题,好处又在...

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Lin...

发表于 2018-10-20 16:56 ? 384次阅读
Docker到底是什么,要解决什么问题,好处又在...

关于Linux嵌入式操作系统的优势特征详解

嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种...

发表于 2018-10-20 15:17 ? 318次阅读
关于Linux嵌入式操作系统的优势特征详解

如何才能提高Linux系统的安全性?这八大招告诉...

Linux系统不论在功能上、价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一...

发表于 2018-10-20 15:08 ? 106次阅读
如何才能提高Linux系统的安全性?这八大招告诉...

inotify框架的使用和原理!如何添加对于目标...

为了防止文件描述符fd的快速消耗,inotify提出了一个inotify instance(inot...

发表于 2018-10-20 17:43 ? 466次阅读
inotify框架的使用和原理!如何添加对于目标...

Linux内核学习经验总结分享

操作系统是介于底层硬件和应用软件之间的接口,其各个子系统的实现很大程度上依赖于硬件特性。书上介绍这些...

发表于 2018-10-20 17:40 ? 444次阅读
Linux内核学习经验总结分享

基于Linux操作系统内核的崩溃转储机制解析

随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,...

发表于 2018-10-20 17:00 ? 90次阅读
基于Linux操作系统内核的崩溃转储机制解析

关于Linux操作系统网络驱动程序编写知识详解

Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出...

发表于 2018-10-20 16:52 ? 114次阅读
关于Linux操作系统网络驱动程序编写知识详解

四款炫酷Linux开源程序照亮你的生活!

许多 Linux 用户认为在终端中工作太复杂、无聊,并试图逃避它。但这里有个改善方法 —— 四款终端...

发表于 2018-10-20 14:36 ? 424次阅读
四款炫酷Linux开源程序照亮你的生活!

嵌入式Linux模块编译步骤详细概述让你少走弯路

今天将直接了当的带你进入linux的模块编译,当然在介绍的过程当中,我也会添加一些必要的注释,以便初...

发表于 2018-10-20 10:56 ? 544次阅读
嵌入式Linux模块编译步骤详细概述让你少走弯路

Linux环境下对磁盘分区进行管理的一种机制

物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,...

发表于 2018-10-20 17:58 ? 496次阅读
Linux环境下对磁盘分区进行管理的一种机制

关于嵌入式Linux系统开发学习流程详解

C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知...

发表于 2018-10-20 17:15 ? 159次阅读
关于嵌入式Linux系统开发学习流程详解

浅析Linux中命令链接操作符的十个最佳实例

Linux命令中链接的意思是,通过操作符的行为将几个命令组合执行。

发表于 2018-10-20 15:51 ? 286次阅读
浅析Linux中命令链接操作符的十个最佳实例

Linux内核的git历史记录一些最奇怪的事情

正如我所看到的,这个有66个父节点的不同寻常的提交在某种程度上只是对于ASoc代码修改的正常合并。A...

发表于 2018-10-20 11:22 ? 463次阅读
Linux内核的git历史记录一些最奇怪的事情

如何修复Linux内核存在的TCP漏洞?

卡内基梅隆大学的 CERT/CC 发出警告,称 Linux 内核 4.9 及更高版本中有一个 TCP...

发表于 2018-10-20 11:15 ? 411次阅读
如何修复Linux内核存在的TCP漏洞?

一个关于Linux中断的问题:硬件处理,初始化和...

I/O APIC 每个I/O APIC提供24个管脚,能够和外部设备的中断线连接,每个管脚都可以通...

发表于 2018-10-20 17:16 ? 616次阅读
一个关于Linux中断的问题:硬件处理,初始化和...

以Arm-Linux为平台的智能家居控制系统的设...

嵌入式系统以其占用资源少、专用性强、功耗低的特点使其广泛应用在移动通信、工业生产、安全监控等领域。针...

发表于 2018-10-20 16:27 ? 154次阅读
以Arm-Linux为平台的智能家居控制系统的设...
山下智久面临秃头危机 这些人的真实身份竟然是… 秘史 乔丹有望教周杰伦灌篮 未来还会见面 王力宏戴绿帽子贺中秋 小心别焦了(图) 汪小菲晒宝宝脚丫照 陈思成被曝赴新疆见佟丽娅父母 我不需要炒作
杨千嬅与老公同场代言不碰面 新导演巩固老导演最后一搏 南京首映日票房夺冠 郭涛沦落非洲捕鱼 问问大治跟孙楠 人妖Rose 穿爆米花装任男子撩衣取食(图) 发妻退位修佛(组图) 杰克逊之子入读私立学校 好莱坞市场份额远低韩片 丁丁,一路走来 出错了收视率就有了 经典桥段拼凑而成