03
操作系统的核心:内核
能够跟硬件交互的只有内核
库存在的执行环境是被调用执行,他不能主动运行
Application Program Interface
内存可以分为三段
第一段空间是BIOS:BIOS的加载过程,也正是因为有这一段才加电自检
第二段空间是内核:加载内核的,也就是kernel space
第三段空间才是各个应用程序的使用内存
当然内存没有我们想象的这么简单,这只是表面的介绍内存的分块
shell是整个应用程序的外壳
CLI是一个shell,GUI也是一个shell
灵活使用命令的话,CLI速度远远快于GUI
shell:是一种直接与内核交互的一种方式:有图形交互方式,也有命令行交互方式
图形用户界面: GUI :命令行的是:CLI
window:换的是主题,他的shell直接做在内核里面去,而不是换shell
命令行远远快于窗口
而window的cmd下的敲打的dos命令,相当于shell的界面和功能
window是个好看的东西,linux是个智慧的东西
window2003,window2008服务性能低于linux
window服务器:用于比较低端的IDC机房和个人桌面
内核的功能(通用软件):
进程管理:协调进程
内存管理
文件系统
网络功能
硬件驱动
安全机制
......
批处理系统
jobs1$$$$$$$$$jobs2$$$$$$$:一个个工作的执行,就是批处理的性质
GE,Bell,MIT联合创建一个比批处理系统复杂的多任务系统
大型机:MainFrame
用的是汇编语言开发的。
多用户多任务(多用户计算机系统):叫做Multics
高级语言优点:对于底层的依赖是非常低的,并且通过中间件去和底层芯片或者是硬件打交道,所以高级语言无需考虑底层是intel的CPU还是AMD的CPU,缺点是:相对于低级语言的效率,高级语言的效率是比较低的。
CP/M――》DOS比尔盖茨
计算机科学之父―图灵(同性恋,被监禁,吃了图了***的苹果自杀):乔布斯用咬了一口的苹果的原因,因为他非常崇拜图灵的。当时乔布斯用的是Unix
比尔盖茨 盗用了乔布斯的图形界面,原来比尔盖茨的还是DOS界面,有图形界面了,他就想:谁还用我的DOS呢,所以盗用了乔布斯的图形界面对其DOS进行二次开发。
比尔盖茨先是DOS系统,盗用了乔布斯的图形界面,而乔布斯的图形界面其实也是购买来源自Xerox:(复印机厂商的设计)比尔盖茨盗用之后,对其DOS进行二次开发,就改名为window,然后进行大规模的卖出,因此window比乔布斯更早的售出市面上图形系统。因为比尔盖茨的DOS底层不稳定,经常会出现蓝屏,所以后阶段window系统内核是vms
而这时候Unix还在打口水仗
Unix上图代表:1.个人机器 2.安全机器 3.服务机器
至今现在苹果的内核还是FreeBSD的内核
不能只顾埋头学习,也要学会抬头看路
例子:Sun公司被Oracle收购
open开源即安全,很多Linux爱好者都会去维护bug
GUN是一个组织,由Stallman这个人创立
GPL:General Public License 宣言 自由宣言
LGPL:Lesser宽松的(由于GPL过于开放,导致有一些东西更不自由,才出现了宽松的GPL)
GENERAL PUBLIC LICENSE
自由不等于免费,开发出来你可以用,但是出问题了,可以找我们提供服务,这个就需要钱,这就是Redhat的赚钱方式
Debian ,dpt
RedHat ,rpm
dpt和rpm都是管理器
管理软件包的,现在的redhat和Centos都是用yum来快速安装,解决依赖关系
Emacs:文本编辑器
gcc :GNU C Complier一种编译器
linux只是一个内核
bash:一个命令行界面,bash shell
源代码: C --> 编译成二进制(交叉编译)
ABI:Application Binary Interface
Linux各种版本(内核一样,软件一样,可能就是配置文件不一样)历史如下
Redhat 收费的系统:服务性的收费,但是系统不收费
SLS
Debian 是 Debian 的项目创始人 Ian Murdock 和他的妻子 Debra 的名字缩写
唯一不受商业组织,维护都是网络的人才,所以在高级用户上运行的,高级用户比较多使用。
SUSE 德国三个研究生弄出来的,前身是SLS
linux的发行商:release
其实各个系统的内核一样,软件一样,可能就是配置文件不一样而已
实例:就比如乌班图的网络配置文件和Centos的配置文件就是不一样的
一个在/etc/sysconfig/network-scripts/ifcfg-eth0
而乌班图的是在打开ubuntu的/etc/network/interfaces,而且格式也有些不同
开源OpenBSD:开放源代码
自由FreeBSD:自由获取,自由修改,自由学习
GPL:General public License
看不爽Redhat收费:开放源程序,但是不公布补丁,从而达到收费。
Centos:社区企业操作系统 一旦说社区就是开放的意思
Community ENTerprose OS,这个跟Redhat完全兼容,所以就针对Redhat的收费出现的Centos
个人版系统:版本9.0说的是个人版(像企业级系统是最高是7.0),redhat在2003就停办了个人版,卖给了Fedora,让它去更新版本
Fedora:是企业的测试应用环境比较多,属于企业版的测试系统
Mandriva:桌面很漂亮
上三种都是Redhat版本下衍生的
1.一个是看不爽Redhat收费,centos
2.一个是桌面版,后开发成企业版的测试系统,性能也稳定,Fedora
3.桌面版,桌面很漂亮
Ubuntu是基于Debian研发的
Ubuntu是主色调是绿色的,但是国内企业大多数是Centos服务器。学习Centos是最好的
Ubuntu是桌面型版本,所以很多笔记本预装的软件可能就是乌班图的系统
Linux是内核,所以内核是有版本的 0.1,0.21,2.0...
91年的时候才是0.1的版本
RHEL发行版版本:3.0,4.0,5.0,6.0,7.0
但是他们核心都是Linux
Linux min Redhat
fedora 大蜥蜴 suse fedora
ubuntu Centos Debian
RedHat、Fedora、SUSE、Slackware、Debian、Ubuntu、CentOS、RedFlag等
安卓核心也是Linux ,只不过是java程序下的界面
今天为止,Linux也才20来岁
ks上图的ks=http://172.16.0.1/class.cfg是指定kickstart文件
04
Linux的基本原则:
1、由目的单一的小程序组成:组合小程序完成复杂任务
2、一切皆文件(甚至连设备的访问入口都是文件):
3、尽量避免捕获用户接口(就是很少的和用户交互):
比如ls 直接有输出了,比如ifconfig,直接有输出了,不需要交互
4、配置文件保存为纯文本格式:
所以写一个服务,完全可以用纯文本的配置来实现
shell是人机交互接口:GUI接口:CLI接口:
命令提示符,prompt,bash(shell)
#:root
$:普通用户
任何命令如果想要执行都必须要有执行入口 ,像java执行也要有个main函数为入口,
c语言也是
我们平时敲命令的界面就是bash shell界面
命令格式:
命令 选项 参数 如果有多个参数,一定要用空格隔开
ls ls -a ls -l
这些-a ,-l就是选项,就是修改命令的执行方式的
而选项有长选项和短选项之分
短选项:-
多个选项可以组合: -a ,-b ,可以使用-ab
次序不关键,但是有一种比较关键,那就是长选项:-- ,而且一般不能组合
选项后面用的是参数
参数:命令的作用对象(如果有多个参数,彼此之间用空格隔开)
我们操作系统为什么会有用户这个概念---
使用凭证:用来标识不同的人不同的权限
startx & 可以启动图形界面 (前提是你要安装了图形界面,Linux的灵活之处是它可以启动多个图形界面的)
如果想使用VNC,也是需要安装图形界面
Linux的灵活之处,是它可以启动多个图形界面
图形界面的终端叫做模拟终端
安装的话,一条命令就可以了.
用yum grouplist 来查看为安装的组包
yum groupinstall Desktop
Linux的图形界面有三个 GUI(window只有一种图形界面,而且必须安装)
Gnome:c开发
KDE:c++开发
Xface:简洁的,适用于轻量级的系统
CLi(Open Terminal):
bash:绝大Linux默认使用的bash(开源功能最强大的shell)
csh,zsh,ksh,tcsh
Linux重要思想之一,能简写就简写
su :switch user
su -l root 完全切换
密码复杂性原则:数字,大写,小写,特殊字符
实例如下:
马哥接下来的视频讲的知识有哪些:
RHCE(4k)+RHCA(1.5w)+shell编程+MySQL(更深度4.2k)+
Web集群实现+NOSQL+Hadoop(6.8k)+Hbase(6k)+Openstack
整个商业运作的话,按照商业运作的话没有3w是绝对学不到的
马哥唯一比不上别人的就是没有电脑,觉得不比其他一家的差,在技术方面
各位一定要有信心,不难理解,量比较大,灵活运用
知识量非常的大,没有学不会的一说,只找方法,不找借口,
学不会的话就是没花功夫。