一、完整的操作系统

  

  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. 18 IO流(十五)——RandomAccessFile随机访问文件及使用它进行大文件切割的方法

    本文部分内容转自:https://blog.csdn.net/nightcurtis/article/details/51384126 1.RandomAccessFile特点 RandomAcces ...

  2. CCS中的linked resource

    一.关于CCS中的linked resource linkded resources 是eclipse中的一个功能,可以将存放在项目所在位置以外某个路径的文件或者文件夹链接至工程项目中.这个功能最大的 ...

  3. linux中用户环境变量问题

    修改所有用户的环境变量:/etc/profile文件 只修改root用户的环境变量:~/.bashrc文件 只修改某个非root用户的环境变量:/home/非root用户名/.bashrc文件

  4. max_prepared_stmt_count参数

    MySQL报错[mysqld-5.5.17-log]Can't create more than max_prepared_stmt_count statements (current value: ...

  5. linux centos7开机自动启动程序实现

    1存放脚本位置 /etc/init.d/ServerManagerCLI.sh 该脚本是自己新建的内容参看2 增加执行权限 chmod +x /etc/rc.d/init.d/ServerManage ...

  6. 单例DCL模式

    单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 一般写法 public class DCLSingle { public static DCLSingle instance= n ...

  7. java之初识hibernate

    1. 使用jdbc进行数据库操作:获取数据库连接,编写sql语句,执行sql操作,关闭连接. 比如:每次创建连接,释放资源----使的执行效率降低: 解决方案:连接池. 编写sql语句动作----简单 ...

  8. 转 Html转pdf的工具——wkhtmltopdf

    下载地址:http://wkhtmltopdf.org/downloads.html 安装好以后需要在系统环境变量变量名为”Path”的后添加:;D:\wkhtmltopdf\bin 也就是你安装的目 ...

  9. 12 Mapping查询

    查看 某个index下所有type的mapping GET /beauties/_mapping 查看 指定index.指定type的mapping GET /beauties/_mapping/cn

  10. 动画处理<并行和串行>

    并行动画 当多个动画定义同时指向某个组件,并使用动画控制器启动时,就产生了并行动画(Parallel Animation).例如我们可以让一个组件: 移动的同时改变大小 旋转的同时边界颜色闪烁 圆形图 ...