容器化技术之Linux Namespace

在梳理Docker的相关历史发展的时候,知道了现阶段容器化技术的实现基础其实依赖Linux内核的两大核心功能:Namespace和Cgroups,分别用来进行资源的隔离和使用限制;这两大功能是Linux为了虚拟化分别在2002年的「 2.4.19」和2007年的「2.6.24」就开始引入的功能点;本文主要参考Namepsace的manual手册进行相关梳理,欢迎批评指正;

Python之语法基础入门

今天端午节,为了老婆需要,抽时间整理一下Python的基础语法和一些使用技巧,以及和其他语言的一些差别,方便快速的了解和使用Python;对于使用过C++,Python,Go,Lua的人,相信可以更好的去解释Python的一些设计思想和基础关键点;

Git SubModule使用

What

在项目开发过程中,我们可能会有跨项目合作,或者项目组内部多个subgroup之间的协作,以及社区各个开源项目之间的引用,这时候repo需要有一种机制能够引用,跟踪对应的项目;submodule就是git提供的一种项目引用和跟踪的机制;基于此对引用的上游项目也可以进行很容易的进行自定义的修改,合并和推送;

Go语言基础和设计

近年来在典型的互联网服务领域,Go相关技术栈已经普及度非常高,公司很多互联网服务属性的部门基本都已经切换到Go,抛弃了我司长久以来的C++技术栈来开发业务逻辑,最近新的游戏项目也尝试全面拥抱云原生,技术栈全面切换到了Go,所以最近在工作之余在看Go的一些基础和设计思想,这里以一个写了5,6年C++的人的角度来记录一下Go的一些基础知识,主要是通过阅读《Go程序设计语言》一书和官方文档,在做笔记的同时其中夹杂一些和C/C++的对比;本篇主要是一些基础知识,记录一下。

代码构建系统之CMake

基于CMake的构建系统被组织为一组高级逻辑目标。逻辑目标可以分为三类:可执行文件包含自定义命令的自定义目标;目标之间的依赖关系在构建系统中表示,以确定构建顺序和更改时的重新生成规则。

GCC编译优化和调试选项

没有开启编译优化时,GCC编译器的目的是:减少编译时间生成预期的调试结果。对于GCC编译的程序,调试的语句都是独立的,可以在程序的任何语句中设置断点,并设置变量的值和修改语句的执行,得到你想要的执行结果。