软件系统

计算机软件定义

计算机系统中的程序及其文档

软件是用户与硬件之间的接口,用户主要通过软件与计算机进行交流。

软件的分类

  • 系统软件
    • 操作系统
    • 语言处理程序
    • 数据库管理工具
    • 服务程序
  • 应用软件

Tips:有一款老牌的聊天软件叫MSN,国内几乎没人用,但是考过

操作系统

作用

  1. 为计算机中运行的程序管理和分配各种软件资源(GDT等)
  2. 为用户提供友好的人机界面(这个我觉得不一定,毕竟不是所有的操作系统都有GUI的)
  3. 为应用程序的开发和运行提供高效的平台

GDT

GDT( Global Describe Table)全局描述符表,存放段描述符,在保护模式中起作用。

段选择子

可以与段寄存器对应。

段描述符

一种数据结构
顾名思义,描述一个段的开始地址,结束地址,类型等

操作系统的管理

  • 处理器管理(其中进程管理[1]最为重要)
  • 储存管理
  • 文件管理
  • 设备管理

储存管理

任何程序集数据都必须占用内存空间后才能执行,因此存储管理的优点直接影响系统的性能

系统区

存放操作系统的核心程序及标准子程序,例行程序等

用户区

存放用户的程序和数据等,供当前正在执行的应用程序使用

Tips:存储管理主要是对主存储器中的用户区域进行管理,另外也包括对辅存储器的部分管理

文件管理

定义

操作作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统

组成
  • 与文件管理有关的软件
  • 被管理的文件
  • 实施文件管理所需的数据结构
作用(不同的角度)
系统角度

文件系统是对文件存储空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检查的系统

用户角度

为用户建立,存入,读出,修改,转储文件,并控制文件的存取,当用户不再使用时撤销文件等

文件系统(File System)

不同的操作系统有着不同的文件系统,不能互相兼容,大部分程序都基于文件系统进行操作

e.g. Window 的文件系统为NTFS,LINUX则有多种选择(我用的设XFS)

BIOS( basic input output system)

中文

基本输入输出系统

BIOS是什么

在IBM PC兼容系统上,是一种业界标准的固件接口。BIOS这个字眼是在1975年第一次由CP/M操作系统中出现。BIOS是个人电脑启动时加载的第一个软件

工作

  • 上电自检
  • 加载Boot程序
  • 提供BIOS中断

Boot程序

定义

加载Loader的程序,在硬盘的第一个扇区
末尾必须是55aa
Tips:这样的特殊数字被称作魔数

电脑是如何启动的

  1. 开机后BIOS会先进行上电自检
  2. 加载Boot
  3. Boot加载Loader
  4. Loader加载系统内核

BIOS 中断

在系统启动的前期(16位实模式,进入内核前),系统程序通过BIOS和硬件交互。进入保护模式(32位)的最后一步操作就是关闭BIOS中断[2],在这之后就不能使用BIOS 中断了

中断

CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。

用BIOS中断实现Hello World

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
call print

print:
mov ah, 0x0e
.next:
mov al, [si]
cmp al, 0
jz .done
int 0x10
inc si
jmp .next
.done:
ret

hello:
db "Hello World\n", 10, 13, 0; \n\r

Tips: 还有一种常见的中断是系统中断,由操作系统提供。让应用软件便捷的操作硬件(应用层软件无法直接操作硬件——in,out命令)。也有人说学会使用[[系统中断]]是成为底层大佬的第一步

系统中断

定义

系统中断,一般是指硬件中断和软件中断的综合,中断发生后,系统会停止响应,并执行中断响应。

用系统中断实现 Hello world

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
msg: db "hello world!",0x0a
len: equ $-msg


SECTION .text
global mymain

mymain:
mov rax,0x2000004 ;write
mov rdi,1 ;cmd
mov rsi,msg ;string
mov rdx,len ;length for string
syscall


mov rax,0x2000001 ;exit
mov rdi,0 ;exit number
syscall
  1. 为了提高并发颗粒度和降低并发开销,现代操作系统引进了线程的概念,但此时进程仍然是资源分配和保护的单位
  2. 汇编命令为 cli

软件系统
https://www.yunqi-log.link/CCF CSP-S/软件系统/
作者
Yunai
发布于
2023年7月21日
许可协议