![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux学习类
runafterhit
good good study,day day up
展开
-
总结linux编程相关各种同步/异步如何理解
在编程时,大家常常会解除到 同步、异步这个 概念。如:同步通信、异步通信;同步调用,异步调用;同步io,异步io。到底如何理解这里面的同步和异步行为?同一个词汇在不同上下文中都有差异,在理解概念的时候 不要扣字眼,一定要联系上下文去理解。举例:串口的同步通信、异步通信;Linux的内核同步机制 / 并发 / 临界区—针对CPU线程执行时机的描述要理解linux内核同步,要先理解 并发、临界区、共享资源 的 概念。共享资源:多个执行线程(内核描述正在执行的代码实例,比如内核执行的进程、中断处理程序原创 2020-09-07 23:59:26 · 856 阅读 · 0 评论 -
简图记录-android fence机制
一、概述 fence:android4.4开始引入的一种资源同步机制,主要用于处理跨硬件场景,如CPU、GPU、HWC之间的buffer资源同步。可以将fence理解为一种资源锁。 举个例子,customer使用producer提供的buffer,使用完成后要还给producer生产,如果没有fence,通常是customer完全使用完成后开始归还转移buffer,拥有权/使...原创 2019-04-14 11:28:32 · 10606 阅读 · 2 评论 -
简图记录-spinlock使用
一、概念spinlock:自旋锁,Linux内核提供的一种用于保护临界资源的机制,特别是在多核系统中存在进程与进程/进程与中断/中断与中断之间的并发访问场景。spinlock使用的是一种“忙等”机制,相对信号量获取如果阻塞会让出cpu行为,spinlock会一直占用cpu持续等待直到获取成功,优点是由于没有发生sche上下文切换,适用与中断,同时在频繁访问临界区效率更高,约束是临界区不...原创 2019-03-24 22:06:28 · 1315 阅读 · 0 评论 -
简图记录-linux设备驱动-字符设备基础
简图记录学习~参考:linux设备驱动第3版一、概念:设备驱动 :内核中负责控制硬件设备的内核模块,隐藏硬件操作细节,提供内部定义良好的编程接口。设备驱动分类:1、字符设备(通过字符设备节点 按数据流 访问设备,一般不可寻址)2、块设备(通过块设备节点 按一个或多个数据块如512Byte访问的设备)3、网络接口 ( 不存在设备节点、由系统分配名称如eth0 通过专用接口访问原创 2017-11-21 22:11:45 · 245 阅读 · 0 评论 -
简图记录-linux驱动32位移植64位
简图记录学习~一、概念1、移植目的:64位 内核/驱动 可同时支持32位/64位库和应用执行,这是64位驱动的一大优势。同时当应用要使用多余4G内存、大于2G文件、进行密级浮点运算或64位库时,也必须要求64位驱动环境。2、对64位驱动要求:同一份C代码必须同时支持32位/64位编译,无法归一处使用系统宏统一管理3、ARM支持:ARMv8支持按64位架构AArch64和32原创 2017-12-10 13:46:22 · 820 阅读 · 0 评论 -
简图记录-linux文件系统基础
简图记录学习~参考:linux内核设计与实现 鸟哥linux私房菜文件系统这个概念很多时候大家使用起来容易混淆。最常见也是最规范的说法是文件存放在磁盘等存储设备的组织方法,也就是磁盘中数据的物理布局格式,如ext2、ext3、fat等(相对磁盘,嵌入式系统同样存在许多种类:如基于NORFLASH的jiffs2、基于NANDFLASH的yaffs、基于RAM的ramdisk、基于网络的NFS原创 2017-11-14 23:44:51 · 273 阅读 · 0 评论 -
简图记录-linux进程间通信基础
简图记录学习~参考:Unix高级环境编程Linux系统和大多数支持多进程操作系统一样,每个进程都有他自己的地址空间和相关资源,多个进程协作工作自然就需要进行进程间通信。进程通信IPC主要用于1、进程间数据发送 2、进程间消息事件通知 3、多进程资源共享 4、实现对进程进行控制linux进程间通信机制主要由 1)Unix进程通信 2)基于System V进程通信 3)基于PO原创 2017-11-18 21:28:38 · 251 阅读 · 0 评论 -
简图记录-linux内存管理
简图记录学习~参考:内核设计与实现、google内存管理就是软件运行时操作系统对内存资源的分配和使用的策略。linux内核管理内存的基本单位为页,页大有由系统决定,32位系统上页的常见大小为4KB。每个cpu对应一个节点node、每个节点包含多个区域zone区分不同类型的内存、每个区域包含一组内存块链表来管理不同大小的空闲内存块。(如下表为0~11的链表、每个链表上管理大小原创 2017-11-10 22:25:48 · 310 阅读 · 0 评论 -
简图记录-linux进程的管理与调度
简图记录学习~参考:linux 内核设计与实现、Unix环境高级编程进程就是执行期的程序及其相关资源(如打开的文件、映射的地址空间、执行线程等)的集合linux内核通过一个双向循环链表tasklet管理进程,每一相为一个进程描述符,进程描述符包含了进程的所有信息(如进程标示PID、打开文件、地址空间、挂起信号、进程状态 等)。学习linux进程的管理,要理解相关概念:什么是原创 2017-11-10 21:39:30 · 240 阅读 · 0 评论 -
简图记录-linux内核同步基础
简图记录学习~做linux驱动开发一定会接触到各种同步问题:常见同步发生原因:进程和进程间的同步;中断发生;软中断tasklett发生;多处理器并发执行等等并发出现问题:往往容易引起数据读写访问异常、系统死锁等问题linux也给我们提供了大量的同步手段:如 原子操作、自旋锁、信号量、互斥体、等待队列等等。进阶使用还有读写信号量、读写自旋锁、RCU自旋锁等提高性能的方式。原创 2017-11-01 23:14:36 · 205 阅读 · 0 评论 -
简图记录-linux文件编程基础
简图记录学习~参考《高级UNIX编程》linux应用编程中 文件编程是很重要的一块文件的本质是对数据的一种抽象,linux对齐做了扩展,不仅数据 如 设备资源 目录 套接字都视作文件,这样统一了操作接口,“一切皆文件”要掌握linux的文件编程,首先得熟悉相关概念:文件描述符、索引节点、熟悉linux下6种文件类型、文件权限然后逐步掌握文件相关基础操作 systemcall:如原创 2017-11-07 00:24:41 · 204 阅读 · 0 评论 -
简图记录-linux中断基础
简图记录学习~中断基本概念就是通知CPU停止当前工作,跳转执行预先约定的任务然后返回继续工作的机制如果做linux驱动开发,中断的使用是必须掌握的知识中断是一个软件硬件结合的功能,相关都有涉及常见的概念:硬件相关:中断号、中断控制器、中断向量表。软件概念:中断上下文、中断服务程序、中断注册注销、重入、下半部机制流程方面:要理解中断从设备触发信号到中断服务程序执行过程软件接口原创 2017-11-07 00:18:20 · 237 阅读 · 0 评论 -
简图记录-shell的基本使用
简图记录学习~《shell脚本学习指南》&&《鸟哥linux私房菜学习建议》shell从使用导角度,它是linux内核提供用户的使用接口的程序由于shell支持解析脚本工作,另一方面shell也被称作一门脚本语言(可被shell解析器识别)当你从命令行终端登登录linux,其实就已经打开了一个默认的shell,如bash即你的操作都是通过shel完成...原创 2016-10-21 00:13:43 · 433 阅读 · 0 评论 -
简图记录-LINUX命令行基本使用
简图记录学习~想要学习linux,命令行下操作的必不可少。首先在linux众多发行版中,图形界面下使用体验各不相同,但是其命令行操作基本一致。当使用linux服务器时,特别是工作时,往往都是在命令行下进行的以节省资源。学习建议:对于命令繁多,参数复杂的使用linux,建议学习时找准目标,比如要你是想使用,还是管理,需要用到哪些服务?勤于练习,多在命令行在使用。...原创 2016-10-19 23:24:22 · 278 阅读 · 0 评论 -
简图记录-VIM基本使用
用简图记录学习~VIM是Unix及类Unix系统文本编辑器由VI的发展而来,其易用性和插件扩增后的强大功能广受欢迎,也衍生了window版本,甚至有“编辑器之神”的美誉~本次简图记录了最基本的vim操作,掌握这些基本算入门了,可以支撑其编辑使用VIM特色:1、丰富命令带来全新高效编写方式 2、全键盘操作丢弃鼠标学习建议:如果你要使用linux,那原创 2016-10-11 22:01:19 · 256 阅读 · 0 评论