ucore lab1
ucore lab1是一个从无到有的过程,涉及比较多的硬件细节,比如实模式到保护模式的转换,ELF格式的加载,中断处理等内容。根据原理课的内容,ucore lab1设计了一个BIOS,一个bootloader和一个OS来实现初步的操作系统功能。其中BIOS执行系统初始化软件完成基本IO初始化和引导加载功能,bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式,并显示字符,OS初步实现处理时钟中断和显示字符等简单功能。
ucore lab1是一个从无到有的过程,涉及比较多的硬件细节,比如实模式到保护模式的转换,ELF格式的加载,中断处理等内容。根据原理课的内容,ucore lab1设计了一个BIOS,一个bootloader和一个OS来实现初步的操作系统功能。其中BIOS执行系统初始化软件完成基本IO初始化和引导加载功能,bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式,并显示字符,OS初步实现处理时钟中断和显示字符等简单功能。
我们一般打开电脑从启动电源开始,等待开机后再进行具体的操作,运行特定的程序。具体计算机是怎么加载程序并开始运行的呢?在操作系统内核运行之前需要先执行系统初始化软件,完成基本的I/O初始化和引导加载功能,为操作系统内核运行构建环境。之后,操作系统通过中断、异常、系统调用来响应用户的一系列操作。
常规的函数调用在调用时会有压栈的行为。假如我们想引导编译器将一段函数代码插入到调用者调用的位置处执行,而不是以默认压栈调用的方式,常规函数调用就无法满足我们的需求了,于是引入了内联函数。内联函数减少了函数的调用开销:如果多次被调用的某个函数实参相同,则其返回值必然是相同的,编译器可利用此特性对程序进行优化,而内联汇编相当于用汇编语句写成的内联函数,具有方便、快速的特点,在系统编程中广泛使用。
各种病毒扫描软件都会提示有安全漏洞,通过安全漏洞攻击者可以使攻击者能够在未授权的情况下访问或破坏系统。栈溢出攻击就是常见的攻击手段之一,通过向栈中写入过多的数据导致数据溢出来改变程序执行流程,从而达到攻击的效果。在attack lab中,我们将利用getbuf()函数不检查输入字符存储空间和栈分配空间检查的这一特性来对现有程序进行控制流劫持,执行非法程序代码。