set,env,export,source,exec傻傻分不清楚?

2018-02-24
阅读 4 分钟
17.2k
你是否被下面的几个问题困扰过,甚至至今无法真正理解? 什么是export,什么时候用export,为什么有时用了export还要source? 为什么用env来设置环境变量,不用export,有什么好处? source和exec有什么区别? 本文试图通过普及unix进程、环境变量等概念,让读者真真理解这些shell命令的本质,知道这些命令的使用场合。 ...

日志收集十大技术细节

2017-06-28
阅读 3 分钟
6k
本文探讨在大规模日志数据收集过程中,针对日志文件的处理需要注意的技术细节。 1. 通配符和目录递归搜索 大多数场景下,日志往往被分散在不同的目录中,比如以日期为名的目录。因此,工具必需支持对目录的递归搜索和某种模式匹配。 POSIX标准定义了一组用于通配的特殊符号(Pattern Matching Notation): *:匹配一个或...

系统性能指标的采集方法(Linux篇)

2017-03-24
阅读 3 分钟
6.1k
这里每一列表示的是cpu在某一方面的时间片占用ticks,见上图。在具体计算使用率的时候,我们可以将前后两次采值相减,然后除以前后两次total ticks的差值,就可以计算出cpu在不同方面的使用率。

unix文件描述符

2017-03-15
阅读 3 分钟
3.7k
文件描述符 简称fd,unix内核对所有打开的文件,使用fd进行引用,fd表现为一个递增的非负整数。 所谓“打开的文件”并不一定是指我们通常理解的文本文件,可能是个设备文件,或是socket。在unix中一切皆文件,文件是一个泛称。 文件描述符具有以下性质: 每个进程具有自己的fd递增空间。已关闭的fd所占用的正整数是可能被...

Go编程技巧--Goroutine的优雅控制

2017-01-23
阅读 2 分钟
9k
Goroutine是Go语言最重要的机制,Goroutine将复杂的需要异步的IO调用抽象成同步调用,符合人类正常的顺序思维,极大的简化了IO编程的难度。如同线程一样,对Goroutine既要掌握基本的用法,更要很好的控制Goroutine的退出机制。本文介绍一种Goroutine的退出思路。

AIX程序打包

2016-11-11
阅读 4 分钟
2.9k
首先需要安装打包工具mkinstallp。在AIX安装光盘中,安装bos.adt.insttools,安装过程中需要在放入光盘1,安装完成后,可以在/usr/sbin/下找到mkinstallp。

练上一年再来总结的vim使用技巧

2016-11-10
阅读 3 分钟
19.8k
转眼上vim的“贼船”有一年多了。从PHP到C,都在用。想要真正用vim于日常的编码工作,必然需要一些插件的支持。不过本文并不打算总结插件,笔者认为vim的两个精髓:组合和重复跟插件也没有什么关系。

实践:GNU构建系统

2016-09-24
阅读 10 分钟
5.5k
在上一篇概念:GNU构建系统和Autotool,我对GNU构建系统从用户视角和开发者视角分别进行了阐述。本篇从我的实践总结的角度,并阐述如何从头开始规划一个基于GNU构建系统的项目。事实上,随着开发者对跨平台认知的深入和完善,才能逐渐掌握GNU构建。注意:本文的例子不依赖于任何IDE和编辑器。这样读者可以从根本上认识到...

概念:GNU构建系统和Autotool

2016-09-16
阅读 7 分钟
7.8k
经常使用Linux的开发人员或者运维人员,可能对configure->make->make install相当熟悉。事实上,这叫GNU构建系统,利用脚本和make程序在特定平台上构建软件。这种方式成为一种习惯,被广泛使用。本文从用户视角和开发者视角详细说明,这种构建方式的细节,以及开发者如何利用autoconf和automake等工具(autotools)...

C静态库连接的顺序问题

2016-09-15
阅读 3 分钟
7.3k
C语言的静态连接,简单的说就是将编译得到的目标文件.o(.obj),打包在一起,并修改目标文件中函数调用地址偏移量的过程。当在大一点的项目中,可能会遇到连接时,由于静态库在链接器命令行中出现顺序的问题,造成undefined reference错误。本文深入探讨一下这个问题,以及如何解决。

ANSI C标准库

2016-09-01
阅读 1 分钟
2.4k
将输入输出抽象为流,预定义标准输入输出和标准错误流:stdin stdout stderr。f开头的函数的操作对象是一个流对象FILE,s开头的函数操作的对象通常是char *。

怎样让C不这么难

2016-08-17
阅读 2 分钟
2.1k
笔者最近在开始一些C的应用程序开发,主要在linux下进行,目标是跨平台的应用程序。虽然是基于某开源程序进行开发,看了不少源码,也动手扩展和修改了开源程序,感触颇多。C其实是语法最为简单的编程语言之一。但是在实际的开发中,尤其是用C来开发一些系统应用程序,会感觉到比Java之类的要难的多,究竟是为什么呢?有...

logstash的lumberjack协议解析

2016-07-27
阅读 7 分钟
7.2k
最近在实现一个agent采集服务器日志,设计agent需要能够将数据发送给logstash。当然logstash支持很多输入协议,其中,logstash技术栈(包括ElasticSearch)内有一种叫做lumberjack的协议,可能是专门为传输日志数据设计的。不过网上对于lumberjack协议没有公开的资料,而且实现上,只有java、ruby、golang版。笔者通过参考...

AIX配置Volumn

2016-07-18
阅读 4 分钟
4.4k
我们知道,现在操作系统都具有默认的卷管理系统来管理磁盘。详见存储技术之卷管理和文件系统。总体来说,从下向上分为物理磁盘(PV)、逻辑卷组(VG)、逻辑卷(LV),用户可以直接mount的是逻辑卷。本文记录一些AIX下的卷管理和配置方法。

Linux下的静态库、动态库和动态加载库

2016-07-17
阅读 2 分钟
10.7k
动态链接库(.so): 动态库还分为两种用法: a) 应用程序运行期间链接动态库,但是在编译期间声明动态库的存在,也就是说这种动态库必须在编译时对编译器可见,但编译器却不将此种库编译进可执行文件; b) 在运行期间,动态加载和卸载的库,使用动态加载方法加载。这种库的形式跟动态链接没有本质区别,区别是在调用时,是由...

iOS 支持 IPv6 DNS64/NAT64 网络

2016-06-07
阅读 9 分钟
11.5k
从2016年6月1日起,iOS应用必须支持IPv6,否则审核将被拒。详见Supporting IPv6 DNS64/NAT64 Networks。本文是翻译稿。从本文中可以学到有关IPv6过度时期的网络架构和具体IOS应用如何兼容的知识。

Golang服务器的网络层实现

2016-05-16
阅读 3 分钟
12.7k
由于最近有接触到一些长连接的服务器实现,对网络模型有所学习。对基于C/C++的网络模型实现和基于GoLang的实现对比下来,发现Golang的网络模型编程难度大大降低,这得益于Golang的goroutine,可以在编程的时候肆无忌惮的创建并发"线程",当服务器能为每一个客户端都开启若干"线程"的话,编程变的简单很多。

I/O多路复用和Socket

2016-03-04
阅读 3 分钟
7.5k
从程序编写的角度来看,I/O就是调用一个或多个系统函数,完成对输入输出设备的操作。输入输出设置可以是显示器、字符终端命令行、网络适配器、磁盘等。操作系统在这些设备与用户程序之间完成一个衔接,称为驱动程序,驱动程序向下驱动硬件,向上提供抽象的函数调用入口。

【转】shell十三问,为linux学习打基础(下)

2016-01-18
阅读 10 分钟
2.2k
谈到I/O redirection,不妨先让我们认识一下File Descriptor(FD)。程序的运算,在大部份情况下都是进行数据(data)的处理,这些数据从哪读进?又,送出到哪里呢?这就是File descriptor(FD)的功用了。

【转】shell十三问,为linux学习打基础(上)

2016-01-18
阅读 22 分钟
5.4k
在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为“操作系统(Operating System)”的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为“核心(kernel)”。然而,从使用...

漫谈iOS程序的证书和签名机制

2015-12-14
阅读 12 分钟
42.9k
接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜。于是,花了一点时间去研究了一下iOS这套证书和签名机制,并撰文分享给需要的朋友。由于本人才疏学浅,多有遗漏或错误之处,还请大神多多指教。

FastCGI+lighttpd开发之介绍和环境搭建

2015-11-17
阅读 6 分钟
15k
由于需要做一些简单的基于FastCGI的Web开发,开始学习和调研,本篇介绍CGI和FastCGI的概念以及基于FastCGI官方的devkit,以及lighttpd搭建起简单的开发环境,以作备忘。

IOS状态栏和导航栏的控制问题

2015-08-23
阅读 6 分钟
27.7k
首先一点,IOS的界面分为状态栏和导航栏,状态栏是指显示电池、时间的最顶部的一个窄条,高度为20个点;而导航栏是紧接着状态栏的44个点高度的横条,一般用于显示app标题,返回按钮等操作按钮。

wordpress主题制作的高级技巧汇总

2015-06-15
阅读 5 分钟
8k
笔者觉得,制作wordpress主题是wordpress定制的最高境界了,几乎涉及到wordpress的所有东西,等同于基于wordpress进行二次开发。本文记录学习过程中的一些高级技巧,以作备忘

Objective-C 内存管理的历史和参考资料

2015-06-05
阅读 3 分钟
4.8k
对于像我这样自学IOS开发的初学者,网上有很多资料,很多教程,但是过于多的资料也使初学者无法筛选合适自己的。并且Objective-c也经历了几个阶段的演变,初学者有时更加会觉得迷茫了。本文总结一下Objective-c在内存管理上的一些问题,整理一些合适的资料。

浅谈云计算的形态

2015-06-05
阅读 2 分钟
4.1k
这几年云计算概念炒的很火热,不仅是很多的云计算相关的创业公司如雨后春笋般冒出来,大佬们也纷纷加入战场。IaaS、PaaS、SaaS、BaaS多种形态并存,一派繁荣景象。本文结合自己的理解对目前市面上的云计算形式,谈一谈看法。

一段C语言和汇编的对应分析,揭示函数调用的本质

2015-03-03
阅读 3 分钟
8.4k
最近网易云课堂开放了一节叫Linux内核分析的课程。一直对操作系统和计算机本质很感兴趣,于是进去看了下,才第一堂课,老师就要求学生写一篇关于课时1的博客作为作业。对于这种新颖的作业形式,笔者相当惊讶。好吧,作为任务,还是完成一下吧,刚好需要消化一下。本文将会按照要求,将一段C语言代码编译成汇编,并给予分...

使用SAE和Gitcafe开发网站应用

2015-01-28
阅读 3 分钟
6k
在PaaS领域目前看来新浪云走的比较早,也比较成熟。相比IaaS,PaaS更能为企业或个人带来成本上的节约。本文以php为例,记录了如何在新浪云上注册创建自己的web项目,如何在本地构建模拟环境,并使用Gitcafe的自动部署功能,使得只需要进行一次git push即可将代码发布到新浪云上。不了解的朋友可以参考。

记录一些网摘

2014-11-19
阅读 1 分钟
1.9k
user-agent检测详解useragent.com关于Content-Disposition返回的文件名Content-Disposition中filename字段的字符编码技巧

服务器端文件分片合并的思考和实践

2014-10-16
阅读 3 分钟
13.2k
笔者在项目中处理大文件上传的需求,仿照七牛云存储的接口设计。然而,在服务器端文件合并时遇到了很大的问题:合并太慢。本文记录了当时的思路和解决的方案