操作系统——操作系统用户界面

这篇具有很好参考价值的文章主要介绍了操作系统——操作系统用户界面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.关注博主有更多知识

操作系统入门知识合集

目录

3.1操作系统启动过程

3.1.1BIOS和主引导记录MBR

思考题:

 3.1.2操作系统的启动过程

思考题:

3.2用户界面

3.2.1用户界面概念

 思考题:

3.2.2系统调用

3.1操作系统启动过程

3.1.1BIOS和主引导记录MBR

计算机有两种模式:

  1.实模式:当计算机刚开机、刚上电、还没有加载操作系统的时候,计算器处于实模式(实地址模式,REAL MODE),程序将会按照8086的寻址方式方法直接访问物理地址0h-FFFFFh(1MB)的空间(我们说过没有操作系统的计算机也能运行程序)。其寻址并不是直接拿到物理地址,而是需要一定的转换,也就是说,当程序拿到某个地址,需要将其拆分为段地址:偏移地址,计算之后的结果才是物理地址。此时CPU只能支持单任务运行。

  2.保护模式:又称内存保护模式(PROTECT MODE)。当操作系统被加载到内存后,开始接管计算机之后,计算机就处于保护模式了。此时程序的寻址方式相较于实模式会变得更加复杂,在这种模式下程序基本上能够访问完整的内存空间,但并不是直接访问物理地址,而是操作系统通过一种特殊的手段使程序必须通过段页式的寻址机制访问内存。这种特殊手段称为虚拟内存技术。当计算机处于保护模式下时,应用程序和操作系统的运行环境都被保护,且CPU支持多任务运行。

具体分析计算机的实模式:

  1.实模式下,程序只能访问1MB的空间,这1MB的空间又被分成前640K[00000 -> 9FFFF]:基本内存;中间128K[A0000 -> BFFFF]:显卡显存;末尾256K[C0000 -> FFFFF]:BIOS。其中末尾256K的BIOS又分为[C0000 -> C7FFF]:显示卡BOIS;[C8000 -> CBFFF]:IDE控制器BIOS;最后64K[F0000 -> FFFFF]:系统BIOS

  2.系统BIOS:系统BIOS称为基本输入/输出系统,它是一个固件(以硬件形式存在的软件称为固件),它位于BIOS的最后64K。其功能为系统启动配置、基本设备的I/O服务、系统的加电自检和启动。

  3.系统启动配置:其实我们已经跟它见过面了,它就是CMOS设置。它能够让用户设置一些最基本的启动配置,例如是从磁盘启动操作系统还是从U盘启动操作系统。

  4.系统BIOS提供的基本设备的I/O服务:系统BIOS是一个固件,所以被加载到内存后就变成了真正意义上的软件。它提供I/O服务的方式是以中断的形式存在,不同的中断对应不同的功能。

操作系统——操作系统用户界面

每一种功能还有对应的子功能,例如13号中断信号,它对应软盘的I/O调用,具体怎么调用,就取决了子功能了。

操作系统——操作系统用户界面

 现在确定了基本I/O的工作,就需要进一步细化工作。例如13号中断信号的2号子功能,读扇区,这时候还需要提供一些参数以便直到读哪个扇区、读多少扇区等等。

操作系统——操作系统用户界面

   5.系统BIOS提供的加电自检功能:加电自检称为POST,计算机刚上电的时候,CPU执行开机之后的第一条指令跳转到POST进行自检。加电自检的功能是对基本硬件进行初始化工作,例如CPU、内存、显卡等等,如果检查出现错误,将会发出警报声提醒用户。POST加电自检以后,会依次查找显卡BIOS、调用显卡BIOS;然后依次查找其他设备的BIOS;然后显示启动画面,显示一些BIOS信息、芯片组型号、主板信息等等;然后从某种介质当中读取操作系统到内存中,最后操作系统接管计算机。

操作系统——操作系统用户界面

主引导记录MBR:

  MBR存放于主启动扇区中,主启动扇区位于磁盘的首个扇区(第一个磁面上的第一个磁道的第一个扇区),它的大小有512字节,存放和操作系统有关的相关信息(Main Boot Record)。我们知道操作系统是放在磁盘上的,所以操作系统被放进内存之前一定是由MBR做工作。但MBR并不会直接将操作系统写入内存,而是读取分区引导记录PBR。PBR位于操作系统所处的分区的首个扇区,它可以作为直接引导操作系统加载到内存的直接引导记录。

  由此我们可以推测出BIOS和MBR程序运行的过程大致是这样的:首先用户按下计算机的电源开关->CPU执行第一条指令跳转到POST进行开机自检->检查完成后,读取CMOS设置的操作系统的启动方式->CPU读取MBR到内存中来->MBR读取分区表,找到分区表中的活动分区(通常是操作系统所在的分区),并确认其他的分区都不是活动的(加载的操作系统只能有一个),然后MBR读取分区的PBR到内存中->PBR继续控制后面的操作系统的引导过程。

思考题:

1.BIOS中断时INT xxh的形式,例如INT 13H是磁盘读写服务。那么INT 21H与BIOS的中断信号的中断机制是不是一样的呢?

INT 21H是DOS的一个中断信号,DOS称为磁盘操作系统,它是负责直接管理磁盘的软件。而BIOS作为一个软件(因为它被放在内存中,BIOS是内嵌在主板上的),它发送的中断信号与DOS的中断信号是有本质区别的。DOS作为操作系统,它的INT 21H一定是一个系统调用,是为上层 应用程序提供的接口;而BIOS它不是操作系统,所以可以理解为INT 21H这个中断是提供给BIOS使用的。

 3.1.2操作系统的启动过程

操作系统的启动过程的定义是从计算机加电到操作系统加载完成,能够被用户使用的这么一段过程。它分为三个阶段:初始引导、核心初始化、系统初始化。

初始引导:

  1.目的:把操作系统核心装入内存并让操作系统开始接管计算机

  2.过程:计算机开机->加电自检->BIOS的启动程序运行,加载MBR到内存中->MBR加载PBR->加载硬盘上的操作系统内核,并初始化基本参数->内核加载到内存之后,会继续加载操作系统的剩余部分(例如微内核结构的操作系统,会加载核外服务器),最后完全控制计算机。

操作系统——操作系统用户界面

核心初始化:

  1.目的:操作系统内核初始化操作系统的核心数据

  2.典型工作:初始化各种寄存器、初始化存储系统和页表、构建核心进程......

系统初始化:

  1.目的:为用户使用操作系统做好准备,使操作系统处于待命状态

  2.主要工作:初始化文件系统、初始化网络系统、初始化控制台、初始化图形化界面......

Windows的启动过程:

  1.POST:加电后由BIOS启动主机的自检程序

  2.初始引导:BIOS读入MBR到内存,MBR引导DOS7.0的启动,并调入操作系统内核到内存,然后Windows接管计算机

  3.核心初始化:初始化资源状态、核心数据等

  4.系统初始化:GUI界面生成,用户可以随时使用操作系统,操作系统处于待命、消息接收状态

Linux的启动过程:

  POST->MBR->KERNEL映像->KERNEL映像边解压边执行->内核初始化->内核开始工作,接管计算机->系统初始化,生成控制台界面。

  需要注意的使,Linux的内核映像并不是一个完整的映像,而是一个压缩文件(可能前面的某些部分是解压后的真实代码),这个内核映像被加载到内存后是边解压边工作的。

思考题:

1.操作系统的初始化引导涉及哪些程序模块?存放的介质是什么?

初始化引导中的程序模块涉及到:BIOS的启动程序,它内嵌在主板的BIOS芯片上;硬盘当中的MBR和PBR,存放在硬盘对应分区的首个扇区当中;操作系统的内核,存放在硬盘的某个分区。

3.2用户界面

3.2.1用户界面概念

用户界面的定义:操作系统提供给用户控制计算机的机制,这种机制又称用户接口。

用户界面分为两类:用户可视化操作界面(可视化界面、控制台窗口、批处理程序);系统调用(通常被程序员使用)。

用户可视化操作界面:

  1.图形用户接口(GUI,Graphics User Interface):提供这种用户的接口的典型操作系统为Windows和MAC OS,它们由窗口、图标、菜单、按钮、鼠标等组成。

  2.键盘命令(COMMAND):在控制台环境下接收键盘输入的命令,这些命令分为普通命令、批处理程序、shell脚本等等。

  3.普通命令:以DOS操作系统为例,它的典型命令就有文件管理的命令COPY、COMP、TYPE、DEL、REN,磁盘管理的命令FOMAT、CHKDSK、DISKCOPY、DISKCOMP,目录管理的命令DIR、CD、MD、RD、TREE......以Linux操作系统为例,它的典型命令就有查看命名和帮助的指令man,改变工作路径的命令cd,列出目录信息的指令ls......以上列举的都是操作系统提供的普通命令。

  4.批处理程序:普通命令的集合,这些集合起来的命令按批处理,并且命令与命令之间具有一定的逻辑关系。批处理程序支持变量替换、条件、转移、循环、注释等基本的简单语法,在Windows环境下,批处理程序的后缀为.BAT(.bat)。我们编写一个最简单的批处理程序,它直接输出"Hello Bat"到控制台上。

@echo off
echo Hello Bat!
pause

操作系统——操作系统用户界面

   5.Shell:Shell是操作系统与用户交互的界面,它表现为通过控制台执行用户的命令,但实际上Shell本身不执行命令,而是组织和管理命令,将命令交给操作系统执行,然后执行的结果通过Shell返回给用户,所以我们说它是表现为执行用户的命令

操作系统——操作系统用户界面

   6.Shell的发展与分类:第一个Shell便是1970年诞生的Bsh,具有较强的脚本编程功能,随后便是1980年出现的Csh,使用C语言,用户命令交互方便;在此基础上,又诞生出了Ksh,Ksh结合了Bsh和Csh的优势;最后,现在主流的Shell便是Bash,Bash是对Bsh的升级,并且吸收了Ksh的特性,是一个开源的Shell。

操作系统——操作系统用户界面

   7.Bash的主要功能:Bash提供命令行编辑功能、命令和文件名补全功能、命令历史功能、命令别名功能、作业控制功能、管道与重定向、将命令序列定义为功能键的功能、Shell脚本编程。命令行编辑功能可以操作左右方向键,使得光标在当前命令行中以后字符间进行任意移动;退格键能够删除命令行中光标左边的字符;Del键能够删除当前光标处的字符......可以使用Tab键在命令查找路径中查找匹配的命令,并进行命令拼写的补全;使用Tab键可对文件和目录名进行补全......可以使用上下方向键浏览已输入的命令(历史命令)......在Linux的Bash上,可以使用'<'操作符将命令输入由默认的键盘更改(重定向)为指定的文件;操作符'>'将命令输出由默认的显示器更改(重定向)为指定的文件;操作符'>>'将命令输出重定向并追加到指定文件的末尾......

  8.Bash功能实例(以Linux为例):

    1.将命令输出重定向到文件:

操作系统——操作系统用户界面

     2.管道:管道是一种特殊的重定向操作,其操作符为'|',用于连接左右两个命令,将'|'左边命令的执行结果作为'|'右边命令的输入。并且在同一条命令中可以使用多个'|'连接多个命令。

操作系统——操作系统用户界面

 思考题:

1.比较Windows7与Linux早期版本都有哪些典型的操作界面?操作界面对普通用户选择操作系统有何影响?

Windows的GUI界面、Linux的Shell界面;对应用户来说,肯定会选择互动性高、方便、快捷、直观、易操作的操作系统;不过在不同的需求、环境下,选择的操作系统也有所差别,例如在公司企业当中不适合将Windows作为第一生产力操作系统,更加适合选择Linux。

3.2.2系统调用

操作系统提供的用户接口分为操作界面和系统调用,它们都是操作系统提供给用户与计算机互动的接口。操作界面通常被普通用户使用,系统调用通常被程序员使用。

系统调用的定义:

  操作系统内核为应用程序提供的服务/函数。例如DOS操作系统提供的21h(09)(21号中断9号功能),C语言库提供的printf函数(里面封装了向显示器输出的系统调用)、exit函数(里面封装了操作系统控制进程的函数)。

操作系统——操作系统用户界面

 系统调用的特点:

  1.系统调用一般都涉及核心资源或硬件的操作,所以系统调用的具体代码属于内核,运行于内核态

  2.每个系统调用具有唯一的编号(ID)

  3.调用系统调用会产生中断,这种中断属于自愿中断,因为是程序员安排中断在这里的

系统调用的中断过程:

  实际上与普通中断一样,都是令CPU暂定当前任务的执行,转向执行中断处理程序。

操作系统——操作系统用户界面

调用系统调用后,CPU如何发生态的转换? 

  1.DOS操作系统利用INT 21h中断发生态的转换。以一段汇编代码为例:

string DB 'Hello!'  ;定义要显示的字符串
  ......
MOV DX, string  ;DX字符串地址
MOV AH, 09h  ; AH-09h号子功能
INT 21h

指令"MOV AH,09h"将中断程序的入口地址填入AH寄存器,然后执行"INT 21h"指令,这条指令能够将CPU的态从用户态修改为内核态。

  2.Linux操作系统利用INT 80h中断发生态的转换。以一段汇编代码为例:

;输出字符串︰Hello World !
MOV EBX, 1   ;EBX送1表示stdout
MOV ECX, MSG ;字符串的首地址送入ecx
MOV EDX, 14 ;字符串的长度送入edx
MOV EAX 4   ;指定系统调用的编号
INT 80h     ;中断︰输出字串
MSG: DB "Hello World!"

指令"MOV EAX 4"将4号系统调用的入口地址填入EAX寄存器,然后执行"INT 80h"指令,使得该程序陷入内核,CPU工作在内核态。

隐式系统调用:

  类似于API函数,通常在高级语言中使用,其中包含有"INT 80h"中断指令,执行相应的系统调用。例如C语言程序:

#include <stdio.h>
int main()
{
  printf("Hello World!\n");
  exit(0);          
}

我们虽然看不到任何汇编指令,但熟悉C程序编译过程的朋友一定知道在编译阶段检查完语法之后生成汇编语句。对应的汇编语句就有"INT 80h"这条指令。

Linux系统调用的工作原理:

操作系统——操作系统用户界面文章来源地址https://www.toymoban.com/news/detail-430714.html

到了这里,关于操作系统——操作系统用户界面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端用户体验设计:创造卓越的用户界面和交互

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 用户体验(User Experience,UX)是前端开发中至关重要的一环。一个优秀的用户体验

    2024年02月04日
    浏览(47)
  • ImageJ 用户手册——第四部分(ImageJ用户界面)

    与大多数图像处理程序不同,ImageJ没有主工作区。ImageJ的主窗口实际上相当简洁,只包含一个菜单栏(位于Mac屏幕顶部),其中包含所有菜单命令、工具栏、状态栏和进度栏。图像、直方图、配置文件、窗口小部件等显示在附加窗口中。测量结果显示在结果表中。大多数窗口

    2024年02月10日
    浏览(44)
  • Matlab GUI界面美化:创建令人愉悦的用户界面

    Matlab GUI界面美化:创建令人愉悦的用户界面 在Matlab中,创建一个美观且易于使用的图形用户界面(GUI)对于增强用户体验至关重要。通过使用适当的颜色、布局和交互元素,可以使GUI更加吸引人,并且更易于导航和操作。本文将介绍一些简单而有效的方法,帮助您美化Matl

    2024年02月03日
    浏览(39)
  • java 图形用户界面

    目录 Swing与AWT概述 Swing概述——组件显示  框架与窗体 创建框架对象 框架Frame类结构  框架对象的创建及常用方法 创建Swing窗体对象 Swing窗体JFrame 类结构  Swing 窗体对象的创建  窗体对象常用属性 常用组件——文本组件 JLabel JTextField JPasswordField JTextArea​编辑  Jlist文本列表

    2024年02月06日
    浏览(48)
  • Python图形用户界面

    目录 1.图形用户界面概述 1.1tkinter 2.tkinter概述 2.1tkinter模块 2.2图形用户界面的构成  2.3框架和GUI应用程序类 2.4tkinter主窗口 3几何布局管理器 3.1pack几何布局管理器 3.2grid几何布局管理器 3.3place几何布局管理器 4.事件处理 4.1事件类型 4.2事件绑定 4.3事件处理函数 5.常用组件   

    2024年02月09日
    浏览(42)
  • TestStand-用户界面

    除序列编辑器外,TestStand自带的两类用户界面,分别是SimpleUI(简易用户界面)及Full-Featured UI(全功能用户界面)。 简易用户界面的源代码位于 TestStand安装路径UserInterfaces SimpleLabVIEW或者 TestStand PublicUserInterfaces SimpleLabVIEW目录下。 这两个目录中的内容是完全一样的,为了

    2024年02月14日
    浏览(41)
  • 界面开发(2)--- 使用PyQt5制作用户登陆界面

    上篇文章已经介绍了如何配置PyQt5环境,这篇文章在此基础上展开,主要记录一下如何使用 PyQt5 制作用户登陆界面,并对一些基础操作进行介绍。 下面是具体步骤,一起来看看吧! 1. 打开 Pycharm 中的 Qt Designer 工具。 2. 选择Main Window模式,创建界面窗口。 3. 移除菜单栏和状态

    2024年02月05日
    浏览(56)
  • python如何做出图形界面,用python做图形用户界面

    本篇文章给大家谈谈python如何做出图形界面,以及用python做图形用户界面,希望对各位有所帮助,不要忘了收藏本站喔。 图形用户界面(Graphical User Interface,GUI)是用户与程序交互的接口,好的GUI会大大提高用户交互体验,其实就是我们平时使用电脑时,使用鼠标、键盘点击

    2024年02月03日
    浏览(50)
  • 设计图形用户界面的原则

    1) 一般性原则:界面要具有一致性、常用操作要有快捷方式、 提供简单的错误处理、对操作人员的重要操作要有信息反馈、操作可 逆、设计良好的联机帮助、合理划分并高效地使用显示屏、保证信息 显示方式与数据输入方式的协调一致 2) 颜色的使用:颜色是一种有效的强化

    2024年02月08日
    浏览(67)
  • 4. CSS用户界面样式

    网页中常见的一些三角形, 使用CSS直接画出来就可以, 不必做成图片或者字体图标。 CSS三角做法 代码 : 语法 : 【示例代码】 所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。 ●更改用户的鼠标样式 ●表单轮廓 ●防止表单域拖拽 设置或检索在对象上移

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包