代码改变世界

阅读排行榜

系统调用

2019-05-04 22:11 by JaPer, 941 阅读, 收藏,
摘要: glibc 对系统调用的封装 在用户态进程里调用open函数 【 int open(const char *pathname, int flags, mode_t mode) 】 在glibc 源代码中有个文件 syscalls.list , 里面咧着所有glibc 的函数对应的系统调用。 另外还有 阅读全文

内核初始化

2019-04-27 23:44 by JaPer, 759 阅读, 收藏,
摘要: 内核启动的入口函数 start_kernel() {init/main.c配置文件} , 里面有XXXX_init的初始化函数 1)在操作系统中有个创始进程,set_task_stack_end_magic(&init_task)。 有一个参数 init_task 定义是struct task_st 阅读全文

进程数据结构

2019-05-12 20:24 by JaPer, 681 阅读, 收藏,
摘要: 在 Linux 里面,无论是进程还是线程,到了内核里面,我们统一都叫任务 task ,由一个统一的结构 task_struct 进行管理;内核中通过链表串起 task_struct . 任务 ID task_struct 里面涉及任务 ID 的,有 pid tpid 和 group_leader: 阅读全文

12- 15 进程数据结构

2019-05-28 14:30 by JaPer, 244 阅读, 收藏,
摘要: 任务 task -由task_struct来管理 -任务ID,有pid,tgid -PID &TPID区别 getpid获取的是进程描述符task_struct的tgid(thread group identifier),而pid(process identifier)是系统管理所有进程的id 信号 阅读全文

进程

2019-05-12 20:33 by JaPer, 202 阅读, 收藏,
摘要: 我们在Windows上写的程序,会被保存成.h或者,c的文件。会让人以为这是某种有特殊格式的文件,但是这些文件只是普通的文本文件,因此在Linux上,我们用Vim来创建并编辑一个文件就可以了。 如何通过写代码使用系统调用创建一个进程: .安装开发套件 yum -y groupinstall "Dev 阅读全文