十分钟搞清字符集和字符编码 十分钟搞清字符集和字符编码什么是字符集什么是字符编码UTF-8和Unicode的关系UTF-8编码简介为什么会出现乱码如何识别乱码的本来想要表达的文字常见问题处理之Emoji本文将简述字符集,字符编码的概念。以及在遭遇乱码时的一些常用诊断技巧背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星
CentOS-6.5离线安装docker-1.7教程 CentOS-6.5离线安装docker-1.7教程0. 准备本文是模拟实际上线时,没有网络的情况下使用rpm包安装docker-1.7的方法。不过安装中也是使用yum,相比较直接使用rpm安装,yum可以解决一些库文件的依赖关系。# cd /etc/yum.repos.d/# mkdir bak# mv * bak/1. 安装libcgroup# cd cgr
CentOS-6.5在线安装docker-1.7教程(升级内核) CentOS-6.5在线安装docker-1.7教程(升级内核)前一篇博客讲到了Centos6.5在线安装docker1.7的方式。由于docker官方推荐的内核版本是3.10以上,本文在上一篇基础上增加了升级内核的方法,然后再3.10内核基础上安装docker。1. 安装EPELFor CentOS-6.5, theDocker package is part of Extra P
CentOS-6.5在线安装docker-1.7教程 CentOS-6.5在线安装docker-1.7教程1. 安装EPELFor CentOS-6.5, theDocker package is part of Extra Packages for EnterpriseLinux (EPEL) repository, a community effort to create and maintain additionalpackages
PostgreSQL regress test PostgresSQL regress test最近看了下pg中的回归测试相关内容,现在将看到的内容记录下来。1. 先来一个例子[postgres@gorilla1 regress]$ make checkmake -C ../../../src/port allmake[1]: Entering directory `/tmp/postgresql-9.3.4/sr
搭建centos 5.x本地yum源 大家都知道,在centos上安装rpm包时,最令人头疼的就是各种包的依赖关系。不过CentOS和RedHat以及SUSE中提供了一种shell前端软件包管理器yum,用来解决软件包的依赖关系。使用yum安装所需的软件,过程变得简单很多。但是一般来说,yum都是在线安装软件的。对于没有网络的情况下,我们该怎么办呢?本文以 CentOS 5.5 为例,完整讲解 CentOS 系统创建本地 yum
shell中常用功能与C语言的对比 要实现的功能C语言编程Linux Shell脚本编程程序/脚本的参数传递int main(int argc, char** argv){if (argv != 4) { printf( “Usage: %s arg1 arg2 arg3”, argv[0] ); return 1;}
SQL的四种语言:DDL、DML、DCL、TCL 1. DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束。DDL不需要commit。DDL的操作包含:CREATE
MySQL Fabric概述 Oracle在今年5月推出了一套为各方寄予厚望的MySQL产品 -- MySQL Fabric,从字面上不太能看出它是啥,但是从名称上还是有迹可循的。fabric是“织物”的意思,这意味着它是用来“织”起一片MySQL资料库。MySQL Fabric是一套数据库服务器场(Database Server Farm)的架构管理系统。
linux上源码安装MySQL详解 最近需要使用MySQL Fabric,这货是MySQL5.6.10之后才出现的utility。手头机器装的是MySQL5.1,所以需要先把旧版MySQL升级成5.6版本。之前没有玩过MySQL,所以这次稍微费了点事。在此,把过程记录下来,希望能给有需求的人提供一点帮助。下面我们就正式开始。
MySQL出现Ignoring query to other database的问题 今天使用mysql的时候,输入任意一条命令都会出:Ignoring query to other database这条错误信息,很是奇怪。后来才发现是登录数据库时,少了个-u的参数。。正确的命令是:mysql -uroot -p我输入的是:mysql -root -p加上-u就可以了
递归算法时间复杂度分析与改善 递归算法大家都不陌生,当需要重复计算相同问题时,一般可以选择递归和循环两种算法。又因为递归实现起来代码比较简洁,所以通常都会使用递归来解决上述问题。比如斐波那契数列,再比如树的前序、中序、后续遍历算法。递归算法虽然是有代码简洁这个优点,但是其缺点显著。因为递归函数是在执行过程中调用其自身,所以会占用大量的栈上空间,并且压栈和出栈都是有时间消耗的。所以从这一点上来看,递归的效率是不如循环。除
insmod: error inserting 'hello.ko': -1 Invalid module format 在学习编写linux驱动程序的时候,一般都是从写一个helloworld的模块开始。但是在编译完成后,进行模块加载的时候,有时会出现如下错误:insmod: error inserting 'hello.ko': -1 Invalid module format其实,出现这个问题的原因很简单,就是:编译的内核版本与实机运行的内核版本不一致。所以解决起来也很简单,实机运行的系统的代码树位置一般在/usr/src/kernels。只要将Makefile中的代码树改成实际运行的内核代码即可。
MAC上类apt-get工具brew的安装与使用 对于习惯了linux系统的人来说,使用yum或者apt-get来在线安装软件是一件很愉快的事情。这些工具可以解决依赖问题,使得安装过程变得简单快捷。在使用MAC的时候,也会想:MAC OS上有没有类似的软件呢?经常调查发现,果然有一款类似的软件brew,也叫homebrew。下面我们就来详细描述一下该软件的安装和使用方法。
linux系统启动流程一览 linux系统启动流程一览加载BIOS的硬件信息并进行自检,然后根据设置取得第一个可启动的设备; 读取并执行第一个启动设备内MBR(master boot record,主引导分区)的boot loader; 依据bootloader的设置加载kernel,kernel开始检测硬件和加载驱动程序; 在硬件驱动成功后,kernel会调用init进程,init进程会取得run-leve
ramoops驱动注册失败原因详解 在使用linux的ramoops驱动模块时,在编译完加载时,会发现驱动加载不成功。明明直接使用的内核代码,为什么会出现这样的情况呢?首先看一下ramoops的初始化代码:180 static int __init ramoops_init(void)181 {182 return platform_driver_probe(&ramoops_driver, ramoops_pr
linux设备驱动程序注册过程详解 Linux的驱动程序注册过程,大致分为两个步骤:模块初始化驱动程序注册下面以内核提供的示例代码pci-skeleton.c,详细说明一个pci设备驱动程序的注册过程。其他设备的驱动代码注册过程基本相同,大家可自行查看。使用的内核代码版本是2.6.38。1. 模块初始化1.1 驱动程序入口所有的设备驱动程序都会有如下两行代码:1922 module_init(netdrv
USB设备驱动之设备初始化(设备枚举) USB设备从接入HUB到正常工作之前,都属于设备枚举阶段。所谓设备枚举,就是让host控制器认识USB设备,并为其准备资源,建立好主机与设备间的数据传递机制。该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程。设备枚举阶段也对应了USB设备的五种状态。设备枚举阶段分为如下8个步骤:获取设备描述符复位设置地址再次获取设备描述符获取配置描述符获取接口,端点描述符获取字符串
Linux下进程终止过程 无论是在什么系统中,当进程终止之后,系统都需要释放进程占有的资源。否则,系统资源会被耗尽。下面将详细说明Linux系统中,进程终止的过程。进程终止方式linux的进程终止方式有8种,其中5种是正常终止,分别是:从main函数返回。调用exit函数。调用_exit或_Exit。最后一个线程从其启动例程返回。最后一个线程调用pthread_exit。异常终止有3种,分别是:
Linux内核之vmlinux与vmlinuz 1.vmlinux vmlinux是一个包含linux kernel的静态链接的可执行文件,文件类型是linux接受的可执行文件格式之一(ELF、COFF或a.out)。 2.vmlinuz vmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件。vmlinuz不仅是一个压缩文件,而且在文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解