
LINUX系统开发
文章平均质量分 88
逆风飞扬
思考着,奋斗着,冷眼观事,热心待人~
展开
-
linux 同步IO:sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach原创 2014-05-21 20:16:49 · 1290 阅读 · 0 评论 -
Hadoop Streaming 使用介绍
Hadoop StreamingHadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run Map/Reduce jobs with any executable or script as the mapper and/or t原创 2014-05-09 15:29:13 · 985 阅读 · 0 评论 -
Linux进程间通信
一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作原创 2014-04-30 19:25:26 · 846 阅读 · 0 评论 -
一个“轻量级” C 语言协程库
协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像原创 2014-01-28 14:47:32 · 2437 阅读 · 0 评论 -
SecureCRT右键粘贴的设置
1、习惯用putty的朋友,一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.0.2 ,这个功能也已经是默认配置了。 老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知道罢了。 菜单: Options->Global Options ...->Terminal 里面有个Mouse的选项块。 Copy on Select原创 2014-01-07 20:10:14 · 2210 阅读 · 0 评论 -
shell 中判断值是否已经在数组中
1.echo "${array[@]}" | grep -wq "$var" && echo "Yes" || echo "No"2.for i in ${array[@]}do [ "$i" == "$var" ] && echo "yes"done3.test_array (){y_n=$1arr原创 2013-07-29 21:32:29 · 19670 阅读 · 0 评论 -
查看 linux 命令源代码的方法
用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:查看源代码主要有两种方式:基于debian的:以搜索ls命令源码为例,先搜索命令所在包,命令如下:lpj@lpj-linux:~$ which ls/bin/ls用命令搜索该软件所在包,代码如下:lpj@lpj-linu原创 2013-07-05 14:50:02 · 3167 阅读 · 0 评论 -
/proc详解--linux man page
proc(5) - Linux man pageNameproc - process information pseudo-file systemDescriptionThe proc file system is a pseudo-file system which is used as an interface to kernel data structures. It is原创 2013-07-05 10:12:38 · 5287 阅读 · 0 评论 -
mysql update完root用户密码后,再登陆报错”Access denied for user 'root'@'localhost' (using password: YES)“的解决方法
1.mysql 更改root用户密码后,再重新登陆系统时会产生如下的错误:Access denied for user 'root'@'localhost' (using password: YES),这是由于更改用户密码后没有给予权限造成的。同时,在修改密码后用新密码登陆时,提示如下的错误:Access denied for user ''@'localhost' (usin原创 2013-05-17 11:42:07 · 2028 阅读 · 0 评论 -
How I Made Porn 20x More Efficient with Python
IntroPorn is a big industry. There aren’t many sites on the Internet that can rival the traffic of its biggest players.And juggling this immense traffic is tough. To make things even harder,原创 2013-05-10 23:37:02 · 16047 阅读 · 0 评论 -
Unix考古记:一个“遗失”的shell
谨以此文纪念伟大的计算机科学巨匠Ken Thompson和Dennis Ritchie,并同时向其他所有为Unix发展做出贡献的黑客致敬。历史的尘埃Unix作为一个举世闻名的操作系统已有40余年的历史,围绕着这个古老的操作系统的发展又衍生出了一系列外围软件生态群,其中一个非常重要的组件就是shell。它是操作系统最外层的接口,负责直接面向用户交互并提供内核服务,包括命令行接口(原创 2013-04-27 11:00:02 · 978 阅读 · 0 评论 -
百度贴吧10亿量级LAMP架构分享
贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积原创 2012-12-01 10:29:04 · 802 阅读 · 0 评论 -
23 Awesome Themes for Ubuntu Linux
These Ubuntu themes are all available for free download from Gnome Art. Do try them out and let me know if you like them. If you have more cool Ubuntu themes, let me know below in the comments. I love原创 2012-11-29 16:56:35 · 1423 阅读 · 0 评论 -
在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
个http请求的详细过程我们来看当我们在浏览器输入http://www.mycompany.com:8080/mydir/index.html,幕后所发生的一切。首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端原创 2012-10-14 20:22:14 · 2426 阅读 · 0 评论 -
awk与shell之间的变量互相传递方法
awk中使用shell中的变量一: "'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN{print "'$var'"}' 这种写法其实际是双括号变为单括号的常量,传递给了awk.如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:var="th原创 2012-10-07 14:37:08 · 1959 阅读 · 0 评论 -
linux tr命令参数及用法详解---删除文件中控制字符或进行字符转换
名称:tr ### 1.比方说要把目录下所有的大写档名换为小写档名? 似乎有很多方式,"tr"是其中一种: #!/bin/sh dir="/tmp/testdir"; files=`find $dir -type f`; for i in $files do dir_name=`dirname $i`;原创 2012-09-03 11:09:03 · 1612 阅读 · 0 评论 -
Ubuntu 中软件的安装、卸载以及查看的方法总结
说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方法。一、Ubuntu中软件安装方法1、APT方式(1)普通安装:apt-get install softname1 softname2 …;(2)修复安装:apt-get -f install s原创 2012-09-03 10:51:40 · 1200 阅读 · 0 评论 -
vim配置文件--vimrc 04.01版
" ----------------- Author: Fly" ----------------- Email: fly@baidu.com" ----------------- Date: 2012-01-04" Ctrl + K --光标移上一行末尾" Ctrl + H --光标移行首" Ctrl + L --光标移行尾"原创 2012-08-22 16:05:37 · 1252 阅读 · 0 评论 -
Vim配置文件--vimrc 03.01版
001" ----------------- Author: Fly002" ----------------- Email: fly@baidu.com004" ----------------- Date: 2012-03-01005 006" Ctrl + K --光标移上一行末尾007" Ct原创 2012-08-22 16:01:27 · 1161 阅读 · 0 评论 -
Vim配置文件-vimrc 2012-05-01版
1. Vim配置文件-vimrc 2012-05-01版001" ----------------- Author: Fly002" ----------------- Email: fly@baidu.com004" ----------------- Date: 2012-05-01005006007" Ctrl原创 2012-08-17 20:57:43 · 933 阅读 · 0 评论 -
No manual entry for pthread_cond_wait 的解决方法
在最新的ubuntu系统的终端中输入man pthread_cond_wait及pthread_rwlock_wrlock的时候,查看posix函数的帮助,但提示:No manual entry for pthread_cond_wait, 这就是说明我们的man手册默认没有安装全,我们需要手动安装posix的手册:manpages-posix-dev执行安装此包的命令,选择Y后,原创 2012-08-11 21:44:35 · 3834 阅读 · 0 评论 -
JSON 格式详解
介绍 JSONobject {}{ members } members pairpair , members pair string : value array [][ elements ] elements value value , elements value stringnumberobjectarraytruefalse原创 2012-03-28 11:34:30 · 953 阅读 · 0 评论 -
Linux命令行技巧
下面我将和大家分享一些学习Linux命令行的技巧,希望能对大家有所助益。如果在本文中遇到不太熟悉的命令,可以在终端中键入以下命令寻求帮助。Man Where there's a shell, there's a way. Linux入门必备了解bash:没有必要钻研长篇累牍的bash使用手册,通过man bash学习即可。了解vi:你在工作中也许会使用Emacs或原创 2012-03-28 11:33:03 · 764 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总转载 2012-03-26 17:38:19 · 3102 阅读 · 0 评论 -
Google 三在技术论文 之 GFS 中译版
Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。 1、设计概览 (1)设计想定 GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想。这就翻译 2012-03-09 15:42:38 · 883 阅读 · 0 评论 -
Google三大技术的论文之 MapReduce 中译版
MapReduce:超大机群上的简单数据处理 摘要MapReduce是一个编程模型,和处理,产生大数据集的相关实现.用户指定一个map函数处理一个key/value对,从而产生中间的key/value对集.然后再指定一个reduce函数合并所有的具有相同中间key的中间value.下面将列举许翻译 2012-03-09 15:41:33 · 1082 阅读 · 0 评论 -
Google三大技术的论文之 BigTable 中译版
Bigtable:一个分布式的结构化数据存储系统译者:alex 摘要Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很 多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量翻译 2012-03-09 15:40:18 · 2036 阅读 · 0 评论 -
Hadoop集群配置详解
通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html)1 先决条件确保在你集原创 2012-02-09 10:26:27 · 13143 阅读 · 3 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.csdn.net/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有原创 2012-02-07 14:54:31 · 1055 阅读 · 0 评论 -
Vim 实用技术,第 2 部分: 常用插件
2.1. gzip(压缩文件支持)作者:Bram Moolenar网站脚本编号:无(包含在 Vim 的标准发布之中)安装说明:无功能说明:该脚本使得 Vim 可以直接打开使用 gzip [1]、bzip2 [2] 和 compress [3] 压缩的文件(要求存在相应的命令行工具)。后缀为“.gz”、“.bz2”和“.Z”的文件会在打开时被动态解压缩,并在写原创 2012-01-10 12:04:58 · 787 阅读 · 0 评论 -
Vim 实用技术,第 1 部分: 实用技巧
0. Vim 简介作为开源世界最重要的编辑器之一(另一个是 Emacs),Vim 以其强大的功能和可定制能力被众多开发者所喜爱。不过,也许就是因为 Vim 的功能太强大了,要真正用好 Vim 并不容易。本文作者在多年的实际使用中逐渐掌握了一些实用技术,在此介绍给大家。——本文并不企图对 Vim 作全面而系统的介绍,但也绝非零星地点到即止;而是希望通过介绍一些重要特性和提供相关参考信息,引起原创 2012-01-10 12:03:36 · 818 阅读 · 0 评论 -
python 获得命令行参数的方法
本篇将介绍python中sys, getopt模块处理命令行参数如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2]test.py原创 2011-12-29 14:33:09 · 5081 阅读 · 0 评论 -
vim 编码方式(encoding、fileencoding、fileencodings、termencoding) 详解
vim 编码方式的设置和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可原创 2011-12-27 20:16:27 · 2865 阅读 · 0 评论 -
Posix线程编程指南
线程创建1.1 线程与进程相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。原创 2011-12-16 16:25:18 · 755 阅读 · 0 评论 -
tar命令的妙用
一、用tar命令只打包目录下的文件夹,不打包文件:ls -l | grep "^d" | awk '{print $9}' | xargs tar zcvf backup.tar.gz二、使用tar对一个目录下的某些文件做排除打包(将site目录打包,但是排除其中attach和images目录,–exclude采用patten方式做匹配排除。):tar cvfz backup.tar.原创 2011-12-09 16:18:08 · 1558 阅读 · 0 评论 -
Linux网络编程经典书籍推荐
首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.Richard Stevens个人网站 http://www.kohala.com/大师作品部部经原创 2011-11-29 12:00:12 · 862 阅读 · 0 评论 -
perl 引用 详解
为推广perl尽一点力,特将perl引用的一篇文章翻译了一下,没有仔细查错,有问题请和我联系。本文可以从下面地址获得英文版本: http://search.cpan.org/~nwclark/perl-5.8.6/pod/perlreftut.pod perlreftut - Mark 的一个简单的'引用'教程 *名称 *描述 *谁需要复杂的数据原创 2011-11-09 17:15:51 · 1545 阅读 · 0 评论 -
linux awk与shell 参数互传
awk与shell间参数(或说变量传递)是shell编程中常有的话题了,因为其中实际涉及到不少的知识点,比如包括a:进程进通信b:awk参数形式c:shell命令解析,命令替换等等,在此列举二三点例子,做为小结。以下主要分为二部分1:shell给awk传参2:awk往shell传参参考文档:gnu 的awk documentationhttp://www.gnu.o原创 2011-11-08 13:35:48 · 7186 阅读 · 0 评论 -
linux expect 学习笔记及实例
因为最近正在学习expect脚本,但是发现网上好多文章都是转载的,觉得这篇文章还不错,所以拿过来和大家分享一下~ 1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说spawn sudo touch testfile1.3 expect:原创 2011-11-08 13:31:17 · 5225 阅读 · 2 评论 -
url编码方法比较
javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制原创 2011-11-08 13:30:08 · 1148 阅读 · 0 评论