操作系统-操作系统结构

本文对比了Linux和Windows操作系统,探讨了它们内核的工作原理,包括内核的基本功能、Linux的多任务设计(多任务和SMP)、ELF文件格式、Linux的宏内核与微内核区别,以及WindowsNT的混合内核设计和PE文件格式。
摘要由CSDN通过智能技术生成

目录

Linux内核和 Windows 内核

1 内核

2 Linux的设计

3 Windows设计


Linux内核和 Windows 内核


Windows和Linux是我们比较熟悉的两个操作系统,其中Windows系统不开源,在商业上取得了较大成就,而Linux系统开源,服务器所使用的的操作系统基本是Linux,任何人都可以下载Linux并增加自己的改动和功能。这两个系统各有特点,操作系统的核心是内核,可以从内核角度对它们进行比较。


1 内核

首先,我们要知道什么是内核。我们都知道,计算机是由各种外部硬件设备组成的,比如内存,CPU,硬盘等,如果我们使用的每个应用都和这些硬件设备直接对接的话,效率会很低,系统性能也会受到很大的影响。那么,我们用一个中间件来帮助应用和这些硬件的对接通信,这个中间件就是内核,让内核作为应用连接硬件设备的桥梁,应用程序只需要关心与内核的交互,不用关注硬件的细节。

而在现代操作系统中,内核一般会提供4个基本功能:

  • 进程调度能力,管理进程、线程,决定哪个线程、进程使用CPU。
  • 内存管理能力,管理内存,决定内存的分配和回收。
  • 硬件通信能力,管理硬件设备,为进程与硬件设备之间提供通信能力。
  • 提供系统调用,如果应用程序要运行更高权限的任务,那么就需要系统调用,它是用户程序与操作系统之间的接口。

知道了内核的基本概念之后我们来了解内核是怎样工作的?

内核具有很高的权限,可以控制CPU、内存、硬盘等硬件,而应用程序具有很小的权限。因此,大多数操作系统都把内存分为了两个区域:

  • **内核空间:**只有内核程序可以访问。
  • **用户空间:**这个空间只有应用程序使用。

用户空间的代码只能访问一个局部的内存空间,内核空间的代码可以访问所有的内存空间。所以,当程序使用用户空间时,我们说该程序在用户态执行,而当程序使用内核空间时我们称之为在内核态执行。


2 Linux的设计

Linux系统最开始是年仅22岁的Linus Torvalds的芬兰人设计的(22岁的大佬设计出了Linux系统)。

Linux系统的4个主要设计理念:

  • MutiTask,多任务  Linux是一个多任务的操作系统,多任务指的是可以有多个任务同时执行,同时即并发或并行。        
    •  对于单核CPU来说,可以让每个任务执行一小段时间,时间到了就去切换到另外一个任务,从宏观角度看一段时间内执行了多个任务,这就是并发
    • 对于多核CPU来说,多个任务可以同时被不同核心的CPU同时执行,这就是并行
  • SMP,对称多处理
    • **每个CPU的地位是相等的,对资源的使用权限也是相同的,多个CPU共享一个内存,每个CPU都可以访问完整的内存和硬件资源
    • **这一特点决定了Linux操作系统不会有某个CPU单独服务应用程序或内核程序,而是每个程序都可以被分配到任意一个CPU上运行
  • ELF,可执行文件链接格式
    • Linux操作系统中可执行文件的存储格式,它把文件分成了一个个分段,每一个分段都有自己的作用。ELF文件有两种索引,Program header table中记录了运行时所需的段,Section header table记录了二进制文件中各个段的首地址
    • 通过编译器将我们编写的代码编译为汇编代码,接着通过汇编器变成目标代码即目标文件,最后通过链接器把多个文件以及调用的各种函数库链接起来,形成一个可执行文件即ELF文件。
    • 执行ELF文件时,通过装载器把ELF文件装载到内存中,CPU读取内存中的指令和数据,于是程序就开始运行了。
  • Monolithic Kernel,宏内核
    • 宏内核意味着Linux的内核是一个完整的可执行程序,且拥有最高的权限。宏内核的特征是系统内核的所有模块如进程调度、内存管理、文件系统等都运行在内核态。Linux系统也实现了动态加载内核模块的功能

与宏内核相对的是微内核微内核架构的内核只保留最基本的能力如进程调度、虚拟机内存,把一些应用放到了用户空间,如驱动程序、文件系统等,提高了操作系统的稳定性和可靠性

3 Windows设计

Windows7、10使用的内核是Windows NT, NT全称叫New Technology。Windows的内核设计是混合型内核。

混合型内核是宏内核和微内核的结合体相当于内核中还有一个内核,其它模块在这个内核中的基础上搭建的,整个内核就是一个完整的程序。

Windows的可执行文件格式叫PE,称为可移植执行文件,扩展名通常是.exe、.dll、.sys。

两个系统的可执行文件是不可以在对方上运行的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值