首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
free和vfree
2024-11-02
malloc,vmalloc与kmalloc,kfree与vfree的区别和联系
kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大内存只有在要被DMA访问的时候才需要物理上连续vmalloc比kmalloc要慢1)kmalloc分配的物理地址与虚拟地址只有一个PAGE—OFFSET偏移,不需要为地址段修改页表.Vmalloc类函数地址完全虚拟,每次分配都需要对页表进行设置,当
kmalloc/kfree,vmalloc/vfree函数用法和区别
http://blog.csdn.net/tigerjibo/article/details/6412881 kmalloc/kfree,vmalloc/vfree函数用法和区别 1.kmalloc 1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零. < tiger说明:在用kmalloc申请函数后,要对起清零 用memset()函数对申请的内存进行清零. > 2>kamlloc函数原型: #include<linux/sl
vmalloc/vfree问题思考记录
arm 32 用户进程陷入内核态通过vmalloc/vfree分配内存的流程 内核在更新非连续内存区对应的页表项是非常懒惰的.--<深入理解linux内核> arm 32 只有一个PGD 寄存器,即每个进程的内核态和用户态是共享一份PGD,不同于内核主页表 vmalloc分配内存时,实际是将物理内存映射到内核的主页表(即init_task的页表): 当用户进程访问vmalloc内存时,触发vmalloc fault,同步init_task的vmalloc一级页表到进程PGD,即vmalloc的
linux下 lvm 磁盘扩容
打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这样做. 参于LVM基本介绍与常用命令请参考:http://www.cnblogs.com/jackruicao/p/6258812.html LVM结构图 扩容之前的磁盘状况 [root@localhost ~]# df -h 文件系统 容量 已用 可用已用%%挂载点 /de
Linux模块
一.为什么要使用模块 由于linux使用的是整体结构,不是模块化的结构,整体结构实现的操作系统可扩展性差.linux为了扩展系统,使用了模块的技术,模块能够从系统中动态装入和卸载,这样使得linux也具有很好的可扩展性. 二.linux中哪些代码作为模块实现,哪些直接编译进内核? 当然我们是尽量把代码编译成模块,这样就可以根据需要进行链接,内核的代码量也会少很多.几乎所有的高层组件—文件系统.设备驱动程序.可执行格式.网络层等等—都可以作为模块进行编译. 然而有些代码确必须直接编译进内核.这些代
GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述LVM的创建.LVM的扩展与缩减和快照卷的使用三部分 第一部分:LVM的创建 LVM创建的大致步骤为 1.将多个分区转化为多个物理卷PV(Physical Vomule) 一个分区可以创建一个物理卷,可以在多块磁盘上创建物理卷.也可以做raid10磁盘阵列以后在做物理卷, 以 便有更快的读写及磁
linux 使用/proc文件系统 实现用户空间与内核模块之间通信
项目中可能会用到用户态和内核模块之间进行通信的功能.想到linux系统本身很多通信都是通过/proc文件系统来的,比如修改网络中连接跟踪表连接数限制/proc/sys/net/netfilter/nf_conntrack_max,这种通信方式比较简单,所以想研究下,下面是我自己写的测试代码: myproc.c #include <linux/module.h> #include <linux/kernel.h> #include <linux/proc_fs.h> #i
insmod过程详解【转】
转自:http://blog.csdn.net/chrovery/article/details/51088425 转自 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27717694&id=3971861 一.前言 对于现在编译的一些module要insmod在系统上时,可能会报各种各样的错误.这些错误仔细研读内核源码,都能找出原因.2.6 内核以前的insmod部分主要依赖于modutils源码包,在用户层基本将工作完成
sis9280触摸ic 基于rk3288 的安卓4.4的 多点触摸
前言:sis提供的驱动ic.基于rk3288的安卓系统.亲眼看到人家完成一次移植.很激动的记下一些东西..虽然我看不懂.其实现在的工作也不需要看懂.叫人协助就好,只需要知道有这个东西. 1linux下的usb的hid...... /* * HID support for Linux * * Copyright (c) 2015 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc * Copyright (c) 2015-2016 J
LVM逻辑卷的创建及使用
在上一篇随笔里面 LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE.PV.VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建.使用以及删除. 一.创建LVM逻辑卷 我们通过图文并茂的方式来看看如何创建我们的LVM,在上一篇随笔中,我们已经熟悉了LVM的工作原理,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV.所以我们第一步就是将我
linux之LVM
一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操
【Linux】将Oracle安装目录从根目录下迁移到逻辑卷
[Linux]将Oracle安装目录从根目录下迁移到逻辑卷 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Linux逻辑卷的创建和管理(重点) Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr
CentOS 6.3下配置LVM(逻辑卷管理)
一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操
学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境
0. 前沿 经过一段时间的折腾,终于在自己的Mac上装好了Juno版本的四节点环境.这过程中,花了大量的时间,碰到了许多问题,学到不少知识,折腾过不少其实不需要折腾的东西,本文试着来对这过程做个总结. 1. 初始环境 说明: 1. VirtualBox Ubuntu 安装:(VirtualBox网卡配置可见 http://www.cnblogs.com/sammyliu/p/4137772.html) 安装的是14.04 server 版本,装好后: (1)修改 /etc/apt/sources
Linux Module
catalog . 概述 . 使用模块 . 插入和删除模块 . 自动化与热插拔 . 版本控制 1. 概述 模块(module)是一种向Linux内核添加设备驱动程序.文件系统及其他组件的有效方法,而无需连编新内核或重启系统,模块消除了宏内核的许多限制,模块有许多优点 . 通过使用模块,内核发布者能够预先编译大量驱动程序,但并不会造成内核镜像发生膨胀,在自动检测硬件(例如USB)或用户提示之后,安装例程选择适当的模块并将其添加到内核中 . 内核开发者可以将试验性的代码打包到模块中,模块可以卸载.修
VMP虚拟机加壳的原理学习
好久没有到博客写文章了,9月份开学有点忙,参加了一个上海的一个CHINA SIG信息比赛,前几天又无锡南京来回跑了几趟,签了阿里巴巴的安全工程师,准备11月以后过去实习,这之前就好好待在学校学习了. 这段时间断断续续把<加密与解码 第三版>给看完了,虽然对逆向还是一知半解,不过对VMP虚拟机加壳这块有了一点新的认识.这里分享一些笔记和想法,没有新的东西,都是书上还KSSD里看来的,权当笔记和分享,大神勿喷. 准备分成3部分讲一下 1. VM虚拟机简介 2. VM虚拟指令和x86汇编的映射原理
浅析firmware完整生存和使用流程 【转】
转自:http://blog.csdn.net/zhenwenxian/article/details/4677604 浅析firmware完整生存和使用流程 1. http://blog.chinaunix.NET/u1/38994/showart_1288259.html request_firmware=>_request_firmware=>fw_setup_device=>fw_register_device=>static int fw_register_device(
Linux摄像头驱动学习之:(六)UVC-基本框架代码分析
仿照内核的自带UVC(usb video class)驱动程序写的一版简化驱动,仅供学习,实际项目开发中应该尽量使用内核自带的驱动,除非内核自带的驱动不支持此款硬件才需要自己写驱动. 下面就直接上代码了,要根据自己的设备信息修改相关配置参数. #include <linux/kernel.h> #include <linux/list.h> #include <linux/module.h> #include <linux/usb.h> #include &
kernel/module.c
#include <linux/errno.h>#include <linux/kernel.h>#include <asm/segment.h>#include <linux/mm.h> /* defines GFP_KERNEL */#include <linux/string.h>#include <linux/module.h>#include <linux/sched.h>#include <
mm/vmalloc.c
/* * linux/mm/vmalloc.c * * Copyright (C) 1993 Linus Torvalds */ #include <asm/system.h>#include <linux/config.h> #include <linux/signal.h>#include <linux/sched.h>#include <linux/head.h>#include <linux/kernel.h>#incl
热门专题
jink添加不了断点
react 模拟link点击
rancher 安装es7
如何把图片logo字体改为空心
vivado中的ila连接的端口没有产生数据变化
阿里nacos服务异常
小甲鱼python课后题和答案百度云
sqlserver修改字段类型报错
WPS无效类字符串Excel.Application
hightcharts 漏斗图案例
C#微信扫码支付demo
RR != null和lRR is not null
c# winform 主窗体更新子窗体信息
STM32 PC15可以作为EXTI吗
openvpn server 默认路由推送
vc实现按任意键继续
oracle中function函数返回object
高性能分布式内存缓存
新版postman没有runner
pycharm2022 项目到GitHub