一、Linux运维体系大纲:运维分布

         1Linux入门;

         2Linux系统管理;

         3Linux服务及安全管理;

                   3.1httpd,lamp, lnmp

                   3.2Cachememcached,varnish

                   3.3DB:mysql (mariadb)

         4LinuxCluster

                   LBClusterNginx, LVS

                   HAClusterKeepalived

         5Linux Opsansible

         6Monitoringzabbix

         7shell脚本编程

8tomcat,lnmt, lamt, session replication cluster

         9、分布式存储系统:MogileFS,GlusterFS

10LB Clusterhaproxy

         11HA Cluster:Corosync+Pacemaker, pcs/crmsh

         12MySQLHA ClusterMHA、备份和恢复、MySQLReplcationRead-Write splitting

                   NoSQLredis,mongodb, HBase

         13、运维工具:puppet[saltstack], cobbler

         14、虚拟化:

                            Linux操作系统原理;虚拟化技术原理;

                            kvm虚拟化应用详解;xen虚拟化;

                            虚拟化网络:SDN

                            OpenStack云栈

         15Docker:容器云;

         16ELK StackElasticSearch,Logstash, Kibana

         17、大数据:Hadoopv2, 并行存储及分析平台;

                            HBase,Hive

                            Storm,Spark

         18、系统优化:

         19Python编程

 

二、IT技术领域:

        

1、研发:

                   硬件:接口;

                            CPU(运算器和控制器),内存,输入,输出;

                                     冯诺依曼

                            机器语言:二进制指令,二进制数据

 

         2、软件:

                            低级语言:汇编语言,汇编器

                                     写驱动;

                            高级语言:

                                     系统级:CC++

                                               操作系统,对性能要求较高的服务类程序

                                     应用级:Java,Python, ruby

                                               应用程序:ansible,puppet, ....

 

         3、应用:

                   Linux运维:Linux生态圈中的各应用程序的应用;

                            shell脚本编程:让某些应用工作能自动完成;

                            Python:专业编程语言;

                                     ansible,openstack

 

                   DevOps:

                            Development

                            Operations

 

三、计算机与操作系统

 

         1ENIARC: 计算机结构

                   CPU:运算器、控制器、寄存器、缓存

                   存储器:内存,RAM(RandomAccess Memory) 

                   Input:下指令,提供数据等;

                   Output:输出数据加工的结果;

 

         2、程序:指令+数据

                   算法+数据结构

 

         2^10=1024

                   1024*1024*1024*4Bytes

                            1024*1024*4KB

                            1024*4MB

                            4GB

 

         3、过程式编程语言:

                   顺序执行:依次

                   循环执行:将整个循环体执行n次;

                   选择执行:仅执行其中的一个分支;

 

         4、多任务:multitasks

                   Bell,MIT, GE = Multics

 

        

 

         操作系统的功能:

                   驱动程序

                   进程管理

                   安全

                   网络功能

                   内存管理

                   文件系统

                   .......

 

         API:Application Program Interface

                   程序员面对的编程接口

 

                   POSIX:Portable Operating System

 

         ABI:Application Binary Interface

                   程序应用者面对运行程序的接口

 

         GNU

                   源码:编译成为 二进制格式

 

                            gcc,glibc, vi, linux

 

                   发行版:数百种之多;

                            Debian

                                     ubuntu

                                               mint

                                     knopix

                            Slackware

                                     S.u.S.E

                                               SLES

                                               OpenSUSE

                            RedHat:

                                     Redhat9.0:

                                               RedHatEnterprise Linux: RHEL

                                                        CentOS:Community ENTerprise OS

                                               FedoraCore6个月,

 

                            Gentoo

                            ArchLinux

 

         软件程序:版本号;

                   major.minor.release

 

                            Linux0.99, 2.2,2.4, 2.6, 3.0, 4.0

                                     www.kernel.org

                            GNU:

                                     vi

                                     gcc

 

         发行版本也有自己的版本号:

                   RHEL:5.x, 6.x, 7.x

                            Fedora23

                   Debian8.x

                   OpenSuSE:13.x

 

         课外作业:

                   GPL,BSD, Apache

                   Android 

 

BSD

            1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定;

            2、如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定;

            3、不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广;

        

 apache

                ApacheLicence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样

鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足
的条件也和BSD类似:

需要给代码的用户一份Apache Licence,如果你修改了代码,需要在被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他
原来作者规定需要包含的说明。

如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence
你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需
要并作为开源或商业产品发布/销售。

                

GPL

我们很熟悉的Linux就是采用了GPLGPL协议和BSDApacheLicence等鼓励代码重用的
许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但
不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种
linux,包括商业公司的linuxlinux上各种各样的由个人,组织,以及商业软件公司开发的免费软
件了。

GPL协议的主要内容是只要在一个软件中使用(”使用指类库引用,修改后的代码或者衍生代
)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的
传染性GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源
代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL

LGPLGPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之
GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL
类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用
并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生
的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,
但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品