LInux背景【Linux】

news2024/9/27 15:18:20

一、技术推动社会发展的基本动力

作为万物之长的人类,我们相较于其他的生物哪里是特殊的?举一个例子:老虎需要几千上万年进化来的爪子,人类可以在更短的时间内通过制造石矛石斧这类工具变可以模拟。通过这一个例子我们得出——人的进化方式,是以工具的发明创造而产生的。正因如此,人类发展的速度是非常之快的。

但是人类又为什么要去制造工呢?在远古时期,人类制造工具是为了与自然对抗;在现代人类的发展可以说是人与人甚至是国与国之间对抗的结果。因此人发明工具是必然的。 没有人愿意回到野蛮人的生活方式,没有一个企业不希望自己拥有强大的竞争力,没有一个国家愿意一直被其他的国家踩在脚底。

人是如何发明工具的,发明工具后如何让更多人使用工具呢?人通过实践,总结出知识,通过知识创造出新的工具,再将工具用于探索新知识,再通过新的知识用来创造更好的工具。这一个良性循环也就是人类这几千年的发展史了。

讲一个小小的题外话:为什么会有不同的岗位和行业?

与几千年前的人类相比,我们的学习能力其实没有多大的变化,但是却诞生了海量的工具与知识。一种工具的背后就可能包含着海量的知识,一个人是不可能学习到这么多知识的,所以就会有很多人负责一个工具的不同部分。这里以计算机为例,其背后就有大量的知识,并且其所涵盖的职业就有:C++、java、测试开发、运维等等职业。

二、计算机(操作系统)发展的基本脉络

第一台计算机是在什么时候发明的,在什么背景下发明的?1946年2月14日——二战结束,同时也是苏美冷战的开始,上面我们讲到了国与国之间的抗争促使了科技的进步——军备竞赛。这其中也包括了计算机的发明。计算机发明的初衷就是为了计算导弹发射距离与下落的地点。这里我们可以得出一个结论,很多新的科技都是先产生并用于军方。埋一个小伏笔:这些科技优势怎么流入民间的呢?

以美国为例:

早期的军方其实是没有什么科研能力的,那他们是如何发明科技的呢?答案是与大学合作,这样就促使了科研机构的诞生这样就产生了很多的技术结论与专利。进行科技研究会用到很多的昂贵材料以及大量的实验所产生的消耗,这会产生一笔非常巨大的费用,当然这笔费用由政府出,但政府也是通过税收来获取资金的,不可盲目增加科研经费。因此军方就会用到一些他们的技术与科技进行牟利来支撑研发经费。并且在一段时间后,某些技术并不那么前端了军方就会将该科技下放至民间,由一些商业公司进行使用。在计算机领域就产生了这样一批公司:IBM、微软、苹果,intel。其中IBM放弃个人电脑专做大型计算机给商业公司以及军方使用;而微软负责软件intel负责硬件成为了现在最风靡全球的计算机组合,因为他们的生产成本较苹果更低,所以价格野更为亲民;而苹果软硬件两头抓专攻高端用户。

上面讲到的经济链就是硅谷圈:

三、Linux发展的基本脉络

先讲一下操作系统与硬件之间的关系。

就像是游乐场:

游乐场里面有游乐设施——相当于硬件

也有工作人员——相当于操作系统。

在游乐场里面光有游乐设施这个游乐场是完全运转不起来的。Linux在内的操作系统扮演的就是这样的一个角色。

很久以前有一个大佬叫做肯汤普森,他用汇编语言写出了第一个unix操作系统,后来他和它的好基友丹尼斯里奇——c语言之父一起用c语言又写了一个unix操作系统。他们将这个系统包装售卖给公司牟利,也以捐赠的名义给一些大学的机器装载了这个系统。其中一个大学位于芬兰,赫尔辛基大学,在1991年一个名叫雷纳斯托瓦兹的学生升入这所大学,他在试用了这个操作系统后,仿照unix系统交互模式编写了一个操作系统,并将这个代码公诸于世。他就是Linux之父,活着的传奇,这个开源的操作系统就是最早期的Linux。第一代的Linux只是由少量的汇编+C语言+GNU组成的。

这里插一个小话题(可跳过不影响阅读):你们觉得代码开源好还是不开源好?举一个例子:这就相当于你在大街上画画,有些人过来看热闹,其中就有一些资深艺术家,他们在你绘画的过程不断提供宝贵的意见,这样就使你的作品更为生动丰满。这其实将相当于开源。

雷纳斯托瓦兹将代码开源后就有这么一群有钱有技术的编程大佬、黑客、业内大佬就自发的组成社区,为Linux的更新换代不断提供代码。经过一轮又一轮的更新才会有我们现在所看到的Linux系统。这样也让Linux系统具有:代码的稳定性、代码的安全性、代码的执行效率都非常优秀。

这个系统的受众是什么?平民百姓还是企业呢,答案显然是企业。因为Linux是免费的并不盈利,所以社区不会话精力去做那种图形化界面之类的优化一切以实用为主。因此普通大众很难上手的。但企业就不一样了,如果他去用其他企业的操作系统,比如苹果、微软,这就可能会在每年都产生一笔非常大的开销,比如每台机子每年交五百那么千台万台呢。况且这些操作系统还是闭源的,要是这个系统有后门可以调取客户珍贵的信息呢,并不安全。但是这时候Linux诞生了,免费、稳定、高效、且还能及时修复bug,这谁不爱。

其实社区资金来源也有一部分是这些企业捐赠的,毕竟他们才是最希望Linux能正常运行发展下去的那批人。

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

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

相关文章

python自学之《21天学通Python》(7)

第10章 Python进阶话题 10.1 函数与命名空间 Python中可以通过模块来管理复杂的程序,而将不同功能的函数分布在不同的模块中,那么函数及其全局命名空间决定了函数中引用全局变量的值。函数的全局命名空间始终是定义该函数的模块,而不是调用该…

java面试之Spring篇

一、Spring概述 1. Spring由哪些模块组成 spring core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。spring beans…

windows无线连接Linux服务器,实现终端操作与文件传输

0、建议安装完Ubuntu后按照百问网的设置安装必要的linux软件 执行: git clone https://e.coding.net/weidongshan/DevelopmentEnvConf.git cd DevelopmentEnvConf sudo ./Configuring_ubuntu.sh 等待安装完成,大约半个小时事件。 我搭建的环境 家…

git的使用

一、创建仓库 gitee官网创建好用户之后,我们点创建仓库。 选择好语言,开源许可证随便选一个即可,模板我们最好设置一个Readme文件,方便后面写明仓库的介绍。 分支模型我们新手选一个单分支模型就可以了。 因为仓库创建的时候只能…

Windows下Canal.admin-1.1.6安装部署

一、下载解压 1 下载 进入页面:Release v1.1.6 alibaba/canal GitHub 下载 canal.admin-1.1.6.tar.gz 2 解压 解压至目录:D:\Tools\canal.admin-1.1.6 二、创建数据库 canal_manager 1 创建时间数据库:canal_manager 2 初始化元数据…

并发编程学习案例-模拟抢红包

一、前言 再来系统动手学习一下Java并发编程。 知识点:CountDownLatch 的发令枪使用模式;红包均分,最后一个分不完的解决方法 抢红包的需求,每个红包均分,最后一个除外 1. 设置红包总额 2. 设置红包的个数 3. 模拟抢红包的人数 &a…

图文结合带你搞懂MySQL日志之relay log(中继日志)

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者: KAiTO文章来源:GreatSQL社区原创 什么是中继日志(relay log) 中继日志&a…

线程,协程,异步编程模型

线程,协程,异步编程模型 1.线程编程模型 我们知道线程是 cpu 调度的基本单位。 如果是一个单核的cpu, 而且现在有3个线程需要执行。那么可能是 线程 1, 2, 3 通过 cpu分片, 轮流执行。 那么 如果不将 cpu 进行分片, 而是 线程 1,2,3 轮流执行&#x…

Springboot中如何优雅的写好controller层代码

前言优雅?看到这个词,我第一反应是什么是优雅?怎么写才算优雅?一千个读者有一千个哈姆雷特,每个人的经验、阅历不同,也许理解就不同。我对优雅的理解很简单,就是简洁有效、容易理解,…

递归、迭代、单向快排的实现和两种优化方法

目录 快速排序 实现代码​​​​​​​ 时间复杂度 快排的优化 随机选择策略 三位取中法 非递归的快排 单向快排 快速排序 快速排序算法是基于分治策略的一个排序算法,其基本思想是对于输入的子数组进行分解、递归求解,最后合并。 分解&#xff…

Fiddler - 夜神模拟器证书安装App抓包

Fiddler- 夜神模拟器证书安装App抓包 文章目录Fiddler- 夜神模拟器证书安装App抓包前言一、软件安装1.Openssl安装1.1下载安装1.2配置环境变量1.3查看openssl版本,输入命令:openssl version2.夜神模拟器安装1.1 下载安装1.2工具准备,MT管理器…

React相关扩展一(setState、lazyLoad、Hooks相关)(九)

系列文章目录 第一章:React基础知识(React基本使用、JSX语法、React模块化与组件化)(一) 第二章:React基础知识(组件实例三大核心属性state、props、refs)(二&#xff0…

基于轻量级CNN的WHDLD多标签遥感分类识别系统

WHDLD数据成像波段包括R、G、B波段,数据覆盖包括6类地貌:裸地、建筑物、人行道、道路、植被、水域。数据集中包含4940张遥感影像及对应地物分类标记样本,影像大小为256x256像素,影像以jpg格式存储,标签数据格式为单通道…

高级前端常考手写面试题合集

解析 URL Params 为对象 let url http://www.domain.com/?useranonymous&id123&id456&city%E5%8C%97%E4%BA%AC&enabled; parseParam(url) /* 结果 { user: anonymous,id: [ 123, 456 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字…

React(coderwhy)- 09(项目实战 - 1)

创建React项目 ◼ 创建项目的方式:create-react-app ◼ 项目配置:  配置项目的icon  配置项目的标题  配置jsconfig.json 新建jsconfig.json文件,在文件中粘贴以下内容{"compilerOptions": {"target": "es5","…

【数据结构趣味多】循环队列

目录 函数介绍及模拟实现 Front()函数 Rear()函数 enQueue()函数 deQueue()函数 isEmpty()函数 isFull()函数 循环队列模拟题 定义:把队列的头尾相连接的的顺序存储结构称为循环队列;循环队列的是由顺序表实现的。 为什么要使用循环队列&#…

Android MVVM之SavedStateHandle数据保存之详解与使用。

一、介绍 SavedStateHandle从名字可以看出,是保存状态的。这个类常和MVVM中的ViewModel搭配使用,对页面生命周期的数据状态的缓存与恢复做一个容器。这个容易相对onSaveInstanceState(Bundle)要更强一点,保存的数据类型也比较丰富&#xff0c…

算法刷题打卡第60天:回文链表

回文链表 难度:简单 给定一个链表的 头节点 head ,请判断其是否为回文链表。 如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。 示例 1: 输入: head [1,2,3,3,2,1] 输出: true示例 2: 输入:…

文本摘要,基于Pytorch和Hugging Face Transformers构建示例,有源码

​ 文本摘要的常见问题和解决方法概述,以及使用Hugging Face Transformers库构建基于新浪微博数据集的文本摘要示例。 作 者丨程旭源 学习笔记 1 前言简介 文本摘要旨在将文本或文本集合转换为包含关键信息的简短文本。主流方法有两种类型,抽取式和生…

Nodejs模块的封装(数据库Mysql)

文章目录项目结构本次演示需要使用的第三方包为1.app.js相关配置2.router下的user.js相关配置3.db/index.js文件相关操作4.router_handler下的user.js相关操作项目结构 后面的项目相关文件的创建步骤按照我写的博客从上往下一步一步来 本次演示需要使用的第三方包为 "cor…