Linux学习《解密之前世与今生》

漆黑的夜里,室内的灯光白亮。静静的,理理思绪,想写点什么。享受着思考和兴奋。学习Linux系统有段时间,今天就和大家分享一下我的收获。

在分享之前,提几个问题:

第一:什么是Linux系统,它为什么会出现?

第二:学习Linux系统,到底是学习些什么东西?

OK,带着这几个问题,开始我们今天的解密之旅。

最早计算机出现的时候是没有操作系统这么一说法的,后来人们发现,在使用计算机当中,人是最薄弱的一环,每一次为了让计算机运行程序,我们人需要把程序转换成机器可以理解的格式,而那个时候计算机的输入输出设备叫穿孔纸带。计算机运行很快,人在输入和读取结果是很慢。等磁带出现后,人们就想,把要运行的程序做成多个,然后顺序的放在磁带机上,让电脑能通过读磁带加载要运行的程序,这种叫做批处理系统(batch)。但是批处理系统有一个特性,计算机在某一时刻只能干一件事,单任务执行,cpu计算能力大量是闲置的。于是人们就想能不能多任务(multi tasks)执行,让计算机同一个时段运行多个程序。cpu只有一个,那么怎么让多个任务齐头并进呢?比如有三个任务,执行5秒钟第一个任务,不管有没有执行完,执行5秒钟第二个任务,接着执行5秒钟第三个任务,回过头来,第一个任务接着刚刚中断的位置继续执行。按时间切割cpu。为了让多任务跑起来,我们必须有个监控程序。

那时候就人在做这个项目,比如at&t的Bell实验室、MIT麻省理工人工智能实验室、GE通用电器(General Electric company)联合研发这么个监控程序,起名叫Multics(分时操作系统)。两到三年后,贝尔实验室撤出Multics计划,并召回工程师,其中有个叫肯.汤普森(ken Thompson),写了一个“star travel”游戏运行于Multics系统,贝尔实验室退出Multics计划后,肯.汤普森(ken Thompson)没有权限免费使用Multics系统,为了继续研究自己的“star travel”游戏,决定自己写一个系统,他创造出了名为Bon的程序语言,开发了UNiplexend Information and Computing System(UNICS系统)可执行PDP-7机器上,后来改称UNIX。1971年,肯.汤普森(ken Thompson)和丹尼斯.里奇(Dennis Ritch)对Bon语言改造发明C语言。1973年,肯.汤普森(ken Thompson)和丹尼斯.里奇(Dennis Ritch)用C重写UNIX,安装于PDP-11机器上。1974年,unix第一次公之于众。因为当时美国正在反垄断,所以很多大学和研究机构能免费拿到和研究unix,并主动将研究成果反馈给贝尔实验室。1976年,肯.汤普森(ken Thompson)去伯克利大学(Berkeley)支教。伯克利大学(Berkeley)有个著名的研究生比尔.乔伊(Bill joy)成了BSRG组织。1980年,美国国防部(DARPA)需要在unix上实现TCP/IP协议,将合同给了BSRG。1983年,TCP/IP正式诞生unix系统上。1981年,at&t分拆,贝尔实验室独立出来,要求所有使用unix系统的交版权费。1985年,MIT麻省理工的理查德.马修.斯托曼(Richard stallman)针对unix系统收费问题发起共产主义运动GNU,编写GNU通用公共许可证(GNU GPL)并成立自由软件基金会(Free software foundation)。1991年8月份,芬兰大学生林纳斯.托瓦兹(Linux Torvalds)宣布成立Linux,遵循GPL协议。

内核(kernel):1.驱动底层硬件

2.把底层各硬件资源抽象成简单资源

3.管理各程序运行

Linux就是种内核

完整的OS:

kernel+Application

狭义的OS:

kernel

Linux系统:GNU/Linux

操作系统功能:

驱动程序

进程管理

安全

网络功能

内存管理

文件系统

。。。。

Linux我想大家都知道很流行,那么我们要学习Linux系统,大概要学以下内容:

1.Linux入门、Linux系统管理、Linux服务及安全管理

2.Linux cluster(集群)

3.Linux ops运维工具:ansible、puppet、saltstack、cobbler

4.linux monitoring监控工具:zabbix

5.shell脚本编程

6.http服务、tomcat、mysql

7.分布式存储系统:Mogilefs,clusterfs

8.NoSQL:redis,mongodb

9.虚拟化

10.Docker(容器引擎):容器云

11.elk stack(日志分析工具)elasticsearch,logstash,kibana

12.大数据:hadoop

13.系统优化

14.python编程

时间: 2024-10-09 22:23:15

Linux学习《解密之前世与今生》的相关文章

Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度(六)

日期 内核版本 架构 作者 GitHub CSDN 2016-05-29 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 前言 Linux下有3个特殊的进程,idle进程(PID=0), init进程(PID=1)和kthreadd(PID=2) * idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产

linux学习之路之创建私钥CA及使用CA为客户端颁发证书

创建CA(Certificate Authority) CA的储存格式主要有2种:x509和pkcs12 x509是目前最主流的CA储存格式,在x509格式的证书中,储存的内容主要有: 证书的公钥和使用期限 证书的合法拥有着 证书该如何被使用 CA的信息 CA签名的校验码 默认情况下,TCP/IP模型和OSI模型,并没有实现数据的加密,而要实现数据的加密需要使用TLS/SSL协议,TLS和SSL在有些Linux版本上实现的机制是相同的,因此在这里我们之介绍SSL协议 SSL(Secure Soc

linux学习之路之ssh协议

SSH协议 SSH英文全称Secure SShell,是一种安全的协议,也是用于远程登入的. SSH相比telenet而言,具有更高的安全性,使用telent远处登入某台主机,存在着以下两个隐患: 1.用户认证是明文的 2.数据传输也是明文的 因此,处于数据安全考虑,使用SSH来远处登入更安全. SSH有2个版本,SSHv1和SSHv2,SSH1由于无法抵挡中间人攻击,因此,现在很少使用SSHv1版了.所以使用更多的还是SSHv2版,毕竟它要安全多了. SSH是工作在TCP层,端口号是22:te

linux学习之路之加密类型及其相关算法

加密类型及其相关算法 随着互联网越演越烈,互联网上的各种攻击层出不穷,因此在互联网上相互传递的信息越来越不安全,因此为了防止用户在互联网上传递的数据被窃取,因此我们很有必须加强传递的数据的安全性. 数据的安全性主要包括以下三个方面: 数据的机密性:保证传递的数据不被读取 要想使传递的数据不被读取,可以对这些数据进行加密,因为默认这些数据是以明文来传递的 整个加密过程可以这么来理解: 加密:plaintext--->转换规则--->ciphertext 解密:ciphertext--->转

互联网金融的前世、今生和未来-系列五(今生):互联网金融的有效监管

互联网金融的前世.今生和未来--系列一:山雨欲来 互联网金融的前世.今生和未来-系列二(前世):金融与技术的首次亲密接触之金融电子化 互联网金融的前世.今生和未来-系列三(今生):一场跨界的战争 互联网金融的前世.今生和未来-系列四(今生):百花齐放的互联网金融业态 今生:金融与互联网的深度融合--互联网金融 金融行业作为现代经济的核心,对国民经济的平稳运行至关重要.为防止出现金融市场失灵的情况,如内幕交易.信息不对称.信托责任.监管套利.系统性风险及羊群效应等,世界各国政府普遍会基于本国的金融

马哥Linux学习笔记之三——加密

1.明文传输 ftp,http,smtp,telnet 2.机密性:plaintext-->转换规则-->ciphertext ciphertext-->转换规则-->plaintext 完整性:单项加密算法,提取数据特征码.输入一样,输出必然一样:雪崩效应,输入的微小改变,将会引起结果的巨大改变:无论原始数据是多少,结果大小都是相同的:不可逆,无法根据特征码还原原来的数据. 3.密钥 4.对称加密:有加密算法,有密钥 5.密钥交换算法 IKE(Internet Key Excha

Linux学习汇总——Linux程序管理,终端类型及命令获取帮助方式

本章Blog相关Linux知识点 计算机=硬件+软件 . 冯诺依曼理论,五大部件:CPU -- 运算器.控制器, 存储器,输入设备,输出设备. Shell 环境配置通过环境变量进行配置的 ,环境变量保存对应用程序的配置,在当前进程有效 .若长期有效,需保存到配置文件中. 语言分类: 解释型语言--写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件:编译型语言:解释性语言在运行程序的时候才翻译,效率比较低.两种方式只是翻译的时间不同 程序与进程的关系: 程序运行--进程启动

Linux学习汇总——Linux程序管理,终端类型及获取命令帮助方式

本章Blog相关Linux知识点 计算机=硬件+软件 . 冯诺依曼理论,五大部件:CPU -- 运算器.控制器, 存储器,输入设备,输出设备. Shell 环境配置通过环境变量进行配置的 ,环境变量保存对应用程序的配置,在当前进程有效 .若长期有效,需保存到配置文件中. 语言分类: 解释型语言--写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件:编译型语言:解释性语言在运行程序的时候才翻译,效率比较低.两种方式只是翻译的时间不同 程序与进程的关系: 程序运行--进程启动

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合