![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux unix
文章平均质量分 77
phone1126
这个作者很懒,什么都没留下…
展开
-
DMA (Direct Memory Access)
DMA(Direct Memory Access):直接存储器访问原创 2023-04-09 13:14:10 · 1348 阅读 · 0 评论 -
Linux内核中双向链表的经典实现
Linux内核中双向链表的经典实现转载 2023-02-10 14:52:07 · 104 阅读 · 0 评论 -
linux 磁盘操作
磁盘分区转载 2022-12-22 12:53:15 · 122 阅读 · 0 评论 -
Docker组件介绍:runc和containerd
Docker组件介绍:runc和containerd转载 2022-11-18 14:33:57 · 1750 阅读 · 0 评论 -
Procfs (一) /proc/* 文件解析
Procfs /proc/* 文件解析转载 2022-10-17 15:13:31 · 3208 阅读 · 0 评论 -
linux top ni pr
linux top ni pr转载 2022-07-04 20:57:18 · 1021 阅读 · 0 评论 -
mmap接口原理详解,mmap使用详解
mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节回到顶部mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的转载 2021-11-01 15:14:56 · 728 阅读 · 0 评论 -
Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell
环境配置的原因:在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK。如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告“找不到文件”类似的错误。那么,什么是环境变量呢?简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。设置变量对于一般人最实用的功能就是:不用拷贝某些dll文件到系统目录中了,而path这一系统变量就是系统搜索dll文件的一系列路径;在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时原创 2021-10-12 19:04:22 · 12953 阅读 · 0 评论 -
Ubuntu 保存环境变量的几个文件
Ubuntu 保存环境变量的几个文件/etc/profile在用户登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。/etc /environment在用户登录时,操作系统使用的第二个文件, 系统在读取用户个人的profile前,设置环境文件的环境变量。~/.profile在用户登录时,用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认原创 2021-09-16 10:59:11 · 521 阅读 · 0 评论 -
动态库及静态库
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。编译之后程序文件大,但加载快,隔离性也好。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。多个应用程序可以使用同一个动态库,启动多个应用程序的时候,只需要将动态库加载到内存一次即可。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态库在程序运行时才被载入,也原创 2021-08-04 16:43:46 · 724 阅读 · 0 评论 -
nm命令、ldd命令
nm命令 查看一个库中到底有哪些函数,nm命令可以打印出库中的涉及到的所有符号。库既可以是静态的也可以是动态的。nm列出的符号有很多,常见的有三种:一种是在库中被调用,但并没有在库中定义(表明需要其他库支持),用U表示; 一种是库中定义的函数,用T表示,这是最常见的; 一种是所谓的弱态”符号,它们虽然在库中被定义,但是可能被其他库中的同名符号覆盖,用W表示。 $nm libhello.hldd命令 ldd命令可以查看一个可执行程序依赖的共享库,例如我们编写的四则运算动态库依赖下原创 2021-07-30 14:40:30 · 424 阅读 · 0 评论 -
Linux查看线程的方法
1).htop按t(显示进程线程嵌套关系)和H(显示线程) ,然后F4过滤进程名2).ps -eLf | grep java(快照,带线程命令,e是显示全部进程,L是显示线程,f全格式输出)3).pstree -p <pid>(显示进程树,不加pid显示所有)4).top -Hp <pid>(实时)5).ps -T -p <pid>(快照)6).ps axms另外的三种方法 :1、top -H:-H : Threads tog...原创 2021-07-19 10:58:53 · 2706 阅读 · 0 评论 -
Linux指针对齐 封装接口
#include <netinet/in.h>#include "sg_global.h"struct __una_in6_addr { struct in6_addr x; } __packed;struct __una_u16 { __u16 x; } __packed;struct __una_u32 { __u32 x; } __packed;struct __una_u64 { __u64 x; } __packed;static inline __u16 __get原创 2021-05-31 10:55:08 · 148 阅读 · 0 评论 -
slab分配器
用户应用程序对内存的需求是频繁的和任意的,而伙伴算法作为一个基础内存管理算法,并不具备提供这种任意性的条件,因此还需要以伙伴算法为基础,实现另外的内存管理机制,为用户提供申请任意大小内存的可能,这里就介绍 slab 分配器。通俗的讲,slab 就是专门为某一模块预先一次性申请一定数量的内存备用,当这个模块想要使用内存的时候,就不再需要从系统中分配内存了(因为从系统中申请内存的时间开销相对来说比较大),而是直接从预申请的内存中拿出一部分来使用,这样就提高了这个模块的内存申请速度。slab 要在合.转载 2021-02-20 10:07:38 · 761 阅读 · 1 评论 -
bcm56146学习笔记
HiGig/HiGig+/HiGig2 HiGig(通常称为HiGigTM)是Broadcom公司的私有串行总线互联方案,于2001年推出,主要用于Broadcom公司StrataXGS系列芯片(如BCM5670/BCM5690等)之间的互联(也可以跟支持HiGig协议的NPU或ASIC连接),既可用于板内连接,也可通过背板走线形式实现跨板连接。HiGig总线是在以太网协议的基础上发转载 2014-05-01 13:39:02 · 2780 阅读 · 1 评论 -
TCP协议中的三次握手和四次挥手 状态图
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:1.jpg先来看看如何建立连接的:2.png首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发送报文,并分配资源,这样TCP连接就建立了。如何断开连接呢?简单的过程如下:3.png...原创 2019-08-06 20:50:21 · 5755 阅读 · 0 评论 -
SVLAN,CVLAN,PVLAN是属于SVLAN(Stack VLAN)的观念
SVLAN,CVLAN,PVLAN是属于SVLAN(Stack VLAN)的观念应该要从Q-in-Q工作原理来看:QinQ采用的是层次化VLAN技术区分用户和运营商的 VLAN:C-VLAN和P-VLAN(S-VLAN),数据在私网中传输时带一个私网的tag,定义为C-VLAN Tag (Customer VLAN tag=用户VLAN),数据进入到服务商的骨干网后,在打上一层公网的V原创 2021-07-30 14:41:17 · 4510 阅读 · 0 评论 -
基于VxWorks的BSP开发指南
基于VxWorks的BSP开发指南 1 BSP概述 一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。一般来说,这种无关性都是由操作系统实现的。 但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准,各种嵌入式系统其不同的应用需求就决定了它一般都选用了各自定制的硬件环境,这种诸多变化硬件的环境就决定了无法完全由操作系统来实现上层转载 2014-05-01 14:39:14 · 1210 阅读 · 0 评论