今天在Vmware上安装了CentOS6.5系统,下午首先把书上的安装过程看了一遍,实际进行操作时有些步骤不一样,经过查资料成功安装,说一下收获。选择自定义安装虚拟机,首先创建空白虚拟机,稍后编辑虚拟机,选择DVD,添加镜像。将磁盘以单文件形式使用,选择亚洲上海时区,注意取消使用UTC。选择Linux用途,我选择了basic
,在正式安装前会有硬盘分区操作,选择自定义操作。首先创建/目录分区,文件格式ext3,大小10000M,固定大小;创建/boot分区,大小1000M,并将该分区强制为主分区;创建swap分区大小为物理内存的1.5-2倍,我给了7000M,swap不需要挂载点;创建/home分区,系统自动将该分区变成扩展分区,将所有的容量都给了该分区,并将swap分区划分分到第一个逻辑分区;分区完成后,执行安装然后点击重新启动(重新引导)。

操作系统自带的截图工具无法保存问题,出现这种原因一般是对电脑的操作进行不当删除所致,一般来说很容易解决。

    双击我的电脑,打开资源管理器。
    在左侧找到库,选中并右击,点击还原默认库(R)。
    进入win7安装盘下的“用户目录”文件夹。
    新建文件夹,命名为 “我的图片”。
    修复完成,打开截图工具,尝试保存。

  Linux系统中,进程之间有一个明显的继承关系,所有进程都是 PID 为1的
init 进程的后代。内核在系统启动的最后阶段启动 init
进程。该进程读取系统的初始化脚本(initscript)并执行其他的相关程序,最终完成系统启动的整个过程。

  通过root用户使用useradd commonuser 和
passwd commonuser创建一个commonuser用户,使用su(switch user)
切换用户。

 

  系统中每个进程必有一个父进程,相应的,每个进程也可以由零个或者多个子进程。拥有同一个父进程的所有进程被称为兄弟。进程之间的关系存放在进程描述符
task_struct 中。每个 task_struct 都包含一个指向其父进程 task_struct
的指针 parent,还有一个被称为 children 的子进程链表。

  

 

图片 1图片 2

一、父进程的访问方法

1 useradd commonuser
2 passwd commonuser

  对于当前进程,可以使用下面代码访问其父进程,获得其进程描述符:

View Code

struct task_struct *my_parent = current -> parent;

 

   其中,current 是一个宏,在
linux/asm-generic/current.h中有定义:

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_GENERIC_CURRENT_H
#define __ASM_GENERIC_CURRENT_H

#include <linux/thread_info.h>

#define get_current() (current_thread_info()->task)
#define current get_current()

#endif /* __ASM_GENERIC_CURRENT_H */

  而 current_thread_info() 函数在
arch/arm/include/asm/thread_info.h 中有定义:

/*
 * how to get the thread information struct from C
 */
static inline struct thread_info *current_thread_info(void) __attribute_const__;

static inline struct thread_info *current_thread_info(void)
{
    return (struct thread_info *)
        (current_stack_pointer & ~(THREAD_SIZE - 1));        // 让SP堆栈指针与栈底对齐    
}    

   可以看到,current 实际上是指向当前执行进程的 task_struct 指针的。

 

二、子进程的访问方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注