Linux学习

每周总结1

2018-05-06  本文已影响12人  华炼

基本介绍

一个操作程序由硬件,内核(kernel),库组成

其中硬件最重要的是CPU 而CPU是由运算器和控制器组成 CPU的多项功能都由CPU指令运行
而多个CPU指令称之为CPU指令集 CPU指令又划分为普通指令和特权指令
编程语言分为低级(汇编语言)和高级语言(php,python,c) 越方便人理解的就越高级 当然对于计算机来说低级更加方便其运算,高级语言需要经过编译才能成为机器语言进而运行 其中转换的速率取决于CPU的型号和格式
所以操作系统是一个软件 他能将低层计算机的各种计算机能力抽象为一个统一的接口程序

所以程序员大多数写的程序不是面向硬件层面的 而是面向操作系统的

一般进程是不能直接访问内核的 然而进程中需要调用CPU的特权指令时 会向操作系统发出调用请求 这个过程称之为系统调用(System Call)
编程有三个层次


人要想让计算机运行程序首先就需要那么一个程序使人与计算机交互 这个程序称之为UI
UI分为两种


Unix有两大正统分支


内核一般用C语言编写 所以在内核之上的库 一般指的是C程序库

程序:指令+数据 指令:只读 数据:读写
程序:算法+数据结构
基于库不仅仅减轻了程序员写代码的过程,还为以后程序运行节省资源奠定了基础
发行商是将代码编译好提供便利服务的组织,其结果就是发行版
Linux三大主流发行版:

  1. slackware:
    二次发行版suse(欧美流行)
    sles企业级发行版
    三次发行版opensuse
  2. debian:
    二次发行版ubuntu
    三次发行版mint
  3. redhat:
    rhel:redhat enterprise linux(企业版) 每十八个月发行一个新版本
    CentOS:兼容rhel的格式
    fedora(桌面版本卖给了fedora) 每六个月发行一个新版本
    ArchLinux
    Gentoo
    LFS:Linux From scratch(一本书教你如何从头自己做一个Linux)
    Android:kernel+busybox+java虚拟机

小知识

GUN:GPLv2,GPLv3,LGPL(lesser)
Apache:apache协定
BSD:bsd协定
红帽是卖技术支持的
红帽遵循GPL协定将每次版本的漏洞补丁公布但不包括编译成二进制 所以CentOS就是将编译后的补丁兼容到rhel里面
凡包含GRL协定的代码程序都需开源
rhel发现CentOS并不影响其生态并且引以为rhel的有益补充所以将CentOS收购了
GPL,LGPL,Apache,BSD
程序包管理器:


Linux的哲学思想:

  1. 一切皆文件:
    把几乎所有资源,包括硬件设备都组织为文件格式;
  2. 由众多单一目的的小程序组成,一个程序只实现一个功能,而且要做好;
    组合小程序完成复杂任务
  3. 尽量避免跟用户交互:
    目标:实现脚本编程,以自动完成某些功能;
  4. 使用纯文本文件保存配置信息:
    目标:一款使用的文本编辑器即能完成系统配置工作;

如何获取CentOS的发行版:

阿里云开源镜像站


问题

Linux有三大发行版:Slackware debian redhat。CentOS是linux众多发行版的一种。Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL(RedHat Enterprise Linux)系列,而这个CentOS(Community ENTerprise Operationg System)是来自RHEL依照开放源代码规定释出的源代码所编译而成.

GPL(GNU通用公共许可证):禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软 件或者发布了软件的副本,这些规定就转化为你的责任。
LGPL(GNU宽通用公共许可证):与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。
Apache:与BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件).需要满足的条件也和BSD类似:
BSD:BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

操作系统(OS).png
上一篇 下一篇

猜你喜欢

热点阅读