
linux
NeilLiu200
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
进程-调度
调度策略对于操作系统来说,cpu的数量是有限的,有些任务优先级较高,有些任务优先级较低,为了有效的利用cpu,这时就有了进程的调度的概念。在task_struct中,有一个成员变量,用来表示调度策略。 unsigned int policy;在sched.h文件头 有这样一个#include <uapi/linux/sched.h>打开这个文件,会看到如下定义,是poli...原创 2020-03-20 10:09:46 · 251 阅读 · 0 评论 -
Linux进程数据结构分析
Linux进程结构分析在 linux 里面,无论是进程、线程,到了内核我们统一称之为任务( Task ),由一个叫做task_struct的结构统一管理,这个结构体包含了一个进程所需要的所有信息。接下来我们基于 kernel 5.2来分析这个结构。0x00 task_struct 分析首先 task_struct 结构体位于 /linux5.2/include/linux/sched.h ...原创 2019-11-01 13:53:21 · 523 阅读 · 0 评论 -
Linux进程数据结构分析
Linux进程结构分析在 linux 里面,无论是进程、线程,到了内核我们统一称之为任务( Task ),由一个叫做task_struct的结构统一管理,这个结构体包含了一个进程所需要的所有信息。接下来我们基于 kernel 5.2来分析这个结构。0x00 task_struct 分析首先 task_struct 结构体位于 /linux5.2/include/linux/sched.h 文...原创 2020-03-20 10:11:00 · 453 阅读 · 0 评论 -
linux进程-从文件到二进制
进程-从文件到二进制gcc命令gcc [option] file1 file2 //不加入参数,则按照默认参数依次执行编译、汇编和链接操作,生成可执行的文件名a.out编译的过程预处理编译汇编链接参数新建一个hello.c文件#include<stdio.h>int main(){ printf("hello world!");}-E只...原创 2019-10-09 10:24:03 · 472 阅读 · 0 评论 -
linux基本命令行(一)
linux基本命令行(一)0x00安装软件0x01 rpm和dpkg目的rpm 用法dpkg用法安装指定软件rpm -i pkgfile.rpmdpkg -i pkgfile.deb显示所有已安装的软件名rpm -qadpkg -l显示套件包含的所有档案rpm -ql pkgnamedpkg -L pkgname显示特定档案所属的套件名称...原创 2019-09-18 11:28:13 · 152 阅读 · 1 评论 -
linux基本命令行(二)
linux基本命令行(二)进程-内存-文件进程创建进程的的系统调用叫fork,创建一个新的进程,需要一个老进程调用fork来实现,老的进程被称为父进程,新的进程被称为子进程。当父进程调用fork创建进程的时候,子进程将拷贝父进程所有的文件。针对这种情况我们往往这样处理:对于fork系统调用的返回值,如果当前进程是子进程返回0;如果是父进程就返回子进程的进程号。通过if-else判断 ...原创 2019-09-20 10:20:16 · 124 阅读 · 0 评论 -
linux启动流程(一)
linux 启动流程0x00 What x86x86是Intel的CPU架构,最初是由16位的8086处理器组成的CPU和内存之间传递数据需要用到总线访问内存中某个地址的数据 把这类总线叫地址总线内存中真正的数据 这类总线叫做数据总线8086处理器的地址总线是20位, ip寄存器和通用寄存器是16位, 那么总线与寄存器之间的关系是把CS和DS寄存器中的值左移4位 。即: 起始地址1...原创 2019-09-29 16:14:34 · 209 阅读 · 0 评论 -
linux启动流程(二)
Linux 启动流程-内核初始化想要了解内核的启动过程,就需要查看linux源码了(此文是基于linux 5.2)。查看源码的过程中我们发现,内核的启动是start_kernel()函数,它是位于init包下main.c文件中的方法。我们在此方法里发现很多xxx_init的方法,也就是做一些初始化操作。asmlinkage __visible void __init start_kernel...原创 2019-10-09 11:48:35 · 178 阅读 · 0 评论