【Linux】——初识操作系统

news2025/4/22 9:08:03

文章目录

  • 冯-诺依曼体系结构
  • 操作系统
  • shell

冯-诺依曼体系结构

我们现在所使用的计算机就是冯-诺依曼体系结构。
在这里插入图片描述
存储器就是内存。
由下图可知,寄存器最快,为啥不用寄存器呢?
因为越快价格就最贵,冯诺依曼体系结构的诞生,极大降低了计算机的价格。
冯诺依曼结构的原理是,在CPU进行计算的时候,内存已经接收外部输入设备输入的数据并存储,在CPU进行完计算后将结果取出,然后将结果放到输出设备,再把输入的数据交给CPU进行计算
所以这就是为什么程序运行前要先加载到内存!
在这里插入图片描述

操作系统

在这里插入图片描述

通过冯-诺依曼体系结构去理解何为操作系统。
内存怎么读数据?输入数据以后怎么从缓冲区输出到输出设备的?操作系统干的就是这类活,
设计操作系统的目的就是更好地与硬件交互,管理软件资源,为应用程序提供一个良好的执行环境

认识系统调用:

操作系统为啥不跟底层硬件直接联系? 如果OS和底层硬件直接联系,一旦底层硬件发生任何改变,OS为了与硬件兼容,OS的源代码就需要重新编译。如果频繁的编译,计算机的运行效率就会大大降低。
为了解决这个问题,在操作系统与底层硬件之间就需要增加一层结构让操作系统与底层硬件之间实现解耦。这个增加的结构就是驱动程序
一般来说,操作系统是不会把源代码呈现给用户,这是操作系统对于自己的一种保护。
那我们如何进行操作呢?
操作系统会封装出一系列接口给用户,这些接口就叫系统调用接口,除了系统调用接口,没有任何方法可以间接使用操作系统。
但是这些接口对于普通用户来说具有一定的使用成本,因为用户必须要先对操作系统有一定了解,为了方便用户,所以又对系统接口进行封装形成我们的用户操作接口,常见的用户接口有各种库如libc以及部分指令,我们一般在实际编写的过程中调用各种的函数printf,scanf就是来源于这些库。
在这里插入图片描述

shell

在操作系统中,Windows 采用图形化界面作为交互方式,而Linux则使用命令行界面。尽管两者的交互方式存在差异,但从本质上讲,它们的目的是一致的,即都是为了便于用户进行相关操作。图形化界面和命令行界面都属于外壳程序的范畴。无论是Windows的图形化界面还是Linux的命令行界面,它们都是操作系统与用户之间进行交互的接口,通过这些界面,用户能够向操作系统发送指令并获取相应的反馈。尽管Windows 和Linux的交互方式有所不同,但它们的核心目标都是为了满足用户的操作需求。
在这里插入图片描述

kernel是操作系统的核心,kernel和用户通过外壳程序来沟通。
shell(比如centos7的bash)会先读用户输入的命令进行一系列操作,如果执行命令过程中没有出现异常(文件错误,权限不够),就会创建子进程,子进程会把执行结果返回给父进程,值得注意的是子进程出现的任何问题,都不会对父进程Shell产生影响。
以Windows为例,我们每运行一个程序,就相当于创建了一个子进程,比如打开浏览器、运行办公软件等。即便这些子进程中的某个出现问题,如浏览器卡死(程序异常)或被关闭(程序终止),也不会影响其他子程序的正常运行。同样地,在Linux中,Shell与子进程的关系也是如此,确保了系统的稳定性和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2311703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PromQL计算gateway指标增量最佳实践及常见问题答疑

普米官方网站 普米官方帮助:Getting started | Prometheus 普米下载地址:Download | Prometheus 普米查询语法:Querying basics | Prometheus 普米函数参考:Query functions | Prometheus promql计算增量 在PromQL&#xff…

vue使用slot时子组件的onUpdated执行问题

vue使用slot时子组件的onUpdated执行问题 在使用 Vue 的插槽 (slot) 功能时,可能会遇到一个问题:当父组件的任何状态更新时,子组件的 onUpdated 事件会被触发。这个问题在使用默认插槽时尤为明显。 为了避免这种情况,可以使用作用…

从零到多页复用:我的WPF MVVM国际化实践

文章目录 第一步:基础实现,资源文件入门第二步:依赖属性,提升WPF体验第三步:多页面复用,减少重复代码第四步:动态化,应对更多字符串总结与反思 作为一名WPF开发者,我最近…

LeetCode 解题思路 12(Hot 100)

解题思路: 定义三个指针: prev(前驱节点)、current(当前节点)、nextNode(临时保存下一个节点)遍历链表: 每次将 current.next 指向 prev,移动指针直到 curre…

HTML-05NPM使用踩坑

2025-03-04-NPM使用踩坑 本文讲述了一个苦逼程序员在使用NPM的时候突然来了一记nmp login天雷,然后一番折腾之后,终究还是没有解决npm的问题😞😞😞,最终使用cnpm完美解决的故事。 文章目录 2025-03-04-NPM使用踩坑[toc…

学校地摊尝试实验

学校地摊尝试实验 诸位,我要告诉诸位一件大消息,那就是,我将会利用学校时光的最后一段时间进行疯狂摆摊练习,如何进行摆摊,大家 听我娓娓道来。我要确定摆摊的目的, 第一,赚钱,第二…

MHA集群

一.MHA集群 MHA master high avavibility 主服务器高可用 如上图所示,我们之前说过,如果在主从复制架构中主服务器出现故障,就需要我们将从服务器作为主服务器,等故障的主服务器修复好之后,再将修好的主服务器作为从服…

Bazel搭建CUDA工程入门

环境版本: 工程目录: 测试输出: WORKSPACE 参考仓库:CUDA rules for Bazel 及 examples load("bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")http_archive(name "rules_cuda…

QILSTE灯珠:尺寸光电全解析

QILSTE灯珠:尺寸光电全解析 🌟 型号H4-115BGRYA/5M,由QILSTE(HongKong)Technology Co., Ltd精心打造,以其1.6x1.5x0.4mm的紧凑外观尺寸,展现高亮红光、翠绿、蓝的缤纷色彩。 📏 尺寸…

golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介

还记得2018年的夏天,刚毕业的我不知道该做些什么,于是自学了一周的go语言,想要找一份go语言工作的代码,当时的go还没有go mod来管理依赖包,在北京找了一个月的工作,找到了一个小公司做了后端开发,当然使用go语言开发,带着兴奋劲,年轻身体也好,边努力学习,边工作。 时…

用IdleHandler来性能优化及原理源码分析

背景: 经常在做一些app冷启动速度优化等性能优化工作时候,经常可能会发现有时候需要引入一些第三方sdk,或者库,这些库一般会要求我们在onCreate中进行初始化等,但是onCreate属于生命周期的回调方法,如果on…

如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)

目录 第一步:下载并安装OfficeAI助手 第二步:申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步:探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步:我的使用体验(体验建议) …

Swagger-01.介绍和使用方式

一.Swagger介绍 有了接口文档,我们就可以根据接口文档来开发后端的代码了。如果我们开发完了某个功能,后端如何验证我们开发的是否正确呢?我们就需要测试,使用Swagger就可以帮助后端生成接口文档,并且可以进行后端的接…

Unity 使用NGUI制作无限滑动列表

原理: 复用几个子物体,通过子物体的循环移动实现,如下图 在第一个子物体滑动到超出一定数值时,使其放到最下方 --------------------------------------------------------------》 然后不停的循环往复,向下滑动也是这…

【并发编程】聊聊定时任务ScheduledThreadPool的实现原理和源码解析

ScheduledThreadPoolExecutor 是在线程池的基础上 拓展的定时功能的线程池,主要有四种方式,具体可以看代码, 这里主要描述下 scheduleAtFixedRate : 除了第一次执行的时间,后面任务执行的时间 为 time MAX(任务执行时…

Java-servlet(三)Java-servlet-Web环境搭建(下)详细讲解利用maven和tomcat搭建Java-servlet环境

Java-servlet(三)Java-servlet-Web环境搭建(下)利用maven和tomcat搭建Java-servlet环境 前言一、配置maven阿里镜像二、利用IDEA创建maven文件创建maven文件删除src文件创建新的src模版删除example以及org文件 三、在第二个xml文件…

如何选择DevOps平台?GitHub、GitLab、BitBucket、Jenkins对比与常见问题解答

本文内容来源github.com,由GitHub中国授权合作伙伴-创实信息进行翻译整理。 欢迎通过021-61210910、customershcsinfo.com联系我们,免费试用GitHub企业版。 软件是当今领先企业的核心,而开发者则是软件的核心。GitHub作为一个完整的开发者平台…

react中的fiber和初次渲染

源码中定义了不同类型节点的枚举值 组件类型 文本节点HTML标签节点函数组件类组件等等 src/react/packages/react-reconciler/src/ReactWorkTags.js export const FunctionComponent 0; export const ClassComponent 1; export const IndeterminateComponent 2; // Befo…

闭包+求解候选码+最小函数依赖集

一、闭包 直接上例题 简单明了 A的闭包ABC ABC的闭包ABCD ABCD的闭包ABCDE ABCDE的闭包ABCDEG 等于集合R的全集 所以A的闭包为ABCDEG AB的闭包为ABC 二、候选码 答案: 三、最小函数依赖集 求F的最小函数依赖集 去掉多余的 然后! 化为最简

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之功能优化,添加表格空状态提示,带插图的空状态,Table7空状态2

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…