![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
haohuaijin
脚踏实地,实事求是。
个人博客: https://haohuaijin.github.io
展开
-
系统调用
系统调用 要讲明白系统调用,就要明白以下的几个问题: 什么是系统调用? 为什么会有系统调用? 如何实现系统调用? 1. 什么是系统调用 系统调用就是操作系统提供的一些函数,可以用来访问硬件上的内容。系统调用和普通函数调用的区别就是系统调用会进入内核态,而普通的函数调用只在用户态。 2. 为什么会有系统调用 系统调用是为了将内核保护起来。内核中我们储存了如多重要的信息,比如用户的密码和各个用户的隐私记录等,如何应用程序可以随意的访问内核态的内存,那么计算机将没有隐私和保密可言。所以我们通过系统调用,对应用原创 2020-10-09 20:15:44 · 341 阅读 · 0 评论 -
8086汇编的一些知识
8086汇编的一些知识 8086汇编实运行在cpu的实模式下,他的寻址方式是 物理地址=段基址<<4 + 段内偏移地址。 下面一次介绍8086汇编的寄存器,寻址模式和指令。 寄存器 在8086的架构中,一共有14个16位的寄存器,其中ax,bx,cx,dx是通用寄存器,可以拆成8个8位的寄存器。cs,ds,es,ss是段寄存器用于寻址,具体内容后面再说。IP寄存器和cs寄存器结合指向下一条指令的地址。si,di,bp,sp用于和段寄存器结合来寻址。状态寄存器具体内容是:进位标志CF、奇偶标志PF原创 2020-10-09 20:14:21 · 394 阅读 · 0 评论 -
实验2:系统调用
实验2:系统调用 实验2: 系统调用 实验内容 在 Linux 0.11 上添加两个系统调用,并编写两个简单的应用程序测试它们。 1. iam() 第一个系统调用是 iam(),其原型为: int iam(const char * name); 完成的功能是将字符串参数 name 的内容拷贝到内核中保存下来。要求 name 的长度不能超过 23 个字符。返回值是拷贝的字符数。如果 name 的字符个数超过了 23,则返回 “-1”,并置 errno 为 EINVAL。 在 kernal/who.c 中实现原创 2020-10-09 20:11:57 · 671 阅读 · 0 评论 -
实验1:操作系统的引导
实验1:操作系统的引导 实验的准备工作操作 解压源码用tar -zxvf hit-oslab-linux-20110823.tar.gz 可以使用-C来指定解压路径,tar -zxvf hit-oslab-linux-20110823.tar.gz -C [path] 编译linux-0.11的源码,在linux-0.11的文件夹下运行make all或者make。 在oslab文件目录下运行./run运行bochs 中的linux-0.11。 访问linux-0.11里面的文件,使用sudo ./mou原创 2020-10-09 20:10:50 · 916 阅读 · 0 评论