一、计算机组成
(一) 硬件
CPU:运算器、控制器、寄存器、缓存器
存储器:主内存,RAM(Random Access Memory)数据必须加载到主内存中才能进行处理。
输入设备:下指令,提供数据等
输出设备:输出数据加工的结果
(二) 软件
操作系统
目前主流操作系统有windows、mac、linux。我们重点学习的就是Linux系统
功能:
驱动程序、进程管理、安全管理、网络管理、内存管理、文件系统。。。
组成:
内核(kenerl)
基础应用(Application)
应用程序(指令+数据)
二、开源组织GNU
是"GNU is Not Unix"的递归缩写。是richard stallman在1983年9月27发起发起的,目标是创建一套完全自由的操作系统。
为保证软件可以自由的"使用、复制、修改和发布", 所有GNU软件都必须遵循GNU通用许可证(GNU Genenal Public Lisence 即GPL)。即反版权,或称为copyleft。
GPL协议中,软件必须源代码的方式发布出来。同时规定使用了遵循GPL协议的软件后,也得遵循GPL协定。那么意味着一旦使用了GPL协议的开源程序后,自己二次开发的程序也必须开源出来。遭到
不少商业用户的排斥。于是有出现了多种开源协定。
目前主流的协定有以下几种:
GPL
v2、v3
LGPL
v2(MPL)、v3
Apache
BSD
3言、2言
详细描述地址:http://www.open-open.com/solution/view/1319816219625
三、IT技术领域的岗位
研发:
硬件:忽略
软件:(语言越高级越接近于人类语言,越低级越接近于计算机语言)
低级语言:汇编语言,汇编器
写驱动
高级语言:
系统级:c,c++
主要用于操作系统,对性能要求较高的服务类程序
应用级:Java,Python,ruby
应用程序: ansible,puppet, …
应用:
Linux运维:Linux生态圈中的各种程序的应用;
shell脚本编程:让某些应用工作能自动完成;
python:专业编程语言;
ansible, openstack
???此处研发和应用的区别不甚明朗,留待以后领悟吧???
四、Linux操作系统
OS:
狭义:只是个内核(kernel)
完整:kernel + Application
组成:
(1) kernel: 内核
重点在于管理计算机的所有活动以及驱动系统中的所有硬件。(可以让CPU开始判断逻辑与数值运算,主内存可以加载/读取数据、让硬盘可以被开始被存取、让网络卡可以开始传输数据、让所有周边开始运转)
Tps:所以整部系统叧有核心癿话,我仧就叧能看着已绊准备好运作(Ready)癿计算机系统,但无法操作他! 好像有点望梅止渴癿那种感觉啦!这个时候就需要软件癿帮忙了!
(2) System Call: 系统调用
只是将基本的功能封装成接口,方便软件开发者调用。
(3) library: 库
库是将基本功能再次封装,提供更加完整的功能接口给程序调用。当然程序也可以不适用库,直接系统调用。
(4) Shell: 一组接口软件,可以是用户和机器交互。
(5) Application: 应用程序
应用程序是对人类可用的功能系统。
发布版:
真正的linux只是一个kernel,只针对计算机的硬件资源管理,并没有用户可用的功能。
那么就有了linux发布版,发布版是将linux内核和一些最常用的基本程序功能打包起来,用户安装之后,很多基本功能直接可以使用。下面是一些主流的发布版本:
Debian
ubuntu
mint
knopix
Slackware
S.u.S.E
SLES
OpenSUSE
RedHat:
Redhat 9.0:
RedHat Enterprise Linux: RHEL
CentOS: Community ENTerprise OS
Fedora Core
Gentoo
ArchLinux
linux 发布版详细的时间线
https://yunpan.cn/c6IvbpTDUaaMi 访问密码 0723
共同点:均使用linux内核、遵循相同的文件系统规范:FHS、
不同的发布版具有不同的包管理器(概念见下面程序应用部分):
Debian:dpkg, apt-get
RedHat:rpm, yum –> dnf
S.u.S.E: rpm, zypper
ArchLinux:pacman
Gentoo:emerge
五、程序版本号的定义
major.minor.release
主版本.子版本.修订号
Linux:0.99, 2.2, 2.4, 2.6, 3.0, 4.0
内核地址:www.kernel.org
Linux内核和各个发布版各自的版本号是不一样的。
六、程序应用:
程序的组成部分:
二进制程序;
配置文件;
库文件;
帮助文件;
程序包管理器:
程序的组成部分打包成一个或有限几个文件,一般具有程序的安装、卸载、查询功能
比如计算机跟用户打交道的接口就是各种应用程序:
GUI:Graphic User Interface(桌面接口)
GNome:c, gtk
KDE: c++, qt
CLI:Command Line Interface(命令行接口)
bash
zsh
sh
csh
tcsh
ksh
七、终端设备(terminal)
指的是电脑跟用户的进行通讯的设备,比如一套键盘和显示器。
统称为tty,有以下几种终端:
物理终端:console
虚拟终端:6个,tty
Ctrl+Alt+F[1-6]
图形终端:
CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪个虚拟终端启动,即位于哪个虚拟终端;
串行终端:ttyS
伪终端:pty
八、linux哲学思想
1、一切皆文件;
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
open(), read(), write(), close(), delete(), create()
表现之一:硬件设备也通过文件表示;
物理终端:/dev/console
虚拟终端:/dev/tty# [1,6]
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
2、由众多功能单一的程序组成;
一个程序只做一件事,并且做好;
组合小程序完成复杂任务;
3、尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务
4、使用文本文件保存配置信息;
命令收集:
ss -tnl
查看系统是否监听于tcp协议的22号端口;
ip addr list
或
ifconfig
查看IP地址;
iptables -L -n
关闭防火墙状态:
CentOS 7:
systemctl disable firewalld.service
systemctl stop firewalld.service
CentOS 6:
service iptables stop
chkconfig iptables off
tty
查看终端设备:
echo $SHELL
查看接口程序,使用shell种类:
startx &
启动GUI:在某一虚拟终端接口运行即可
tty
查看当前的终端设备;
echo
回显
ping
探测网络的目标主机与当前主机之间的连通性;
Ctrl+c
终止命令执行;
资源链接:
CentOS的镜像站点:
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com
杂项:
(1)、最纯净的linux
LFS: Linux From Scratch
(2)、基于debain的发行版:kali。设计用于数字鉴识和渗透测试
原创文章,作者:小江,如若转载,请注明出处:http://www.178linux.com/31227
评论列表(1条)
写的很好,排版还可以在漂亮一点,加油,尝试自己来画图