00-Linux操作系统概述
00-Linux操作系统概述

00-Linux操作系统概述

整体大纲

查看ip地址

cmd: ipconfig

VNC协议:Virtual Network Computing;

  • 实现虚拟网络运算,更广阔的用途在于桌面共享。

  • 需要特定的实现方式:

    • TigerVNC, RealVNC

    • 都是C/S架构

    • 客户端:vncviewer 服务器端: vncserver 通过VNC协议连接

Linux运维课程体系大纲

  • Linux入门
  • Linux系统管理
  • Linux服务及安全管理
    • httpd,lamp,lnmp
    • Cache:mecached, varnish
    • DB: mysql(mariadb)
  • Linux Cluster(集群):
    • LB Cluster(负载均衡):Nginx, LVS
    • HA Cluster(高可用集群): Keepalived
  • Linux Ops(运维工具): ansible
  • Monitoring(监控工具):zabbix
  • http:
    • tomcat, lnmt, lamt, session replication cluster(会话复制集群)
    • 分布式存储系统:
    • MogileFS,GlusterFS
    • LB Cluster: haproxy
    • HA Cluster:Corosysnc+pacemaker,pcs/crmsh(命令行管理工具)
    • MySQL:HA Cluster(高可用集群),MHA,备份和回复工具的使用,MySQL Replication,Read-Write splitting
    • NoSQL: redis(kv存储), mongodb(文档存储),HBase
    • 运维工具:puppet,saltstack,cobbler
    • 虚拟化:
    • Linux操作系统原理:借助虚拟化的视角讲解虚拟化技术
    • kvm虚拟化应用详解
    • 虚拟化网络:了解SDN(Software-defined Networking软件定义网络)的基础
    • OpenStack云栈
    • Docker:容器云
    • ELK Stack: ElasticSearch,Logstash,Kibana 日志收集
    • 大数据:Hadoop v2分布式并行存储及分析平台
    • HBase, Hive
    • Storm, Spark
    • 系统优化:
    • Python编程

Redhat:

  • 认证考试
    • RHCSA
    • RHCE
    • RHCA

计算机与操作系统

ENIARC(埃尼阿克:第一台通用计算机)

ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机

  • CPU: 运算器、控制器、寄存器、缓存
  • 存储器:内存,RAM(Random Access Memory)
  • Input: 下指令,提供数据等
  • OutPUt:输出数据加工的结果

CPU内核

cpu架构-指令集

  • x86(兼容x64)

  • x64(amd64)

  • m68000,m68k(摩托罗拉)

  • arm(手机cpu)

  • ultrasparc

  • power(性能强大)

  • powerpc, ppc

  • MIPS

  • 惠普的alpha

  • ...

交叉编译

  • corss compile

程序

  • 指令+数据
  • 算法+数据结构

指令集:分为运算指令、控制指令

过程式编程语言

  • 一种机器语言只能适配一种cpu

  • 顺序执行:依次

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

  • 选择执行:禁止性其中的一个分支

终端:多任务、多用户

  • multi task - 早期,Multics程序

  • 物理终端,控制台: console

  • 虚拟终端:6个

    • Ctrl+Alt+F[1~7]
  • 图形终端:

    • CentOS 6:

    • Ctrl+Alt+F7

    • CentOS 7:

    • 在哪个虚拟终端启动,即位于哪个虚拟终端

  • 串行终端 ttyS

  • 伪终端 pty

Linux的哲学思想指引:一切皆文件

硬件设备也通过文件表示

物理终端: /dev/console

虚拟终端:/dev/tty# [1,6]

串行终端:/dev/ttyS#

伪终端: /dev/pts/#

  • 查看当前伪终端号: tty

注意: 在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互:

查看终端设备:

  • ~]# tty

    image-20230226012330344

查看接口程序:

  • ~]# encho $SHELL

    image-20230226012422318

启动GUI:

  • 在某一虚拟终端接口运行命令: startx &

完整的OS

内核+应用程序

  • Kernel+Allication
  • 狭义上的OS:kernel
  • GNU/Linux:通常以源码(文本格式)方式提供

OS的接口有两类

  • GUI:Graphic User Interface
    • GNome: c, gtk
    • KDE: c++, qt
  • GLI: Command Line Interface
    • bash
    • zsh
    • sh
    • csh
    • tcsh
    • ksh

操作系统的功能

  • 驱动程序
  • 进程管理
  • 安全
  • 网络功能
  • 内存管理
  • 文件系统
  • ... ...

API: Application Program Interface

  • 程序员面对的编程接口
  • POSIX: 可移植操作系统Portable Operating System

ABI: Application Binary Interface

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

应用编程接口

启动一个程序,对于windows来说,可能就是双击图表,linux可能就是一个命令行

其实意思就是,把这个程序文件,从磁盘读出来,并交给内核,让内核创建出一个可供管理的运行的动态程序

image-20230221172008487

GNU

  • 源码: 编译成为 二进制格式
  • gcc, glibc,vi ,linux

发行版:数百种之多

  • Debian
    • Ubuntu
    • mint
    • knopix
  • Slackware
    • S.u.S.E
    • OpenSUSE
  • ReadHat
    • Readhat 9.0
  • RedHat Enterprise Linux:RHEL
    • CentOS: Community ENTerprise OS
    • Fedora Core
  • Gentoo
  • ArchLinux

软件程序:版本号

  • major.minor.release
    • Linux: 0.99, 2.2, 2.4, 2.6, 3.0 ...,
    • www.kernel.org
    • GNU:
    • vi
    • gcc

发行版也有自己的版本号

  • RHEL: 5.x, 6.x, 7.x
  • Debian: 8.0
  • OpenSuSE:13.0

程序管理(包管理)

程序的组成部分:

  • 二进制程序
  • 配置文件
  • 库文件
  • 帮助文件
  • 包管理器
    • Debian:dpkg, apt-get
    • RedHat: rpm, yum --> dnf
    • S.u.S.E: rpm, zypper
    • ArchLinux: port
    • Grntoo:
    • LFS(Linux Form Scratch):

开源协议

GPL,BSD,Apache是什么

以及和Android的关系

1.GPL

一种开源协定

版权属于copyleft

GNU通用公共许可证简称为GPL,是由自由软件基金会发行的用于计算机软件的协议证书,使用该证书的软件被称为自由软件。大多数的GNU程序和超过半数的自由软件使用它。 下面的正文是自由软件基金会GNU通用公共许可证原始文档的副本。Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。你将看到:如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件同样必须受到GNU通用许可证条款的约束。

LGPL

2.BSD

BSD许可证是随着加州大学伯克利学校发布BSD UNIX发展出来的。修改版本被Apple apache所采用。BSD协议是“宽容自由软件许可证”中的一员,在软件复用上给于了最小限度的限制,BSD协议允许作者使用该协议下的资源将其并入私人版本的软件,该软件可使用闭源软件协议发布。

  • 如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定
  • 如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定
  • 不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广

3.Apache

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

需要给使用代码的用户一份Apache Licence,如果你修改了代码,需要在被修改的文件中说明。在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。如果在发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

发表回复

您的电子邮箱地址不会被公开。