![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux系统编程
insect27
这个作者很懒,什么都没留下…
展开
-
getuid,setuid函数
[linux]编程 getuid,setuid函数(转载自http://sunny-day.blogbus.com/logs/1) violet.kz@gmail.comsetuid函数的学习笔记,如果对您有帮助,可以在非商业场合下引用,但请标明出处.您能不吝赐教转载 2010-05-04 09:22:00 · 1182 阅读 · 0 评论 -
qvfb的编译与使用
qvfb的编译注意要在qt pc版本环境下编译,因为qvfb就是一个X11程序,如果也在x86下编译了 会提示找不到X库参考 http://bbs.csdn.net/topics/390488263在终端设置环境变量 setenv.shQTDIR=/opt/Qt/4.7.4/pcPATH=$QTDIR/bin:$PATHLD_LIBRARY_PATH=$QTDIR/lib:原创 2013-06-26 16:00:39 · 1881 阅读 · 0 评论 -
Ubuntu安装ATI驱动,包括启动不了的解决
主要参考:http://blog.csdn.net/xuanwu_yan/article/details/8577484 http://tech.ccidnet.com/art/3089/20100613/2087271_1.html http://www.linuxdeepin.com/forum/6/14173AMD网站下载安装包运行即可安装完成后初始化sudo原创 2013-06-25 17:14:02 · 2580 阅读 · 0 评论 -
内存管理内幕
内存管理内幕<br />动态分配的选择、折衷和实现Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media WorxJonathan Bartlett 是 Programming from the Ground Up一书的作者,这本书介绍的是 Linux 汇编语言编程。Jonathan Bartlett 是 New Media Worx 的总开发师,负责为客户开发 Web、视频、kiosk 和桌面应用程序。您可以通过 johnnyb@eskimo.com原创 2011-03-03 00:53:00 · 436 阅读 · 0 评论 -
linux 性能检测 大多数性能检测信息都来自/proc
linux 性能检测 大多数性能检测信息都来自/proc2010-10-08 19:50<br />/proc 是一个特殊的文件系统,不占用磁盘空间,该目录下的内容是根据用户请求的信息,有Linux内核实时生成的。<br />(2.6.32-25)<br />一、性能分析工具<br />1、CPU性能分析工具:<br />top<br />ps -a -l<br />vmstat<br />time<br />strace<br />pstree<br /><br />2、Memory性能分析工具:<br原创 2011-03-03 00:05:00 · 595 阅读 · 0 评论 -
device_create分析
device_create分析2010-11-12 10:46<br />在2.6比较新的内核里面,这个函数在设备驱动中比较重要,拿出来单独分析下<br />源码如下:<br />/**<br />* device_create - creates a device and registers it with sysfs<br />* @class: pointer to the struct class that this device should be registered to<br />* @pa原创 2011-03-03 15:04:00 · 749 阅读 · 0 评论 -
内存管理内幕
内存管理内幕<br />动态分配的选择、折衷和实现Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media WorxJonathan Bartlett 是 Programming from the Ground Up一书的作者,这本书介绍的是 Linux 汇编语言编程。Jonathan Bartlett 是 New Media Worx 的总开发师,负责为客户开发 Web、视频、kiosk 和桌面应用程序。您可以通过 johnnyb@eskimo.com原创 2011-03-03 00:54:00 · 339 阅读 · 0 评论 -
关于glibc中的内存分配管理
<br />关于glibc中的内存分配管理<br />在glibc中,使用malloc分配内存时,实际上glibc自己做了相应的堆管理,它先使用brk系统调用,扩展了内存空间,一次最少一个页面4k。进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的(也就是glibc的动态内存分配策略上),堆的管理是由glibc进行的。<br />所以我们调用free对malloc得到的内存进行释放的时候,并不是直接释放给操作系统,而是还给了glibc的堆管理实体,而glibc原创 2011-03-03 00:40:00 · 824 阅读 · 0 评论 -
linux 内存回收机制 转
linux 内存回收机制 转内存是Linux内核所管理的最重要的资源之一,内存管理系统是操作系统中最为重要的部分。对于Linux的初学者来说,熟悉Linux的内存管理非常重要。<br /><br />进程是运行于虚拟地址空间的一个程序。可以说,任何在Linux系统下运行的程序都是进程。Linux系统中包括交互进程和批处理进程。交互进程是由Shell控制和运行的,既可以在前台运行,也可以在后台运行。批处理进程不属于某个终端,被提交到一个队列中以便顺序执行。大多数的进程都需要虚拟内存。<br /><br /原创 2011-03-03 00:03:00 · 772 阅读 · 0 评论 -
Understanding Linux /proc/id/maps
Understanding Linux /proc/id/maps<br /> <br />Each row in /proc/$PID/maps describes a region of contiguous virtual memory in a process or thread. Each row has the following fields:address - This is the starting and ending address of the region in the proce原创 2011-03-02 22:21:00 · 827 阅读 · 0 评论 -
用户申请 (malloc) glibc 内核
用户申请 (malloc) glibc 内核2010-10-08 19:49一提到内存管理就有两个概念,就是虚拟内存与物理内存。这两个概念主要来自于linux内核的支持。<br /><br />Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,它对应我们机器上的物理内存。<br /><br />这里要提到一个很重要的概念,内存的延迟分配。Linux内核在用户申请内存的时候,只是给它分配了一个线性区(也就是原创 2011-03-03 00:03:00 · 1391 阅读 · 2 评论 -
Linux进程虚拟内存和物理内存
<br />Linux进程虚拟内存和物理内存 收藏 <br />先介绍几个基本概念:<br />SIZE: 进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.<br />RSS: "Resident Set Size", 实际驻留"在内存中"的内存数. 不包括已经交换出去的代码. 举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为60K. RSS还包括了与其它进程共享的内存区域原创 2011-02-28 22:38:00 · 2758 阅读 · 0 评论 -
Linux用户进程内存分配及二级页表PTE的二三事
Linux用户进程内存分配及二级页表PTE的二三事我们在用调试器看Linux用户进程代码时,发现了一件很有意思的事情,在一段内存空间中,有一整页(4K)都是data abort,如下:<br /><br />第一页4011c000数据正常<br /><br />... ...<br /><br />4011cfec [0xe28dd014] add r13,r13,#0x14<br /><br />4011cff0 [0xe8bd40f0] ldmfd r13!,{r4-r7,r14原创 2011-02-28 23:00:00 · 1562 阅读 · 0 评论 -
Linux的用户进程是如何使用内存的
<br />Linux用户进程是如何释放内存的 <br />Linux进程使用内存的基本流程: <br /> 见图1 <br /> 从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的(也就是glibc的动态内存分配策略上),堆的管理是由glibc进行的。 <br />所以我们调用free对malloc得到的内存进行释放的时候,并不是直接释放给操作系统,而是还给了glibc的堆管理实体,而glibc会在把实际的物理内存归还给系统的策略上原创 2011-02-28 22:52:00 · 582 阅读 · 0 评论 -
Linux 进程内存模型
Linux 进程内存模型 (1)下图是一个简易的内存模型示意图。其中某些段 (Segment) 是从可执行文件加载的,有关 ELF Section 和 Segment 的映射关系,我们可以从 ELF Program Headers 中获取相关信息。<br /><br /><br />$ readelf -l helloElf file type is EXEC (Executable file)Entry point 0x8048410There are 8 program headers,原创 2011-02-28 22:28:00 · 1672 阅读 · 0 评论 -
等待子进程结束
Namewait3, wait4 — wait for process to change state, BSD styleSynopsis#include #include #include #include pid_t wait3(int *status,int options,原创 2010-05-06 13:25:00 · 565 阅读 · 0 评论 -
Linux建立使用限制及getrlimit和setrlimit函数
这一部分的提出是为了防止失控的进程破坏系统的性能nuix和Linux跟踪进程使用的大部分资源,允许用户和系统管理员使用对进程的资源限制 设置的限制有两种: 硬限制和软限制硬限制是可以在任何时候任何进程中设置 但硬限制只能由超级用户提起软限制是内核实际执行的限制,任何进程都可以将软限制设置为任意小于等于对进程限制的硬限制的值 ———————以下内容为转载(突然发原创 2010-05-04 11:13:00 · 1298 阅读 · 1 评论 -
linux 进程的资源使用
Linux内核追踪每个进程使用的资 比如 堆栈 代码段 数据段 运行的位置int getrusage(int who , struct rusage * usage) 检查进程本身,子进程或者两者之和的资源使用 函数返回一个usage结构,存放进程使用的资源 usage是很长的Linux只用前五项 who指明使用的资源中哪一种将被返回,who原创 2010-05-04 10:40:00 · 678 阅读 · 0 评论 -
linux 等待队列
include/linux.wait.h中对DECLARE_WAIT_QUEUE_HEAD的定义:#define DECLARE_WAIT_QUEUE_HEAD(name) \ wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)/* #define __WAIT_QUEUE_HEAD_INITIALIZE原创 2013-08-05 16:32:39 · 561 阅读 · 0 评论