操作系统原理:操作系统的启动 中断/异常/系统调用
操作系统的存储刚开始并不是内存里,而是先放在硬盘DIsk上 。由BIOS(基本输入输出系统)提供支持。
开机时,BIOS首先检查外设,检查完没问题。再加载相应的软件 。
Bootloader: 这个程序的作用就是将 操作系统从硬盘加载到内存中。 BIOS 预先占用了系统内存从640kb开始到1M 。内存地址可以表示成 CS:IP 其中CS 是段寄存器,IP是指令寄存器 ,这两个寄存器的组合就可以指定成具体的内存地址。以X86 为例,BIOS启动的开始地址为 CS:IP =0xf000:fff0. Bootloader一般放在第一个硬盘扇区。
BIOS启动首先自检,检查外设是否能正常工作,寻找显卡,鼠标,键盘等。当检查可以正常工作时,将bootloader程序从硬盘放到内存中去(512个字节),以X86 为例,加载到0x7c00的开始地址。此时CPU控制权交给bootloader,执行bootloader,找到硬盘中操作系统的起始地址和操作系统长度,把OS放到内存中。之后把CPU控制权交给OS。
系统调用(system call):为应用程序请求操作提供服务。可异步和同步,对于返回值,同步会等待值返回再执行下一步,异步发出系统调用请求后,紧接着就会执行下一步操作。
异常 (Exception): 应用程序产生的,在执行过程中发生非法的指令,破坏其他程序的处理状态。异常是同步的
中断 (interrupt;): 来源于外设,是异步的,外设不清楚什么时候中断会发生。中断时持续的,对应用程序时透明的,中断即停止应用程序的执行,只不过暂停时间很短感受不清楚。
操作系统是可以信任的软件。访问外设需要通过操作系统访问。操作系统屏蔽对外设的细节处理过程,为上层软件提供统一的访问外设的接口。
操作系统原理:操作系统的启动 中断/异常/系统调用相关推荐
- Linux操作系统原理与应用06:系统调用
目录 1. Linux中的各种接口 1.1 LSB标准 1.2 Linux API 1.2.1 概述 1.2.2 Linux内核系统调用接口 1.2.3 C标准库 1.3 Linux ABI 1.4 ...
- 操作系统原理 —— 操作系统的四个特征:并发、共享、虚拟、异步 (二)
本章我们来聊一下操作系统的四个特征 在我们的操作系统中有四个特征:并发.共享.虚拟.异步,我们结合每一个特征来进行讲解,我们先来看并发. 并发 这里所说的并发,最好不联想到并发编程.咱们就简简单单理解 ...
- 操作系统原理:中断,异常,系统调用
系统调用(system call):为应用程序请求操作提供服务.可异步和同步,对于返回值,同步会等待值返回再执行下一步,异步发出系统调用请求后,紧接着就会执行下一步操作. 异常 (Exception) ...
- Linux操作系统原理与应用05:中断和异常
目录 1. 中断概述 1.1 什么是中断 1.2 为什么引入中断 1.3 中断的分类 1.4 CPU什么时候响应中断 2. 中断控制器简介 2.1 中断的C/S模型结构 2.2 作为中介的中断控制器 ...
- 提升计算机性能 操作系统原理角度,浅析计算机操作系统原理
1.操作系统概述 我们从功能.组成.特征.结构4个方面对操作系统进行介绍. 1)功能: 从用户角度讲,操作系统是一个管理应用程序的控制程序,管理应用程序: 从资源管理角度讲,操作系统是管理外设.分配资 ...
- 操作系统from清华大学向勇,陈渝 笔记(二)操作系统的启动、中断、异常、系统调用
下一篇在这里(三)(四)内存层次和连续.非连续分配 上一篇绪论在这里(一)操作系统绪论 INDEX 2-1 操作系统的启动 2-2 操作系统的中断.异常.系统调用 2-1 操作系统的启动 启动:机器三 ...
- 操作系统原理实验(3):操作系统的基石中断与异常
一.实验目的 中断.异常和陷阱指令(合称类中断)是操作系统的基石,现代操作系统就是由(类)中断驱动的.本实验的目的在于深刻理解(类)中断的原理和机制,掌握 CPU 访问设备控制器的方法,掌握 x86 ...
- 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数
操作系统-ucore-lab1 本文详细地址 实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启 ...
- 我是如何学习写一个操作系统(二):操作系统的启动之Bootloader
前言 今天本来的任务看书和把之前写的FragileOS整理一下,但是到现在还在摸鱼,书也只看一点.后来整理了一下写这个系列的思路,原本的目的是对操作系统原理性的学习和对之前写的一个玩具型操作系统的回顾 ...
最新文章
- windows下pycharm远程调试pyspark
- poj 3189 Steady Cow Assignment(二分+最大流)
- sql语句的一些细节东西学起来还是很费劲的,希望以后注意下。算是经验吧
- 双十一变身大型奥数竞赛现场?数学不好的你请转场
- Win-MASM64汇编语言-CMP/CMPSB/CMPSW/CMPSD/JNE/JCXZ
- 使用TortoiseGit自带的puttygen生成ssh密钥
- 数据库 casewhen 的用法
- google浏览器被360导航劫持
- 分页插件Kaminari
- 2020再见,2021你好之年度总结
- 苹果iOS/iPadOS 15.2 Beta 1发布 app隐私报告?
- React-redux中文文档
- 解构SPA模式 ZARA、UNIQLO秘诀
- C语言之找数组中重复的数
- Python 图片与pdf相互转换
- 数字逻辑-头歌实训作业-译码器设计与应用(Logisim)
- 好游戏必须知道玩家需要什么?
- 梧桐杯重庆赛道B榜第二名开源代码
- 404 html代码,不懂代码,如何制作漂亮的404页面【新手简易教程】
- 微软IE7更多细节大揭密(转)
热门文章
- V-rep学习笔记:vrep中的实用工具
- 工程师文化播客: 从工程转向管理,访谈Github公司的Phil Haack
- 2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14
- 安装Zabbix过程中出现的问题集
- 复合主键@IdClass
- Golang环境配置以及GOPATH与gomod的关系
- 【网址收藏】windows安装Docker Desktop常见问题整理
- golang go mod包管理:安装第三方包的三种方式(go get/go mod download/go mod vendor)
- golang基础环境配置
- k8s service服务发现详解:ipvs代理模式、服务类型