介绍

QEMU1.3.0的源码分析一 : 源码目录简介

夙愿已清 提交于 2019-12-04 21:25:30
作者: snsn1984 最近在研究QEMU,读了一些QEMU的源码,因为涉及的东西比较多,找到的资料又都比较破碎,不太完整。所以将最近的成果总结一下。 相比其他的开源软件来说,QEMU源码下面目录比较多,下面就先把这些目录的内容大致整理一下。 docs/ 包含了一些文档,说实话,对初学者来说,读这些文档压根没有头绪 hw/ 包含了所有支持的硬件设备 include/ 包含了一些头文件 linux-user/ 包含了linux下的用户模式的代码 target-XXX/ 包含了QEMU目前所支持guset端的处理器架构。包 括:alpha,arm,cris,i386,lm32,m68k,microblaze,mips,openrisc,ppc,s390x,sh4,sparc,unicore32,xtensa. 此处的XXX就是指这其中的一种架构。包含的代码的主要功能是将该guest架构的指令翻译成TCG OP代码。也就是target-arm下的代码就是将arm架构的指令翻译成TCG OP。这些目录占了源码目录的很大一部分。 tcg/ 包含了动态翻译工具tcg的源码部分,主要是将TCG OP转化为host binary的部分。这个目录下也包含了多个架构名字命名的目录,每个目录下存放着针对该架构的代码。后续会详细介绍。 test/ 从名字上可以看出,应该是存放测试部分的代码

Cobbler API 介绍

大憨熊 提交于 2019-11-30 10:58:20
本文英文源网站为: https://fedorahosted.org/cobbler/wiki/CobblerApi 为了方便控制cobbler 应用程序, Cobbler提供了一个基于Python 语言的API接口 。 注意,Cobbler是GPL(通用语言),如果你的应用不是GPL,并且想把它分发到公司、家等等的外面,建议你最好使用 CobblerXmlrpc 接口来替代它。 在2.0版本中,不推荐使用BootAPI接口来连接Cobbler,因为它采用一个可能不太安全的方式来直接修改配置存储文件,并且这个修改可能对cobbler服务不起作用。至少到了2.2的版本中CobblerXmlrpm才会被被使用。 引用: http://marc.info/?l=cobbler-devel&m=127428454504458&w=2 API的状态是不可改变的,可以通过查看 https://fedorahosted.org/pipermail/cobbler/2011-November/006863.html 来获取为什么不可改变的原因和详细情况。 公共API的构成 在检出的Cobbler源码中,"api.py" 中的方法是公共的API方法,除非他们方法名称以下划线开头,按照Python公约,凡是以下划线开头的均为私有方法。 如果你想在cobbler中让"iterm object"的功能工作

ProGuard Introduction

半城伤御伤魂 提交于 2019-11-30 00:46:50
介绍 ProGuard 是一个Java类文件压缩器、优化器、混淆器和预校验器。在压缩步骤会发现并移除无用的类、字段、方法和属性。 在优化步骤会分析和优化Method(方法)的字节码。在混淆步骤会使用短且没有意义的名字来重命名剩余的类、字段和方法。 这些前面的步骤会使代码更小、更高效、更难反向工程。最后的预校验步骤会给这些类添加Java Micro版本需要的预校验信息或为Java 6减少启动时间的预校验信息。 这些步骤每一个都是可选的。例如,ProGuard也可以在一个程序中仅仅用来列出无效代码; 或用于在Java 6中预校验类文件提高效率。 ProGuard 通常读取 input jars (或 wars, ears, zips,或 目录)。然后压缩、优化、混淆和预校验它们。 压缩步骤之后,可以执行多个优化过程。ProGuard把这些处理过的结果生成一个或多个 output jars (或 wars, ears, zips, 或 目录)。 输入可能包含资源文件,他们的名字和内容可以可选地被更新成反射混淆之后的类的名字。 ProGuard 要求input jars中的 library jars (or wars, ears, zips, or directories) 被指明。这些在本质上是你编译代码要用到的库。ProGuard用它们来重构类的依赖,并在必要的时候做适当的处理。

MySQL索引类型详解,让MySQL高效运行起来

时间秒杀一切 提交于 2019-11-29 13:57:40
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。 在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如果在username上已经建立了索引,MySQL无须任何扫描,即准确可找到该记录。相反,MySQL会扫描 所有记录,即要查询10000条记录。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。 MySQL索引类型包括: (1)普通索引 这是最基本的索引,它没有任何限制。它有以下几种创建方式: ◆创建索引 CREATE INDEX indexName ON mytable(username(length)); 如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length,下同。

高性能MYSQL读书要点摘录_2_性能刨析工具_pt-query-digest

有些话、适合烂在心里 提交于 2019-11-28 16:16:20
pt-query-digest 高性能MYSQL 第三章服务器性能刨解提到 [pt-query-digest](http://https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html) 工具,来进行分析MYSQL性能。 pt-query-digest 是percona toolkit 中的一个,这里只简单的介绍下pt-query-digest。 下载相应的版本,按照说明安装。 percona 是MYSQL一个FORK [具体的区别见](http://http://dba.stackexchange.com/questions/15595/percona-vs-mysql)。 [percona toolkit](http://https://www.percona.com/software/mysql-tools/percona-toolkit) 使用pt-query-digest 刨析服务器负载 设置my.conf 参数,long_query_time=0 (实际线上不要设为0,这里仅仅是为了收集日志),使所有的查询日志都记录都慢查询中。 1 pt-query-digest <日志> 即可看到结果 2 也可使用tcpdump 导出日志 使用pt-query-digest 来分析 sudo tcpdump

[喵咪Golang(1)]Go语言开篇

孤者浪人 提交于 2019-11-27 03:49:22
#[喵咪Golang(1)]Go语言开篇# ##前言## 哈喽大家好啊!喵咪我今天又来开坑了,最近学习和使用了go语言了一段时间,也在组合一些好的组件编写phalgo开发框架.在想是不是可以来写一个套关于go语言的文章和一些好的组件的介绍使用,虽然自己也是半桶水但是我相信在编写的过程中能给自己很多收获,最好也能帮助大家了解和熟悉golang这门语言,话不多说那么就开始今天的go语言之旅吧~ 附上: 喵了个咪的博客: w-blog.cn phalgo地址: github.com/wenzhenxi/phalgo Go语言圣经: docs.ruanjiadeng.com/gopl-zh ##1. go语言的诞生 如果是计算机专业出生的童鞋都听过 贝尔实验室 一词,这就是诞生著名的UNIX系统和C语言的地方,经过了40年在同一个地方Google工作的Ken Thompson和Rob Pike还有Robert Griesemer一同设计了Go语言,目的是为了解决在21世纪多核和网络化环境下越来越复杂的编程问题. Go语言是从Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,是C语言家族的成员,因此很多人将Go语言称为21世纪的C语言。纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。 就笔者玩了一段时间的感受