自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (13)
  • 收藏
  • 关注

转载 gdb调试多进程

转自:http://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/使用 GDB 调试多进程程序田 强 (tianq@cn.ibm.com), 软件工程师, IBM中国软件开发中心简介: GDB 是 linux 系统上常用的调试工具,本文介绍了使用 GDB 调试多进程程序的几种方法,并对各种方法进行比较。

2011-10-31 23:11:24 690

原创 实验——系统调用execve时的用户空间堆栈情况

创建的新的子进程在调用execv执行新的程序段(开始独立于父进程执行)的时候,子进程用户空间栈的安排应该是怎样的呢?参数是如何传递的呢?编写如下两个程序:程序一:test1.c#include int main(int args, char* argv[]) { char s[5] = "ABCD"; while(1) { printf("%s\n", s); p

2011-10-31 22:47:23 1458

原创 进程管理之schedule --> pick_next_task()

/* * Pick up the highest-prio task: */static inline struct task_struct *pick_next_task(struct rq *rq){ const struct sched_class *class; struct task_struct *p; /* * Optimization: we know tha

2011-10-30 13:16:14 5297 1

原创 进程管理之schedule()

/* * schedule() is the main scheduler function. */asmlinkage void __sched schedule(void){ struct task_struct *prev, *next; unsigned long *switch_count; struct rq *rq; int cpu;need_resched:

2011-10-28 18:03:34 3430

原创 do_exit——>exit_notify()

/* * Send signals to all our closest relatives so that they know * to properly mourn(悼念) us.. */static void exit_notify(struct task_struct *tsk, int group_dead){ int signal; void *cookie; /*

2011-10-26 19:28:28 4244

原创 进程(组)/线程(组)/会话

可以参看UNIX环境高级编程的相关章节。为了搞清楚进程组之间的关系,我们做如下的实验:编写程序:/*test.c*/#include "../include/apue.h"void main() { pid_t pid; char *args[] = {"/bin/echo", "Hello", "World!", NULL }; if((pid = fork()

2011-10-26 16:55:03 2505

原创 进程管理之exit()

NORET_TYPE void do_exit(long code){ struct task_struct *tsk = current; int group_dead; profile_task_exit(tsk); WARN_ON(atomic_read(&tsk->fs_excl)); //如果进程holding fs exclusive resources,则报错。但是还

2011-10-25 22:12:37 3995

转载 Linux中的同步机制

转自:http://hi.baidu.com/luxiaoyi/blog/item/3db9a302ba9a0f074bfb51e3.htmlLinux中的同步机制(一)--Futex引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什

2011-10-25 16:35:12 6070

转载 fs寄存器

FS寄存器指向当前活动线程的TEB结构(线程结构)偏移  说明000  指向SEH链指针004  线程堆栈顶部008  线程堆栈底部00C  SubSystemTib010  FiberData014  ArbitraryUserPointer018  FS段寄存器在内存中的镜像地址020  进程PID024  线程ID02C  指向线程局部存储指针

2011-10-25 16:04:52 905

原创 系统调用execve的入口sys_execve()

/* * sys_execve() executes a new program. */long sys_execve(const char __user *name, //需要执行的文件的绝对路径(存于用户空间) const char __user *const __user *argv, //传入系统调用的参数(存于用户空间) const ch

2011-10-24 22:47:17 9779

原创 do_fork->copy_process->copy_mm

static int copy_mm(unsigned long clone_flags, struct task_struct * tsk){ struct mm_struct * mm, *oldmm; int retval; tsk->min_flt = tsk->maj_flt = 0; tsk->nvcsw = tsk->nivcsw = 0;#ifdef CONFIG_D

2011-10-23 15:44:06 3397

转载 linux的swapper_pg_dir的初始化

转自:http://blog.sina.com.cn/s/blog_639dde240100qvfp.htmlLinux的启动涉及到一个解压与定位的过程,对于x86体系结构而言,系统被加载到0x100000的地方,那么swapper_pg_dir的值是什么呢?我们知道swapper_pg_dir是一个很重要的东西,它是所有进程内核空间的页表的模板,而且在涉及到896M以上的内存分配时,sw

2011-10-23 11:14:55 3935

原创 ubuntu看youku

sudo apt-get install flashplugin-installer

2011-10-21 16:54:30 1570

原创 进程创建之do_fork

/* * Ok, this is the main fork-routine. * * It copies the process, and if successful kick-starts * it and waits for it to finish using the VM if required. */long do_fork(unsigned long clone_fla

2011-10-18 21:39:33 2422

原创 进程创建之dofork->copy_process()

/* * This creates a new process as a copy of the old one, * but does not actually start it yet. * * It copies the registers, and all the appropriate * parts of the process environment (as per the

2011-10-17 23:46:47 2602

原创 内核进程创建之分配task_struct(do_fork->copy_process->dup_task_struct())

static struct task_struct *dup_task_struct(struct task_struct *orig){ struct task_struct *tsk; //sizeof(task_struct) = 3236;这个值是通过gdb得到的, //可以看到单个的task_struct

2011-10-17 21:18:00 3982

原创 Ubuntu打不开文件夹

Ubuntu升级到11.10后双击文件夹打不开很有的解决方法:一般是nautilus出错了,可以卸载之后重新安装。

2011-10-16 13:15:24 6402

原创 ubuntu arm 交叉编译环境的搭建

1. arm-none-linux-gcc搭建$ sudo apt-get install build-essential ddd cpio libncurses5-dev libsdl-dev zlib1g-dev$ wget http://www.codeso

2011-10-15 20:32:57 1496

原创 ubuntu联网

ubuntu不能联网:1.不能够ping通局域网那么指定固定的IP等参数,方法如下:$cd /etc/network$sudo gedit interfaces然后,将interfaces文件中的内容改为如下:auto loiface lo inet

2011-10-15 12:33:47 1330

原创 Linux内核中的简称/前缀/后缀总结

TLS——Thread Level Storage  或者 Thread Local Storage  http://en.wikipedia.org/wiki/Thread-local_storageGFP_KERNEL——意思是这个分配((内部最终通过调用 __get_free_pages 来进行, 它是 GFP_ 前缀的来源) 代表运行在内核空间的进程而进行的. 换句话说, 这意味着

2011-10-14 09:51:11 2253 2

原创 malloc函数

#include #include #include typedef struct { char s[16];} PString;void main() { PString *p; int n = 8; p = (PString *) malloc(n

2011-10-14 09:01:57 536

原创 好的学习linux内核的网站

http://blog.chinaunix.net/space.php?uid=20543183&do=blog&view=me&frmd=-1&classid=0&page=1

2011-10-13 16:29:57 1081

原创 Linux3.0.6内核task_struct注释

struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ void *stack; //stack should points to a threadinfo struct atomic_t usage; //有几个进程正在使用该结构 unsigned int flags; /

2011-10-13 14:34:52 8253

原创 用宏初始化结构体

#define INIT_STRUCT_PID {                        \    .count         = ATOMIC_INIT(1),                \    .tasks        = {

2011-10-12 21:18:04 2353

转载 内核/内存管理中的VSS/RSS/PSS/USS

转自:http://www.douban.com/note/161471809/  RSS is the total memory actually held in RAM for a process. RSS can be misleading, because it

2011-10-12 17:14:38 1744

转载 2.4内核中task_struct结构体全解

/*转自:http://wenku.baidu.com/view/9132d213f18583d049645902.html*/********************************************为了管理进程,操作系统必须对每个进程所做的事情进行

2011-10-12 16:40:13 1139

转载 关于volatile

转自:http://baike.baidu.com/view/608706.htm推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用

2011-10-12 15:26:12 400

转载 Linux 2.6内核中新的锁机制--RCU

杨燚 (yang.yi@bmrtech.com), 计算机科学硕士什么是RCU?RCU的实现机制?RCU的API?RCU的典型应用?转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/

2011-10-12 15:05:49 1038

原创 rt_mutex

do_fork  -->  copy_process --> rt_mutex_init_task(p);    关于rt_mutex,请参考Documentation/rt_mutex.txt注解: PI 是Priority Inheritanc

2011-10-12 14:02:51 1966

原创 情景分析中的一个例程

在情景分析的第278页有这样一个例子:#include /*一个有趣的现象:注释行是否被注释得到的结果是不一样的,试一下,想一下什么原因?*/int main() { int child; char *args[] = {"/bin/echo", "Hello",

2011-10-11 17:12:51 594

原创 分配task_struct时分配页面的大小的问题

#define THREAD_SIZE (PAGE_SIZE #define THREAD_SIZE_ORDER    1THREAD_SIZE定义为两个页面来表示一个内核线程#define alloc_task_struct_node(node)

2011-10-11 15:12:53 1544 2

arm-linux-gcc4.4.3

arm-linux-gcc交叉编译工具,解压缩配置极为简单

2012-07-23

自己动手写操作系统——于渊

畅销书 自己动手写操作系统!如果对操作系统感兴趣,必须要动手实践一下!

2011-08-11

自己动手写操作系统光盘

里面有书上的代码,还有floppy writer!很好!实践自己动手写操作系统的必备文档!

2011-08-11

PHP源码实例——xuexiaofree

用PHP开发的实例源码!简单实用,适合初学者学习~!

2011-08-09

PHP源码实例——jz

用PHP开发的实例源码!简单实用,适合初学者学习~!

2011-08-09

PHP源码实例——dokeos

PHP初学者适合看的,用PHP开发的实例,很简单,但是很全面!

2011-08-09

PHP源码实例——成绩统计

用PHP开发的简单的成绩管理系统!适合PHP初学者学习!

2011-08-09

PHP源码——通讯录

用PHP开发的简单的通讯录!用PHP开发的简单的通讯录!用PHP开发的简单的通讯录!

2011-08-09

自己动手写操作系统——alpha edition

手把手教你完成一个简单的操作系统!非常值得推荐!

2011-08-09

安装qemu必须的zlib

在安装qemu时,输入./configure后一般系统都会提示缺少zlib库,那么把这个包下载了吧,正是你需要的!

2011-07-31

qemu安装时必须的glib库

在安装qemu的时候,在你安装了zlib之后,系统可能会提示你缺少glib-2.0,那么把这个软件包下载了吧!

2011-07-31

调试linux内核的平台qemu

调试linux内核用的虚拟机.把linux内核放在该平台下运行,然后在物理机下调试内核。

2011-07-31

腾讯笔试题目整理(部分)

里面有近几年腾讯的笔试题目,如果您想进入腾讯,不要错过啊!

2010-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除