代码改变世界

随笔分类 - Linux操作系统

SystemTap知识(二)

2013-09-01 11:30 by 轩脉刃, 2155 阅读, 收藏, 编辑
摘要: Unbuntu安装systemtap:http://www.cnblogs.com/hdflzh/archive/2012/07/25/2608910.html1 更新源到http://mirror.ubuntu9.com/topmirror/sourceslist/all/54772423e19231bbb722a69fd878df28.list2 apt-get install systemtap3 apt-get install systemtap-sdt-dev4$ cd $HOME$ sudo apt-get install dpkg-dev debhelper gawkapt-ge 阅读全文

Linux Shell参数替换

2013-06-03 10:01 by 轩脉刃, 5486 阅读, 收藏, 编辑
摘要: Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。 ${}带冒号的有下面几种表达式: ${parameter:-word} 如果parameter为null或者未设置,整个参数替换表达式值为word ${parameter:=word} 如果parameter为null或者未设置,整个参数替换表达式值为word,... 阅读全文

系统知识点笔记

2013-03-21 22:26 by 轩脉刃, 814 阅读, 收藏, 编辑
摘要: shell脚本出现问题:unexpected end of file这个是windows下的shell的结束符在linux下标示失败的问题可以在linux下vim打开:set fileformat=unix系统seq的-f用法:seq -f '201303%02g.mp4' 1 31|xargs -i cp 20130101.mp5 {}shell使用mail命令发邮件echo "hell2o" | mail -s "testtitle" jianfengye110@gmail.com读取脚本的绝对路径:readlink -f " 阅读全文

系统知识点

2013-02-17 17:41 by 轩脉刃, 1325 阅读, 收藏, 编辑
摘要: 如何连号输出 seq 1 0 | xargs -i echo a_{} 查看两个文件夹的不同 diff -Naur test test2 输出到每天不同的日志文件 /usr/local/bin/php /home/q/system/test/api/bootstrap/index.php -m msg.clearMsg -t shell >> /home/yejianfeng/clea... 阅读全文

在darwin上使用基于SecurID的Cisco VPN

2013-02-04 12:36 by 轩脉刃, 1487 阅读, 收藏, 编辑
摘要: 借鉴了@jqlblue的这篇 http://blog.sina.com.cn/s/blog_4c6b0c8e01017dev.html 步骤: 1 (如果已经知道组密码了,就直接忽略) 假设你在windows上已经登录过 进入路径如:C:\Program Files\Cisco Systems\VPN Client\Profiles 打开这个文件夹下的文件会看到诸如 enc_Grou... 阅读全文

GCC知识

2013-01-17 09:41 by 轩脉刃, 2345 阅读, 收藏, 编辑
摘要: 像C语言这样的静态语言,运行的步骤是先将C经过编译器转化成汇编语言,汇编语言再经过汇编器转化成机器语言模块,然后链接器将程序的机器语言模块和库程序的机器语言模块和起来,生成可执行文件,最后再由加载器加载这个可执行文件,产生输入输出。 在这个环节中,gcc就是扮演着编译器的角色。gcc原本只能编译C语言,但是后来,经过扩展之后也能处理JAVA/OC等语言了。GCC现在已经成为类Unix操作系... 阅读全文

从文件视角看mysql

2012-12-11 18:37 by 轩脉刃, 3281 阅读, 收藏, 编辑
摘要: 这里的几个rpm意义分别是:(http://docs.oracle.com/cd/E17952_01/refman-5.0-en/linux-installation-rpm.html) MySQL-client:包含最少的访问mysql服务器所需要的客户端命令。里面包含的是像mysql,mysqladmin这样的工具。 MySQL-devel:包含开发mysql客户端所需要的库。里面没有... 阅读全文

NUMA的取舍

2012-12-10 18:30 by 轩脉刃, 17226 阅读, 收藏, 编辑
摘要: 现在的机器上都是有多个CPU和多个内存块的。以前我们都是将内存块看成是一大块内存,所有CPU到这个共享内存的访问消息是一样的。这就是之前普遍使用的SMP模型。但是随着处理器的增加,共享内存可能会导致内存访问冲突越来越厉害,且如果内存访问达到瓶颈的时候,性能就不能随之增加。NUMA(Non-Uniform Memory Access)就是这样的环境下引入的一个模型。比如一台机器是有2个处理器,有4个... 阅读全文

架构整洁之道

2012-09-10 10:00 by 轩脉刃, 10823 阅读, 收藏, 编辑
摘要: 这篇文章是翻译(Uncle Bob Martin)的文章。原文在这:http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html。这篇文章作者尝试使用简单的观点将各种架构的共通之处和最终目标说清楚。全文要说清楚的就是一件事“如何写出整洁的架构”。作者希望在架构系统的时候只需要秉持最简单的两个观点(分层和依赖规则)开发,就能开发出干净整洁的系统架构。 以下是译文 过去几年间有许多关于系统架构的观点。比如: 1 六角架构(Hexagonal Architecture )。 这种架构是由Alistai... 阅读全文

Linux IO模型漫谈(6)- 信号驱动IO模型

2012-06-11 22:10 by 轩脉刃, 6058 阅读, 收藏, 编辑
摘要: Unix上有定义了许多信号。源自Berkeley的实现使用的是SIGIO信号来支持套接字和终端设备上的信号驱动IO。 信号驱动IO模型主要是在UDP套接字上使用,在TCP套接字上几乎是没有什么使用的... 阅读全文

nginx源码学习Unix - Unix域协议

2012-06-08 10:53 by 轩脉刃, 2881 阅读, 收藏, 编辑
摘要: 说到什么是域协议就会出现这么个解释: UNIX域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API与在不同主机上执行客户/服务器通信所使用的API相同。UNIX域协议可以视为IPC方法之一。 我们白话解释下Unix域协议在什么情况下使用和怎么使用? Unix域协议主要用在同一台机子的不同进程之间传递套接字。为什么不用TCP或者U... 阅读全文

Linux IO模型漫谈(5)- IO复用模型之select

2012-06-07 09:05 by 轩脉刃, 5751 阅读, 收藏, 编辑
摘要: 首先需要了解的是select函数: select函数 #include<sys/select.h> #include<sys/time.h> int select (int maxfd , f... 阅读全文

Linux IO模型漫谈(4)- 非阻塞IO

2012-06-05 09:03 by 轩脉刃, 4447 阅读, 收藏, 编辑
摘要: 首先先说一下,阻塞IO会在哪些地方阻塞住呢?输入操作read, 输出操作write,接受请求操作accept,发送请求操作connect,这四个地方阻塞进程。 非阻塞IO的模型图示在前面的章节有讲过,它和阻塞IO的最大区别就是:如果连接或者操作不能立即建立,那么连接的建立照样能发起,只是会返回一个错误信息。 同样,先说明几个用到的函数和操作: 1 fcntl函数 其全名为”file control“。顾名思义,fcntl可以执行各种操作符控制操作。#include <fcntl.h>int fcntl(int fd, int cmd, .. /* int arg */)第一个参数f 阅读全文

Linux IO模型漫谈(3) -- 阻塞式IO实现

2012-06-04 09:48 by 轩脉刃, 2220 阅读, 收藏, 编辑
摘要: 在理解代码前有几个函数先说一下: 1 sockaddr_in 套接字地址结构 struct sockaddr_in { uint8_t sin_len; //长度字段,这个sockaddr_in结构的长度,一般不用设置和检查它 sa_family_t sin_family; //协议族,TCP,UDP等协议族就设置为AF_INET... 阅读全文

服务器性能查看常用命令

2012-06-01 06:35 by 轩脉刃, 23487 阅读, 收藏, 编辑
摘要: 最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。 注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考 free –m 查看内存使用情况 这个命令比较简单,-m 代表下面的是以M为单位 Mem是表示物理内存,主要看 Mem free代表还有多少内存可以 说一下第二行的 -/+ buffers/cache: used = 第一行的used - buffers - cached (表示实际使用的内存总数) free = 第一行的free + buffer... 阅读全文