![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
SXM19940913sxm
这个作者很懒,什么都没留下…
展开
-
linux---中断处理机制---上半部和下半部
http://www.cnblogs.com/wang_yb/archive/2013/04/23/3037268.htmlhttp://blog.csdn.net/codectq/article/details/7479143http://blog.chinaunix.net/uid-24020646-id-2149974.html对于适时要求高的,必须放在上半部下半部的实现主要是通过软中断 ,tasklet,和工作队列来实现的.中断的概念一个“中断”仅仅是一个信号,当硬件需要获得处理器对它的原创 2020-08-27 22:22:58 · 298 阅读 · 1 评论 -
linux---内核模块管理命令---insmod、rmmod、lsmod、modinfo、modprobe
Linux命令大全 总网站Linux内核模块管理命令:insmod、rmmod、lsmod、modinfo、modprobeinsmod(选项)(模块名) 将给定的模块(通常是设备驱动程序)加载到内核中去rmmod(选项)(模块名) 从当前运行的内核中移除指定的内核模块lsmod 显示已经加载到内核中的模块的状态信息,运行lsmod命令后会列出所有已经载入系统的模块。modinfo(选项)(模块名) 显示指定模块的详细信息modprobe(选项)(模块名) 向内核中加载or移除原创 2020-08-27 20:25:31 · 510 阅读 · 0 评论 -
linux---信号SIGINT(进程&线程通信)
信号实现进程间的通信3.5.1.什么是信号3.5.1.1、信号是内容受限(只是一个int型的数字)的一种异步通信机制(1)信号的目的:用来通信(进程与进程之间的通信)(2)信号是异步的(对比硬件中断),信号好像就是一种软件中断。(3)信号本质上...原创 2019-08-27 09:41:32 · 4398 阅读 · 0 评论 -
linux---内存---如何避免内存碎片
内存碎片问题频繁地请求和释放不同大小的内存,必然导致内存碎片问题的产生,结果就是当再次要求分配连续的内存时,即使整体内存是足够的,也无法满足连续内存的需求。该问题也称之为外碎片(external fragmentation)。解决方案:避免外碎片的方法有两种:1、利用分页单元把一组非连续的空闲页框映射到连续的线性地址2、开发一种适当的技术来记录现存的空闲的连续页框块的情况,以尽量避免为满足对小块的请求而分割大的空闲快第一种方案的意思是,我们使用地址转换技术,把非连续的物理地址转换成连续的线性地址转载 2020-07-22 15:52:21 · 473 阅读 · 0 评论 -
linux内核中经典链表 list_head 常见函数:初始+2个添加+删除+链表遍历 https://blog.csdn.net/qq_40334837/article/details/8106
Linux内核中经典链表 list_head等函数原型首先找到list_head 结构体定义,kernel/inclue/linux/types.h 如下:struct list_head { struct list_head *next, *prev;};然后就开始围绕这个结构开始构建链表,然后插入、删除节点 ,遍历整个链表等等,其实内核已经提供好了现成的接口,接下来就让我们进入 ...原创 2019-12-25 09:39:09 · 378 阅读 · 0 评论 -
linux---进程---进程间通信IPC
进程间通信/进程同步(IPC:InterProcess Communication)linux内核提供多种进程间通信机制(1)无名管道和有名管道(2)SystemV IPC:信号量、消息队列、共享内存管道(PIPE)机制。在Linux文本流中,我们提到可以使用管道将一个进程的输出和另一个进程的输入连接起来,从而利用文件操作API来管理进程间通信。在shell中,我们经常利用管道将多个进程连接在一起,从而让各个进程协作,实现复杂的功能。传统IPC (interprocess communicatio原创 2020-07-21 20:41:33 · 116 阅读 · 0 评论 -
linux---makefile https://blog.csdn.net/SunXiWang/article/details/78701130
一、Makefile的作用和意义(1)工程项目中c文件太多管理不方便,因此用Makefile来做项目管理,方便编译链接过程。(2)uboot和linux kernel本质上都是C语言的项目,都由很多个文件组成,因此都需要通过Makefile来管理。所以要分析uboot必须对Makefile有所了解。2、目标、依赖、命令(加工方法)3、通配符%和Makefile自动推导(规则)% 若干个...原创 2020-03-13 13:19:28 · 120 阅读 · 0 评论 -
linux---并行Parallel 并发 串行 同步 异步
并发编程又叫多线程编程在程序中,往往有很多很耗时的工作,比如上传文件、下载文件、跟客户聊天需要长时间建立连接。这种时候,一个线程是服务不了多个用户的,会产生因为资源独占产生的等待问题。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间的多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率(买票问题并发进行)。 并发当有多个线程在操作时,如果系统只有一个CPU,则...原创 2020-03-12 17:52:32 · 348 阅读 · 0 评论 -
寄存器 cache 内存 硬盘之间的千丝万缕
首先看一下计算机的存储体系(Memory hierarchy)金字塔其次我们看看一个计算机的存储体系Register寄存器是CPU的内部组成单元,是CPU运算时取指令和数据的地方,速度很快,寄存器可以用来暂存指令、数据和地址。在CPU中,通常有通用寄存器,如指令寄存器IR;特殊功能寄存器,如程序计数器PC、sp等。Cache缓存即就是用于暂时存放内存中的数据,若果寄存器要取内存中的一...原创 2020-03-12 17:14:11 · 402 阅读 · 0 评论 -
linux---内存分区(代码段text、BSS、数据区data、栈stack、堆heap)
Linux的内存空间简单可以分为5个部分:Text(代码区):存放可执行的指令操作,其只读不能写Bss(静态区or全局区):存放未初始化的全局变量和静态变量Data(数据区):存放初始化的全局变量和静态变量Stack:存放临时变量,函数参数等Heap:存放new/malloc等动态申请的变量,用户必须手动进行delete/free操作。 其中Stack和Heap的内存增长方向是相反的具...原创 2020-07-19 21:56:23 · 2831 阅读 · 1 评论 -
linux---mmap(存储映射IO)
头文件 <sys/mman.h>函数原型void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset);int munmap(void* start,size_t length);//必须以PAGE_SIZE为单位进行映射,而内存也只能以页为单位进行映射,//若要映射非PAGE_SIZE...原创 2020-02-25 16:23:03 · 259 阅读 · 0 评论 -
linux---ubuntu创建共享文件夹但没有显示 或者samba服务代替共享文件夹
ubuntu中共享文件夹看不到 —可能时挂载的问题E: Unable to locate package ****原创 2020-02-03 19:43:08 · 876 阅读 · 0 评论 -
linux---gcc和可能的问题 PATH修改
可能的问题:undefined reference to1、链接时缺失了相关目标文件(.o)编译:gcc -c test.c //-c 只编译不链接->->目标文件.ogcc –c main.c 得到两个 .o 文件,一个是 main.o,一个是 test.o ,然后我们链接 .o 得到可执行程序:gcc -o main main.o 这时,你会发现,报...原创 2020-07-17 20:53:29 · 412 阅读 · 0 评论 -
简述configure、pkg-config、pkg_config_path三者的关系
简述configure、pkg-config、pkg_config_path三者的关系什么是configure源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目。configure程序它会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make...原创 2020-02-05 14:56:15 · 139 阅读 · 0 评论 -
linux---四种线程同步(或互斥)方式小结 线程间通讯 临界区,互斥量,信号量,事件,全局变量
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...转载 2019-10-19 09:43:33 · 243 阅读 · 0 评论 -
Linux内核中 进程进程上下文,中断上下文,用户上下文,原子上下文 的理解
1 内核态与用户态:内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间,他们代表不同的级别,对系统资源有着不同的访问权限,内核模块运行在最高级别(内核态),这个级别下的所用操作都受系统信任,而应用程序运行在比较低级别的(用户态)。内核态和用户态都有自己的内存映射,即自己的地址空间。处理器总是处于以下状态中的一种:内核态:运行于进程上下文,内...原创 2019-10-18 21:00:06 · 443 阅读 · 0 评论 -
【串行通信中的】同步通信和异步通信的区别
同步是指:发送方发出数据后,【等接收方发回响应】以后才发下一个数据包的通讯方式。异步是指:发送方发出数据后,【不等接收方发回响应】,接着发送下个数据包的通讯方式。同步是阻塞模式,异步是非阻塞模式。在串行通信中,由于是一位一位地进行数据传送。为了把每个字节区别开来,需要收发双方在传送数据的串行信息流中,加入一些标记信号位。在数据中根据所添加的标记信号位的不同方式,分成同步通信和异步通信两种。...原创 2019-10-13 16:00:11 · 4886 阅读 · 0 评论 -
linux---Shell——你只需要了解这么多
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...转载 2019-10-18 11:00:00 · 124 阅读 · 0 评论 -
linux---进程与线程的关系、区别 + 线程概念
线程的概念:进程是操作系统中资源管理的最小单位。线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程最主要的目的就是更好地支持多处理器以及减少上下文切换开销。一个进程至少需要一个线程作为它的指令执行体,进程管理着计算机资源,而将线程分配到某个CPU上执行。对操作系统来说,进程占有系统资源,进程的切换也给操作系统带来了额外的开销。每次创建新进程会把父进程的资源复制一份到子进程,如果创...原创 2019-08-22 10:50:37 · 754 阅读 · 1 评论 -
linux---内核态和用户态的区别
1、linux进程有4GB地址空间,如图所示:3G-4G大部分是共享的,是内核态的地址空间。这里存放整个内核的代码和所有的内核模块以及内核所维护的数据。2、特权级的概念:对于任何操作系统来说,创建一个进程是核心功能。创建进程要做很多工作,会消耗很多物理资源。比如分配物理内存,父子进程拷贝信息,拷贝设置页目录页表等等,这些工作得由特定的进程去做,所以就有了特权级别的概念。最关键的工作必须交给...原创 2019-10-16 21:25:29 · 293 阅读 · 0 评论 -
linux---大小端
32和64位数据长度的区别只有2个:long和指针 4位和8位 float?大小端的区别-小端模式符合人的一般逻辑-如何识别原创 2019-09-16 14:30:14 · 446 阅读 · 0 评论 -
[Linux]竞态→互斥机制(中断屏蔽、原子操作、自旋锁、信号量)
中断屏蔽(顶半部分TH屏蔽中断 底半部分BH允许中断延迟执行)原子操作自旋锁(与互斥锁的区别,应用场合)3个内核空间---------一个用户空间信号量转载 2019-09-15 19:39:17 · 360 阅读 · 0 评论 -
串口通信协议 UART+I2C+SPI
UARTI2CSPI不同串口通信协议比较UARTUART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信;为确保通信可靠,可以在通信两边接共地;因此,完整的UART通信只需最少3根线即可。RxD是发送数据线,TxD是接收数据线,通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD。UART使用标准的TTL/CMOS电平(0-5V,0-3.3V,0-2.5V,0-...原创 2019-09-17 21:57:51 · 2335 阅读 · 0 评论 -
linux常见命令 man手册 gedit文本编辑器
init dd 查找命令which、whereis、locate、findinit ///etc/inittab文件:1. # inittab This file describes how the INIT process should set up 2. # the system in a certain run-level. ...原创 2019-09-16 14:39:18 · 429 阅读 · 0 评论 -
linux---子网划分及子网掩码计算方法
A类地址:10.0.0.0~10.255.255.255B类地址:172.16.0.0~172.31.255.255C类地址:192.168.0.0~192.168.255.255D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是"0", 地址范围从1.0.0.0 ...原创 2019-09-23 16:00:41 · 844 阅读 · 0 评论 -
linux---mmap虚拟地址映射
https://www.cnblogs.com/huxiao-tee/p/4660352.htmlmmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调...原创 2019-09-23 21:57:58 · 1369 阅读 · 0 评论 -
linux下的线程ID和进程ID
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...原创 2019-09-24 10:39:57 · 720 阅读 · 0 评论 -
DHCP
网卡(1)计算机上网必备硬件设备,CPU靠网卡来连接外部网络(2)串转并设备(3)数据帧封包和拆包(4)网络数据缓存和速率适配3.8.3.3、集线器(HUB)(1)信号中继放大,相当于中继器(2)组成局域网络,用广播方式工作。(3)注意集线器是不能用来连接外网的3.8.3.4、交换机(1)包含集线器功能,但更高级(2)交换机中有地址表,数据包查表后直达目的通信口而不是广播(...原创 2019-09-24 16:46:19 · 171 阅读 · 0 评论 -
线程同步=互斥锁+条件变量+信号量+文件锁(文件记录锁和文件锁) 死锁
(6)线程同步:目前实现线程同步的主要方式就是:互斥量、条件变量、信号量线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。互斥量(互斥锁) 在Linux操作系统中,用户层面上编程使用的所有锁都是建议锁,不具有强制性,因此访问共享数据的所有线程(进程)都应该先加锁才能访问。 互斥量提供...原创 2019-10-16 22:35:38 · 774 阅读 · 0 评论 -
UART协议详解
UART使用的是 异步,串行通信。 串行通信是指利...转载 2019-10-10 19:19:05 · 323 阅读 · 0 评论 -
linux---进程---5种状态 012进程 进程管理ps top pstree
linux:多用户多任务进程的2层分类进程5种状态ps UID GID PPID原创 2020-07-17 21:58:10 · 657 阅读 · 0 评论