Linux和Shell笔记-1相关概念理解

news2024/12/23 14:09:23

Unix和Linux关系
UNIX是最早的商业操作系统之一,由贝尔实验室(AT&T Bell Laboratories)于 1970 年代开发。UNIX 是一个多用户、多任务的操作系统,具有强大的命令行界面和可扩展性。
Linux 是一个开放源代码的类 UNIX 操作系统内核,最早由芬兰的林纳斯·托瓦兹(Linus Torvalds)在 1991 年开发。Linux 内核是由 C 语言编写的,被设计为可运行在各种硬件平台上,并提供了现代操作系统所需的核心功能。
Linux 内核受到 UNIX 设计和哲学的影响,并从 UNIX 中借鉴了许多思想和概念。因此,Linux 在许多方面与 UNIX 相似,包括具有类似的文件系统层次结构、进程管理、权限模型等。
然而,由于历史原因和许可证问题,Linux 并未直接继承自 UNIX 操作系统。Linux 内核是在自由软件许可证(GPL)下发布的,因此它可以自由地使用、修改和分发。而商业的 UNIX 操作系统有不同的许可证和专有实现。
尽管 Linux 内核与 UNIX 并非直接衍生关系,但它与 UNIX 在设计和功能上具有很高的相似性,并且遵循了 UNIX 的哲学和思想。因此,Linux 通常被认为是 UNIX 的克隆或替代品,并且它成为了一个广泛使用的类 UNIX 操作系统。

1.linux系统

Linux系统可以划分为以下四个部分:
1.Linux内核
2.GNU工具
3.图形化桌面环境
4.应用软件

1.1 Linux内核

内核包括如下功能

1.1.1系统内存管理

内核通过硬盘上的存储空间来实现虚拟内存,这块区域被称为交换空间。内核不断地在交换空间和实际物理内存之间反复交换虚拟内存中的内容,使得系统以为它拥有比物理内存更多的可用内存。

1.1.2.软件程序管理

Linux操作系统将运行中的程序叫做进程。内核控制着Linux如何管理运行在系统上的所有进程。(init进程启动系统上所有其他进程)

进程与线程的关系
在这里插入图片描述

详细的进程与线程,并行与并发,共享内存等等解释,见这篇文章

1.1.3.硬件内存管理

内核的另一职责是管理硬件设备。任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动代码。驱动代码允许内核与设备之间交换数据。

1.1.4.文件系统管理

不同于其他操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。

1.2 GNU工具

Linux和GNU的关系

GNU(GNU’s Not Unix)是一个自由软件运动的项目,旨在创建一个完全自由、开放源代码的类Unix操作系统。
Linux 是一个开放源代码的操作系统内核,最早由芬兰的林纳斯·托瓦兹(Linus Torvalds)在1991年开发,并且后来成为了广泛使用的操作系统内核。
GNU 项目和 Linux 内核结合在一起,形成了现代的 GNU/Linux 操作系统。这个操作系统将 GNU 提供的大部分工具、库和用户空间程序与 Linux 内核结合在一起,提供了完整的操作系统功能。
尽管 Linux 内核是操作系统的核心组件,但它自身并不能构成一个完整的操作系统。因此,GNU 项目提供了大量的工具和应用程序,包括 GNU C 编译器(GCC)、GNU Bash shell、GNU Core Utilities 等,使 Linux 内核具备了完整的操作系统功能。
所以,GNU 和 Linux 是密切相关的,GNU 提供了大部分的用户空间程序,而 Linux 提供了操作系统的内核。二者的结合使得我们通常所说的 Linux 系统成为可能。因此,通常我们称这个操作系统为 GNU/Linux。

1.2.1 shell

GNU/Linux shell是一种特殊的交互式工具,它的核心是命令行提示符。命令行提示符是shell负责交互的部分,它允许你输入文本命令,然后解释命令,并在内核中执行。
在Linux系统上,通常有好几种Linux shell可用,不同shell有不同的特性。默认的是bash shell

1.3 桌面环境

目前用的比较多的应该是Unity桌面。

参考资料:《Linux命令行与shell脚本编程大全(第三版)》

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

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

相关文章

屏蔽表面电阻试验仪

一、产品概述 KDZD608A屏蔽服效率测试装置是对屏蔽服进行屏蔽效率测试的专业设备,用于电力系统、生产厂家、科研单位等。 KDZD608A屏蔽服效率测试装置根据国家标准GB/T 6568-2008《带电作业用屏蔽服装》要求而设计,再结合电力行业标准DLT 976-201…

二、RocketMQ消息存储源码分析

RocketMQ源码深入剖析 6 Broker源码分析 Broker模块涉及到的内容非常多,本课程重点讲解以下技术点: 1、Broker启动流程分析 2、消息存储设计 3、消息写入流程 4、亮点分析:NRS与NRC的功能号设计 5、亮点分析:同步双写数倍性…

视频孪生赋能智慧水利数智化管理

在《关于大力推进智慧水利建设的指导意见》、《“十四五”智慧水利建设规划》中,水利部明确智慧水利建设目标:到2025年建成七大江河数字孪生流域,即: 到2025年,通过建设数字孪生流域、“2N”水利智能业务应用体系、水…

编程会不会被中英文转换干扰?

目录 引言: 解决办法: 图片: 引言: 我在编程的时候总是容易误触shift,导致代码编译错误,我都不知道哪里出了问题,每次基本要重…

2023志愿填报区块链专业

随着区块链技术的迅速发展,区块链专业毕业生在就业市场上拥有广阔的前景。他们可以在多个领域找到就业机会,从而实现职业发展和稳定的薪资待遇。 首先,金融行业是区块链专业毕业生的主要就业领域之一。银行、证券公司和支付机构等金融机构对…

【Lesson 02】 TiDB Server

目录 0 章节目标 一 TiDB Server架构 二 TiDB Server 作用​ 三 TiDB Server 的进程 1 SQL语句的解析和编译 2 SQL读写相关模块 3 在线DDL相关模块 4 GC机制与相关模块 四 TiDB Server的缓存 1 TIDB的缓存组成 2 TiDB 缓存管理 3 热点小表缓存 4 热点小表缓存-原理 0…

node基于express+mongodb项目的整体结构搭建和逻辑抽离

一、为什么需要逻辑抽离 这是我用express实现的一个缩减版的注册功能,如下: app.js const express require("express"); const app express();// 连接数据库 const mongoose require("mongoose"); // 连接数据库myTest mongoose.connect(…

python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)

简介 上一篇已经给大家都介绍过了流程类接口关联,但是由于博客的登录机制改变,所以没有办法给小伙伴们实战演练一下,那么这篇就按照上一篇计划的用jenkins来给小伙伴们演示一下流程类接口的封装和调用,其实很简单,就是…

RestTemplate和Sentinel整合

引入restTemplate EnableDiscoveryClient EnableFeignClients SpringBootApplication public class OrderApplication {BeanLoadBalanced//添加注解SentinelRestTemplateSentinelRestTemplatepublic RestTemplate getRestTemplate() {return new RestTemplate();}public stati…

【已解决】html元素如何使字体占据相同的元素显得整齐

本博文源于自身的亲身实践,让html的文本元素对齐,如果不让其对齐就会变得很丑陋,如下图,那么如何设置才能让元素占据相同呢? 文章目录 1、问题来源2、问题解决思路3、问题解决方案4、问题完整源码及效果 1、问题来源 …

animation.css无法显示动画效果问题解决

在使用【微信开发者工具】开发微信小程序时发现无法在开发者工具中展示出动画效果来 但是真机调试中可以正常的显示动画效果 【关于微信小程序中如何使用animation.css,参考微信小程序使用animation.css_THE WHY的博客-CSDN博客 】 同时发现在官网上点击各个动画并…

Django_POST请求的CSRF验证

目录 正常验证CSRF form表单 ajax的POST请求 关闭CSRF验证 源码等资料获取方法 django的POST接口发起请求默认清空下需要进行CSRF验证 正常验证CSRF form表单 如果form表单直接在标签之间添加{{ csrf_token }}就可以完成验证 ajax的POST请求 ajax的post需要在请求的he…

【Vue2.0源码学习】模板编译篇-模板解析阶段(整体运行流程)

文章目录 1. 前言2. 什么是模板编译3. 整体渲染流程4. 模板编译内部流程4.1 抽象语法树AST4.2 具体流程 5. 小总结6. 整体流程7. 回到源码8. 总结 1. 前言 在前几篇文章中,我们介绍了Vue中的虚拟DOM以及虚拟DOM的patch(DOM-Diff)过程,而虚拟DOM存在的必…

阿里云AliYun物联网平台使用-设备添加以及模拟设备端上云

一、前言 上一篇文章提到,我们已经申请了免费的阿里云平台,下面需要将我们的设备在阿里云上进行注册和申请,以便于我们的数据上云。 二、步骤 注册产品(设备模型) 在产品页面,点击 "创建产品" 。…

DevExpress WinForms TreeList控件,让业务数据展示更清晰!(一)

DevExpress WinForms的TreeList控件是一个功能齐全、数据感知的TreeView-ListView的混合体,它可以以树形、网格或两者结合的形式显示数据信息。无论是数据绑定模式还是非绑定模式,都具有完整的数据编辑支持。 PS:DevExpress WinForm拥有180组…

【测试开发】Junit 框架

目录 一. 认识 Junit 二. Junit 的常用注解 1. Test 2. Disabled 3. BeforeAll 4. AfterAll 5. BeforeEach 6. AfterEach 7. 执行测试 三. 参数化 1. 引入依赖 2. 单参数 3. 多参数 3.1 通过CSV实现 3.2 通过方法实现 4. 测试用例的执行顺序 四. 断言 五…

设计模式【结构型】-- 装饰者模式

装饰模式(Decorator Pattern) 定义 装饰者模式是一种结构型设计模式,它允许你动态地将新功能添加到对象中,通过将对象放入包含这些功能的特殊包装器对象中。这样一来,你可以在运行时通过组合不同的对象来扩展功能&…

用手机号注册亚马逊买家号需要注意什么问题

亚马逊平台的买家号可以用手机号注册也可以用邮箱进行注册,注册方法都是打开官网后点击注册,根据提示输入账号信息。当使用手机号注册亚马逊买家号时,有一些问题需要注意: 1、确保手机号的准确性:正确的手机号码非常重…

Android 系统的分区介绍

由于Android系统采用Linux架构,所以Android的系统分区可以类比同样采用Linux架构的操作系统(如Windows)。 Android系统分区分类 现在一般常见的Android分区方式共有三种,在不同的Android系统版本上会采用不同的分区方式。 1、传…

CentOS 7.8 Oracle 19C安装部署

CentOS 7.8 Oracle 19C安装部署 一、环境检查1、操作系统检查2、内存检查3、SWAP检查4、共享内存检查5、磁盘空间检查 二、YUM配置及RPM依赖包安装1、YUM源搭建2、 RPM依赖包安装 三、创建组、用户、目录1、创建组、用户2、创建目录 四、系统参数配置1、关闭防火墙2、配置域名解…