随笔分类 -  Linux网络编程

摘要:Memcached用了libevent,但是Redis没有用libevent。Redis的代码还没有libevent的三分之一。 libevent有下面几大部分组成: * 事件管理包括各种IO(socket)、定时器、信号等事件,也是libevent应用最广的模块; * 缓存管理是指evbuffer 阅读全文
posted @ 2017-01-15 10:15 blcblc 阅读(516) 评论(1) 推荐(0) 编辑
摘要:之前有一篇文章描述过一些对比: http://www.cnblogs.com/charlesblc/p/6078029.html 这里在代码和应用方面再说一下。 看一下两边的Helloworld基本就了解个大概。 libevent的hello world 上面Libevent最基本的事件驱动器是 e 阅读全文
posted @ 2017-01-15 09:55 blcblc 阅读(2212) 评论(0) 推荐(0) 编辑
摘要:参考这篇文章: http://www.cnblogs.com/mickole/p/3191832.html 《linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式》 一些IO系统调用执行时, 如 read 等待输入期间, 如果收到一个信号,系统将中断read, 转而执行信号处理函数. 阅读全文
posted @ 2017-01-12 13:51 blcblc 阅读(2352) 评论(0) 推荐(0) 编辑
摘要:注意,sleep是会被信号唤醒的。 sleep函数:#include <unistd.h>unsigned int sleep(unsigned int seconds);此函数使调用进程被挂起,直到满足以下条件之一:1)已经过了seconds所指定的墙上时钟时间2)调用进程捕捉到一个信号并从信号处 阅读全文
posted @ 2017-01-12 13:32 blcblc 阅读(3562) 评论(0) 推荐(0) 编辑
摘要:概念太多了,信号,软中断,中断等等。试着做总结。 下面这个里面主要讲了硬件中断: http://www.cnblogs.com/charlesblc/p/6261741.html 下面这个里面主要讲了软中断,硬中断: http://www.cnblogs.com/charlesblc/p/62632 阅读全文
posted @ 2017-01-12 13:24 blcblc 阅读(7033) 评论(0) 推荐(2) 编辑
摘要:上一篇讲了拜占庭将军问题,讲的比较清晰: http://www.cnblogs.com/charlesblc/p/6271472.html 而上一篇也提到了,区块链技术比较好的解决了这个问题,而比特币就是基于区块链的。 先用这一篇科普:http://blog.sina.com.cn/s/blog_6 阅读全文
posted @ 2017-01-11 11:04 blcblc 阅读(6063) 评论(3) 推荐(0) 编辑
摘要:下面这篇文章,感觉讲的非常好: http://www.8btc.com/baizhantingjiangjun 拜占庭将军问题是一个共识问题: 首先由Leslie Lamport与另外两人在1982年提出,被称为The Byzantine Generals Problem或者Byzantine Fa 阅读全文
posted @ 2017-01-11 00:29 blcblc 阅读(14127) 评论(2) 推荐(1) 编辑
摘要:参考这篇文章:http://blog.csdn.net/shuizhilan/article/details/6642040 PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不 阅读全文
posted @ 2017-01-09 01:57 blcblc 阅读(446) 评论(0) 推荐(0) 编辑
摘要:参考这篇 http://blog.csdn.net/pyjfoot/article/details/7989097 ipcs -m -s -q 分别对应集中ipc ipcs -l 显示limits: # ipcs -l Shared Memory Limits max number of segme 阅读全文
posted @ 2017-01-09 01:46 blcblc 阅读(603) 评论(0) 推荐(0) 编辑
摘要:参考 http://www.cnblogs.com/huxiao-tee/p/4660352.html 对linux文件系统不了解的朋友,请参阅我之前写的博文《从内核文件系统看文件读写过程》,我们首先简单的回顾一下常规文件系统操作(调用read/fread等类函数)中,函数的调用过程: 1、进程发起 阅读全文
posted @ 2017-01-09 01:44 blcblc 阅读(17197) 评论(3) 推荐(2) 编辑
摘要:参考 http://www.cnblogs.com/hnrainll/archive/2011/08/17/2142001.html 在Linux中进程退出分为了正常退出和异常退出两种。 1>正常退出 a. 在main()函数中执行return 。 b.调用exit()函数 c.调用_exit()函 阅读全文
posted @ 2017-01-09 01:06 blcblc 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:参考这篇文章 http://blog.chinaunix.net/uid-27761170-id-5050258.html 代码如下: 这段代码将使myfun线程在所有cpu中依次执行一段时间,在我的四核cpu上,执行结果为 : system has 4 processor(s) thread 10 阅读全文
posted @ 2017-01-09 00:50 blcblc 阅读(1789) 评论(0) 推荐(0) 编辑
摘要:参考了这篇文章:http://blog.csdn.net/zhangskd/article/details/21992933 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器(如 8259A)。 如果中断的线是激活的,中断控制器就把电信号发送给 阅读全文
posted @ 2017-01-08 23:32 blcblc 阅读(9056) 评论(0) 推荐(2) 编辑
摘要:参考这篇文章: http://www.cnblogs.com/coding-my-life/p/4782529.html 在linux下,每个进程都有自己的signal mask,这个信号掩码指定哪个信号被阻塞,哪个不会被阻塞,通常用调用sigmask来处理。同时每个进程还有自己的signal ac 阅读全文
posted @ 2017-01-08 23:16 blcblc 阅读(653) 评论(0) 推荐(0) 编辑
摘要:内核信号处理参考: http://www.spongeliu.com/165.html 信号本质上是在软件层次上对中断机制的一种模拟(注意区分中断、异常、信号),其主要有以下几种来源: 目前Linux支持64种信号。信号分为非实时信号(不可靠信号)和实时信号(可靠信号)两种类型,对应于 Linux 阅读全文
posted @ 2017-01-08 23:06 blcblc 阅读(1703) 评论(0) 推荐(0) 编辑
摘要:参考这篇文章: http://blog.chinaunix.net/uid-24599332-id-2122898.html SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情,弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的 阅读全文
posted @ 2017-01-08 21:31 blcblc 阅读(9133) 评论(0) 推荐(2) 编辑
摘要:Linux使用两级保护机制:0级供内核使用,3级供用户程序使用。从图中可以看出,每个进程有各自的私有用户空间(0~3G),这个空间对系统中的其他进程是不可见的。最高的1GB字节虚拟内核空间则为所有进程以及内核所共享。 http://developer.51cto.com/art/201110/299 阅读全文
posted @ 2017-01-08 13:57 blcblc 阅读(3481) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/bakari/p/5520860.html 内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。 系统调用是操作系统的最小功能单位,这些系统调用根据不同的应用场景可以进行扩展和裁剪,现在各种版本的Unix实现都提供了不同数量的 阅读全文
posted @ 2017-01-08 13:57 blcblc 阅读(3531) 评论(0) 推荐(0) 编辑
摘要:参考 http://www.360doc.com/content/13/0817/11/7377734_307777806.shtml 我的理解,这里指的是用户进程的用户态空间和内核空间,也就是那个3G和1G的?当然,也可能指的是socket的发送接收,文件的发送接收等,都需要系统在内核态来实际的写 阅读全文
posted @ 2017-01-08 13:56 blcblc 阅读(1557) 评论(0) 推荐(1) 编辑
摘要:在这五个功能部件中,系统调用是用户程序或操作调用核心所提供的功能的接口;也是分析Linux内核源码几个很好的入口点之一。 http://www.yesky.com/20010813/192117_3.shtml 与系统调用相关的内容主要有:系统调用总控程序,系统调用向量表sys_call_table 阅读全文
posted @ 2017-01-08 13:49 blcblc 阅读(1645) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示