
linux
文章平均质量分 94
leapmotion
这个作者很懒,什么都没留下…
展开
-
关于malloc/free的一些知识点
chunk被以下数据结构来组织,malloc_state也被称为是内存区,glibc实现的ptmalloc避免多线程并发引入主分配区和非主分配区,每个进程有一个主分配区,也可以允许有多个非主分配区。加锁失败就会继续找next的内存区,直到找到一个可用的内存区,都不可用,就会创建内存区。该环境变量可以用来开启内存错误检查,默认是关闭的,开启后,如果内存分配错误,会调用abort,比如调用free一个没有分配的内存,或者调用malloc一个超过内存限制的内存。下边判断是否是指定的so的内存,如果是就从。原创 2024-09-13 07:55:17 · 710 阅读 · 0 评论 -
linux0.11源码看read函数全流程
这篇文章带着大家去看linux0.11源码的read函数,大家每天都在读写文件,但是内部的具体流程还是很复杂的,还是从最简单的源码开始看起吧。会讲述一些内核的数据结构,函数调用流程,文件系统等等。linux0.11的文件系统是MINIZX文件系统,包含引导块、超级块、i-node位图、逻辑块位图、i节点与数据区等。如图所示:这里比较重要的是i节点的数据结构:如图所示,分为在内存使用和磁盘内存共用两个部分,当文件被加载或者打开或者进行操作时,会关联一些进程时间等信息,这些都是在内存部分操作,而实际和文件原创 2024-07-03 10:21:45 · 413 阅读 · 0 评论 -
linux0.11源码看信号的处理流程
本文我们从例子出发讲述了信号的处理整体流程,虽然内核的代码已经比较老了,但是总体的流程不变。我们从信号发射,信号捕获,信号处理等方面分析其流程。原创 2024-01-25 07:19:11 · 1125 阅读 · 0 评论 -
linux下动态链接过程
elf文件动态链接原创 2023-06-11 08:47:16 · 1782 阅读 · 0 评论 -
centos7升级到centos8
centos7升级到centos8原创 2022-06-01 21:29:37 · 3591 阅读 · 0 评论 -
使用dnf shell安装本地rpm包的遇到的问题
使用dnf shell安装本地rpm包的遇到的问题序dnf local installdnf shell注意总结ref序最近项目中使用dnf安装本地安装包遇到了2个问题,调试了蛮久,记录下来,也供大家参考。dnf是yum的升级版,在redhat8之后yum逐渐升级为dnf,基本的功能与yum差别不是很大本人使用dnf 4.4.2来实验,可能版本升级后有所不同。dnf local installdnf不仅可以安装仓库提供的rpm包,也可以安装本地打包或者下载好的rpm包。如果本地缺少依赖包,dnf原创 2022-05-22 07:49:12 · 3627 阅读 · 0 评论 -
koji使用外部仓库
序言使用koji来编译rpm包时,因为rpm包会依赖很多的其他的rpm包,而这时我们自己的build tag对应的rpm包又不足够时,我们就会使用外部仓库来提供依赖包,那么koji如何选择依赖包来自于build tag对应仓库还是来自于外部仓库呢?同时又会有什么样的条件呢?这就和我们引进外部仓库时使用的合并模式(merge mode)及优先级等等一些选项相关了。引进外部仓库使用指令就可以新建外部仓库$ koji add-external-repo -t dist-foo-build dist-foo原创 2022-03-12 11:43:18 · 1627 阅读 · 5 评论 -
yum 仓库内部结构
序本文是我进行翻译的,以下为翻译的文章,文章来源为:https://blog.packagecloud.io/yum-repository-internals/摘要这篇文章通过针对yum仓库中的元数据(metadata<一些索引文件>)测试的方式,深入去了解下yum仓库的内部结构,我会介绍每个索引文件,并看下用户如何去检查元数据。什么是yum仓库yum仓库就是很多的rpm包和元数据的集合,元数据可以被yum命令行读取。有了yum仓库,你就可以让你针对一个安装包(package)或者一翻译 2022-03-03 22:36:14 · 2151 阅读 · 0 评论 -
linux下给一个文件设置文件系统
前言在linux下,我们总有说磁盘分区给自己使用的需求,这里我们来通过给一个文件来进行分区等操作为例子,整体来梳理一下分区,建立文件系统,挂载等操作来梳理下这一整个流程。除此之外,我们给一个文件设置分区也有他的用处:1. 如果你需要在磁盘上多分一个区出来,但是没有可用的空间了,这时你可以使用文件来代替一个新的分区设备使用。2. 在制作镜像的时候,也可以使用这种方式,划分分区,建立文件系统后将镜像所需要的所有文件拷贝进去,进而制作成iso或者qcow2等格式的镜像文件供使用。规划一下输入结构我们使用p原创 2021-12-26 21:54:22 · 1347 阅读 · 2 评论 -
用systemd来进程间通信
1. 前言本文我们来通过主要讲解使用systemd进程间通信,达到让大家进一步了解systemd的一些概念。2. 什么是systemdsystemd是linux下一个管理daemon,进而甚至可以说是守护整个系统的程序,systemd代替了之前init方式。同时systemd作为所有进程的父进程,来孕育出来操作系统的所有进程。一些基本用法,以docker服务为例,systemd的命令都是以systemctl开头,即只有systemctl这个命令(传递参数不同)# 设置docker这个服务开机启动原创 2021-08-01 10:39:19 · 1216 阅读 · 2 评论 -
磁盘分区和开机启动
1 前言本文大概会来帮助大家解惑关于磁盘分区和开机启动的一些知识,会包括目前磁盘分区的格式,分区格式对应的系统启动流程。2 关于磁盘相信磁盘对于大家来说都不陌生,磁盘也是广为应用的保存大量数据的存储设备,存储的数量级可以达到M级,G级,甚至是T级别。 传统的磁盘也被称做机械硬盘,需要驱动马达传动磁盘,磁盘由盘片(platter)组成,如图中最左边是盘片的结构,图的右边是多个盘片视图,中间由主轴(spindle)串联多个盘片,盘片的上面和下面都可以存放数据,比较关键的是,盘片表面由磁道(tr原创 2021-07-05 09:20:42 · 2012 阅读 · 12 评论 -
rpm包如何构建
1. RPM(RedHat Packager Manager) Basics1.1 rpm和srpmrpm即软件包的一种管理方式,类似于安装包,使用它可以将相应的软件安装到系统上,包含的软件必须是经过编译的。格式为:unzip-6.0-20.el7.centos.es.x86_64.rpm(n: unzip, v:6.0, r: 20.el7.centos.es,a:x86_64)安装时会将软件信息写入到RPM数据库(/var/lib/rpm),便于查询。rpm -ivh /tmp/unzip-6原创 2021-05-16 09:37:19 · 1643 阅读 · 22 评论 -
koji架构及环境搭建
1. 序本文和大家讨论下koji的搭建过程,顺便其中的一些概念我会做一些讲解,顺便也是作为我koji环境搭建的一次记录。2. 什么是kojikoji是一套构建rpm包的软件系统,自身也是基于mock来做rpm包的build操作。一条指令,koji也是可以在多台电脑上进行编译。同时koji也是能作为针对编译的包的一些管理,能够一目了然。话不多说,我们就开始搞起。3. koji架构3.1 koji组件结构如上图,我大概画出来了相关的组件及相关的关系。koji-hub: 这个其实是整个koji架构原创 2021-04-13 09:15:19 · 7879 阅读 · 42 评论