【学习笔记】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…

牛客小白月赛83

A-小天的金银铜铁_牛客小白月赛83 (nowcoder.com) AC代码: #include<bits/stdc.h> #define endl \n //#define int long long using namespace std; int a,b,c,d,e; int A,B,C,D; void solve() {cin>>a>>b>>c>>d>>e;cin>>A>>…

【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…

Java 锁的优化

Java锁的优化主要包括以下几个方面&#xff1a; 锁优化&#xff1a; 锁优化主要是通过减少锁的粒度和缩小锁的范围来提高性能。锁优化的方法有&#xff1a; 减少锁的粒度&#xff1a;将大对象拆分成小对象&#xff0c;这样可以减少锁的竞争&#xff0c;提高并发性能。缩小锁…

Git 生成系统公私钥

windows下如何生成公钥和私钥 首先Windows操作系统需要安装git.安装完成后,再到任意的文件夹内,点击右键.选择git bash here打开之后,输入ssh-keygen,一路按enter键.全部结束后,再到C:\Users\Administrator\.ssh 文件夹下,打开id_rsa.pub文件,复制文件内的公钥. 注意:.ssh是隐…

“Java已死、前端已凉”?尊嘟假嘟?

一、为什么会出现“Java已死、前端已凉”的言论 “Java已死、前端已凉”的言论出现&#xff0c;主要是由于以下几个原因&#xff1a; 技术更新迅速&#xff1a;随着互联网技术的发展&#xff0c;新的编程语言和技术不断涌现。Java和前端技术作为广泛应用的技术&#xff0c;面临…

SpringBoot 源码解析

前言 本文只是纯源码分析文章&#xff0c;阅读者需要有Spring或者SpringBoot使用经验。 SpringBoot 源码解析 SpringBoot 源码解析1&#xff1a;环境搭建 SpringBoot 源码解析2&#xff1a;启动流程1 SpringBoot 源码解析3&#xff1a;启动流程2 SpringBoot 源码解析4&#…

初识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("登…

说说你对闭包的理解?闭包使⽤场景

作用链域闭包 闭包的特性&#xff1a;说说你对闭包的理解使用闭包的注意点总结 扩展 循环中使用闭包解决 var 定义函数的问题 解决办法有三种 作用链域 JavaScript 的作用域链&#xff08;Scope Chain&#xff09;是指在代码中访问变量时的查找路径。 当 JavaScript 引擎在执…

ubuntu20.04禁用自动更新(禁用更新、禁用自动升级、禁用apt更新、禁用apt升级、禁用软件更新、禁用系统更新)

想要禁用Ubuntu 20.04的所有自动升级&#xff0c;只需要修改两个文件&#xff1a; /etc/apt/apt.conf.d/10periodic&#xff1a; 这个文件控制APT的周期性任务。你需要编辑这个文件并设置所有选项为"0"&#xff0c;这将禁止任何定期的任务。 你可以使用以下命令快速完…

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.…

Fanuc-Focas库函数库中控制机床轴的移动

在Fanuc-Focas库中控制机床轴的移动&#xff0c;通常需要通过调用库函数来实现。具体的函数和参数可能因不同的库版本和机床型号而有所不同&#xff0c;因此请参考相关的Fanuc-Focas文档或手册以获取准确的信息。 一般来说&#xff0c;控制机床轴的移动需要以下几个步骤&#…

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 …

ArchLinux安装使用ifconfig

安装 sudo pacman -S net-tools 使用 ifconfig