1.1什么是LXC LXC为Linux Container的简写.Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性.相当于C++中的NameSpace.容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求.与传统虚拟化技术相比,它的优势在于: 与宿主机使用同一个内核,性能损耗小: 不需要指令级模拟: 不需要即时(Just-in-time)编译: 容…
1 ======================1.零基础快速入门SpringBoot2.0 5节课 =========================== 1.SpringBoot2.x课程全套介绍和高手系列知识点     简介:介绍SpringBoot2.x课程大纲章节         java基础,jdk环境,maven基础 2.SpringBoot2.x依赖环境和版本新特性说明 简介:讲解新版本依赖环境和springboot2新特性概述 1.依赖版本jdk8以上, Springboot2…
[易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具. 我们首先创建一个目录: cargo new btc_converter 我们用TDD方式来开发. 然后 我们先写一些测试代码. 在src/main.rs下面,增加代码如下: #[cfg(test)] mod tests { use super::*; #[test] fn test_convert_succ…
[易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的角度上来说,区块链,就是区块组成的链. 以下就是BTC区块链典型的结构: 那最小单元就是区块:block. 这个block包含两部分:区块头,区块体. 我们先忽略Merkle树,先简化所有数据结构,只保留最基本的数据结构. 那区块头,就包含:区块高度,时间截:前一个区块地址:工作证明; 区块体,就包…
[易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)] 项目实战 实战3:Http服务器 我们今天来进一步开发我们的Http服务器,用多线程实现. 我们在原来工程h_server更新代码如下: src/main.rs: use h_server::*; use std::fs; use std::io::prelude::*; use std::net::TcpListener; use std::net::TcpStream; fn main(…
[易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现在以TDD测试驱动开发的模式,来开发新的功能search函数. 开始吧,我们先在src/lib.rs文件中,增加测试代码: #[cfg(test)] mod tests { use super::*; #[test] fn one_result() { let query = "duct"…
[易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点复杂的项目. 简单来说,就是开发一个我们自己的grep (globally search a regular expression and print) 首先用命令生成一个工程: cargo new minigrep 然后在工程目录minigrep下新建一个文件:poem.txt,文件的内容如下 :…
[易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了一个随机数字,你根据提示输入你的数字,如果答对了,系统显示:you win! 否则系统会给个提示:太小或太大的提示,继续猜. 我们开始吧! 先用命令生成工程: cargo new guessing_game 用vscode打开新建的工程guessing_game,src/main.rs的代码更新为如…
[易学易懂系列|rustlang语言|零基础|快速入门|(5)] Lifetimes 我们继续谈谈生命周期(lifttime),我们还是拿代码来说话: fn main() { let mut a = vec![1, 2, 3]; let b = &mut a; // &mut borrow of `a` starts here // some code println!("{:?}", a); // trying to access `a` as a shared bo…
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro. Rust的宏macro是实现元编程的强大工具. 宏主要作用为: 1.减少重复代码. 2.编写DSL(Domain-specific languages. 3.可变参数接口定义. 在Rust主要分两种宏: 声明式宏declarative macros (一般用macro_rules!定义) 过程式宏 procedural macros,像一个过程函…