美文网首页
Linux基础概念

Linux基础概念

作者: aslbutton | 来源:发表于2019-02-19 17:18 被阅读0次

1.大教堂与集市:

代表了两种不同的开发模式:绝大多数商业公司所采用的是大教堂模式,而Linux世界所采用的是集市模式。

2.OS的接口有两类:

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

3.API和ABI

API:顾名思义,是编程的接口,换句话说也就是你编写“应用程序”时候调用的函数之类的东西。对于内核来说,它的“应用程序”有两种:一种是在它之上的,用户空间的真正的应用程序,内核给它们提供的是系统调用这种接口,比如 read(2),write(2);另一种就是内核模块了,它们和内核处于同一层,内核给它们提供的是导出的内核函数,比如 kmalloc(),printk()。这些接口都是你可以在编写程序的时候直接看到的,可以直接拿来用的。

ABI:应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。ABI 是另一种形式的接口,二进制接口。除非你直接使用汇编语言,这种接口一般是不能直接拿来用的。比如,内核系统调用用哪些寄存器或者干脆用堆栈来传递参数,返回值又是通过哪个寄存器传递回去,内核里面定义的某个结构体的某个字段偏移是多少等等,这些都是二进制层面上的接口。这些接口是直接给编译好的二进制用的。换句话说,如果 ABI 保持稳定的话,你在之前版本上编译好的二进制应用程序、内核模块,完全可以无须重新编译直接在新版本上运行。

4.常见开源协定

BSD协议:BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
Apache Licence 2.0(Apache-2.0):介绍略
GPL:GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。
LGPL:略
MIT:略
MPL (Mozilla Public License 1.1):略
EPL (Eclipse Public License 1.0):EPL允许Recipients任意使用、复制、分发、传播、展示、修改以及改后闭源的二次商业发布。 
20180328173536914.png

5.镜像站点

http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com

6.LINUX的终端

物理终端,控制台:console
虚拟终端:6个,tty
    Ctrl+Alt+F[1-6]
图形终端:
    CentOS 6:
        Ctrl+Alt+F7
    CentOS 7:
        在哪个虚拟终端启动,即位于哪个虚拟终端;
串行终端:ttyS
伪终端:pty
硬件设备也通过文件表示;
    物理终端:/dev/console
    虚拟终端:/dev/tty# [1,6]
    串行终端:/dev/ttyS#
    伪终端:/dev/pts/#
    注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互;
    查看终端设备:
        ~]# tty
    查看接口程序:
        ~]# echo $SHELL
    启动GUI:
        在某一虚拟终端接口运行命令:startx

7.LINUX哲学思想

    1、一切皆文件:
        把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
            open(), read(), write(), close(), delete(), create()
    2、  由众多功能单一的程序组成;一个程序只做一件事,并且做好;
        组合小程序完成复杂任务;
    3、尽量避免跟用户交互;
        目标:易于以编程的方式实现自动化任务;
    4、使用文本文件保存配置信息;

8.文件系统

        文件系统像一个倒置树状结构;
            /: 原初起点;

            /dev/pts/2:
                最左侧/: 表示根目录
                其它的/: 表示路径分隔符
                    Linux的路径分隔符是/
                    Windows的是\

        文件的路径表示:
            绝对路径:从根开始表示出的路径 
            相对路径:从当前位置开始表示出的路径

        文件名使用法则:
            严格区分字符大小写:file1, File1, FILE1
            目录也是文件,在同一路径下,两个文件不能同名;
            支持使用除/以外的任意字符;
            最长不能超过255个字符;

        用户有家目录:home,
            用户的起始目录;普通用户管理文件的位置;
        工作目录:
            当前所在的目录,如果命令没有额外指定路径,则默认为当前工作目录

            /etc/sysconfig/network-scripts/ifcfg-eno16777736
                basename:最右侧的文件或目录名;
                dirname:basename左侧的路径;
            命令:
                ~]# basename /PATH/TO/SOMEFILE
                    SOMEFILE
                ~]# dirname /PATH/TO/SOMEFILE
                    /PATH/TO

8.COMMAND

命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS

COMMAND: 
    发起一命令:请求内核将某个二进制程序运行为一个进程;
        程序 --> 进程
        静态 --> 动态(有生命周期)

    命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
        多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
            普通命令:/bin, /usr/bin, /usr/local/bin
            管理命令:/sbin, /usr/sbin, /usr/local/sbin
        共享库:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
            32bits的库:/lib, /usr/lib, /usr/local/lib
            64bits的库:/lib64, /usr/lib64, /usr/local/lib64

        注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

        命令必须遵循特定格式规范:exe, msi, ELF(Linux)
            ~]# file /bin/ls

        命令分为两类:
            由shell程序的自带的命令:内置命令(builtin)
            独立的可执行程序文件,文件名即命令名:外部命令

OPTIONS:
    指定命令的运行特性;
    选项有两种表现形式:
        短选项:-C, 例如-l, -d
            注意:有些命令的选项没有-;
            如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
        长选项:--word, 例如--help, --human-readable
            注意:长选项不能合并;

        注意:有些选项可以带参数,此称为选项参数;

ARGUMENTS:
    命令的作用对象;命令对什么生效;
    注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;
    例如:ls -ld /var /etc 

相关文章

  • 第二节 基本概念与操作

    Linux 基础入门(新版)”实验报告 基本概念及操作 Linux基础入门(新版)实验报告 基本概念与操作 环境介...

  • docker学习文章整理

    基础概念 Linux namespace 简介 part 1 - UTS Linux namespace 简介 p...

  • Linux基础

    知识点 linux是什么 linux历史 linux目录配置 linux用户和组的概念 linux基础命令:gro...

  • linux基础概念

    linux的哲学思想 一切皆文件;把几乎所有资源,包括硬件设备都组织为文件格式 由众多单一目的小程序组成:一个程序...

  • Linux基础概念

    1.大教堂与集市: 代表了两种不同的开发模式:绝大多数商业公司所采用的是大教堂模式,而Linux世界所采用的是集市...

  • Linux基础命令1

    linux 1. 基础命令 1. 虚拟机和Linux介绍 / 根目录,Linux系统没有像Windows盘符的概念...

  • LINUX学习-简单介绍

    基础概念 linux 基础组成: linux 内核 shell:用户和内核交互的接口 文件系统 第三方应用软件 s...

  • Linux的基础概念

    挂载:把分区和目录对应的过程叫做挂载 作用:把一个设备或者一个文件(网络中的、本地的、内存的、硬盘的、U盘的...

  • 中级Android开发应该了解的Binder原理

    一、基础概念 Linux的进程空间是相互隔离的。 Linux将内存空间在逻辑上划分为内核空间与用户空间。Linux...

  • PV及脚本开发经验分享

    1计算机能力基础 1.1linux系统简介 1.2基本概念与常用linux命令 (1)目录、文件操作

网友评论

      本文标题:Linux基础概念

      本文链接:https://www.haomeiwen.com/subject/fyszeqtx.html