一、完整的操作系统

  

  1、GNU系统:表示GNU is Not Unix。表示不做商业化。制定了GPL(General Public License)即任何软件程序只要遵循GPL协议就是自由软件。还制定了FSF:Free Software Foundation即自由软件基金会。 像gcc即gnu c complier,即gnu的c编译器,或vi ,即visual interface。虽然gnu声称不是unix但是他其实还是跑在unix系统之上的。因此严格意义上来讲我们gnu是跑在内核之上的操作系统。

  2、kernel:内核负责驱动底层硬件并把底层各硬件资源抽象成为简单的资源。并且管理各程序的运行,把有限的资源分配给运行中的程序让彼此之间相安无事。

  3、像BSD,unix,linux都只是内核,表示狭义上的操作系统,不包含运行在其上的各种应用程序,而刚刚提到的GNU组织有很多应用程序,像gcc,vi,x-widown等,这些都是应用程序需要跑在kernel之上用kernel虚拟出来的环境运行他们的特定的具体的专用的应用程序。如果我们干掉kernel这些应用程序也就没法运行了。

  4、因此虽然GNU声称自己不是unix但是他自己的程序都是基于unix开发的而不是基于硬件开发的。因此gun与linux结合就开放了一个新时代,这个新时代在于linux提供了内核而gnu提供了应用程序。此时一个完整意义的OS出现了。也正是由于gnu的GPL协议使linux程序软件能够开源。能够大规模推广被众人所应用。

二、操作系统接口

  1、GUI(Graphic User Interface):图形界面接口

    GNome:用c语言开发的图形界面,开发环境叫gtk

    KDE:用c++研发,开发环境叫qt

    FACE:

  2、CLI(Command Line Interface):命令行界面接口

    bash

    zsh

    sh

    csh

  3、TUI:Text User Interface:文本用户接口

  4、相当于在内核之外给我们提供了一个接口。即当我们装完一个操作系统后我们硬盘上准备了很多应用程序,这个程序需要运行起来需要我们手动打开。即我们通过接口将一个静态的程序启动为一个动态的进程。

三、操作系统功能

  1、驱动程序

  2、进程管理

  3、安全

  4、网络协议栈

  5、内存管理

  6、文件系统

  7、操作系统为了保证足够底层他们通常仅仅会把最底层硬件所提供的功能抽象出有限的调用接口来,我们通常称之为api。对于整个操作系统来讲他要把底层的复杂性隐藏起来,隐藏完以后还要把对应的功能用更简洁的方式向上提供,这种通常我们称之为系统调用,即System call。有了系统调用我们应用程序都是基于System call来实现的。并且我们操作系统还可以将系统调用封装为标准库向外提供库接口让开发者更容易调用,即libraries,因此程序员开发时既可以用System call也可以用库接口。

    

  8、接口:

    API(Application Program Interface):应用编程接口。程序员面对的编程接口。

      POSIX(Portable Operating System):称为可移植操作系统。

    ABI(Application Binary Interface):应用二进制接口,程序应用者面对运行程序的接口。

四、GNU组织发起了开源程序运动,即任何程序发行以后都需要把其源代码公开至互联网上。

  1、gcc,glibc,vi,linux等都是源码的,因此其需要编译,所以需要编译器。因此就有不同的发行商将该源码通过自己的方式编译后组织成二进制格式组成自己的发行版linux操作系统。比如redheat,centos,ubutu....

  2、目前主流的发行版linux有:

    a、debian(唯一没有企业支持的,由黑客自动更新维护的,用起来稍微难一点)

      ubutu(基于debian的二次发行版)

      knopix

    b、slackware(suse为其的一个子分支)

    c、RedHat

      RedHat9.0后分裂为两个版本:

        RedHat Enterprise Linux:RHEL :十八个月发行一个版本,即企业版

          centos(Community ENTerprise OS:基于RedHat企业版的二次发行版):

        Fedora Core:每6个月发行一个版本。个人桌面版。

    也有其他的比较流行的:

      Gentoo

      ArchLinux

  3、linux完整意义上应该叫GNU/linux,他由linux内核和GNU组织的各种开源软件联合起来构成的一个庞大的完整的操作系统。

  4、linux软件程序版本号:

    major(主版本号).minor(次版本号).release(发行【修正】号)。翻天覆地的大变化时主版本号会提升。分支变化时次版本号会提升,修改bug时发行版本号会提升。

    linux官方站点:www.kernel.org

linux版本 + GNU程序版本 = 发行版本

五、课外作业

  GPL,BSD,Apache,Android

        

linux学习5 Linux开篇入门和基本操作的更多相关文章

  1. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  2. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  3. Linux 学习 (一) Linux简介

    Linux达人养成计划 I 学习笔记 Linux 内核官网:www.kernel.org 内核版本说明:主版本.次版本.末版本,如2.6.18 Linux 主要发行版本 RedHat: 服务器领域,部 ...

  4. 【Linux学习】Linux文件系统4—Linux文件硬链接与软连接

    Linux文件系统4-Linux文件硬链接与软连接 inode:索引节点 (连接文件)link 一.文件硬链接 1.Linux文件系统中,inode只相同的文件是硬链接文件 2.不同文件名,inode ...

  5. 【Linux学习】Linux文件系统2—linux常用目录结构、绝对路径、相对路径

    Linux文件系统2-linux常用目录结构.绝对路径.相对路径 一. 常见目录结构总结 Linux目录结构就是"树形结构",常见的目录结构: /bin  系统需要的命令位于此目录 ...

  6. Linux学习之四-Linux发行版及版本比较

    Linux发行版及版本比较 三大家族: Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本.相比RHEL,Fedora打包了显著的更多的 ...

  7. Linux学习之路-基础入门 20191104

    1.计算机组成 2.开发接口标准 ABI--(Application Binary Interface) ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动 ...

  8. Linux学习之路2 Bash的基本操作

    一.SHELL的介绍 shell分为两种:CLI(command Line Interface)和GUI(Graphical User Interface) 操作系统中的shell: GUI:GNOM ...

  9. Linux学习之Linux目录及文件系统

    以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区来实现文件管理,然后之下才是目录,目录就显得不是那么重要,除系统文件之外的用户文件放在任何地方任何目录也是没有多 ...

随机推荐

  1. IDEA远程DEBUG Tomcat配置

    IDEA远程DEBUG Tomcat配置 IDEA远程DEBUG Tomcat很简单,配置如下: 1.修改tomcat服务器配置 打开tomcat/bin/catalina.sh 在空白处添加如下参数 ...

  2. Pycharm配置文档教程

    1 桌面找到快捷方式 双击打开 2 3 4 需要自行注册 5 看自己喜欢选择 喜欢白色 选择左边 喜欢黑色 选择右边 6 7 可选 如果你对 Markdown 感兴趣:或者会用 就点击 install ...

  3. Spring Boot 五种热部署方式

    [推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不 ...

  4. Spring Boot,Spring Security实现OAuth2 + JWT认证

    阅读此文,希望是对JWT以及OAuth2有一定了解的童鞋. JWT认证,提供了对称加密以及非对称的实现. 内容源码点我 涉及到源码中两个服务 spring-boot-oauth-jwt-server ...

  5. C# HtmlAgilityPack+Selenium爬取需要拉动滚动条的页面内容

    现在大多数网站都是随着滚动条的滑动加载页面内容的,因此单纯获得静态页面的Html是无法获得全部的页面内容的.使用Selenium就可以模拟浏览器拉动滑动条来加载所有页面内容. 前情提要 C#HtmlA ...

  6. Replace到达地

    string getcstr(string cs)        {            String SplitKey = @"乌孜别克族,柯尔克孜族,维吾尔族, 鄂伦春族, 哈萨克族, ...

  7. OO第三单元(地铁,JML)单元总结

    OO第三单元(地铁,JML)单元总结 这是我们OO课程的第二个单元,这个单元的主要目的是让我们熟悉并了解JML来是我们具有规格化编程架构的思想.这个单元的主题一开始并不明了,从第一次作业的路径到第二次 ...

  8. dubbo源码阅读之自适应扩展

    自适应扩展机制 刚开始看代码,其实并不能很好地理解dubbo的自适应扩展机制的作用,我们不妨先把代码的主要逻辑过一遍,梳理一下,在了解了代码细节之后,回过头再来思考自适应扩展的作用,dubbo为什么要 ...

  9. win10远程桌面 CredSSP加密Oracle修正的解决办法

    小编在登录远程桌面的时候一直显示由于CredSSP加密Oracle修正 的警告,连接不上.最终通过以下办法解决了 首先点击windows+R键 输入gpedit.msc,点击确定. 然后依次选择:计算 ...

  10. MySQL数据库使用时注意事项

    MySQL数据库使用时注意事项 建表的角度上 1.合理安排表关系 2.尽量把固定长度的字段放在前面 3.尽量使用char 代替varchar 4.分表:水平分和垂直分 在使用sql语句的时候 1.尽量 ...