linux/UNIX
文章平均质量分 77
czc1009
这个作者很懒,什么都没留下…
展开
-
字符集和编码
计算机只能识别诸如0101这样的二进制数,于是人们必须以二进制数据与计算机进行交互,或者先将人类使用的字符按一定规则转换为二进制数。那什么是字符呢?在计算机领域,我们把诸如文字、标点符号、图形符号、数字等统称为字符。而由字符组成的集合则成为字符集,字符集由于包含字符的多少与异同而形成了各种不同的字符集。我们知道,所有字符在计算机中都是以二进制来存储的。那么一个字符究竟由多少个二进制位来表示呢?原创 2014-08-07 19:34:09 · 625 阅读 · 0 评论 -
编程语言发展的编年史
1951 – Regional Assembly Language1952 – Autocode1954 – IPL (LISP语言的祖先)1955 – FLOW-MATIC (COBOL语言的祖先)1957 – FORTRAN (第一个编译型语言)1957 – COMTRAN (COBOL语言的祖先)1958 – LISP1958 – ALGOL 581959 –原创 2014-02-10 16:50:34 · 1059 阅读 · 0 评论 -
几种常见的开源协议比较
根据Open Source Initiative的统计现在开源的协议已经有几十种了(我数了下有70个 http://www.opensource.org/licenses/alphabetical),他们都是基于开源思想而订立的,要全部熟悉没那个精力也没有那个必要,我们只需要适当了解下当前主流的集中开源协议就好了。BSD开源协议(FreeBSD license、Origin原创 2014-03-03 19:59:36 · 763 阅读 · 0 评论 -
libevent源码深度剖析
1 前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。附带一句:Libevent是用c语言编写的(MS大牛们都偏爱c语言哪),而且几乎是无处不函数指针,学习其源代码也需要相当的c语言基础。2 Libeven转载 2013-09-04 21:24:04 · 774 阅读 · 0 评论 -
开源项目网址集合
著名的开源网站1、http://code.ijinshan.com/ 2、http://search.csdn.net/3、http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。4、http://www.codase.com/index.html它是一个代原创 2014-08-12 21:47:58 · 1412 阅读 · 0 评论 -
bootloader介绍
1.含义和功能:Bootloader,称为引导加载程序,是嵌入式系统加电后运行的第一段代码,相当于PC机的BIOS。Bootloader通常固化在硬件上某个固态存储设备上,加电后自启动。bootloader要实现的功能就是:在系统上电或者复位后,将系统的软硬件环境带到一个合适的状态,为最终调用应用程序准备好正确的环境。它包括:- 初始化硬件设备- 建立正确的转载 2015-03-24 16:41:59 · 1927 阅读 · 0 评论 -
linux体系结构与内核结构图解
1.当被问到Linux体系结构(就是Linux系统是怎么构成的)时,我们可以参照下图这么回答:从大的方面讲,Linux体系结构可以分为两块:(1)用户空间:用户空间中又包含了,用户的应用程序,C库(2)内核空间:内核空间包括,系统调用,内核,以及与平台架构相关的代码 2.Linux体系结构要分成用户空间和内核空间的原因: 1)现代CPU转载 2015-03-24 16:36:03 · 699 阅读 · 0 评论 -
linux使用wine安装windows exe程序
我使用的是ubuntu,在终端可以原创 2014-10-16 09:38:56 · 4989 阅读 · 0 评论 -
编程语言发展的编年史
1951 – Regional Assembly Language1952 – Autocode1954 – IPL (LISP语言的祖先)1955 – FLOW-MATIC (COBOL语言的祖先)1957 – FORTRAN (第一个编译型语言)1957 – COMTRAN (COBOL语言的祖先)1958 – LISP1958 – ALGOL 581959 –原创 2014-10-16 09:38:34 · 901 阅读 · 0 评论 -
memcached完全剖析
这是在网上找到的讲解memcached比较相信的文章了,是翻译过来的,原址如下:http://tech.idv2.com/2008/07/10/memcached-001/memcached完全剖析–1. memcached的基础发表日:2008/7/2 作者:长野雅广(Masahiro Nagano) 原文链接:http://gihyo.jp/dev/fe转载 2013-09-23 14:11:09 · 954 阅读 · 0 评论 -
linux 内核同步机制-自旋锁与信号量及其区别
这篇文章写得很不错!新人值得一看:http://www.360doc.com/content/12/0222/15/8555864_188631419.shtml内核同步措施为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。Linux 使用的同步机制可以说从2转载 2013-12-15 19:48:55 · 637 阅读 · 0 评论 -
Linux多线程编程(一)
http://www.lupaworld.com/article-215772-1.html——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟转载 2013-12-15 19:49:44 · 653 阅读 · 0 评论 -
sed命令详解
1、简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。2、定址原创 2013-12-24 10:44:11 · 706 阅读 · 0 评论 -
意想不到的有趣linux命令
1. sl 命令sl是指“steam locomotive(蒸汽机车)”,你会看到一辆火车从屏幕右边开往左边。。。。。。安装 $ sudo apt-get install sl 运行 $ sl命令有 -alFe几个选项,-a An accident seems to happen. You'll feel pity for people who cry fo转载 2013-12-26 15:41:23 · 924 阅读 · 0 评论 -
Linux内核
一、Linux内核Linux内核的源码树已经有超过20000个文件,超过600万行代码。这还是几年前的数据。需要工具、根文件系统、Linux应用程序共同建立一个可用的系统。1、内核版本当前的Linux内核版本为2.6.28。版本命名规则如下:VERSION = 2PATCHLEVEL = 6SUBLEVEL = 28EXTRAVERSION = NAME =原创 2014-02-03 14:57:45 · 710 阅读 · 0 评论 -
ubuntu配置开机启动服务
在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本就没有了,如果想继续使用chkconfig命令,只好自己apt-get install下了。[plain] view plaincopysudo apt-get install chkconfig 在这里我给大家介绍另两个命令来配置ubuntu转载 2014-07-01 11:37:18 · 686 阅读 · 0 评论 -
linux 查询命令
在linux下面找一个文件,当不知道其所在的时候,确实是一件头疼的事情。这是我一般查找时使用的几个命令:find、locate、whereis,先记录下来。一、findfind path -option [ -print ] [ -exec -ok command ] {} \;参数说明:-path: find命令所查找的目录路径。例如用.来表示当前原创 2013-09-21 12:38:49 · 723 阅读 · 0 评论 -
常用正则表达式、正则表达式优化总结
匹配中文字符的正则表达式: [u4e00-u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^x00-xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:ns*r评注:可以用来删除空白行匹配HTML标记的正则表达式:]*>.*?|<.*? />评注:转载 2014-04-28 15:39:54 · 1074 阅读 · 0 评论 -
Linux下svn常用命令
1、Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain (如果第一次使用svn,要使用 用户名、 密码:svn checkout svn://192.168.1.1/pro/domain user pa原创 2013-12-15 23:33:36 · 1252 阅读 · 0 评论 -
读书笔记之《程序员的自我修养--链接、装载与库》
从编译,链接到运行,程序员应该了解自己所写的代码最终是怎么成为程序,又怎样在计算机上运行起来的。另不得不对作者能在硕士期间就能写出此书感到佩服。精读此书需要花些功夫,当然肯定能从中收获很多。我对此书也只是泛读,主要是想了解编译,链接及程序在内存中运行整个实现原理。本篇笔记主要记录自己在读此书过程中一些概念上有误解或不清晰的地方。编译和链接IDE一般将编译和链接的过程一步完成,通常将这种编译和链接合并转载 2015-07-13 23:14:58 · 454 阅读 · 0 评论 -
socket概述
1.socket定义在 Linux 中的网络编程是通过socket接口来进行的。人们常说的socket接口是一种特殊的I/O,它也是一种文件描述符。每一个socket都用一个半相关描述{协议,本地地址、本地端口}来表示;一个完整的套接字则用一个相关描述{协议,本地地址、本地端口、远程地址、远程端口}。socket也有一个类似于打开文件的函数调用,该函数返回一个整型的转载 2013-09-04 21:32:00 · 851 阅读 · 0 评论 -
Linux进程间通信
一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作转载 2013-09-04 21:21:35 · 735 阅读 · 0 评论 -
select详解
select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descrīptor for转载 2013-09-04 21:19:02 · 731 阅读 · 0 评论 -
用ping追踪计算机的最佳MTU值&修改MTU值
1、什么是MTU MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。 2、如何检测网关的MTU? 在本机打开d转载 2013-09-04 21:31:44 · 2317 阅读 · 0 评论 -
配置开发支持高并发TCP连接的Linux应用程序全攻略
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许 当前用户进程打开的文件数限制:[speng@as4 ~]$ u转载 2013-09-13 14:13:21 · 1027 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式转载 2013-09-25 13:55:01 · 626 阅读 · 0 评论 -
各种 JSON 解析库的功能简介
这里增加一项无聊的对比图,看客自斟。=================================== 【william/libjson】Last Update:2013-09-27descriptionjson.c is a JSON C library that supports path autovivification and conversion.转载 2013-12-02 18:18:25 · 3560 阅读 · 0 评论 -
HTTP的长连接和短连接
转载至:https://www.cnblogs.com/cswuyg/p/3653263.html 本文总结&分享网络编程中涉及的长连接、短连接概念。 关键字:Keep-Alive,并发连接数限制,TCP,HTTP一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完...转载 2018-08-17 09:55:40 · 207 阅读 · 0 评论 -
糊涂窗口综合症和Nagle算法
第一部分:SWS何谓糊涂窗口综合症 当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之,就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有 1 个字节;而传输开销有40 字节(20 字节的 IP 头 + 20 字节的 TCP 头) 这种现象就叫糊涂窗口综合症。发送端引起的SWS 发送端的 TCP转载 2013-12-02 18:21:43 · 1022 阅读 · 0 评论 -
tcp和udp
计算机网络OSI模型中,TCP和UDP为第四层传输层的功能。简单的说:TCP传输控制协议(Transmission Control Protocol)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。TCP协议能为应用程序提供可靠的通信连接,使一台计算机 发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。必须要原创 2013-12-15 17:28:47 · 753 阅读 · 0 评论 -
GDB的使用方法
原文链接:http://www.trucy.org/blog/archives/eoiae/000087.html GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了 极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非转载 2014-08-07 19:49:01 · 623 阅读 · 0 评论 -
Ubuntu安装Java多版本的新方法
转载自:http://blog.csdn.net/chszs软件环境:Ubuntu 13.04版JDK 7u251) 从Oracle官方下载最新的JDK7,当前的最新版本是7u25版。下载地址为:download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.tar原创 2014-02-03 14:52:56 · 844 阅读 · 0 评论 -
在wireshark里添加新的dissector遇到的问题及解决方法
在wireshark里添加新的dissector遇到了这样的问题,添加了packet-xx.c,在Makefile.common中也添加了Includes,但是编译却不能将添加的函数注册的register.c中去,即使remove掉了register.c也不起作用。后来发现编译过程有下面的warning:make[3]: Entering directory `/root/Perf转载 2013-11-26 17:29:02 · 1240 阅读 · 0 评论 -
Can't get kernel image!
错误信息:NAND read: device 0 offset 0xa0000, size 0x200000 2097152 bytes read: error## Booting kernel from Legacy Image at 72000000 ... Image Name: Linux-2.6.30 Image Type: ARM Linux K原创 2013-12-11 18:28:43 · 3670 阅读 · 0 评论 -
深入浅出之正则表达式
原文:http://dragon.cnblogs.com/archive/2006/05/08/394078.html深入浅出之正则表达式(一)前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把转载 2013-11-16 10:33:06 · 840 阅读 · 0 评论 -
linux下ssh端口修改
Linux操作系统下SSH默认22端口修改方法第1步: 假如要限制通过SSH登陆Linux的IP,那么可以如下做: 先:修改/etc/hosts.deny,在其中加入sshd:ALL,注意不能加#号然后:修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.1.16这样设置就只允许192.168.1.16的原创 2013-09-04 20:15:12 · 708 阅读 · 0 评论 -
Cookie 和 Session机制详解
原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session转载 2016-01-13 15:14:20 · 511 阅读 · 0 评论 -
HTTP协议 状态码详解
转载自:http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.htmlHTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多转载 2014-12-15 17:00:40 · 794 阅读 · 0 评论 -
进程上下文 & 中断上下文
请问进程上下文是什么意思?1.进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。2.同意楼上的,就是很多书本上提到的进程控制块PCB,保存着进程的很多详细信息3.补充(LINUX完全注释中的一段话):当一个进程在执行时,CPU的所有寄存器中的值、进程的状态以及堆栈中转载 2013-12-15 19:47:59 · 676 阅读 · 0 评论 -
Linux 每次启动时钟日期就多了 8 小时
http://www.qudong.com/OS/Linux/2009/0728/43485.html计算机系统有两个时钟,一个是 BIOS,或者CMOS,或者说“硬件时钟”,还有一个就是“系统(操作系统)时钟”, 如果这两个时钟的设置上有问题,或者Linux 的时钟配置文件不正确的话,就会产生系统时钟差 8 小时的问题。 让我们先查看 /etc/sysconfig/c转载 2013-12-15 17:22:30 · 766 阅读 · 0 评论