Lectura DP: "sistema operativo openEuler" (3) Clasificación de sistemas operativos


GIF de lectura del PD
El sistema operativo se encuentra entre la capa de aplicación y la capa de hardware, mira la aplicación y mira el hardware a continuación.

En la capa de aplicación, en escenarios como la conducción autónoma y la conducción industrial, la confiabilidad del sistema operativo ocupa una posición más importante. Los microkernels son más populares y los sistemas operativos de biblioteca también son muy populares en las plataformas de computación en la nube.

A nivel de hardware, el proceso de fabricación de semiconductores está cerca del límite físico , el rendimiento de un solo núcleo está cerca del cuello de botella y los procesadores de uso general están pasando de múltiples núcleos a muchos núcleos.

Las tendencias de desarrollo de los sistemas operativos implican las siguientes direcciones:

  1. Computación perimetral: a medida que los dispositivos IoT se conectan a la red, las aplicaciones de procesamiento de datos migran al perímetro. Esto impulsará el desarrollo de sistemas de servidores, incluidas nuevas arquitecturas de almacenamiento escalables que ejecutan bloques, archivos y objetos en servidores estándar basados ​​en x86. Los dispositivos informáticos de borde deben ser compactos, resistentes y adecuados para entornos hostiles, y los servicios de infraestructura subyacentes, incluidas las redes y el almacenamiento, deben trasladarse al borde para garantizar la seguridad y la privacidad de los datos y permitir análisis de datos de baja latencia. En este caso, los sistemas de servidores x86 se combinan con aceleradores de descarga para convertirse en la plataforma básica para alojar cargas de trabajo perimetrales.
  2. 5G y dispositivos móviles: las empresas de telecomunicaciones están avanzando hacia la habilitación de 5G y su infraestructura 5G también está evolucionando hacia la tecnología definida por software. Esto proporcionará una mejor conectividad para los usuarios móviles (dispositivos móviles y vehículos conectados/autónomos).
  3. Cambio de la nube primero a los datos primero: a medida que las arquitecturas definidas por software se vuelven más frecuentes, los clientes están pasando de una estrategia de “la nube primero” a

micronúcleo

Diferente del macro kernel (Monlitihic Kernel) , como Linux
Comparación de estructuras de macrokernel y microkernel.

Microkernel es un núcleo optimizado de las funciones principales del sistema operativo , que conserva sólo los módulos necesarios, como IPC, gestión de memoria, programación de CPU, etc.

IPC, Comunicación entre procesos
La comunicación entre procesos (IPC, Comunicación entre procesos) se refiere a una tecnología que transfiere información y datos entre diferentes procesos. En un sistema informático, cada proceso se ejecuta en su propio espacio de direcciones y tiene memoria y recursos independientes. Para lograr la comunicación entre procesos, es necesario adoptar algunos mecanismos y métodos especiales.

Los métodos comunes de comunicación entre procesos incluyen:

1. "管道(Pipe)":管道是一种半双工的通信方式,数据只能单向流动,通常用于父子进程之间的通信。
2. "命名管道(Named Pipe)":命名管道是管道的一种扩展,允许无亲缘关系进程间的通信。它使用了一个文件作为通信的媒介。
3. "信号(Signal)":信号是一种异步的通信方式,用于通知接收进程有某个事件发生。它不适合传输大量数据,主要用于进程控制。
4. "消息队列(Message Queue)":消息队列是一种队列式的通信方式,允许不同进程发送和接收消息。进程可以以异步的方式读写消息队列。
5. "共享内存(Shared Memory)":共享内存允许多个进程访问同一块内存区域,从而实现快速的数据交换。但需要注意同步和互斥问题。
6. "信号量(Semaphore)":信号量是一种同步机制,用于控制多个进程对共享资源的访问。它可以保证资源在同一时间只被一个进程使用。
7. "套接字(Socket)":套接字是一种端到端的通信方式,适用于不同主机上的进程间通信。它既可以用于本地进程间通信,也可以用于网络通信。


Por ejemplo: El siguiente es el diagrama de sirena de la tubería (Pipe)

管道(Pipe)
父子进程间的通信
半双工
数据单向流动

Los sistemas operativos basados ​​en Microkernel incluyen MINIX3, seL4, Fuchsia , etc.

MINIX3 interpreta la idea modular e interpreta el sistema operativo en un proceso en modo de usuario. comunidad minix3

seL4 ha optimizado el mecanismo de comunicación entre procesos (IPC), tiene el lema "La seguridad no es excusa para un mal rendimiento" en la comunidad sel4 y su ICP es el más rápido de la familia L4. (Es el primer kernel de alta confiabilidad verificado formalmente que prohíbe el procesamiento simultáneo del kernel)

Fuchsia está diseñado en base a Zircon. La
comunidad china de fucsia
proporciona controladores centrales e instancias de CLibrary para Fuchsia.

Estos métodos de comunicación entre procesos se pueden seleccionar según diferentes necesidades y escenarios. Al diseñar e implementar un sistema multiproceso, la selección y el uso correctos de los mecanismos de comunicación entre procesos es una de las claves para garantizar el rendimiento y la confiabilidad del sistema.

Está diseñado para aumentar la portabilidad dentro de un pequeño espacio de memoria y proporciona un diseño modular para permitir a los usuarios instalar diferentes interfaces, como DOS, Workplace OS, Workplace UNIX , etc.

sistema operativo de biblioteca

Para programas específicos en una máquina virtual, el sistema operativo a menudo contiene controladores, paquetes de dependencia, servicios, etc. Por ejemplo: el controlador USB es inútil en un entorno de nube virtualizado, pero aún está incluido en el kernel de Linux. También genera problemas como un inicio lento de la máquina virtual y una gran superficie de ataque.

Como resultado, surgió el sistema operativo de biblioteca (LibOS) . La idea básica es personalizar el kernel del sistema operativo según la aplicación y eliminar las partes inútiles. LibOS proporciona funciones que originalmente pertenecen al núcleo del sistema operativo para aplicaciones en forma de bibliotecas.

Los desarrolladores eligen módulos de pila y un conjunto de bibliotecas de dependencia mínima para crear aplicaciones que puede ejecutar directamente en el hipervisor o el hardware.

Comparación del tamaño de los sistemas operativos de propósito general y LibOS
El principio de funcionamiento principal del sistema operativo de la biblioteca es tratar al hipervisor como una plataforma de hardware estable, que es responsable de administrar y programar todas las aplicaciones y controladores de dispositivos. En comparación con los sistemas operativos tradicionales, el sistema operativo de biblioteca es más eficiente y más escalable porque solo contiene los componentes necesarios del sistema operativo y recursos como aplicaciones y controladores de dispositivos se compilan en un único núcleo central.

Además, el sistema operativo de la biblioteca también utiliza tecnología orientada a objetos , lo que facilita a los desarrolladores agregar, modificar o eliminar componentes del sistema, al tiempo que reduce los costos de mantenimiento del sistema operativo.

El sistema operativo de la biblioteca es un sistema operativo altamente personalizable, escalable y eficiente , tiene ventajas que los sistemas operativos tradicionales no pueden igualar y desempeñará un papel cada vez más importante en el futuro campo de la computación en la nube.

En los últimos años , la principal solución para la implementación de software de computación en la nube de próxima generación representada por Serverless es

Se espera que LibOS se convierta en la principal solución para la implementación de software de plataforma en la nube de próxima generación.

Ventajas:
Tamaño pequeño, inicio rápido
de una sola aplicación

LibOS
启动快
单个应用
体积小
稳定性
易用性

núcleo exterior

En los sistemas operativos tradicionales, solo el kernel puede administrar los recursos de hardware e interactuar con el hardware indirectamente a través de la interfaz de abstracción de hardware del kernel.

El núcleo externo o núcleo externo (Exokernel) , también conocido como sistema operativo de estructura vertical , es un método de diseño relativamente extremo. Esta filosofía de diseño permite al diseñador del programa de usuario decidir el diseño de la interfaz de hardware. El núcleo externo en sí es muy pequeño y, por lo general, solo es responsable de los servicios relacionados con la protección del sistema y la reutilización de recursos del sistema. (Centrarse en el aislamiento, protección y reutilización de recursos físicos )

Diseño de kernel tradicional (incluidos los de un solo núcleo y los micronúcleos) El diseño de kernel tradicional (incluidos los de un solo núcleo y los micronúcleos) abstrae el hardware y oculta los recursos de hardware o los controladores de dispositivos bajo la capa de abstracción de hardware . Por ejemplo, en estos sistemas, si se asigna una parte de almacenamiento físico, la aplicación no conoce su ubicación real. El objetivo del núcleo externo es permitir que las aplicaciones soliciten directamente un espacio físico específico , un bloque de disco específico, etc. El propio sistema sólo garantiza que el recurso solicitado está actualmente libre y la aplicación puede acceder a él directamente.

Dado que el sistema central externo solo proporciona operaciones de hardware de nivel relativamente bajo y no proporciona abstracción de hardware de alto nivel como otros sistemas, es necesario agregar soporte de tiempo de ejecución adicional. Estas bibliotecas de tiempo de ejecución se ejecutan sobre el kernel y brindan una funcionalidad completa a los programas de usuario.

Aquí hay un ejemplo de sistema operativo del equipo Aegis del MIT :
Ejemplo de sistema operativo de kernel externo Aegis

Las bibliotecas que funcionan sobre la interfaz externa del kernel proporcionan un mayor nivel de abstracción para el sistema operativo. De esta forma se reducen las restricciones a las aplicaciones.

multinúcleo

Las computadoras convencionales de hoy tienen sistemas de procesadores de múltiples núcleos. Limitada por la ley de Moore, el consumo de energía y la complejidad del diseño, la arquitectura informática moderna se ha desarrollado desde multinúcleo (Multi-Core) hasta muchos núcleos (Many-Core) , y el creciente número de núcleos de procesador se ha convertido en una tendencia obvia.

El sistema operativo basado en multikernel es una nueva arquitectura de sistema operativo propuesta en base a los desafíos anteriores. En un sistema operativo multinúcleo, la máquina se considera una red con múltiples núcleos de CPU independientes y el sistema operativo está construido como un sistema distribuido. Una CPU corresponde a un núcleo del sistema operativo. Múltiples núcleos del sistema operativo se ejecutan en paralelo pero no No comparte memoria, transmite información mensaje asíncrono ).

El modelo de sistema de kernel del sistema operativo multinúcleo se muestra en la figura:
Modelo de sistema operativo multinúcleo
Multinúcleo se refiere a la integración de dos o más motores informáticos completos (núcleos) en un procesador. Estos diseños son más fáciles de escalar y ofrecen más rendimiento de procesamiento en un factor de forma más delgado que utiliza menos energía y genera menos calor a partir de la potencia informática.

núcleo de discretización

Los centros de datos existentes están organizados en unidades de servidores y la arquitectura puede tener los siguientes problemas:

  1. La utilización de recursos es baja.
    El seguimiento de 29 días y 12 horas de los servidores de Google y Alibaba Cloud encontró que el clúster de servidores solo usaba la mitad de la CPU y la memoria.
  2. La flexibilidad del hardware es débil.
    La planificación de la implementación lleva mucho tiempo y los cambios correspondientes en los requisitos informáticos no son adecuados.
  3. Dominios de fallas de grano grueso.
    Las fallas en la placa base, la memoria, la CPU y la fuente de alimentación representan entre el 50% y el 82% del total de fallas del servidor.
  4. Escaso apoyo a la heterogeneidad. El uso de dispositivos de hardware como GPU, TPU, DPU, FPGA y NVM está aumentando y los costos de mantenimiento están aumentando.
资源利用率低
Google、阿里云的服务器29天和12h跟踪发现,服务器集群仅使用一半的CPU和内存
硬件弹性弱
部署规划时间长,对应的计算需求变化不适配
粗粒度的故障域
主板、内存、CPU和电源故障占服务器总故障的50%-82%
异构性支持差
如GPU、TPU、DPU、FPGA、NVM等硬件设备使用不断增加,维护成本上升
nombre describir
GPU Unidad de procesamiento de gráficos, procesador de gráficos. Se utiliza para tareas de procesamiento y representación de gráficos.
TPU Tensor Processing Unit,张量处理单元。一种专为处理张量计算而设计的处理器,主要用于人工智能和机器学习方面的加速计算。
DPU Deep-Learning Processing Unit,深度学习处理单元。专为深度学习计算而设计的处理器,可提高训练和推断速度。
FPGA Field Programmable Gate Array,现场可编程门阵列。一种可编程逻辑电路,允许用户在硬件级别实现自定义算法和数据处理流程。
NVM Non-Volatile Memory,非易失性存储器。一种不依赖于电源而能保持数据的存储器,常用于缓存、持久性存储和共享访问。

现在主要以一种离散化的数据中心架构:
Arquitectura de centro de datos discreto

将服务器的硬件打散,故障隔离,网络连接构成组件,以组件为单位构建数据中心。

离散化数据中心有以下优点:

  1. 硬件弹性好
  2. 独立故障域
  3. 支持硬件异构

离散化内核设计通常用于提高系统的可靠性和可维护性。通过将不同功能模块分布在不同的实体(离散化内核)中进行处理,可以降低系统的复杂性和耦合性,并提高模块之间的隔离性。这种方法还可以使系统更易于升级和扩展,因为每个离散化内核可以根据需要进行独立升级和替换,而不会影响其他部分的功能。

但是,现有的操作系统支持的是数据中心的服务器为基础单位,而非以组件为基础单位。因此需要面向新的数据中心体系结构构建新的操作系统抽象。LegoOS便是一种离散化的操作内核(Splitkernel),基本理念为既然硬件已经拆分了,操作系统也应该拆分了。
Modelo de núcleo dividido
Splitkernel 模型的主要特点在四个方面:

  1. 打散的操作系统功能
  2. 监视器运行在硬件组件之上
  3. 组件之间通过网络进行通信
  4. Splitkernel在全局范围内对资源故障进行处理

随着以Severless等为代表的微服务架构兴起,细粒度计算成为未来计算趋势。打散的数据中心硬件和操作系统为实现高效的细粒度计算提供了可能。

openEuler操作系统简介

Captura de pantalla del sitio web oficial del foro openEuler
在此,我们就对现代操作系统发展历程以及趋势有了比较清晰的认识。
操作系统处于应用层与硬件层之间,上看应用、下看硬件。

话不多说,我直接上openEuler的整体架构图:
La arquitectura general de openEuler

欧拉开源操作系统(openEuler,简称“欧拉”)从服务器操作系统正式升级为面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统。通过为应用提供确定性保障能力,支持 OT 领域应用及 OT 与 ICT 的融合。

欧拉开源社区通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系,孵化支持多种处理器架构、覆盖数字基础设施全场景,推动企业数字基础设施软硬件、应用生态繁荣发展。

2019 年 12 月 31 日,面向数字基础设施的全场景开源操作系统开源社区openEuler 正式成立。
2020 年 3 月 30 日,openEuler 20.03-LTS(Long Term Support,简写为 LTS,中文为长生命周期支持)版本正式发布,为 Linux 世界带来一个全新的具备独立技术演进能力的 Linux 发行版。
2020 年 9 月 30 日,首个 openEuler 20.09 创新版发布,该版本是 openEuler 社区中的多个企业、团队、独立开发者协同开发的成果,在 openEuler 社区的发展进程中具有里程碑式的意义,也是中国开源历史上的标志性事件。
2021 年 3 月 31 日,发布 openEuler 21.03 内核创新版,该版本将内核升级到 5.10,还在内核方向实现内核热升级、内存分级扩展等多个创新特性,加速提升多核性能,构筑千核运算能力。
2021 年 9 月 30 日,全新 openEuler 21.09 创新版如期而至,这是欧拉全新发布后的第一个社区版本,实现了全场景支持。增强服务器和云计算的特性,发布面向云原生的业务混部 CPU 调度算法、容器化操作系统 KubeOS 等关键技术;同时发布边缘和嵌入式版本。
2022年3月30日,基于统一的5.10内核,发布面向服务器、云计算、边缘计算、嵌入式的全场景openEuler 22.03-LTS版本,聚焦算力释放,持续提升资源利用率,打造全场景协同的数字基础设施操作系统。
2023 年 3 月 30 日,发布 openEuler 23.03 内核创新版,采用 Linux Kernel 6.1 内核,为未来 openEuler 长生命周期版本采用 6.x 内核提前进行技术探索,方便开发者进行硬件适配、基础技术创新和上层应用创新

Libro blanco de openEuler: https://www.openeuler.org/whitepaper/openEuler-whitepaper-2303.pdf
sitio web oficial de openEuler
Enlace al sitio web oficial: https://www.openeuler.org/zh/

Entonces comienza nuestro camino hacia openEuler.

orientación incrustada


openEuler se dedica a los me gusta
Establezca un pequeño objetivo: ¡ejecute openEuler Embedded! Dirección Sig-integrada Dirección Sig-ROS en el juguete EV3 de mi infancia

Hola, abre Euler ~

Supongo que te gusta

Origin blog.csdn.net/m0_74037814/article/details/133089457
Recomendado
Clasificación