
Linux
文章平均质量分 91
LoneHugo
寻寻觅觅,暮然回首~
展开
-
Linux 进程间通信-IPC 机制
Linux 平台上在 Kernel 协调下完成进程之间的相互通信,有多种进程间通信 —— Inter Process Communication(IPC)方式。1. IPC 分类按照功能用途来看有三种基本的进程间通信类型,分别用户信息交换(Communication),同步(Synchronization)和信号(Signal)。另外,在基本的 IPC 通信机制之上还存在更为复杂和广泛应用的进程间通信机制,通常提供了丰富和更高层次的封装以便于应用开发,比如 Android 平台采用的 Binder原创 2021-02-25 21:16:19 · 1663 阅读 · 0 评论 -
FwmarkServer 实现以及功能分析
创建还是在 main 函数中:int main() { ... FwmarkServer fwmarkServer(&gCtls->netCtrl, &gCtls->eventReporter, &gCtls->trafficCtrl); if (fwmarkServer.startListener()) { ALOGE("Unable to start FwmarkServer (%s)", strerror(e原创 2021-01-07 14:36:15 · 1207 阅读 · 1 评论 -
Linux调度新特性EAS
Energy Aware Scheduling(EAS)EAS赋予调度器新的功能,使其能预测其调度决策(Task Placement)于CPU的能量消耗带来的影响,即Energy Aware。它依赖于CPU能量模型(Energy Model),以此来实现在确保性能影响最小的情况下为每个任务选择能量最优的CPU的调度决策。该特性主要由Linaro和ARM共同开发,在Linux Kernel 5.0版本正式发布。事实上EAS的开发过程经过了漫长的讨论和版本变迁,每个阶段的功能实现首先发生在Android原创 2020-07-26 16:42:26 · 2865 阅读 · 0 评论 -
Inter Process Communication(IPC) Message Router
http://rst.ninjs.org/?===============================================Inter Process Communication(IPC) Message Router===============================================Introduction============Inter...原创 2020-04-02 23:47:05 · 658 阅读 · 0 评论 -
ARM架构SMMU驱动详解
驱动定义:static struct platform_driver arm_smmu_driver = { .driver = { .name = "arm-smmu-v3", .of_match_table = arm_smmu_of_match, .suppress_bind_attrs = true, }, .probe = arm_smmu_device_p...原创 2020-03-21 18:16:39 · 3396 阅读 · 0 评论 -
ARM平台AMBA总线uart驱动和console初始化
1. 函数调用路径首先看到uart驱动probe的过程:[ 0.675729] Serial: AMBA PL011 UART driver[ 0.735090] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 39, base_baud = 0) is a PL011 rev1[ 0.736770] [VUART_D...原创 2020-03-04 21:21:53 · 4315 阅读 · 5 评论 -
Linux内核链表及list_entry解析
链表是一些包含数据的独立数据结构的集合,链表中的每一个节点通过链或者指针连接在一起。程序通过指针访问链表中的节点。链表一般分为单链表和双链表。1.单链表单链表中,每个节点包含指向下一个节点的指针。链表最有一个节点的指针字段值为NULL,表明链表后面不再有其它节点。下面是一张单链表的图:对应的数据结构为:C代码typedefstructNODE { ...转载 2018-01-07 21:23:39 · 5267 阅读 · 0 评论 -
DTS
http://kernel.meizu.com/device-tree.html原创 2019-11-01 14:56:31 · 311 阅读 · 0 评论 -
Linux内核模块静态加载的顺序
内核模块静态加载的顺序Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢?Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_init do_basic_setup() do_initcalls...转载 2019-11-01 14:48:36 · 1430 阅读 · 0 评论 -
使用 Vi/Vim 编辑器:基础篇
VI 编辑器是一个基于命令行的、功能强大的文本编辑器,最早为 Unix 系统开发,后来也被移植到许多的 Unix 和 Linux 发行版上。在 Linux 上还存在着另一个 VI 编辑器的高阶版本 —— VIM(也被称作 VI IMproved)。VIM 只是在 VI 已经很强的功能上添加了更多的功能,这些功能有:支持更多 Linux 发行版, 支持多种编程语言,包括 python、c+...原创 2018-02-10 15:27:34 · 309 阅读 · 0 评论 -
PowerPC 汇编
PowerPC 上加载和存储的艺术https://www.ibm.com/developerworks/cn/linux/l-powasm2.htmlNX bithttps://en.wikipedia.org/wiki/NX_bitLinux 可加载内核模块剖析https://www.ibm.com/developerworks/cn/linux/l-lkm/index.ht...原创 2019-05-27 11:23:09 · 549 阅读 · 0 评论 -
ssh 远程连接失败 PTY报错
报错信息:PTYallocation request failed on channel 0原因:未创建成功/dev/pts并挂载文件系统mount -t tmpfs tmpfs /devmkdir /dev/ptsmount -t devpts devpts /dev/pts此时远程连接即可建立成功...原创 2019-04-16 23:07:40 · 4036 阅读 · 0 评论 -
ELF文件格式
ELF(Executable and Linkable Format),是一种广泛应用于Linux等系统可执行文件、目标文件以及库文件组织格式。在Linux上,用户空间应用程序、库文件、内核模块以及内核本身都以ELF格式存在。Linkable和Executable文件格式稍有差异。ELF文件格式ELF Header:指定文件格式和大小,或者文件在加载运行时的入口位置 Program He...原创 2019-04-08 00:00:02 · 776 阅读 · 0 评论