2020-02-25 16:25
⁄ 工业·编程
⁄ 共 3463字
Shell从标准输入或脚本中读取的每行称为一个管道行,它包含一个或多个由0个或多个管道字符(|)分隔的命令。对每一个管道行,进行12个步骤的处理。
结合上图,这里给出命令行的12个步骤。
1. 将命令行分成由固定元字符集分隔的记号 :
SPACE, TAB, NEWLINE, ; , (, ), <, >, |, &
记号类型包括单词,关键字,I/O重定向符和分号。
2. 检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字。 如果是...
bash, 源码阅读全文
2020-02-24 11:06
⁄ 工业·编程
⁄ 共 744字
集群与分布式像一对孪生兄弟,傻傻分不清楚。在我看来,它们之间没有特别明确的分界线,集群离不开分布式,分布式也需要集群。如果一定要做个区分,可以套用一个比喻来描述两者的区别:
一家餐厅刚开业,由于成本限制招了一个厨师,慢慢地,餐厅生意越做越好,一个厨师已经很难应付过来,于是又招了一个,这两个厨师水平相当,都能做同样的事,两个厨师之间的关系就是集群。两厨师除了炒菜,还要负责洗菜、配菜等等的活...
分布式, 区别, 集群阅读全文
2020-02-23 10:47
⁄ 工业·编程
⁄ 共 2736字
Namespace概述
Namespace 用于不同进程组之间的资源隔离,其目的是将某个特定的全局系统资源(global system resource)通过抽象方法使得namespace 中的进程看起来拥有它们自己的隔离的全局系统资源实例。
Linux 内核中实现了六种 namespace,按照引入的先后顺序,列表如下:
namespace
引入内核版本
被隔离的全局系统资源
在容器语境下的隔离效果
Mount namespaces
Linux 2.4.19
文档系统挂接点...
cgroup, linux阅读全文
2020-02-22 09:54
⁄ 工业·编程
⁄ 共 5021字
学习Docker,首先需要了解Docker基本概念,然后就开始“动手”了(也就是敲Docker命令)。Docker命令较多,这里笔者总结下常用的Docker命令,方便小伙伴们查阅。
Docker是基于go语言开发,底层技术(Linux下)主要基于cgroups、namespace以及联合文件技术实现的一种进程级别的轻量级虚拟化解决方案。由于Docker进程隔离独立于宿主机上其他进程,因此也称为容器,Docker在容器的基础上,进行了更进一步的封装,从文件系统、网络到...
Docker阅读全文
2020-02-21 09:37
⁄ 工业·编程
⁄ 共 3736字
cgroup2007年从2.6.24引入linux内核主线,目前默认已启用该特性。在cgroup出现之前,只能对一个进程做资源限制,比如通过sched_setaffinity设置进程cpu亲和性,使用ulimit限制进程打开文件上限、栈大小等。
cgroups是Linux下控制一个(或一组)进程的资源限制机制,全称是control groups,可以对cpu、内存等资源做精细化控制,比如目前很多的Docker在Linux下就是基于cgroups提供的资源限制机制来实现资源控制的;除此之外,开发...
cgroup, linux阅读全文
2020-02-20 08:41
⁄ 工业·编程
⁄ 共 782字
cgroup是control group的简称,称为控制组,主要是为系统用户提供不同类型的资源分配和限制功能,是实现docker的基础。
cgroup主要的功能可以归纳如下:
1、资源限制:资源限制主要体现在进程运行过程中所需要的资源,例如cpu使用配额、内存大小、磁盘访问等
2、设置程序的优先级: 程序的执行优先级可以通过对cpu的使用以及I/O带宽的限制
3、系统资源使用统计:统计cpu运行时间,统计内存使用,统计程序wakeup次数等。
4、进程...
cgroup, linux阅读全文
2020-02-19 16:53
⁄ 工业·编程
⁄ 共 1331字
OpenStack:公认的云计算IaaS平台,其管理的核心目标对象是机器(虚拟机或物理机),当然也可以管理存储和网络,但那些也大都是围绕着机器所提供的配套资源。近年来容器技术火了之后,OpenStack也开始通过各种方式增加对容器的支持,但目前OpenStack还不被视为管理容器的主流平台。
Docker:这里我假定你指的是Docker engine(也叫做Docker daemon,或最新的名字:Moby),它是一种容器运行时(container runtime)的实现,而...
Docker, Kubernetes, Mesos, OpenStack, 区别阅读全文
2020-02-18 16:41
⁄ 工业·编程
⁄ 共 2740字
老板建了机房,让你做机房管理员,机房已经建好了网络,还有几百台机器还有磁阵存储啥的,老板给你的工作任务,就是配合开发部和测试部的工作。然后你上班第一天,开发小哥过来找你,让你给安排个服务器,他们要在上面测试程序,然后你从服务器挑了一台还算空闲,在上面建一个虚拟机给他,又分配了一些硬盘到这个虚拟机上给他。一会测试小哥又过过来,说他的服务器硬盘不够,你又从存储中找了点空闲的硬盘挂到他服务器上。
你公...
Docker, OpenStack, 区别, 新手阅读全文
2020-02-17 14:34
⁄ 工业·编程
⁄ 共 891字
按时间顺序说一说这三门语言的基本吧,这样比较一下儿就能知道他们的区别了。
一、C语言
C语言诞生得非常早,当时人们普遍还习惯用汇编语言编写软件,而且没有什么统一,通用的操作系统,基本上软件都是从0开始写的。C语言的目标就是比汇编方便易用,同时不要损失汇编的表达能力。所以C语言可以看成是“高级的汇编”语言。C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点...
c++, 区别阅读全文
2020-02-16 14:21
⁄ 工业·编程
⁄ 共 1165字
为了谈应用,先谈谈使命。模板元编程的根在模板。
模板的使命很简单:为自动代码生成提供方便。提高程序员生产率的一个非常有效的方法就是“代码复用”,而面向对象很重要的一个贡献就是通过内部紧耦合和外部松耦合将“思想”转化成一个一个容易复用的“概念”。但是面向对象提供的工具箱里面所包含的继承,组合与多态并不能完全满足实际编程中对于代码复用的全部要求,于是模板就应运而生了。
模板是更智能的宏。模板和宏都是编译前...
c++, 模板阅读全文