【学习笔记】Linux(基础知识)

第1章 Linux概况

1.1 Linux起源

四个重要的支柱:
①Unix操作系统;
②Minix操作系统;
③GNU计划;
④Internet网络。

1. Unix操作系统

UNIX的诞生

1971年,用汇编语言首先开发成功16位UNIX系统
1973年,用C语言重写了UNIX系统

创始人:Ken Thompson & Dennis Ritchie

肯·汤普逊(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)是计算机科学领域的两位著名人物,他们在计算机科学和软件工程领域做出了重大贡献。
肯·汤普逊是 UNIX 操作系统的共同创始人之一。他与丹尼斯·里奇等人合作,参与了 UNIX 操作系统的开发工作。此外,他还对编程语言、编译器、操作系统和计算机安全等领域做出了杰出贡献。他的工作成果为计算机科学的发展做出了重要贡献,对后来的操作系统设计和实现产生了深远影响。
丹尼斯·里奇是 C 语言的共同创作者之一,也是 UNIX 操作系统的共同创始人。他与肯·汤普逊等人一起设计和实现了 UNIX 操作系统,并且是 C 语言的主要设计者之一。C 语言作为一种通用的高级编程语言,对计算机编程和软件开发产生了深远的影响,成为了广泛使用的编程语言之一。丹尼斯·里奇的贡献使得计算机软件开发变得更加灵活高效,为计算机科学和软件工程领域做出了重大贡献。
肯·汤普逊和丹尼斯·里奇的工作对整个计算机产业和软件行业都产生了深远的影响,他们被公认为计算机领域的杰出先驱和重要人物。

UNIX的源代码

UNIX 操作系统的早期版本是闭源的,只有少数学术机构和公司可以获取到 UNIX 的源代码。但在 1970 年代末和 1980 年代初,AT&T 公司决定将 UNIX 的源代码授权给一些学术机构,这样就使得更多的人能够接触到 UNIX 源代码,并进行进一步的研究和开发。
1983 年,AT&T 公司发布了 UNIX 第六版的源代码许可,并允许个人和组织使用这些源代码作为学术用途。这一举措在学术界和软件开发领域引起了巨大的影响,为后来的 UNIX 衍生版本和类 UNIX 系统的发展奠定了基础。
后来,由于历经不同厂商和组织的改进和扩展,UNIX 分化成了多个版本,如 BSD、System V 等。其中,BSD 版本的 UNIX 源代码被加州大学伯克利分校(UCB)开放,并成为了伯克利软件套件(Berkeley Software Distribution)。这使得更多的人可以访问到 UNIX 的源代码,并为 UNIX 的发展做出贡献。
现在,UNIX 的早期版本源代码已经成为历史文化遗产,部分版本的源代码成为了公共资源,供学术研究和个人学习之用。UNIX 的开放源代码许可为计算机科学领域的发展做出了重要贡献,也为后来的开源运动和自由软件运动奠定了基础。

2. Minix操作系统

Minix是一个微内核操作系统,最初由荷兰计算机科学家Andrew S. Tanenbaum开发。Minix的设计目标是教育和研究,因此它的内核非常精简,而且易于理解和修改。该操作系统的第一个版本发布于1987年,后来经过多次更新和改进。
Minix的设计受到了Unix的启发,但它并不是Unix的衍生物。Minix的源代码曾被用作操作系统教学材料,尤其是在教授操作系统课程时广泛使用。后来,Linus Torvalds在Minix的基础上开发了Linux内核,这使得Minix和Linux有着一定的渊源关系。
由于Minix的轻量级和可定制性,它在嵌入式系统和教育领域得到了广泛应用。同时,Minix也在学术界和业界引起了一定的关注,被用于研究和实验性质的项目中。
总的来说,Minix是一个具有教育和研究价值的操作系统,虽然在商业应用方面并不像Linux或Windows那样普及,但它在特定领域有着自己的一席之地。

官网:https://www.minix3.org/

3. GNU计划(GNU is Not Unix)

GNU计划是由Richard Stallman于1983年发起的一个自由软件运动,旨在为用户提供自由软件,并推广自由软件的理念和实践。其名称“GNU”是“GNU’s Not Unix”的缩写,意味着GNU是一个类Unix系统,但背后的哲学和实践是不同的。
GNU计划的核心目标是创建一个完全自由的操作系统,包含可以替代Unix的所有工具和应用程序。其中最重要的组件是GCC编译器,它是一种开源编译器,可将高级语言代码转换为可执行程序。此外,GNU还包括了许多其他组件,如GNU Emacs文本编辑器、GNU Bison解析器生成器、GNU Debugger调试器等等。
GNU计划强调软件的自由和开放性,这意味着用户可以自由地使用、复制、分发和修改软件,而不必受到版权或专利的限制。GNU计划的哲学深受自由软件基金会的影响,该组织成立于1985年,旨在推广自由软件的概念和实践,并保护用户的自由。
总的来说,GNU计划代表了一个强调自由和开放性的软件开发和分发模式,为自由软件的发展和推广做出了巨大的贡献。

1.2 Linux的内核版本

Linux版本分为:
Linux 内核版本 —— Linux主体
Linux distirbutions(发行版) —— Linux内核+应用程序

Linux 内核版本

Linux内核版本采用双轨制:稳定版开发版

Linux内核网址:https://www.kernel.org/

Linux 版本号说明

Linux 版本号说明

1.3 Linux的发行版本

国外

  1. Red Hat Enterprise Linux(RHEL)

     官网:https://www.redhat.com/en
    
  2. Fedora

     官网:https://fedoraproject.org/
    
  3. Centos

     官网:https://www.centos.org/
    
  4. Debian

     官网:https://www.debian.org/
    
  5. Ubuntu

     官网:https://cn.ubuntu.com/
    

国产

  1. Red Flag/红旗

     官网:https://www.chinaredflag.cn/
    
  2. 深度操作系统 (Deepin)

     官网:https://www.deepin.org/zh/acknowledgments/deepin/
    
  3. 中标麒麟

     官网:https://www.cs2c.com.cn/scheme/product/1.html
    

1.4 Linux的基本管理

Linux的CPU管理

  1. 是操作系统最核心的功能。
  2. 对CPU运行时间的合理分配管理。
  3. Linux主要采用分时方式管理CPU的运行时间。

Linux的存储管理

  1. 存储器分为内存外存两种
    操作系统的存储管理主要是指对内存的管理。</

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

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

相关文章

KSP实战-使用ksp AutoService为SPI自动生成配置文件

AutoService AutoService KSP annotation processor 简介 AutoService是自动为Service Provider Interface&#xff08;SPI&#xff09;生成 META-INF/services 配置的高性能KSP注解处理器插件&#xff1b; 效果如图&#xff1a; 背过Java面试题的应该都知道SPI&#xff0c…

【c语言】【visual studio】动态内存管理,malloc,calloc,realloc详解。

引言&#xff1a;随着大一期末的到来&#xff0c;想必许多学生都学到内存的动态管理这一部分了&#xff0c;看望这篇博客后&#xff0c;希望能解除你心中对这一章节的疑惑。 (・∀・(・∀・(・∀・*) 1.malloc详解 malloc的头文件是#include <sdtlib.h>,malloc - C Ref…

【C语言】——认识指针变量和地址,以及指针变量类型的意义

&#x1f3a5; 岁月失语唯石能言的个人主页 &#x1f525;个人栏专&#xff1a;秒懂C语言 ⭐若在许我少年时&#xff0c;一两黄金一两风 目录 前言 一、指针变量和地址 1.1 取地址操作符&#xff08;&&#xff09; 1.2 指针变量和解引用操作符&#xff…

Linux上使用HTTP协议进行数据获取的实战示例

嗨&#xff0c;Linux爱好者们&#xff0c;今天我们要一起探讨一下如何在Linux上进行HTTP协议的数据获取。这不是一项简单的任务&#xff0c;但放心&#xff0c;我会以最简单的语言&#xff0c;结合实例来给大家讲解。 首先&#xff0c;我们需要一个工具&#xff0c;那就是curl…

初识Dubbo学习,一文掌握Dubbo基础知识文集(2)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

springMVC-@RequestMapping

基本介绍 RequestMapping注解可以指定控制器/处理器的某个方法的请求的url, 示例 &#xff08;结合springMVC基本原理理解&#xff09; Controller public class UserHandler {RequestMapping(value "/login")public String login() {System.out.println("登…

springCloud项目打包如何把jar放到指定目录下

springCloud项目打包如何把jar发放到指定目录下 maven-antrun-plugin springCloud微服务打包jar&#xff0c;模块过多&#xff1b;我的项目模块结构如下&#xff1a; 我把实体类相关的单独抽离一个模块在service-api下服务单独写在service某块下&#xff0c; 每个模块的jar都…

如何使用jQuery获取当前网址路径

如何使用jQuery获取当前网址路径概述在前端开发中&#xff0c;经常需要获取当前网址的路径&#xff0c;通过使用jQuery库&#xff0c;我们可以轻松地实现这个功能。本文将逐步介绍如何使用jQuery获取当前网址路径。流程步骤以下是实现该功能的步骤&#xff1a;步骤 描述…

人工智能导论复习资料

题型 1、简答题&#xff08;5题&#xff09; 2、设计题 3、综合题 4、论述题&#xff08;10分&#xff09; 考点 第一章 1、人工智能的定义、发展&#xff1b; 2、人工智能的学派、认知观及其间的关系&#xff1b; 3、人工智能要素及系统分类&#xff1b; 4、人工智能的研究、…

Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-LSTM的轴承故障诊断分类 3.1 训练数据、测试数据分组&#xff0c;数据分batch 3.…

canal环境部署

docker 部署canal同步数据 1 环境: 2 Mysql 配置 查看 binlog 是否启用 SHOW VARIABLES LIKE ‘%log_bin%’; 开启 binlog, 修改 my.cnf docker cp mysql:/etc/my.cnf /data/mysql/conf 拷贝文件到临时目录修改后再拷贝回去 # For advice on how to change settings please …

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ &#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 ​ 目录 &#x1f608;1. 初识…

渗透实验基础教程(完整版):

#江南的江 #每日鸡汤&#xff1a;影响我们人生的绝不仅仅是环境&#xff0c;其实是心态在控制个人的行动和思想。同时&#xff0c;心态也决定了一个人的视野事业和成就&#xff0c;甚至一生。 #初心和目标&#xff1a;成为网络安全达人。。。 渗透实验基础教程&#xff08;完整…

自动驾驶技术:驶向未来的智能之路

导言 自动驾驶技术正引领着汽车产业向着更安全、高效、智能的未来演进。本文将深入研究自动驾驶技术的核心原理、关键技术、应用场景以及对交通、社会的深远影响。 1. 简介 自动驾驶技术是基于先进传感器、计算机视觉、机器学习等技术的创新&#xff0c;旨在实现汽车在不需要人…

关于后端返回给我们的对象或者数组为空时我们把空字符(“”)串变成横杠(“-”)

根据需求&#xff0c;我们分别把他写成两种方法&#xff0c;在我们项目中可以 直接调用该方法&#xff0c;方法如下&#xff1a; 1.把数组中为空的项替换成横杠 //把数组中为空的项替换成横杠 export function filtrateData(data) { data.forEach(obj > { Object.keys(obj)…

WEB 3D技术 简述React Hook/Class 组件中使用three.js方式

之前 已经讲过了 用vue结合three.js进行开发 那么 自然是少不了react 我们 还是先创建一个文件夹 终端执行 npm init vitelatest输入一下项目名称 然后技术选择 react 也不太清楚大家的基础 那就选择最简单的js 然后 我们就创建完成了 然后 我们用编辑器打开创建好的项目目…

Angular中使用Intersection Observer API实现无限滚动

背景&#xff1a; 实现原理为 在data下面加一个loading元素 如果此元素进入视窗 则调用api获取新的数据加到原来的数据里面&#xff0c;这时loading就会被新数据顶下去&#xff0c;如此循环。 <div id"dataContainer"></div> <div id"loadingCo…

Win7系统桌面出现白色透明框的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

高云GW1NSR-4C开发板M3核RT-Thread应用

1.仅提供RT-Thread的Nano版本 MCU工程在\EMPU(GW1NS-4C)_V1.2\ref_design\MCU_RefDesign\Keil_RefDesign\rt_thread_nano\PROJECT目录下&#xff0c;FPGA工程参考&#xff1a; 高云GW1NSR-4C开发板M3硬核应用-CSDN博客 特别注意&#xff0c;MCU主频&#xff08;即FPGA工程经P…

Adaptive IBC :异构链互操作性的颠覆者

2024年第一季度&#xff0c;隐私协议 Secret Network 将会使用 Octopus Network 基于 Adaptive IBC 技术路线开发的 NEAR IBC&#xff0c;实现与 NEAR Protocol 之间将会实现首次跨链交互&#xff0c;这同样是 Cosmos 生态与 NEAR 之间的首次连接。整个加密世界正在成为一个越来…