热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

操作系统哲学原理(01)基础原理 操作系统导论

说明:该系类文章更多的是从从哲学视角看操作系统这门学科。同时也是操作系统的学习笔记总结。因为博主这些年主要是以研究安卓系统和嵌入式Linux为主,因此这

说明:该系类文章更多的是从从哲学视角看 操作系统 这门学科。同时也是 操作系统的学习笔记总结。因为博主 这些年主要是以研究安卓系统和 嵌入式Linux为主,因此这个系类文章也是这两个领域不可或缺的基石之一,尤其是对操作系统感兴趣的伙伴可特别关注。



1 操作系统导论

1.1 人造学科

一个角度看待所有事物分为两类:发明(创造)与发现(观察)

计算机本身就是一个人造学科,人造学科的4个特点,如下:

  • 不精确,有相对性:没有对错,只有适合/不适合
  • 从对人类活动的观察导出:对事物的观察与抽象
  • 依赖于人的主观判断力;人不同,看待事物的角度不同,抽象出来的对象不同,因此,对于标准,只是少数服从多数
  • 符合人的直觉:如果按照我们的意愿去理解这些原理,则十分直接了当

相对人造学科,神造学科具有的4个相反的特点:

  • 精确、绝对:只有对错,没有中间状态,例如数学领域
  • 从对自然的观察导出:通过自然现象严密推理获得自然的规律
  • 不依赖人的主观判断力:所有人的观察结果是一样的,即观察结果可以被任何人验证
  • 违反人的直觉:人类的思想和自然本身是不同的,需要通过观察发现规律,利用规律来推导结论,而不是主观臆断

操作系统是一个人造学科,因此要按照人造事物的特点来学习。

1.2 程序是如何运行的

从图中了解到,程序运行至少需要4个因素:

  • 程序设计语言
  • 编译系统
  • 操作系统(在程序的执行过程中具有关键的作用)
  • 指令集结构(计算机硬件系统)

1.3 什么是操作系统

操作系统(OS)的概念:一个介于计算机硬件和应用软件之间的一个软件系统,目的就是使得计算机变得好用,运作有序。操作系统的位置如果所示:

操作系统要做的事情:

  • 计算机的功能和复杂性在不断发生变化,掌控的事情越来越多,也越来越发杂,本身能够拥有的资源也会越来越多,因此需要不断改善。利用操作系统会使事情变得相对简单些,即操作系统升级的时候改动量降到最低。
  • 知晓计算机上发生的所有事情,从而维护计算机,保证计算机的健康。
  • 为了满足人类更加苛刻的要求,不断发展。

操作系统的功能:

  • 代替用户以及应用管理计算机上的软件、硬件资源。
  • 保证计算机资源的公平竞争和使用。
  • 防止对计算机资源的非法侵占和使用。
  • 保证操作系统自身正常运转。

1.4 魔术与管理

操作系统在计算机运行过程中扮演的角色:魔术师和管理者。

  • 魔术师:将丑陋变得美好,将少变多,将无变有。但是这并不是凭空想象,而是运用了类似于能量转换的一种方式,或者说是巧妙地拿空间来换取时间、拿时间来换取空间。
  • 管理者:对资源进行管理以达到公平,有效。

根据管理的资源不同,具体功能包括:

  • CPU管理:如何分配CPU给不同的应用和用户。
  • 内存管理:如何分配内存给不同的应用和用户。
  • 外存管理:如何分配外存给不同的应用和用户。
  • I / O管理:如何分配输入输出设备给不同的应用和用户。

除了对资源进行管理和抽象,还需要保证自身的稳定,那么还需要包括2项:

  • 健壮性管理:如何确保操作系统自身的正常运作。
  • 安全性管理:如何防止非法操作和入侵。

为了完成上述功能,人们设计了很多机制,而这些东西的背后隐含的是人类的哲学思想。

1.5 用户程序与操作系统

第一个视角:用户程序调用操作系统,如下所示:

应用程序调用系统API完成功能应用程序是主程序,操作系统被调用。

第二个视角:操作系统调用用户程序,如下所示:

操作系统先启动,是主程序,之后是调用各种应用程序,最后回到操作系统。

说明:两种观点无对错,只是角度问题,导致不同的观点。实际上操作系统和各个应用程序是可以看作是相互调用,从而形成一个非常复杂的动态关系。

1.6 操作系统的范畴

操作系统的具体任务:

@1 CPU管理(进程管理):

  • 公平:每个程序都有机会使用CPU
  • 非阻塞:阻塞不能妨碍其他进程继续前进
  • 优先级:优先级高的程序运行,则优先级低的必须让出资源

@2 内存管理:管理缓存、主存、磁盘、磁带等存储介质形成的内存架构。虚拟内存将时间转换为空间,同时对于物理内存需要进行分割和保护,即不能越界。

@3 存储管理(文件系统):将磁盘变成用户很容易使用的媒介。

@4 设备管理:管理输入输出设备。

@5 操作系统提供的机制:

  • 屏蔽不同设备的差异,方便用户访问;
  • 提供并发访问,使设备具有共享性
  • 批处理:无须人机交互的模式,主要是达到吞吐量最大化,单位时间完成的任务最多。    

1.7 为什么学习操作系统

操作系统的功能、技巧、思想、哲学理念在很多领域内使用,是源于生活的一种抽象,而这为触类旁通学习其他东西来讲容易多了。


推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
author-avatar
书友56952614
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有