Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】软考中级-软件设计师 024-操作系统(操作系统概述)

【愚公系列】软考中级-软件设计师 024-操作系统(操作系统概述)

原创
作者头像
愚公搬代码
发布于 2024-02-05 15:55:07
发布于 2024-02-05 15:55:07
1600
举报

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。

🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、联网、络安全、数据、工智能、U3D游戏、小程序等相关领域知识。

🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

操作系统(Operating System,简称OS)是一种软件,用于管理计算机硬件和软件资源,提供给用户和应用程序一个简单、统一的接口,以方便用户和应用程序的操作和管理。

操作系统的背景和由来可以追溯到计算机发展的早期阶段。在 1950 年代,当时的计算机是非常庞大和昂贵的设备,主要用于科学计算和军事应用。为了充分利用这些计算机资源,需要解决如下问题:

  1. 资源管理:计算机设备包括处理器、内存、磁盘、输入输出设备等,如何合理地分配、调度和管理这些资源,以提高计算机系统的利用率和效率。
  2. 多道程序设计:为了充分利用计算机资源,需要让多个程序同时运行。但是,由于计算机资源有限,如何使多个程序同时运行且互不干扰成为了一个挑战。

为了解决上述问题,研究人员开始开发操作系统。20 世纪 50 年代末至 60 年代初,出现了一系列的操作系统,如GM-NAA I/O、FORTRAN Monitor System、IBM OS/360等。这些操作系统主要用于管理计算机硬件资源,提供了一些基本功能如进程管理、存储管理、文件管理等。

随着计算机技术的发展,操作系统变得越来越复杂,功能也越来越强大。现代操作系统不仅提供了更多的功能,如图形用户界面、网络通信、安全管理等,还支持多种硬件平台和应用程序。目前常见的操作系统有Windows、Mac OS、Linux等。

🚀一、操作系统概述

🔎1.操作系统的作用

主要作用

描述

资源管理

管理和分配计算机硬件资源,如处理器、内存、存储器和设备。

用户界面

提供与计算机系统交互的方式,如命令行界面和图形用户界面。

文件管理

管理计算机系统中的文件,包括创建、读写、复制和删除等操作。

进程管理

管理和调度计算机系统中的进程,实现多任务处理。

设备驱动程序

管理和控制计算机系统中的硬件设备,如打印机和键盘。

安全和保护

提供安全性和保护机制,保护计算机系统和用户的数据。

网络通信和连接

提供网络通信和连接功能,实现与外部网络的交互。

性能优化和调优

优化系统性能,提高计算机系统的响应速度和效率。

错误处理和故障恢复

处理错误和故障情况,保证系统的可靠性和稳定性。

🔎2.操作系统的特征

特征

描述

并发性

操作系统可以同时处理多个任务,使多个程序能够交替执行,提高计算机的效率和响应性

共享性

操作系统可以管理和控制计算机资源的共享,包括内存、处理器、硬盘等,使多个程序能够同时访问和使用这些资源

虚拟性

操作系统通过虚拟化技术,将物理资源抽象成虚拟资源,使多个程序能够共享和利用这些虚拟资源,提高资源的利用率

不确定性

操作系统需要处理各种不确定因素,如不可预测的用户输入、硬件故障、网络中断等,通过错误检测和恢复机制来应对这些不确定性的情况

🔎3.操作系统的功能

功能

描述

进程管理

控制和协调计算机系统中运行的进程,包括进程的创建、调度、同步和通信等。

存储管理

管理计算机系统中的存储器资源,包括内存分配、地址转换和内存保护等。

文件管理

对计算机系统中的文件进行组织、存储和访问,包括文件的创建、读写、删除和控制等。

设备管理

管理计算机系统中的输入/输出设备,包括设备的分配、控制和驱动等。

作业管理

控制和协调计算机系统中的作业,包括作业的调度、提交、分配和监控等。

🔎4.操作系统的分类

分类

描述

批处理操作系统

处理批量作业,按照预定的顺序自动执行作业,并进行作业调度和资源管理。

分时操作系统

多个用户通过共享的终端或网络同时访问计算机系统,系统轮流分配给每个用户一小段时间来使用CPU。

实时操作系统

对要求即时响应的任务有较高的时间要求,能够快速响应外部事件,提供可预测的响应时间。

网络操作系统

提供网络资源共享和管理的操作系统,支持多台计算机互相通信和协作。

分布式操作系统

将多台物理分散的计算机组成一个互相关联的系统,在不同计算机之间进行任务分配、通信和资源共享。

微机操作系统

运行在个人计算机或工作站上的操作系统,例如Windows、macOS、Linux等。

嵌入式操作系统

运行在嵌入式系统中的操作系统,嵌入在各种设备中,如智能手机、汽车电子设备、家庭电器等。

🔎5.计算机启动的基本流程为

计算机启动的基本流程为:

  1. BIOS自检:开机后,计算机首先进行BIOS自检,检查硬件设备是否正常工作。BIOS(Basic Input/Output System)是一段固化在主板ROM芯片上的程序,用于初始化和检测计算机的硬件设备。
  2. 启动引导:BIOS完成自检后,会从预设的启动设备(通常是硬盘)中读取引导扇区(Master Boot Record,MBR)中的引导程序。引导程序会加载操作系统的启动程序。
  3. 操作系统加载:操作系统的启动程序会被引导程序加载到计算机的内存中。启动程序会进一步初始化硬件设备、建立内存空间映射以及其他必要的准备工作。
  4. 用户登录:操作系统加载完成后,会显示用户登录界面。用户输入正确的用户名和密码后,操作系统会验证身份,并加载用户的配置文件和个人设置。
  5. 桌面加载:登录成功后,操作系统会加载桌面环境或图形用户界面(GUI),提供用户操作和程序运行的接口。
  6. 启动应用程序:在桌面加载后,用户可以通过启动菜单、快捷方式或命令行来启动需要的应用程序。操作系统会加载应用程序的相关文件和库文件,并分配系统资源给应用程序运行。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git GC命令清理Git暂存区
Git 会不定时地自动运行称为 “auto gc” 的命令。大部分情况下该命令什么都不处理。不过要是存在太多松散对象 (loose object, 不在 packfile 中的对象) 或 packfile,Git 会进行调用 git gc 命令。 gc 指垃圾收集 (garbage collect),此命令会做很多工作:收集所有松散对象并将它们存入 packfile,合并这些 packfile 进一个大的 packfile,然后将不被任何 commit 引用并且已存在一段时间 (数月) 的对象删除。
框架师
2021/03/08
7.1K0
Git 维护及数据恢复
你时不时的需要进行一些清理工作 ── 如减小一个仓库的大小,清理导入的库,或是恢复丢失的数据。本节将描述这类使用场景。
看、未来
2022/05/06
6290
Git目录为什么这么大
本文围绕git的目录过大,从git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理
仙人技术
2021/08/31
1.3K0
Git目录为什么这么大
10.7 Git 内部原理 - 维护与数据恢复
有的时候,你需要对仓库进行清理 - 使它的结构变得更紧凑,或是对导入的仓库进行清理,或是恢复丢失的内容。 这个小节将会介绍这些情况中的一部分。
shaonbean
2019/05/26
8610
10.8 Git 内部原理 - 环境变量
Git 总是在一个 bash shell 中运行,并借助一些 shell 环境变量来决定它的运行方式。 有时候,知道它们是什么以及它们如何让 Git 按照你想要的方式去运行会很有用。 这里不会列出所有的 Git 环境变量,但我们会涉及最有的那部分。
shaonbean
2019/05/26
1.1K0
Git清理文件
1. 运行 gc ,生成 pack 文件 $ git gc --prune=now 2. 找出最大的三个文件 $ git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -3 # 输出: 4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 657413784 136436872 5330845 4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 6574
用户10325771
2023/03/01
4410
Git 常用命令速查表(三)
前面两篇博客 Git 版本管理工具 和 Git 常用命令详解,分别介绍了Git 基础知识和命令用法
阳光岛主
2019/02/19
8920
Git的存储原理
Git 出现前,主流版本控制系统(SVN...)一般为基于增量(delta-based)的系统,如下图:
小江的学习日记
2024/07/27
1120
Git Pro深入浅出(三)
前面已经阐述了Git基本的运作机制和使用方式,介绍了许多Git提供的工具来帮助你简单且有效地使用它。本部分将演示如何借助Git的一些重要的配置方法和钩子机制,来满足自定义的需求。
奋飛
2019/08/15
9110
Git内部原理介绍
git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(key-value data store),可以向该数据库插入任意类型的内容,它会返回一个40位长的哈希键值。并在此基础上提供了一个版本控制系统的用户界面。
腾讯工蜂
2018/12/07
17.1K1
Git 中文参考(八)
显示本地存储库中可用的引用以及关联的提交 ID。可以使用模式过滤结果,并且可以将标记解除引用到对象 ID 中。此外,它还可用于测试特定引用是否存在。
ApacheCN_飞龙
2024/06/26
2880
探秘git隐藏文件夹
分布式的版本管理同svn集中式版本管理不同的是,本地维护一个版本库,所以不需要联网服务器就可以做开发版本管理。每个开发者对自己仓库拥有写权限,而对其他所有人仓库的读权限。同时有个代表“官方”项目的权威的仓库。
mariolu
2020/01/06
4.7K0
Git中文命令[参数]大全
设置和配置 git config help 获取和创建项目 init clone 基本快照 add status diff commit reset rm mv 分支和合并 branch checkout merge mergetool log stash tag worktree 共享和更新项目 fetch pull push remote submodule 检查和比较 show log diff shortlog describe 修补 apply cherry-pick diff rebase revert 调试 bisect blame grep
cuijianzhe
2024/02/03
5230
寻找并删除Git记录中的大文件
有时候gitignore没做好,一不小心就又进来一个二进制文件 在重复了N次Google之后,还是记一下吧 首先通过rev-list来找到仓库记录中的大文件: 1 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 然后通过filter-branch来重写这些大文件涉及到的所有提交(重写历史记录): 1 g
happy123.me
2018/06/04
3.6K0
Git 中文参考(三)
使用git mergetool运行多个合并实用程序之一来解决合并冲突。它通常在 git merge 之后运行。
ApacheCN_飞龙
2024/06/26
3880
代码托管从业者 Git 指南
六七年前,我机缘巧合进入了代码托管行业,做过基于 Git 支持 SVN 客户端接入、Git 代码托管平台分布式、Git 代码托管读写分离、Git 代码托管高可用等工作,所幸学到了一些知识,积累了一些经验,本次分享我的一点经验之谈,希望对即将进入或者已在代码托管行业的朋友有所帮助。
腾讯云 CODING
2021/01/26
1.3K0
代码托管从业者 Git 指南
git:深挖 .git文件夹
.git目录树 . └── .git │ │ ├── branches │ │ ├── COMMIT_EDITMSG # 保存最新的commit message,Git系统不会用到这个文件,只是给用户一个参考。 │ │ ├── config # 仓库的配置文件。 │ │ ├── description # 仓库的描述信息,主要给gitweb等git托管系统使
JNingWei
2018/09/28
1.3K0
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
地址后面有一个括号里面有 push 和 fetch 两种,当我们执行 git push 时候他会调用对应 push 地址,同样当我们执行命令 git featch 的时候则会调用 fetch 地址;当拉去代码之后默认情况下会产生一个远程仓库 origin ,并 且对应的 push 地址也只有一个
咸鱼学Python
2021/07/16
5880
Git 仓库瘦身与 LFS 大文件存储
熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件,且 git push 到了远程仓库,那么我们 git clone 的时候也会很慢。
Cloud-Cloudys
2023/10/21
9230
Git 仓库瘦身与 LFS 大文件存储
gitignore用法
下面有些人会遇到加上这个文件,发现忽略的文件还是有上传。 在git库中已存在了这个文件,之前push提交过该文件。 .gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了 解决: 需要在git库中删除该文件,并更新。 然后再次git status查看状态,文件不再显示状态。
2021/11/08
4650
相关推荐
Git GC命令清理Git暂存区
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档