Skip to content

Contributors Forks Issues MIT License Stargazers

操作系统

基本介绍

操作系统(Operating System, OS)是管理计算机硬件与软件资源的程序,同时也是计算机系统的核心和基础。操作系统的主要目的是为用户应用程序和系统服务提供一个便捷、高效的环境,并且管理硬件设备,如 CPU、内存、存储设备、输入输出设备等。操作系统是计算机系统的关键组件,它使得复杂的硬件操作对用户来说更加透明。

操作系统的主要功能可以分为以下几个方面

处理器管理(CPU管理)

  • 任务调度:操作系统负责决定哪个程序或进程可以使用CPU以及它们使用CPU的顺序。
  • 进程控制:它创建和终止进程,管理进程的暂停和继续,以及同步与通信。

内存管理

  • 内存分配:操作系统负责管理计算机的物理内存和虚拟内存,以及分配内存空间给各个程序。
  • 内存保护:确保一个程序不会读写到另一个程序的内存空间,保护进程间的数据不受其他进程影响。

文件系统管理

  • 文件操作:操作系统提供文件的创建、删除、读、写等操作。
  • 目录管理:操作系统负责维护文件系统的目录结构和文件在目录中的组织。

设备管理

  • 驱动程序:操作系统通过驱动程序来管理和控制硬件设备。
  • I/O控制:操作系统负责从输入设备读取数据及向输出设备发送数据。

用户界面

  • 命令行界面(CLI)或图形用户界面(GUI):这些界面允许用户与操作系统进行交互和控制。

安全和访问控制

  • 用户账户管理:操作系统管理用户账户权限,控制用户对文件和程序的访问。
  • 密码保护:提供认证方法以确保只有授权用户才能进入系统。

常见的操作系统

操作系统还可以根据需求和设计有特殊的功能,例如网络功能、错误侦测和处理、支持虚拟化等。

操作系统可以分为不同的类型,包括桌面操作系统、服务器操作系统、嵌入式操作系统等。常见的操作系统有 Microsoft Windows、macOS、Linux、UNIX、Android、iOS 等。


汇编语言

参考文档

汇编与指令集

指令手册

基本介绍

汇编语言(Assembly Language)是一种低级编程语言,与计算机体系结构紧密相关。 它提供了一种直接操作计算机硬件的方式,以指令的形式表示机器码指令。

  • 机器码指令
    • 汇编语言使用助记符(Mnemonic)来表示机器码指令,每个助记符对应一条机器码指令。这些指令直接操作计算机的寄存器、内存和输入输出设备等硬件资源。
  • 寄存器
    • 汇编语言使用寄存器来存储数据和进行运算。不同的计算机体系结构具有不同数量和类型的寄存器,如通用寄存器、特定用途寄存器、状态寄存器等。
  • 内存访问
    • 汇编语言通过内存地址来读取和写入数据。程序员可以直接访问内存中的数据,包括指令、变量和数据结构等。
  • 指令和流程控制
    • 汇编语言提供了各种指令来执行基本操作,如加减乘除、逻辑运算和位操作等。还提供了分支和循环指令,用于实现条件判断和程序跳转。
  • 程序结构
    • 汇编语言程序通常由指令序列组成,可以定义常量、变量和标签等。通过标签,可以实现跳转和调用子程序。
  • 可读性和可移植性
    • 相对于机器码,汇编语言具有更高的可读性。它使用助记符来表示指令和操作,使得程序的意图更加清晰。然而,由于不同计算机体系结构的差异,汇编语言在可移植性方面较差。
  • 应用领域
    • 汇编语言常用于系统级编程、设备驱动程序开发和性能优化等领域。它能够直接控制硬件,提供最高级别的灵活性和性能。

操作系统理论

参考文档

计算机操作系统(一)——概览

计算机操作系统(二)——中断

计算机操作系统(三)——进程

计算机操作系统(四)——处理器

计算机操作系统(五)——存储管理

计算机操作系统(六)——文件系统

计算机操作系统(七)——IO存储管理

计算机操作系统(八)——并发程序设计

计算机操作系统(九)——其他

计算机操作系统(第3版)课后习题答案

基本介绍

操作系统(Operating System,简称OS)是计算机系统中的核心软件之一,它负责管理和控制计算机硬件资源,并为应用程序提供服务。 操作系统作为中间层在硬件和应用程序之间进行交互,使得计算机能够高效、可靠地运行。

  • 资源管理:
    • 操作系统负责管理计算机系统的各种资源,包括处理器(CPU)、内存、磁盘存储、输入输出设备等。它分配和调度这些资源,以满足不同应用程序的需求,并确保它们可以有效地共享和利用。
  • 进程管理:
    • 操作系统管理和控制正在运行的进程(程序的执行实例)。它负责分配CPU时间片、管理进程的创建、终止和切换,以及处理进程间的通信和同步。
  • 内存管理:
    • 操作系统负责管理计算机的内存资源。它负责分配和回收内存空间,跟踪内存使用情况,以及实现虚拟内存技术,将物理内存与磁盘上的虚拟内存进行交换。
  • 文件系统:
    • 操作系统提供了文件系统,用于管理和组织存储在磁盘上的文件和目录。它负责文件的创建、读取、写入和删除,以及文件的权限管理和保护。
  • 设备驱动程序:
    • 操作系统通过设备驱动程序与计算机的硬件设备进行通信。它提供了对输入输出设备(如键盘、鼠标、打印机等)的访问接口,使应用程序可以与这些设备进行交互。
  • 用户界面:
    • 操作系统提供了用户与计算机系统之间的交互界面。它可以是命令行界面(如Windows的命令提示符)或图形用户界面(如Windows的桌面环境),使用户能够执行操作和访问系统功能。
  • 安全性和权限管理:
    • 操作系统通过安全机制和权限管理来保护计算机系统和数据的安全。它实施身份验证、访问控制和加密等技术,确保只有经过授权的用户能够访问受限资源。

Linux基础

参考文档

韩顺平Linux教程

常用命令汇总

Bash

命令行的艺术

部署摘录(有点过时 以官网为准)

Linux 内核与驱动开发

单片机开发

基本介绍

Linux是一种开源的、免费的操作系统内核,它以Unix操作系统为基础,并由Linus Torvalds于1991年首次发布。

  • 开源和自由
    • Linux是一个开源项目,意味着其源代码对所有人都是可用和可修改的。这使得用户可以自由地使用、修改和分发Linux操作系统,促进了技术创新和共享。
  • 多用户和多任务
    • Linux支持多用户和多任务的环境,多个用户可以同时登录和运行各自的应用程序,而不会相互干扰。这使得Linux适用于服务器、工作站和多用户环境。
  • 稳定性和可靠性
    • Linux以其稳定性和可靠性而闻名,能够长时间运行而不需要重新启动。它在服务器和关键业务系统中广泛应用,以确保服务的连续性和可用性。
  • 多样的发行版
    • Linux有许多不同的发行版,如Ubuntu、Debian、Fedora、CentOS等。每个发行版都基于Linux内核,并提供了不同的软件包管理、默认设置和用户界面。
  • 命令行和图形界面
    • Linux既支持命令行界面(CLI),也支持图形用户界面(GUI)。CLI允许用户通过命令行输入指令来操作系统,而GUI提供了图形化的桌面环境,类似于Windows或macOS。
  • 软件包管理
    • Linux提供了强大的软件包管理工具,用于安装、更新和卸载软件包。常见的软件包管理系统包括apt(用于Debian/Ubuntu)、yum(用于CentOS/Fedora)和pacman(用于Arch Linux)等。
  • 支持多种体系结构
    • Linux支持多种硬件体系结构,从个人计算机到嵌入式设备、移动设备和服务器。这使得Linux在各种场景下都能够发挥作用,并推动了物联网和嵌入式系统的发展。

鸿蒙系统

参考文档

官方文档

基本介绍

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端,实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

  • 分布式架构
    • 鸿蒙系统采用分布式架构,可以在各种设备之间实现无缝连接和协同工作。它支持多设备间的数据共享和资源互通,提供统一的用户体验。
  • 统一开发平台
    • 鸿蒙系统提供了一个统一的开发平台,使开发人员可以使用相同的代码和工具开发应用程序,适配不同类型的设备,包括智能手机、平板电脑、电视、智能手表等。
  • 设备驱动框架
    • 鸿蒙系统引入了设备驱动框架,通过标准化接口和组件,简化了设备驱动程序的开发和适配过程。这使得新设备的接入变得更加快捷和便利。
  • 理性资源调度
    • 鸿蒙系统具有智能资源管理和调度功能,能够根据设备的硬件能力和运行状态,合理分配和管理系统资源,以提供流畅的用户体验和高效的性能。
  • 安全和隐私保护
    • 鸿蒙系统注重安全性和隐私保护。它采用了安全可信计算、沙箱机制、权限管理等技术,确保应用程序和用户数据的安全。
  • 界面设计一致性
    • 鸿蒙系统倡导一致的用户界面设计,以提供统一的用户体验。它推崇“卡片式”设计,提供简洁、直观且易于操作的界面。
  • 全场景应用
    • 鸿蒙系统适用于多种场景和设备类型。不仅可以运行在智能手机、平板电脑和电视上,还可以应用于汽车、智能家居、物联网设备等领域。
  • 开放生态系统
    • 鸿蒙系统积极推动开放生态系统建设,鼓励合作伙伴共同参与和贡献。它提供了开发者支持、开发者社区和应用商店等资源,促进应用程序和服务的丰富化。