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
相关文档:
例一:发送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 ......
经过千辛万苦的配置,终于在ubuntu上将tftp服务配置好,现将配置过程记录如下:
1 安装
#大部分网上说明将此处略去
sudo apt-get install tftp tftpd openbsd-inetd
#先安装这些,没有测试不安装的后果
#如果按照下面的安装方法未能实现tftp服务,那么请安装下面的软件
sudo apt-get install tftpd-hpa tftp-hpa ......
网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。
VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控远程的计算机的软件,其采用了GPL授权条款,任何人都可 ......
VMware提供:桥接,Host Only和NAT三种连网方式. 我个人认为NAT方式较简单,用它来共享主机的IP,适合那种每台主机只允许一个IP的情况。具体设置如下:
1、安装VMware workstation。
2、安装guest系统,这里我安装的Red Hat Linux9,安装过程中确保网络连接选择的是NAT方式,当然
可以在安装完后进行修改。
3、到windows XP ......
linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
linux内核的三种调度方法:
1,SCHED_OTHER 分时调度策略,
2,SCHED_FIFO实时调度策略,先到先服务
3,SCHED_RR实时调度策略,时间片轮转
linux内核的三种调度方法:
1,SCHED_OTHER 分时调度策略,
2,SCHED_FIFO实时调度策略,先到先服务
3,SCHED_RR实时 ......