0%

OpenEuler系统笔记

一、引言
Linux系统源码虽然开放,但是架构文档并不开放,掌握了架构文档,就可以根据自身需要定制Linux系统。
华为OpenEuler系统是对Linux系统的改装
二、基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
touch cl//增加文件a
rm cl//删除文件
vi cl//修改文件
find / name 08_del.sh//查找文件
mkdir cl//增加一个目录文件
rm -rf cldir//删除目录文件
pwd //目录文件
find / -name cldir//查找文件

ps -e//展示正在运行的进程

vi f.c//编程
进入编辑器后,我们先按i,即切换到“插入”状态
#include<unistd.h>
int main()
{
pid_t pid;
pid = fork();
if(pid = 0)
{
printf()
}
}
gcc -o f -g f.c
gcc -o th -g thread.c -lpthread

pthread_create
fork生成进程

三、
用户空间:自己写的进程所占有的空间
内核空间:操作系统所占有的空间
用户空间内写的代码要经过操作系统才能访问硬件,但是我们可以使用内核空间的函数直接访问硬件,如以下代码访问显示器。

1
2
3
4
5
#include<unistd.h>
int main()
{
write(1,"haha\n",5);
}
1
2
int 0x80中断指令,参数为0x80
会查找系统调用表,system call table,系统调用号被放在了eax寄存器中

硬件中断
1、硬盘、键盘、网卡的管理程序直接向CPU的interrupt controller部分发指令,cpu在interrupt vector(中断向量表)中修改相应参数,然后处理信息,如将键盘输入的信息读入。

0、下载源码
1、编出系统调用函数
2、加入系统调用表
3、重新编译内核并启用新的内核
写汇编语句
MOV LAX CALLID
int 0x80