根据PID获取进程名&根据进程名获取PID
摘要:Liunx中 通过进程名查找进程PID可以通过 pidof [进程名] 来查找。反过来 ,相同通过PID查找进程名则没有相关命令。在linux根目录中,有一个/proc的VFS(虚拟文件系统),系统当前运行的所有进程都对应于该目录下的一个 以进程PID命名的文件夹 ,其中存放进程运行的N多信息。其中...
阅读全文
posted @
2013-12-29 22:55
Seiyagoo
阅读(17061)
推荐(2)
再谈文件描述符
摘要:转自:http://keren.blog.51cto.com/720558/170822在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,文件描述符是如何工作的。文件描述符相当于一个逻辑句柄,而open,close等函数则是将文件或者物理设备与句柄相关联。句柄是一个整数,可以理解为进程特定的文件描述符表的索引。先介绍下面三个概念,后面讲下open
阅读全文
posted @
2012-06-18 13:25
Seiyagoo
阅读(312)
推荐(0)
系统调用
摘要:由前2篇文章做基础,现在可以理解系统调用了。用户空间栈&系统空间栈中断&异常系统调用定义 系统调用是内核提供的一系列强大的函数。它们在内核中实现,然后通过一定的方式(X86是软中断,也即门陷入)呈现给用户,是用户程序与内核交互的接口。 注意,我们在程序中用调用read、write函数时,这些不是系统调用函数,而是glibc库包装后,进行一些处理,然后再调用系统调用。如果想在程序中直接调用的话,需要调用_syscall()函数。上下文(context) 上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文
阅读全文
posted @
2012-05-26 16:34
Seiyagoo
阅读(1602)
推荐(0)
中断&异常
摘要:中断分类 类别原因返回行为例子广义中断异步中断(狭义中断)中断(interrupt)可屏蔽中断来自I/O设备的信号总是返回到下一条指令所有的IRQ中断不可屏蔽中断电源掉电和物理存储器奇偶校验同步中断(也称异常)陷阱(trap)有意的异常总是返回到下一条指令系统调用、信号机制(通过软中断实现)故障(fault)潜在可恢复的错误返回到当前指令缺页异常、除0错误、段错误终止(abort)不可恢复的错误不会返回硬件错误 注:80386有两根引脚INTR和NMI接受外部中断请求信号,INTR接受可屏蔽中断请求。在80386中,标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。中断的定...
阅读全文
posted @
2012-05-26 12:58
Seiyagoo
阅读(2071)
推荐(0)
用户空间栈&系统空间栈
摘要:用户空间栈 & 系统空间栈以下简称用户栈、内核栈1、用户栈和内核栈的区别 内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。记住,进程对应的用户栈和内核栈都是进程私有的。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。 注:有些系统中专门为全局中断处理提供了中断栈,但是x86中并没有中断栈,中断在当前进程的内核栈中处理。2、linux中有多少个内核栈 在/inclu.
阅读全文
posted @
2012-05-26 01:48
Seiyagoo
阅读(7056)
推荐(1)
NAT转Bridge方式
摘要:NAT换为Bridge方式环境说明:win7+VMware 7.1.3+ubuntu 10.040、首先确认一下3个网络相关的配置文件(不包含start和end行): 其中managed=true很关键;另外,下面网卡配置后需要重启sudo /etc/init.d/networking restart1)、/etc/network/interfaces:-----------start-----------auto loiface lo inet loopbackiface ppp0 inet pppprovider ppp0auto ppp0auto dsl-providerifa...
阅读全文
posted @
2012-05-17 22:13
Seiyagoo
阅读(989)
推荐(0)
虚拟机中不能识别U盘的解决方案
摘要:OS: Win7+VMWare 7.1(Ubuntu 11.04)按照http://wenku.baidu.com/view/231252155f0e7cd184253600.html的方法修改配置后,我把Fedora的USB Controller删除,然后再添加Ubuntu的USB Controller,开始我将Ubuntu界面最大化,再插U盘,然后VM->Removable Device让U盘断开与Win7的连接,而连Ubuntu,结果提示"the device is currently in use",而我检查Win7的设备管理器中设备已断开(VMWare的US
阅读全文
posted @
2012-02-21 20:26
Seiyagoo
阅读(2077)
推荐(0)