linux 2.6源代码情景分析笔记之进程11
下函数,创建进程描述符以及子进程执行所需要的所有其他数据结构。参数与do_fork()的参数相同,外加子进程的pid。
static task_t *copy_process(unsigned long clone_flags,unsigned long stack_start,struct pt_regs *regs,unsigned long stack_size,int __user *parent_tidptr,int __user *child_tidptr,int pid)
{
int retval;
struct task_struct *p = NULL;
if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
return ERR_PTR(-EINVAL);
if ((clone_flags & CLONE_THREAD) && !(clone_flags & CLONE_SIGHAND))
return ERR_PTR(-EINVAL);
if ((clone_flags & CLONE_SIGHAND) && !(clone_flags & CLONE_VM))
return ERR_PTR(-EINVAL);
上面的一组是互相矛盾的,所以必须检查,如第一个。clone不能又需要自己的空间,又屏蔽文件初始许可权的位掩码。
而第二行当CLONE_THREAD被设置,同时CLONE_SIGHAND又被清零的时候是不可以的,因为同一线程组中的轻量级进程必须共享信号
CLONE_SIGHAND标志被设置,CLONE_VM被清零也不可以,因为共享信号处理程序的轻量级进程也必须共享内存描述符
retval = security_task_create(clone_flags);//执行附加的安全检查
if (retval)
goto fork_out;
retval = -ENOMEM;
p = dup_task_struct(current);//为子进程获取进程描述符
if (!p)
&nb
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
VMware提供:桥接,Host Only和NAT三种连网方式. 我个人认为NAT方式较简单,用它来共享主机的IP,适合那种每台主机只允许一个IP的情况。具体设置如下:
1、安装VMware workstation。
2、安装guest系统,这里我安装的Red Hat Linux9,安装过程中确保网络连接选择的是NAT方式,当然
可以在安装完后进行修改。
3、到windows XP ......
本来想装aide的,发现在configure的时候卡住了。仔细一看
checking for gcc......no
原来这个linux没有装gcc。谁叫我懒,直接把linux拷过来用。找了半天安装镜像文件,找到gcc-3.22-5.i386.rpm
。那就开始装吧~
1、检查文件关联
rpm -ivh *.rpm后,一堆关联出来了
乖乖,一看,五个包呢~
......
1.Inode
inode 信息机构由以下几个部分组成
Mode:inode的描述内容和用户访问权限
Owner info:文件或目录所有者的信息,包括所属组信息
Size:文件大小
Timestamps:时间戳,文件创建及最后修改时间
直接块指针:
间接块指针:
双重间接块指针:
三重间接块指针: ......