【学习笔记】Linux基础(零):预备知识
学习笔记(连载)之Linux系列
Note:本学习笔记源自《鸟哥的Linux私房菜(基础学习篇)》一书,为此书重要内容的摘要和总结,对于一些常识性的知识不再归纳
新型冠状病毒引发的肺炎战“疫”到了关键时期,在家无事可做,突发奇想将自己对于后端技术的学习成果通过Markdown格式记录下来,发表在博客上,帮助自己回顾学过的东西。《鸟哥的Linux私房菜》是一套很好的Linux学习材料,讲得很详细,也很深入。之前我学习Linux都是“用到哪儿,学到哪儿”,是搜索积累式的,但难免会欠缺系统性。看到这本书的口碑不错,就拿来读一读。对于有一定基础的朋友,可能会觉得本书过于啰嗦,完整阅读浪费时间,再此我将要点完整的做了整理和二次归纳,如果能帮助到您,我会倍感荣幸!Linux的学习永无止境,再此与君共勉!武汉加油!
零、Linux预备知识
0、硬件小知识
- 精简指令集RSIC处理器的指令少,单个指令运行快但复杂任务所需要的指令多:Oracle公司的SPARC架构,IBM公司的PowerPC架构,ARM架构等;复杂指令集CSIC:Intel公司x86架构及其兼容型
- 为了与32位的x86架构区分开来,x86_64专指64位x86架构;同属于x86架构,i386指80386机,i686指Pentium II/Intel Celeron或AMD Athlon(K7)机
- 比TB(Tera Bytes)更大的容量单位好友EB(Exa Bytes)和ZB(Zetta Bytes)
- 存储上(Bytes),相邻单位为1024倍的关系,而速度(Hz)上,通常为1000倍的关系;值得注意的是,硬盘制造商通常会采用1000倍关系,这与扇区(sector)数有关(传统的1个扇区=512Bytes,现在有了4K大小的扇区)
- 北桥连接CPU和内存、显卡,总线速度较快;南桥连接硬盘控制器、外设等速度较慢的设备;新的Intel架构主板往往将内存控制器集成在CPU中,采用单个桥芯片(南桥),以提高速度,CPU与内存、显卡、南桥之间通过QPI与DMI(Intel)或Hyper Transport(AMD)技术通信
- 前端总线FSB是内存控制器与内存之间的总线
- L2 Cache一般为容量小、单位容量晶体管数目多、速度比DRAM快的SRAM存储器,设计在CPU内部,运行在与CPU一样的频率上,存放一些经常被使用的数据,减少低速的内存访问
- SATA每10Bits数据都有2Bits用作校验,带宽计算需要注意
- SAS即串行SCSI(Serial Attached SCSI),比SATA快但成本高
- IOPS:Input/Output Operations Per Second
- PCIe(PCI Express)总线的xn是可以累计计算的,比如一个x16控制器可以带动两个x8的设备或一个x8和两个x4的设备全速工作;PCIe通道有的是直连CPU的,速度快,有的是通过南桥的PCIe 2.0/3.0控制器间接控制,速度较慢(有时候DMI总线宽度会成为PCIe的瓶颈);有些x16插槽只有x8或更少的部分有金手指,需要查阅主板说明书
- GT/s即千兆传输每秒(Giga Transmission per second),是物理层通信速度,需要按照通信协议和总线宽度的不同转换为文件传输速率GByte/s
- 使用
cat /proc/cpuinfo和lspci命令可以查看硬件信息
1、Linux的历史
MIT的兼容分时系统CTSS(Compatible Time-Sharing System)利用终端机访问和共享大型机资源,终端机仅有I/O功能
MIT&GE发起Multics计划,强化多用户分时系统,Bell实验室退出Multics计划
Bell实验室Ken Tompson用汇编语言写出Unix核心原型(两个重要思想:程序和系统装置都是文件;程序只有一个目的,且要有效地完成目标)
1973年Unix诞生,随后被以高级语言重构(Dennis Ritchie),伴随C语言的诞生,高级语言带来强大的可移植性
1977年加州大学伯克利分校,类Unix系统BSD诞生
1979年,AT&T发布System V,一个x86上的Unix发行版,Unix向小型机和个人计算机迁移
Note:发行版-将操作系统和工具软件(如图形界面)、安装程序、文档等打包发布
1979年,AT&T决定不再公开Unix原始码
为了在拿不到原始码的情况下进行Unix内核教学,1984年x86架构下Minix系统开始编写,非免费
1984年,Stallman发起GNU(GNU‘s Not Unix)计划,参考Unix上的软件自己写了一些自由的小软件,并筹划编写GNU C Compiler(gcc),向Unix移植了自己写的Emacs编辑器,成立自由软件基金会FSF,编写GNU C Library(glibc)和Bash Shell,起草通用公共许可证GPL防止自由软件被利用
1988年MIT主导发表了X Window System,成立XFree86组织,编写图形GUI
1991年Linus Torvalds开发出Linux v0.02核心原型,开放源代码,Linux诞生并在开发者社区文化下迅速发展
2、有关Linux的小知识
- Linux是操作系统,包括核心(含有少量核心工具)和系统调用两层,是硬件和应用程序之间的接口
- 最初Linux基于Intel 80386架构编写,在FTP上共享源代码(GNU GPL协议),BBS上进行开发交流,很快被移植到其他平台架构
- Linux的开发参考了IEEE为Unix设计的标准的POSIX(Portable Operating System Interface)规范,是一种类Unix(Unix Like)操作系统
- Linux内核采用模块化开发,新功能引入快
- Linux的内核版本号:主版本.次版本.释出版本-修改版本,通过
uname -r命令查询;注意区分发行版版本和内核版本- 2.6.x版本以前,主、次版本为奇数是发展中版本,偶数为稳定版本;新功能累积产生新的释出版本;针对某个版本的核心修改程序产生修改版本
- 3.0版本后主要依据主线版本(MainLine)开发核心,如3.9主线版本继续开发产生3.10主线版本
- 有些核心版本在结束开发后不再有人维护(End of Live,EOL),有些则是长期维护版本(LTS)
- 不同Linux发行版使用同样的Linux内核,应用软件大同小异,基本上都遵守Linux Standard Base(LSB)和File system Hierarchy Standard(FHS)规范以约束开发者;商业公司开发的发行版通常比社群版更加保守稳定
- 采用RPM软件管理的发行版:RHEL和SuSE(商业);Fedora、CentOS和OpenSuSE(社群)等
- 采用DPKG软件管理的发行版:Ubuntu(商业);Debian(社群)等
- 其他发行版:Arch、Gentoo等
- 自由(Freedom)!=免费(Free),“自由”包括:取得软件与源码、复制、修改、再发行和回馈社群的权利与义务,不可以修改自由软件的许可证,也不能将其单纯贩卖(贩卖服务、手册等附加价值是可以的)
- 自由软件是许可证更加严格的开源软件,非自由的开源软件再发布的授权可以与原软件不同,其全部或部分可作为其他软件的一部分,对商业行为相对更加友好,比如Apache授权、MIT授权和BSD授权
3、关于Linux学习方法
兴趣+成就感
- 习惯命令行,抛弃X Window(X11)环境
- 从头学习Linux基础,不要急于搞网络应用
- 找一本好的工具书,用作命令参考
- 多多上机练习,简易在实体机上装个Linux发行版(Distribution)
- 遇到问题先自己摸索尝试解决
- 在主机或网络数据库上查询How-To/FAQ
- 注意屏幕信息输出,勤于查看/var/log里的日志
- 善于提问,《提问的智慧》
- 参与讨论、协助回答问题
- 尝试Debug,不要利用重启/重装系统解决问题
- 养成做记录和整理的习惯,初学时多多借鉴他人的资料
- 尝试多种解决问题的办法,举一反三,培养长远、整体的眼光
- 不要有知识偏见
生产环境下的操作一定要谨慎,打字过快容易出现错误
【学习笔记】Linux基础(零):预备知识的更多相关文章
- 受限玻尔兹曼机(RBM)学习笔记(一)预备知识
去年 6 月份写的博文<Yusuke Sugomori 的 C 语言 Deep Learning 程序解读>是囫囵吞枣地读完一个关于 DBN 算法的开源代码后的笔记,当时对其中涉及的算法原 ...
- 《C++ Primer Plus》学习笔记 第1章 预备知识
第一章 预备知识C++在C语言的基础上添加了对"面向对象编程"的支持和对"泛型编程"的支持.类 —— 面向对象模板 —— 泛型编程1.1 C++简介1.2 C+ ...
- c语言学习笔记(2)——预备知识
c语言预备知识 1.cpu 内存条 硬盘 显卡 主板显示器 之间的关系 硬盘里的<猛龙过江>(双击)--->内存条 cpu---->显卡,声卡--->显示器 2.he ...
- 《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程
计算机原理概念: 1.CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线. 2.计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长度,根据相同的时 ...
- 合天网安实验室学习笔记----Linux基础
一.Linux的发展 linux kernel的版本是:2.6.32-279.el6.x86_64,此格式为:主版本.次版本.释出版本-修改版本 次版本为奇数:测试版: 次版本为偶数:稳定版: Lin ...
- 可搜索加密技术 - 学习笔记(二)- 预备知识:HMAC-SHA256函数
由于在之后的算法中会用到HMAC-SHA256函数,这里先简单对其进行一个介绍. 一.HMAC算法 什么是HMAC算法? HMAC是密钥相关的哈希运算消息认证码(Hash-based Message ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
随机推荐
- 什么?我往Redis写的数据怎么没了?
大概是因为int没有因为change方法而改变原值,所以就说它传过去的是自身的值,因而叫值传递:User对象经过change方法后,对象的数据变了,就认为是因为实参和形参指向的是同一片内存空间,内存空 ...
- 【题解】Comet OJ 国庆欢乐赛 简要题解
[题解]Comet OJ 国庆欢乐赛 简要题解 A 直接做 B 直接做,结论: \[ ans=\max([Max\ge \mathrm{sum}] Max,s[n]/2) \] C 考虑这样一个做法: ...
- 浅谈 OpenGL 中相关阻塞问题
昨天我遇到一个问题,问题如下: 我使用了延迟渲染,我的渲染流程是:Pass1 --> CUDA并行计算 -->Pass2 CUDA并行计算中需要使用Pass1渲染生成的两张纹理,然而我在G ...
- NB的程序员,亮瞎了你的眼吗?
郑重声明: 本文首发于人工博客 1.导读 你能想象到1K的代码能写出什么样的功能强大.效果炫酷的作品吗?来吧,今天小编带领大家认识下下面这位大神的作品. 西班牙程序员Roman Cortes用纯Jav ...
- FastJSON将Java对象转为json,日期显示时间戳未格式化解决办法
JSON版本:FastJson Java 对象转换为 JSON 格式 定义以下 Person JavaBean: public class Person { @JSONField(name = &qu ...
- java架构之路(多线程)synchronized详解以及锁的膨胀升级过程
上几次博客,我们把volatile基本都说完了,剩下的还有我们的synchronized,还有我们的AQS,这次博客我来说一下synchronized的使用和原理. synchronized是jvm内 ...
- 手抖把Python2.7卸载了,导致了自己的yum不可用以及yum因python版本无法使用的问题
摘要: 从标题就能看到我有多心如死灰了,简单介绍下我是如何自残的过程. ①首先因为需要部署爬虫程序,然后安装Python3. ②Python3系列和Python2系列版本不向下兼容,所以我就卸载了机器 ...
- 图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计
ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展.可配置的通用算法框架来实现通用调度,如何进行算法的统一注册和构建,如何进行metad ...
- Zookeeeper的安装与集群搭建
简介 Zookeeper下载 官网地址:点我直达 百度云盘:点我直达 踩坑录 官网下载一定要下载带bin的 要不然zookeeper起不起来,找不到加载类,原来从版本3.5.5开始,带有bin名称的包 ...
- 基于Netty和SpringBoot实现一个轻量级RPC框架-Client端请求响应同步化处理
前提 前置文章: <基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> <基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇> & ...