在看过Docker的两个Hello World的程序后,我们对Docker有了一个大概的感性的认识,那么Docker是到底是什么呢?Docker是一个面向开发者和系统管理员编译,装载,和运行分布式应用的开放式平台.它包括了Docker引擎,一个可移植的,轻量级的,运行时环境和打包工具,还包括了Docker Hub,一个用于共享应用和自动化工作流的云服务. Docker和一般的虚拟机有什么不同之处 对一般的虚拟机而言,每个虚拟化的应用包括的不仅仅是这个应用本身(大概数十M)以及应用所必需的bin文…
包 所有Go语言的程序都会组织成若干组文件,每组文件被称为一个包.这样每个包的代码都可以作为很小的复用单元,被其他项目引用. 包名惯例 给包命名的惯例是使用包所在目录的名字.并不需要所有包的名字都与别的包不同,因为导入包时是使用全路径的,所以可以区分同名的不同包. main包 Go语言的编译程序会试图把这种名字的包编译为二进制可执行文件.所有用Go语言编译的可执行程序都必须有一个名为main的包. 命令和包 Go文档里经常使用命令(command)这个词来指代可执行程序,如命令行应用程序.这会让…
目录 1. 认识DevOps 1.1. DevOps工具链 1.2. CI 持续集成(Continuous Integration) 1.3. CD(持续交付 & 持续部署) 1.4. Agile Development 2. DevOps 最佳实践 3. Gitea 3.1. Gitea的部署和使用(Docker) 3.2. 更改 Gitea 外观 3.3. Code Review 3.4. Email 通知 3.4.1. Sendmail 配置 3.4.2. SMTP version 3.5…
故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技术控,只是年幼不懂事选择了不归路,现已是大叔的年龄,无力回头,只能善始善终. 买回来发现,这台笔记本上没法安装软件,因为既没有软件仓库,也没有GCC.真是神作啊. 还好这难不倒执意装B的技术小虾米(还没搞定呢,现在就吹是不是有点自信爆棚了). 这不,我周末打算自己玩下构建交叉工具链和构建本地工具链.…
工具链软件包括BINUTILS.GCC.GLIBC.GDB等. BINUTILS是二进制程序处理工具,包括链接器.汇编器等目标程序处理的工具. GCC(GNU Compiler Collection)是编译器.对于C/C++语言的完整支持,需要支持glibc库. GLIBC是应用程序编程的函数库软件包,可以编译生成静态库和共享库.完整的GCC需要支持glibc. GDB是调试工具,可以读取可执行程序中的符号表,对程序进行源码调试. 默认情况下,GNU编译器生成的目标文件格式为elf格式. elf…
GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和数据,可用来连接成可执行文件或共享目标文件;可执行文件(Executable File),ELF可执行文件:共享目标文件(Shared Object File,*.so),包含代码和数据:核心转储文件(Core Dump File),进程意外终止时,系统将该进程的地址空间内容和其他信息保存到该文件中…
命令project() enable_language()try_compile() 变量CMAKE_<LANG>_COMPILERCMAKE_<LANG>_COMPILER_IDCMAKE_<LANG>_COMPILER_VERSIONCMAKE_<LANG>_FLAGSCMAKE_TOOLCHAIN_FILECMAKE_CROSSCOMPILINGCMAKE_SYSTEM_NAMECMAKE_SYSTEM_PROCESSORCMAKE_SYSROOTCM…
伴随时代的飞速进步,中国的人口红利带来了互联网业务的快速发展,巨大的流量也带动了技术的不断革新,研发的模式也在不断变化.传统企业纷纷效仿互联网的做法,结合DevOps进行数字化的转型. 通常提到DevOps,大家浮现在脑海里面可能是研发规范.持续交付.敏捷迭代相关的一系列事项,组织上推行打破部门墙,文化上推行活泼.皮实.互助等方式促进效能提升.但是,除了这些,还需要更多的工具.技术来让这一切真正的落地. 所谓的DevOps,指的是开发运维一体化,也被称之为开发运营一体化.开发测试运维一体化,现在…
我买了一台龙芯2F的笔记本来当玩具. 买回来发现,这台笔记本上没法安装软件,因为既没有软件仓库,也没有GCC. 因此需要构建交叉工具链和构建本地工具链. 下面是我研究如何搞定着一切的笔记. 工具链组件包含: binutils: 用于操作二进制文件的实用程序集合.包括ar, as, objdummp, objcopy gcc: glibc: 所有的应用程序都将链接到C库.还有一个流行的适合于嵌入式的精简libc是uclibc. 从头设置交叉工具链是一件很麻烦的任务,它包括: 下载源码 打补丁 配置…
Preface 前面编译linux内核的时候,用各种cross版本都不行啊,真是纠结,于是就想着自己也要会编译交叉工具的方法,然后各种尝试,各种问题啊,最后还是没解决(还有其它事情),步骤我都走熟了,记下来吧 Preparation root@lcw:/home/mystery/cross_toolchain# ls binutils-2.15.tar.bz2 glibc-2.3.2.tar.bz2 crosstool-0.43 glibc-linuxthreads-2.3.2.tar.bz2…