根据自己学习Linux方面的知识,浅谈下linux的协议和组成,那首先了解下计算机的组成和功能:

        计算机系统由硬件(hardware)系统和软件(software)系统两大部分组成:1、硬件系统由主机和外部设备组成:主机由中央处理器CPU(运算器ALU和控制器CU)和内存储器(ROM和RAM)外部设置由输入设备和输出设备等其他设备组成2、软件系统由系统软件和应用软件组成

接下来了解Linux的内核功能和作用:
我们学习Linux的最重要就是内核(kernel),内核是什么。我用自己理解的方式给大家解释,我们一般知道应用程序不可能自己加载硬件设备供自己使用,这样也很复杂,实现也很繁琐,而且每个应该程序都这样调用也很浪费资源。我们需要一个统一的程序来集中管理调用硬件,这样其他的应用软件就可以自己直接调用这个统一管理程序来实现调用硬件,这个统一管理硬件调用的程序我们称为(kernel)内核。

    Linux是有1991年8月有Linus Torvalds宣布成立的。并且GNU(GNU is Not Unix)的自由思想,所以产生了很多版本,其中最出名的发行版有Debian,Slackware,RedHat,Gentoo,ArchLinux。Debian 是一个致力于自由软件开发并宣扬自由软件基金会指理念的自愿组织。就是一群自由开发者人员组成的社区,来发行的版本,其中Ubuntu是其中的繁衍的基于桌面开发的linux系统Slackware是Slackware Linux,lnc的Patrick vokerding制作的Linux发行版本。而且与其他的Linux发行版本不一样。他力图称为“Unix”风格的Linux发行版本。而且他只吸收文档版本的应用程序,其中SuSe是他繁衍的一个发行版本。SuSe主要在欧洲使用,是为了管理员很高的控制Linux系统。RedHat是由Rad Hat公司发行的一个Linux发行包,其中的是个人版本更新到Radhat9.0,还有一个基于商业版本的RedHat Enterprise Linux,就是企业版本。由于价格比较贵,所以由一群倡导自由软件的开发者。基于redhat企业版本,改成了免费的linux,起名叫Centos ,但是最后还是别redhat收购了。Gentoo也是一个linux操作系统,但是最大特色是为用户提供了大量的应用程序源代码,供用户选择,用户可以选择的编译安装源代码。ArchLinux是一款基于X86-64架构的lInux发行版。系统主要有自由和开源软件组成,其中最大的特色注重简洁,实用,以用户为中心

清楚上面的Linux的版本后,在了解下开源协议,其中
GPL是广泛应用的自由软件许可证,可以保证终端用户得自由运行、学习、共享和修改软件。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

                LGP是GNU宽通用公共许可证,也就是比GPL协议宽松PL,要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布,但是需要满足三个条件才能为所欲为:1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定2、如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定3、不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广Apache是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。也需要满足一下条件:1、需要给代码的用户一份Apache Licence2、如果你修改了代码,需要再被修改的文件中说明。3、在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他  原来作者规定需要包含的说明。4、如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。接下来我们学习开源协议,我们开始强调Linux哲学思想,具体有以下这些方向1、一切皆文件,把几乎所有资源统统抽象为文件形式:包括硬件设置,甚至通行接口;2、一个复杂的程序都是由众多功能单一的小程序组成,完成复杂任务;3、尽量避免跟用户交互,尽量使用编程的方式实现自动化任务,简单管理服务器;4、所以的配置文件基本是基于文本文件来编辑保存的。学习了Linux这些思想,开始真正的学习Linux,先来了解Linux有哪些目录机构,怎么命名:Linux的文件结构和windows完全不一样,windows是有盘符过程,Linux是有导致的树形式来过程,就是由一个最顶端的根也就是/构成,这里已Centos 7系统的文件结构说明首先Centos 7完全遵守FHS标准/bin:所以用户可用的基本命令程序文件;/sbin:供系统管理使用的工具程序;/boot:引导加载器必须永达的各静态文件;/dev:储存特殊文件或设备文件;/etc:系统程序的配置文件;/home:普通家目录的集中位置;/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin)提供共享库,以及为内核提供内核模块;/lib64:64为系统特有的存放64为共享库的路径;/media:便携式设备挂载点;/mnt:其他文件系统的临时挂载点;/srv:当前主机为服务提供的数据;/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录:可供所有用户提供执行写入操作,特殊权限;/usr:全局共享的只读数据路径,下面的文件基本和/下面差不多;/usr/bin,/usr/sbin,/usr/lib,/usr/lib64和/bin,/sbin,/lib,/lib64是一个意思;include:C程序头文件;share:命令受产业和自带文档等架构特有的文件册存储位置;local:另一个层级目录,让系统管理员安装本地应用程序,也通常用于安装第三方程序;src:程序源码文件的存储位置;/var:存储经常发生变化的数据的目录,比如程序的日志基本上都存储这个目录下面的;/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息:它们多为内核参数;/sys:sysfs虚拟文件系统系统了一种比proc更为理想的访问内核数据途径:其主要作用在于为管理Linux设备提供一种统一模型的接口。

Linux基本概念理解,可能还有的理解不是很到位,希望大神帮忙指点下,小弟继续探索Linux道路。。

转载于:https://blog.51cto.com/822888/2315392

浅谈Linux协议和组成相关推荐

  1. 浅谈linux线程模型和线程切换

    本文从linux中的进程.线程实现原理开始,扩展到linux线程模型,最后简单解释线程切换的成本. 刚开始学习,不一定对,好心人们快来指正我啊啊啊!!! linux中的进程与线程 首先明确进程与进程的 ...

  2. 浅谈 Linux 系统中的 SNMP Trap 【转】

    文章来源:浅谈 Linux 系统中的 SNMP Trap 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧. 简单网络管理协议(Simple Network ...

  3. 浅谈Linux下的媒体播放器(转)

    浅谈Linux下的媒体播放器(转)[@more@]Linux开放实验室(Linux OpenLab)郝煜.季冰Linux开放实验室校园爱好者小组 陈强(农大).吴迪.雷凌.戴二红.刘志强(北科大)Li ...

  4. 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  5. linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释

    摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: ...

  6. linux 易语言窗口程序_浅谈Linux入门的基本知识

    浅谈Linux入门的基本知识 图形模式与文字模式的切换方式Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1.tty2 - ...

  7. Linux先发送条件变量,浅谈Linux条件变量的使用

    Linux线程同步之间存在多种机制,条件变量是一种类似操作系统里提到的生产者-消费者算法的同步机制,允许线程以无竞争的方式等待特定条件的发生. 示例伪代码: void* Thread1(void){ ...

  8. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构

    浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...

  9. Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)

    1.exit()函数 exit(int n)  其实就是直接退出程序, 因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的. 一般在shell下 ...

最新文章

  1. Android handler Thread 修改UI Demo
  2. redis哨兵相关详解
  3. 计算机管理没有打印机列队,在Windows清除打印队列如果打印机被卡住,也没有打印输出...
  4. Linux上的Django项目,下载文件报错,编码格式错误解决
  5. 照顾好自己才能照顾好别人_6种照顾数字外观的方法
  6. 好未来:今年12月31日停止内地义务教育阶段学科类培训
  7. Git(5):其他用法
  8. Java map遍历
  9. 多次导入excel实现及excel导入逻辑插件清空数据
  10. @RequestMapping测试各种访问方式
  11. java高并发之线程池
  12. Centos7安装nxlog-2.9
  13. 手机/iPad异地远程桌面控制Windows电脑【无公网IP】
  14. word2007制作目录
  15. zoom会议背景设置,zoom手机背景怎么设置
  16. 【2021自我知识蒸馏】Extracting knowledge from features with multilevel abstraction
  17. 蒟蒻的控制台贪吃蛇(新手实验)
  18. 小米无线键盘的连接方式
  19. [WinError 2] 系统找不到指定的文件
  20. 谷歌索引量查询,批量查询网站在谷歌RR权重值

热门文章

  1. 运用“异或”对原文加密,并解密
  2. ubantu中怎样安装VMware Tools
  3. GitLab CTO:开源是打造优秀软件的核心
  4. CiTRIX XenServer 6.5安装体验
  5. 为informix数据库中的表创建同义词
  6. 前端埋点方法解析及优缺点分析
  7. SpringBoot Cache 深入
  8. Learning to rank 特征抽取
  9. java8之Stream API(提取子流和组合流)
  10. Java中类的初始化顺序是什么?