当代操作系统综述

Part 1,简单的综述

本文将从内核架构、模块组成、运行原理、功能及接口、应用场景等综述Linux,Windows,Android,iOS,Harmony等几类典型操作系统

1 概念

请解释什么是操作系统的内核架构、模块组成、运行原理、功能及接口、应用场景?

  1. 内核架构:操作系统的内核架构通常分为两种,一种是单体内核架构,将所有的操作系统模块都集成在一个内核中;另一种是微内核架构,将操作系统的基本功能模块化,只保留必要的核心模块运行在内核空间中,其余模块运行在用户空间中,从而提高了系统的可靠性和安全性。

  2. 模块组成:操作系统的模块组成通常包括进程管理、内存管理、文件系统、网络管理、驱动程序等。其中进程管理模块负责管理系统进程的创建、调度和终止等;内存管理模块负责管理系统的内存分配和回收;文件系统模块负责管理文件的读写和存储等;网络管理模块负责管理网络连接和数据传输等;驱动程序模块负责管理各种硬件设备的驱动程序。

  3. 运行原理:指操作系统的各个模块的运行方式以及各个模块的联合运行方式

  4. 功能与接口:操作系统提供了一系列的接口,供应用程序访问和使用操作系统的各种功能,包括进程管理、文件管理、内存管理、网络管理等。这些接口通常包括系统调用和库函数两种形式,供不同的应用程序使用。

  5. 应用场景:操作系统的应用场景非常广泛,从桌面操作系统到移动设备操作系统,再到嵌入式设备操作系统,涉及到计算机的各个领域,包括个人计算机、服务器、移动设备、嵌入式系统等。

2 Linux

2.1 内核架构

Linux内核架构是单体内核架构,也被称为单内核或单内核设计。

单体内核架构的设计思想是将所有操作系统功能都集成到内核中,通过内核提供的接口来实现各种系统功能。这种设计方式可以保证系统的性能和稳定性,因为所有的功能都在同一个内核空间中运行,不需要在不同的进程之间进行复杂的通信和交互。

Linux内核中包含了大量的子系统和模块,这些子系统和模块提供了各种不同的功能,如进程管理、内存管理、文件系统、网络协议栈等等。这些子系统和模块之间相互独立,但又通过内核提供的接口相互关联,形成一个完整的操作系统。

单体内核架构的优点在于,它能够提供高效的系统调用和通信机制,同时也能够充分利用硬件资源。缺点是,由于所有功能都在同一个内核空间中运行,内核的体积和复杂度较大,容易出现安全漏洞和稳定性问题。

2.2 模块组成与运行原理

Linux操作系统的各个模块之间的运行过程是相互关联和相互作用的。以下是各个模块的运行过程:

  1. 进程管理模块:Linux进程管理模块负责管理所有正在运行的进程,包括进程的创建、销毁、调度和通信等。这个模块使用了进程表、任务队列、调度器等数据结构,通过系统调用和信号机制来实现进程的管理。

  2. 内存管理模块:Linux内存管理模块负责管理系统内存的分配和释放,以及进程间内存的共享和保护。这个模块包括物理内存管理、虚拟内存管理和内存映射管理等。Linux使用了虚拟内存技术来实现内存管理,为每个进程分配一个独立的虚拟地址空间,这使得不同进程之间的内存隔离和保护得以实现。

  3. 文件系统模块:Linux文件系统模块负责管理文件和目录的创建、删除、修改和访问等操作。Linux文件系统采用了虚拟文件系统(VFS)机制,允许系统支持多种不同的文件系统类型,如ext3、NTFS、FAT等。

  4. 网络模块:Linux网络模块负责管理网络连接、数据传输和安全性等问题。它包括了TCP/IP协议栈、网络设备驱动、套接字等。Linux网络模块采用了分层架构,将网络协议栈分成了应用层、传输层、网络层和数据链路层等。

  5. 设备驱动模块:Linux设备驱动模块负责管理硬件设备和驱动程序之间的通信。Linux支持多种设备驱动模型,如字符设备驱动、块设备驱动、网络设备驱动等。设备驱动模块通过中断处理、DMA控制等方式与硬件设备进行通信。
    在这里插入图片描述

这些模块之间的运行过程是相互关联和相互作用的,例如进程可以通过系统调用来访问文件系统和网络模块等。而内存管理模块可以管理进程的内存分配和释放等。此外,设备驱动模块也可以在进程和硬件设备之间进行通信。所有这些模块都是由内核提供的,并通过调度器进行协调和管理。

2.3 运行原理

在Linux操作系统中,各个模块之间是通过调用系统调用、中断和事件驱动等方式进行通信和协同工作的。下面是Linux中几个重要模块之间的运行过程简述:

  1. 进程管理模块与内存管理模块:进程管理模块负责创建、撤销和调度进程,而内存管理模块负责分配和回收进程的内存空间。两个模块之间的通信通过系统调用来实现,例如进程创建时需要调用fork()系统调用,内存分配时需要调用malloc()或者brk()系统调用。

  2. 文件系统模块和进程管理模块:文件系统模块负责管理文件和目录,而进程管理模块则负责管理进程和线程。在Linux中,文件系统被视为一种特殊的文件,并且可以被所有进程访问。当一个进程需要读取或者写入文件时,它会向文件系统模块发出系统调用,然后文件系统模块会将数据从磁盘读取或者写入磁盘。

  3. 网络模块和进程管理模块:网络模块负责管理网络接口和数据传输,而进程管理模块则负责管理进程和线程。在Linux中,进程可以通过socket接口向网络模块发送请求,然后网络模块会将请求转发到对应的网络设备上,从而实现网络通信。

在Linux中,各个模块之间的通信方式是非常灵活的,可以通过系统调用、中断、事件驱动等多种方式实现。这种模块化的设计使得Linux可以更加灵活地适应不同的硬件和应用场景,同时也方便了系统的维护和开发。

2.4 功能及接口

Linux系统提供三种接口:

  1. 图形界面操作接口,Linux系统一般提供KDE、Gnome等图形界面接口,目的是方便普通用户操作计算机。
  2. 控制台接口,即终端接口,Linux系统一般提供bash shell、cshell等等终端接口,目的是方便系统管理员操作计算机,事实上Linux功能的强大也主要体现在终端接口。
  3. API接口:即application interface,这是应用程序接口,从编程角度Linux系统就是一个大的程序调用库,它提供大量的API函数,目的是方便程序员开发应用程序。

2.5 应用场景

Linux操作系统在各种场景下都有广泛的应用,以下是一些典型的应用场景:

  1. 服务器和数据中心:Linux作为服务器操作系统非常流行,特别是在大规模数据中心和云计算环境中,如Google、Amazon、Facebook等。

  2. 嵌入式系统:Linux在嵌入式系统中也得到广泛应用,比如智能手机、平板电脑、路由器、电视、机顶盒、车载娱乐系统等。

  3. 移动设备:Linux内核被用于移动操作系统中,如Android、Sailfish OS等。

  4. 超级计算机:Linux在超级计算机领域也是非常受欢迎的操作系统,例如排名前几的超级计算机中有绝大多数都运行着Linux。

  5. 桌面系统:虽然Linux在桌面领域的市场份额相对较小,但仍有大量用户和开发者使用Linux作为桌面操作系统。

总之,Linux操作系统在各种场景下都有广泛应用,其高度可定制性、灵活性、安全性和稳定性使其成为许多企业和组织的首选操作系统。

3. Windows

3.1 内核架构

Windows的内核架构是混合内核架构。

混合内核架构在设计上结合了微内核和单体内核的特点。与单体内核不同的是,混合内核将一部分内核功能以动态链接库(DLL)的形式提供,这些功能包括用户模式和内核模式下的系统服务,如文件系统、网络协议栈、图形子系统等。而微内核则将系统服务作为独立的进程运行。

混合内核架构的优点在于,通过将某些功能转移到用户模式下的DLL,可以减小内核的体积,提高内核的稳定性和安全性。同时,它也继承了单体内核的优点,如快速的系统调用和通信机制,简单的代码结构等。

然而,混合内核架构也存在一些缺点。由于一部分内核功能在用户模式下运行,因此它们会受到更多的限制,例如性能、访问权限、安全等方面。另外,DLL库的加载和卸载也会增加系统开销,使得系统的响应速度变慢。

3.2 模块组成

  1. 进程管理模块:Windows使用进程和线程来管理应用程序和系统服务。进程是一个独立的执行环境,每个进程都有自己的内存空间和系统资源。线程是进程中的一个执行单元,它可以与其他线程共享进程的内存和系统资源。
  2. 内存管理模块:Windows使用虚拟内存来管理系统内存。虚拟内存是一种在硬盘上模拟的内存空间,它允许应用程序使用比实际物理内存更多的内存。Windows还提供了内存保护、内存共享和内存分页等功能。
  3. 设备驱动程序模块:Windows使用设备驱动程序来管理硬件设备,包括鼠标、键盘、打印机、网卡、声卡等。驱动程序充当操作系统和硬件设备之间的中间层,使操作系统能够与硬件设备通信。
  4. 网络协议栈模块:Windows提供了多种网络管理功能,包括TCP/IP协议、网络共享、远程桌面、VPN和防火墙等。这些功能使Windows成为一款强大的网络操作系统。
  5. 文件系统模块:Windows使用NTFS文件系统来管理磁盘上的文件和文件夹。NTFS支持文件和文件夹的安全性、压缩、加密和备份。此外,Windows还支持其他文件系统,如FAT32和exFAT。

3.3 运行原理

Windows操作系统的各个模块之间的交互是复杂的,给出一些例子:

  1. Windows内核和驱动程序之间的交互。当一个设备被插入计算机时,Windows内核会与设备驱动程序进行交互,以确定设备的类型和状态。一旦确定了设备类型,内核会加载相应的驱动程序,并将控制权传递给它。驱动程序然后与设备进行通信,以便操作系统可以使用设备。

  2. Windows内核和用户空间进程之间的交互。当一个程序在Windows上运行时,它将运行在用户空间,但是它需要与内核进行交互,以便能够使用系统资源,如文件、网络和设备。为了实现这种交互,Windows提供了许多API和系统调用,可以让应用程序与内核进行通信。

  3. Windows内核中不同模块之间的交互。例如,Windows的文件系统驱动程序和网络驱动程序必须与内核的I/O管理器进行交互,以便能够访问文件和网络资源。类似地,Windows的安全子系统必须与内核的安全管理器进行交互,以便能够保护系统免受恶意软件和攻击。

  4. Windows内核和系统服务之间的交互。Windows提供了许多系统服务,如Windows Update、Windows Defender和Windows Firewall等,这些服务需要与内核进行交互,以便能够访问系统资源和执行操作。例如,Windows Update服务需要与内核的网络驱动程序和安全子系统进行交互,以便能够下载和安装更新。

这只是Windows内核和其它模块之间交互的一些简单例子,实际上这些模块之间的交互非常复杂,并且有时也会涉及到更多的模块。

3.4 功能及接口

1.基础服务(Base Services)

提供对Windows系统可用的基础资源的访问接口。比如象:文件系统(file system)、外部设备(device)、,进程(process)、线程(thread)以及访问注册表(Windows registry)和错误处理机制(error handling)。这些功能接口位于,16位Windows下的 kernel.exe、krnl286.exe 或 krnl386.exe 系统文档中;以及32位Windows下的 kernel32.dll 和 advapi32.dll 中。

2.图形设备接口(GDI)

提供功能为:输出图形内容到显示器、打印机以及其他外部输出设备。它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。

3.图形化用户界面(GUI)

提供的功能有创建和管理屏幕和大多数基本控件(control),比如按钮和滚动条。接收鼠标和键盘输入,以及其他与GUI有关的功能。这些调用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。从Windows XP版本之后,基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。

4.通用对话框链接库(Common Dialog Box Library)

为应用程序提供标准对话框,比如打开/保存文档对话框、颜色对话框和字体对话框等等。这个链接库位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被归类为User Interface API之下。

5.通用控件链接库(Common Control Library)

为应用程序提供接口来访问操作系统提供的一些高级控件。比如像:状态栏(status bar)、进度条(progress bars)、工具栏(toolbar)和标签(tab)。这个链接库位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。。它被归类为User Interface API之下。

6.Windows外壳(Windows Shell)

作为Windows API的组成部分,不仅允许应用程序访问Windows外壳提供的功能,还对之有所改进和增强。它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(Windows 95则在 shlwapi.dll中)。 它被归类为User Interface API之下。

7.网络服务(Network Services)

为访问操作系统提供的多种网络 功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。

3.5 应用场景

Windows操作系统是一种广泛应用的操作系统,其应用场景非常广泛。以下是Windows操作系统的主要应用场景:

  1. 个人电脑和笔记本电脑:Windows是桌面电脑和笔记本电脑上最流行的操作系统之一。它具有友好的用户界面、广泛的硬件兼容性以及强大的软件生态系统,使其成为许多个人用户的首选操作系统。

  2. 企业服务器:Windows Server是一个流行的企业服务器操作系统,可用于运行企业应用程序、管理网络和提供其他重要功能。它可以管理大量用户、数据和应用程序,并提供安全、可靠的解决方案。

  3. 游戏平台:Windows是游戏开发者和游戏玩家的首选平台之一。许多游戏都是为Windows平台开发的,因此使用Windows操作系统可以确保获得最佳的游戏性能和体验。

  4. 移动设备:Windows操作系统也被用于一些移动设备,如平板电脑和手机。虽然市场份额不如Android和iOS,但Windows移动设备仍然有它的用户群体,尤其是在一些专业领域的应用上。

  5. 物联网:Windows IoT是一个专门为物联网设备开发的操作系统。它可以帮助开发者快速构建和部署物联网设备,从而促进物联网技术的普及和发展。

Windows操作系统的应用场景非常广泛,无论是个人用户、企业用户还是开发者,都可以在Windows操作系统中找到适合自己的解决方案。

4 Android

4.1 内核架构

Android的内核架构是单体内核架构。这种架构下,所有的内核功能都集成在一个单独的内核中,不像微内核架构或混合内核架构那样将内核功能划分到多个不同的模块中。

在Android中,内核提供了许多基本的功能,如进程管理、内存管理、文件系统、网络协议栈、驱动程序等。同时,Android还有一些专门的模块,如HAL(Hardware Abstraction Layer)模块、运行时库、Android Framework等,它们是在内核之上提供的其他服务和功能。这些模块与内核之间通过标准的Linux系统调用和IPC机制相互通信。

Android的单体内核架构使得内核代码的维护、开发和测试更加简单和高效,同时也减少了内核通信的开销。但是,由于所有的内核功能都集成在一个内核中,因此内核代码变得非常庞大和复杂,容易引入一些安全漏洞。因此,在Android中,开发者需要采取一些额外的安全措施来保证系统的安全性和稳定性。

4.1.1 Android和Linux的内核架构的对比

Android是基于Linux内核的操作系统,但它在Linux内核的基础上做了一些修改和优化,以适应移动设备的特殊需求。其中,最显著的不同是Android内核加入了一些新的驱动程序,如SurfaceFlinger和Binder驱动程序,以支持Android独特的图形和通信机制。此外,Android还引入了一个用户空间进程——Zygote,它用于预加载应用程序进程,从而缩短应用程序启动时间。此外,Android还提供了许多独有的功能和服务,如Dalvik虚拟机、应用程序框架和各种系统应用程序等,这些都是在Linux内核的基础上构建的。

Linux内核是一个通用的操作系统内核,它被设计用于支持多种硬件平台和应用场景。它提供了丰富的功能和服务,如进程管理、内存管理、文件系统、网络协议栈和驱动程序等。与Android不同的是,Linux内核不提供应用程序框架和应用程序接口,这些都是由用户空间的系统库和应用程序提供的。此外,Linux内核的开发和维护是一个开放的社区活动,它采用了稳定的开发模式和版本控制机制,以保证内核的稳定性和兼容性。

总的来说,Android和Linux都采用了单内核架构,但它们之间的实现方式和机制存在差异,这也决定了它们在功能和服务、应用程序开发和维护、兼容性和稳定性等方面的差异。

4.2 模块组成

Android操作系统的模块组成包括以下几个主要模块:

  1. Linux内核:Android操作系统基于Linux内核构建,提供了底层硬件驱动、内存管理、进程管理、安全机制等基础功能。
  2. 系统运行时库:包括Dalvik虚拟机和ART虚拟机、C/C++运行时库等,用于支持应用程序的运行。
  3. 系统服务:提供了一系列系统服务,如Activity Manager、Window Manager、Package Manager、Notification Manager、Location Manager等,以支持应用程序的开发和运行。
  4. 应用程序框架:包括各种API接口和开发工具,如Android SDK、Android Studio等,用于方便应用程序的开发和调试。
  5. 应用程序:包括各种应用程序和系统应用,如浏览器、短信、电话、联系人、相机、图库等,用于满足用户各种需求。
  6. 硬件抽象层(HAL):用于提供各种硬件设备的驱动程序和接口,如摄像头、Wi-Fi、蓝牙、传感器等,方便硬件厂商进行集成和开发。
  7. 内核驱动程序:用于支持硬件设备的底层操作,如设备驱动程序、文件系统驱动程序、网络驱动程序等。

Android操作系统的模块组成比较复杂,不同模块之间有着紧密的联系和协作,共同构成了一个完整的操作系统。这些模块相互协作,为用户提供了安全、稳定、高效的移动设备操作系统。

4.3 运行原理

当Android设备启动时,它会首先运行引导程序,然后加载内核。内核启动后,它会初始化硬件并加载一些关键模块,如进程管理、内存管理和设备驱动程序等。这些模块在Android中以内核模块的形式存在,以便在需要时进行加载和卸载。

在内核启动后,Android会启动一个称为“Init”的守护进程。该守护进程会读取/init.rc文件,其中包含了一系列启动和配置系统的命令。Init进程启动后,它会按照/init.rc文件中的指令,启动和初始化其他系统服务和进程,如Zygote进程(用于启动应用程序进程)、SurfaceFlinger(用于管理显示系统)和System Server(用于管理系统服务)等。

Android的应用程序是以进程的形式运行的。当用户启动应用程序时,系统会启动一个新的进程,并在其中运行应用程序的代码。Android应用程序运行在自己的进程中,并通过Binder IPC机制进行通信。

Android的界面是由应用程序的Activity组成的,Activity可以包含多个视图控件,如TextView、Button和ImageView等。这些视图控件由Android的视图系统进行管理和渲染,视图系统负责将应用程序的用户界面绘制到屏幕上。

Android还提供了一系列核心库,如Android Runtime(ART)、Java核心库、Surface Manager和Media Framework等。这些库提供了各种功能,如应用程序运行时环境、图形显示、媒体播放和通信等。

4.4 功能及接口

Android是一个功能强大的移动操作系统,提供了广泛的功能和接口,可以支持各种类型的应用程序。以下是Android的主要功能和接口:

  1. 应用程序框架:Android提供了一组API,开发人员可以使用这些API来创建Android应用程序。这些API包括各种组件,如Activity、Service、BroadcastReceiver、ContentProvider等,以及各种应用程序功能,如用户界面、多媒体、网络通信、数据存储等。

  2. 系统组件:Android包括许多系统组件,如电话、短信、联系人、日历、相机等。这些组件可以被其他应用程序使用,或者作为系统应用程序来使用。

  3. 多任务处理:Android允许多个应用程序同时运行,并且用户可以轻松地在应用程序之间切换。

  4. 多点触摸:Android支持多点触摸,允许用户使用手指在屏幕上进行各种手势操作。

  5. 通知:Android提供了通知系统,可以让应用程序在后台运行时向用户显示消息。

  6. 资源管理:Android使用资源来管理应用程序中的文本、图像、布局等元素。这些资源可以在应用程序中轻松访问,并且可以自动适应不同的设备屏幕尺寸。

  7. 安全性:Android提供了多种安全功能,如应用程序沙箱、权限管理、加密数据存储等,以确保用户数据和设备的安全性。

  8. 虚拟机:Android应用程序运行在Dalvik虚拟机上,这使得Android可以在不同的硬件设备上运行,并且具有良好的兼容性和可移植性。

Android的接口包括Java API、C/C++ API和Android NDK。Java API用于开发应用程序和系统组件,而C/C++ API和Android NDK用于开发底层系统组件和驱动程序。

4.5 应用场景

Android操作系统广泛应用于移动设备和智能家居设备等嵌入式系统中。在移动设备领域,Android被广泛应用于智能手机、平板电脑、智能手表、智能电视等设备中。由于Android具有开放源代码、高度可定制化、应用程序生态系统丰富等优点,许多手机厂商和其他厂商都采用Android作为其设备的操作系统。

除了移动设备领域,Android也被广泛应用于智能家居、智能穿戴等设备中。例如,智能音箱、智能家居控制器、智能门锁等智能家居设备常常使用Android作为其操作系统。

总的来说,Android具有高度可定制化、开放源代码、良好的应用程序生态系统和丰富的功能与接口,这些特性使得它成为各种嵌入式系统的理想选择,从而在许多领域都得到了广泛应用。

5 iOS

5.1 内核架构

iOS 内核是混合微内核和单体内核设计,这意味着它结合了两种类型内核架构的特点。微内核架构是一种极简设计,通过仅提供进程管理和进程间通信所需的基本服务,使内核尽可能小。而单体内核架构则在内核本身提供更全面的服务,例如文件系统和设备驱动程序。

iOS 内核基于苹果公司开发的 XNU 操作系统内核。XNU 是一个开源内核,结合了 Mach 微内核、BSD 内核子系统和 I/O Kit 驱动程序框架。Mach 微内核提供进程管理、内存管理和进程间通信的基本抽象。BSD 子系统提供 POSIX 兼容接口,用于管理文件、套接字和其他系统资源。I/O Kit 框架提供了一层抽象,用于设备驱动程序和其他与硬件相关的功能。

总的来说,iOS 内核架构旨在提供高水平的安全性和性能,同时最小化系统崩溃或其他可能影响用户体验的问题的风险。通过结合微内核和单体内核架构的元素,iOS 内核在效率和灵活性之间提供了平衡,同时仍然保持了高水平的安全性和稳定性。

5.1.1 对比Windows和iOS

虽然iOS和Windows都使用了混合内核架构,但它们之间的实现方式和机制存在不同。

在iOS中,混合内核架构被称为XNU内核,它由Mach微内核和BSD宏内核两部分组成。Mach微内核提供了最基本的内核功能,如线程和进程管理、内存管理和IPC等,而BSD宏内核则提供了更高层次的服务,如网络协议栈、文件系统和安全认证等。Mach微内核和BSD宏内核之间通过MIG(Mach Interface Generator)生成的接口进行通信。这种设计使得iOS具有更好的安全性和稳定性,同时也能够满足各种应用的需求。

在Windows中,混合内核架构被称为Windows NT内核,它由微内核和服务器进程两部分组成。微内核提供了最基本的内核功能,如进程管理、内存管理、线程管理和对象管理等,而服务器进程则提供了更高层次的服务,如文件系统、网络协议栈和安全服务等。微内核和服务器进程之间通过RPC(Remote Procedure Call)和共享内存等机制进行通信。这种设计使得Windows具有更好的可扩展性和可维护性,同时也能够提供更好的用户体验。

总的来说,iOS和Windows都采用了混合内核架构,但它们之间的实现方式和机制存在差异,这也决定了它们在安全性、稳定性、可扩展性和用户体验等方面的差异。

5.2 模块组成

  1. Mach 微内核是 iOS 内核架构的核心。它负责管理进程和内存,并提供进程间通信的机制。Mach 微内核是极简设计,仅提供进程管理和通信所需的基本服务。这使得它比单体内核架构更安全、更易于维护。
  2. BSD 子系统是一组内核服务,为用户级软件提供 POSIX 兼容接口。这包括文件系统、网络和其他系统服务。BSD 子系统是单体设计,已集成到内核中。这使它比微内核设计更高效,因为不需要进程间通信的开销。
  3. I/O Kit 驱动程序框架负责管理设备驱动程序和其他与硬件相关的功能。它提供了内核和硬件之间的一层抽象,使添加新硬件设备到系统更容易。I/O Kit 驱动程序框架是单体设计,已集成到内核中。
  4. Security模块负责处理系统的安全性,包括身份验证、授权和加密等任务
  5. 网络协议栈模块:该模块包括了各种网络协议和服务,包括TCP/IP、UDP、HTTP、SSL/TLS、DNS等。它负责处理网络通信和数据传输,提供了网络连接的基础设施
  6. File System模块负责管理iOS文件系统,包括访问权限、文件操作和存储管理等任务

5.3 运行原理

以下是iOS操作系统的几个模块之间的运行的几个例子:

  1. Mach微内核和BSD子系统:Mach微内核主要负责内存管理和进程管理,而BSD子系统则负责文件系统、网络协议和用户权限等。两个模块协同工作,实现了iOS的基本功能,例如应用程序的加载、文件的读写和网络通信等。

  2. I/O Kit和Core Audio:I/O Kit是iOS设备驱动程序的基础,负责管理硬件设备的访问和通信。而Core Audio则提供了音频相关的服务和接口,例如音频播放、录制和处理等。这两个模块协同工作,可以让iOS设备与外部设备进行音频数据的交互,例如耳机、扬声器和麦克风等。

  3. Core Data和UIKit:Core Data是iOS的持久化框架,用于管理应用程序中的数据存储和检索。而UIKit则是iOS的UI框架,用于创建和管理应用程序的用户界面。这两个模块协同工作,可以让应用程序以一种简单的方式访问和操作持久化数据,并将数据呈现给用户。

  4. Core Animation和Core Graphics:Core Animation提供了iOS应用程序中的动画效果,例如渐变、缩放和旋转等。而Core Graphics则提供了iOS应用程序中的图形处理功能,例如绘制、渲染和变换等。这两个模块协同工作,可以让应用程序在用户界面上展现出各种各样的图形和动画效果。

5.4 功能及接口

主要功能

  1. 处理器管理:管理CPU资源,确保应用程序和系统的正常运行。
  2. 存储管理:管理设备的存储空间,包括文件系统和存储器(例如硬盘或固态硬盘)。
  3. 网络管理:提供Wi-Fi、蜂窝网络和蓝牙等网络连接,允许应用程序进行网络通信。
  4. 用户界面:提供用户界面元素,包括图标、菜单、对话框和通知等,让用户与设备交互。
  5. 应用程序管理:管理应用程序的生命周期,包括启动、暂停、停止和销毁。
  6. 安全性:提供多种安全功能,包括数据加密、应用程序沙箱、Touch ID、Face ID等。
  7. 多媒体功能:支持音频、视频、图像等多媒体功能,包括拍照、录像、音乐播放和视频播放等。

接口供开发者使用

  1. UIKit:为iOS应用程序提供用户界面元素,例如按钮、标签、文本框等。
  2. Foundation框架:提供了数据管理、字符串处理、日期和时间管理等基础功能。
  3. Core Data:用于在应用程序中创建和管理数据模型,支持关系数据库。
  4. Core Animation:提供了动画支持,使应用程序具有吸引人的动态效果。
  5. Core Location:提供位置服务,支持应用程序的定位功能。
  6. AVFoundation框架:提供了音频和视频处理功能,使开发人员可以在应用程序中实现多媒体功能。
  7. MapKit:提供地图和位置服务支持,开发者可以使用地图和位置信息来构建应用程序。
  8. HealthKit:提供健康数据收集和管理功能,可以用于构建健康和健身类应用程序。

这些接口使开发者可以利用iOS操作系统的功能来构建各种类型的应用程序。

5.5 应用场景

  1. 智能手机:iOS操作系统是iPhone的操作系统,具有流畅、稳定、易用等特点,同时支持丰富的应用程序。
  2. 平板电脑:iPad是基于iOS操作系统开发的平板电脑,其支持的应用程序和功能与iPhone类似,同时拥有更大的屏幕和更强大的处理能力,可满足用户对于移动性和生产力的需求。
  3. 移动应用程序:iOS操作系统支持丰富的移动应用程序,包括社交、娱乐、办公等各种类型,用户可以通过App Store进行下载安装。
  4. 智能穿戴设备:iOS操作系统也被应用于Apple Watch等智能穿戴设备,为用户提供便捷的操作体验和生活助手功能。

6 Harmony

内核架构

Harmony OS的内核架构是微内核架构。在这种架构中,操作系统内核只提供了最基本的服务,如进程管理、内存管理和线程调度等,其他功能都以插件的形式在用户空间运行。这种架构的优点是更灵活、更容易维护和更新,同时也可以提高系统的可靠性和安全性。

Harmony是华为公司自主研发的操作系统,其内核架构可以被分成三个部分:微内核、驱动框架和应用框架。

  1. 微内核

Harmony的微内核是一个非常小的内核,只包含了最基本的操作系统功能,例如线程管理、内存管理、进程间通信、设备驱动程序和安全性等。微内核的设计目的是将核心的系统服务尽可能地减少,使得系统更加轻量级、可靠和安全。

  1. 驱动框架

驱动框架是Harmony的重要组成部分,它负责管理系统硬件设备的驱动程序。驱动框架包括了各种硬件抽象层(HAL)和硬件驱动接口(HDI),它们将硬件设备和操作系统分离开来,从而简化了设备驱动程序的开发和维护。

  1. 应用框架

应用框架是Harmony中的顶层框架,它提供了各种应用程序和服务,例如图形用户界面、多媒体、网络通信、安全和隐私等。应用框架使得应用程序的开发更加容易和高效,并提供了各种API和SDK,以支持开发者创建自己的应用程序和服务。

总之,Harmony的内核架构是基于微内核的设计思想,通过驱动框架和应用框架来提供各种服务和功能。Harmony的内核设计旨在提高系统的性能、可靠性和安全性,并支持各种设备和应用程序的开发和部署。

模块组成

  1. 内核模块:负责管理计算机的核心功能,包括系统调用、进程调度、中断处理等功能。
  2. 驱动模块:负责管理计算机的硬件设备,包括设备的初始化、控制、数据传输等功能。
  3. 分布式协同能力模块:实现Harmony OS的分布式协同能力,包括分布式调度、分布式通信等功能。
  4. 安全模块:负责管理Harmony OS的安全性,包括用户认证、数据加密、访问控制等功能。
  5. 图形用户界面模块:负责管理Harmony OS的图形用户界面,包括窗口管理、事件处理、绘图等功能。
  6. 应用程序框架模块:提供应用程序开发的框架和工具,包括图形用户界面库、多媒体库、网络库等。
  7. 系统服务模块:提供系统级服务,包括文件系统、时间服务、定时器服务等。
  8. 人工智能模块:提供人工智能功能,包括语音识别、人脸识别、自然语言处理等。

Harmony OS的模块组成注重分布式协同能力和安全性

运行原理

HarmonyOS的各个模块之间通过微内核进行交互和通信,其中最核心的是分布式软总线技术。下面举几个例子说明各个模块之间的工作流程:

  1. 软件总线与分布式能力
    HarmonyOS的分布式软件总线技术(Distributed Software Bus,DSB)可以使应用程序在多个设备和多种服务之间进行交互和通信。DSB的实现基于微内核技术,它通过微内核为不同的服务提供了一种通用的、可插拔的通信机制。例如,当一个应用程序需要使用Wi-Fi功能时,它可以通过DSB调用Wi-Fi服务,而不用关心该服务是在本地还是在远程设备上运行的。

  2. 驱动程序模块
    HarmonyOS的驱动程序模块是内核模块,主要负责管理和控制硬件设备的操作。例如,当用户在设备上触摸屏幕时,驱动程序模块将检测到该操作并将其转换为相应的信号,然后将该信号传递给其他模块进行进一步处理。

  3. 图形显示模块
    HarmonyOS的图形显示模块负责管理和显示图形界面,它包括了窗口管理器、绘图引擎、图形设备接口等。例如,当用户在设备上打开一个应用程序时,图形显示模块将根据应用程序的需求显示相应的界面,包括菜单、按钮、文本等。

  4. 安全模块
    HarmonyOS的安全模块包括身份认证、加密和访问控制等,它的主要功能是保护设备和用户的隐私和安全。例如,在用户登录设备时,安全模块将验证用户的身份并授予相应的权限,同时对用户的数据进行加密保护。

这些只是HarmonyOS各个模块之间的工作流程的一部分

功能及接口

  1. 应用程序接口(API):应用程序接口是HarmonyOS最常用的接口之一,用于向应用程序开发人员提供操作系统功能。这些API包括UI、网络、文件系统、多媒体等等,可以帮助开发人员开发出功能丰富的应用程序。

  2. 服务接口(Service API):服务接口是HarmonyOS提供的一种基于IPC(进程间通信)的接口,可以让不同的应用程序之间共享数据和功能。例如,应用程序可以通过服务接口调用系统级别的功能,如Wi-Fi模块、传感器等等。

  3. 系统服务接口(System Service API):系统服务接口是HarmonyOS提供的一种接口,可以让应用程序访问底层硬件、系统服务和系统资源,如通讯服务、位置服务、系统设置等等。

  4. 应用程序框架接口(Application Framework API):应用程序框架接口是HarmonyOS提供的一种高级别接口,可以让开发人员轻松地创建应用程序。这些接口包括应用程序管理、事件管理、资源管理、界面管理等等。

  5. 设备驱动程序接口(Device Driver API):设备驱动程序接口是HarmonyOS提供的一种接口,可以让应用程序访问硬件设备。这些接口包括内核驱动程序接口、用户空间驱动程序接口等等。

应用场景

  1. 智能家居领域:通过HarmonyOS的分布式架构,可以将智能家居设备连接起来,实现智能家居的全面控制和管理。
  2. 汽车领域:HarmonyOS可以在汽车中实现一系列智能功能,包括自动驾驶、车联网、车载娱乐等。
  3. 移动设备领域:HarmonyOS可以应用于智能手机、平板电脑、智能手表等移动设备,提供更加流畅、高效的用户体验。
  4. 工业控制领域:HarmonyOS可以应用于工业控制设备,实现对设备的远程控制和管理。

ROS

ROS 是 Robot Operating System 的缩写,通常称为“机器人操作系统”。但它并不是一个真正的操作系统,而是一个面向机器人的开源的元操作系统(meta-operating system),提供类似传统操作系统的诸多功能:硬件抽象、底层设备控制、常用功能实现、进程间消息传递、程序包管理等。并且提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。

机器人操作系统面临的挑战:

  1. 多域异构资源管理。每一类机器人都有大量专用软件,导致机器人智能满足指定的需求,只能在特定环境中执行固定任务,难以建立机器人与机器人的互联互通。
  2. 复杂机器人的自主行为控制。受“感知-规划-行动”控制回路的影响,机器人在面对复杂的环境,多变的任务时,其行为具有不确定性,机器人行为复杂多变。
  3. 群体智能。单体智能一定程度上具备了相对简单环境的感知能力、自主能力以及初级的人机互理解能力,但在执行复合多样任务,需要实现一对多、多对多的人机相互理解、人机协同等方面。

micROS

核心概念

控制抽象和数据抽象是操作系统基础研究的核心内容。

基于角色的控制抽象

采用基于角色(actor)的思想,研究单体机器智能与群体机器智能结构的关联性,重点是角色设定与交互规则、基于学习的角色能力形成机理、角色的智能生成与演化机理,以及分布结构模型中各角色的分工协作.我们以多智能体(multi agent system, MAS)、计算机支持协同工作(computer supported cooperative work,CSCW)等理论为基础,提出了基于角色模型的群体智能机器人操作系统控制抽象。角色是机器人及机器人群体面向特定任务的一次行为的抽象,它与传统计算机操作系统中进程核心概念的对比如下所示。
在这里插入图片描述

基于语义情景图的数据抽象

提出语义情境图作为机器人操作系统的数据抽象,以实现机-机协同与人-机协同、数据融合、异步更新、多视图共享、事件触发等功能。语义情境图和传统计算机操作系统中文件的概念对比如下所示。
在这里插入图片描述

模块组成与接口

micROS按照群体智能操作系统的结点层次式架构设计开发。核心模块包括资源管理层和群体行为操控支撑架构层。其中,资源管理层分为物理域(physics domain)资源管理、信息域(information domain)资源管理、认知域(cognition domain)资源管理和作战域/社会域(social domain)资源管理共4个子模块;群体行为操控支撑架构层分为群体观察支撑框架observe、群体判断支撑框架orient、群体决定支撑框架decide、群体行动支撑框架act共4个子模块。群体智能操作系统软件原型的每一个子模块都基于“软件总线+插件”的设计进行开发,例如群体行动支撑框架act子模块中包含群体行动软件总线act_softbus和群体行动功能插件库plugins。micROS在插件库中提供了典型功能插件范例,并且支持第三方根据插件接口规范进行软件的插件化扩展。目前micROS提供的典型插件范例包括多种无人系统传感器驱动插件、典型控制器插件、导航定位数据处理插件、可见光数据处理插件、路径规划插件、群体行动自适应插件、群体动力控制插件、局部运动插件等。

操作系统面临的一些问题以及未来的发展趋势(为解决这些问题)

操作系统未来的发展趋势可能包括以下几个方面:

  1. 安全:随着互联网的发展,网络安全已经成为了一个极其重要的问题。操作系统的未来将更加注重安全性,尤其是在与云计算、物联网、人工智能等相关的领域。

  2. 跨平台化:随着计算机硬件和软件的发展,操作系统的跨平台特性越来越受到重视。未来的操作系统将更加注重在不同的平台上实现无缝的集成和互通。

  3. 人工智能:人工智能将逐渐成为操作系统发展的新方向。未来的操作系统将借鉴人工智能技术,使得操作系统更加智能化、自适应和自动化。

  4. 虚拟化:虚拟化技术将继续成为操作系统的发展重点。未来的操作系统将更加注重虚拟化技术的发展,提高系统的可伸缩性和灵活性,支持多种应用场景的需求。

  5. 开放性:开放源代码已经成为了当前许多操作系统的发展趋势。未来的操作系统将更加注重开放性和社区共建,加强与开源社区的合作,共同推动操作系统的发展和创新。

除却以上部分,结合HarmonyOS的设计理念与发展目标,以及未来万物智联的发展趋势再给出如下说明:
操作系统经历了60多年的发展,历经多代,从最早期的多任务操作系统,如MULTICS和UNIX,到适用于个人计算机的多处理器操作系统,如 Linux 和Windows,再到最近十多年广泛流行的移动操作系统,如iOS和Android,其核心技术已经非常成熟,软件复杂度也达到了上亿行代码的规模。操作系统的每一次大发展必定跟计算机硬件的发展密切相关。随着物联网时代的到来,操作系统必将迎来新的发展。未来,在更多场景会有越来越多的连接和计算在更多其他设备(包括边缘设备)上完成。操作系统所管理的设备的概念外延就扩展了。以往的操作系统通常对单一设备进行管理,但是未来的操作系统需要对处于连接状态的分布式多终端进行统一管理。

结合文章《陈海波:面向 2030 的操作系统架构与演进思考》
操作系统未来将在

  1. 人机交互:更方便的人机交互(语言、姿态等)
  2. 任务调度:随5G的出现,在网络通信中,端系统应当采取有效的方式组织保证端到端时延。
  3. 算力资源:在未来,计算方式的多样化将要求操作系统能够对不同计算进行合理统筹
  4. OS组件库:使用一个操作系统很难适应所有场景,尝试构建一个专属OS的组件库,通过应对不同场景来进行组装来解决该问题
  5. OS资源管理:当前操作系统进行统筹任务采用的是简单近似算法,随着系统复杂性的上升,该算法的资源统筹效果会渐显不佳。因此未来统筹资源将倾向于更加精确的统筹分配
  6. 向下架构的兼容性:操作系统为了能够实现跨系统、跨算力,需要能够感知底层架构,并能够合理根据芯片架构进行并发和协同设计。
  7. 新型计算架构:当前DSA架构的计算架构有较大弊端,难维护、功能重叠、运算复用性低、效率低。为解决该问题,有必要开发新型的计算架构
  8. 新型存储架构
  9. 数字信任体系:数字信任体系将更多的由应用视角出发。
  10. 从分层解耦走向垂直整合:解决由于传统增加抽象层而引起的“层次厚重”的问题

以上所述的几个方面进行进一步发展。

猜你喜欢

转载自blog.csdn.net/qq_41624557/article/details/130546314