月度归档:十二月 2013

从一个非典型的内存越界访问问题看Linux的进程内存布局

这篇文章想以一个内存越界问题分析过程来说明进程的内存布局。问题有点巧合,程序刚好没有出现segment fault,而是继续在运行,却出现了很诡异的结果。

实例说明:编写一个对Linux消息队列的测试程序,同时提供收发程序,接收程序使用NOWAIT的方式来接收,发送端每隔一段时间发送一个消息。接收端和发送端都作一个操作次数统计,接收端的读取间隔时间设置较短,因此存在消息队列为空的情况,在此情况下,只做计数,休眠较短时间后继续下一次读取。

测试出问题程序的代码如下:

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.83- 6票) Loading ... Loading ... | 归档目录:C/C++, 语言基础 | 标签: , , , , , , , |

精选85条Linux系统管理员知识点

不错的知识总结,内容涵盖磁盘、文件系统及网络管理常用命令。花十分钟浏览一下即可获取全方位Linux基础知识。说不定什么时候就用上了呢?(内容来自网络)

1.在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 inode 来标识。
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 inode表块 和数据存储块

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 3票) Loading ... Loading ... | 归档目录:实用脚本, 软件技术 | 标签: , |

[转] 一句话总结GoF 23种设计模式

以GoF的经典教材为例,一句话总结个人的理解。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 2票) Loading ... Loading ... | 归档目录:语言基础, 软件技术 | 标签: , , , , , , , , , |

Openstack Swift简介

背景与概览

Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献给 OpenStack 开源社区作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务。Swift 构筑在比较便宜的标准硬件存储基础设施之上,无需采用 RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。

此项目是基于 Python 开发的,采用 Apache 2.0 许可协议,可用来开发商用系统。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 7票) Loading ... Loading ... | 归档目录:Swift, 云计算/云存储, 存储技术 | 标签: , , , |

基于C语言的hash table实现进程内缓存

最近遇到一个问题需要做本地缓存,首先想到就是hash表。如果是java,太easy了。C语言就是需要不停的造轮子,实在不想写这个面试题样的东西了,求助于万能的Google了。找到一个不错的hashtable开源实现:http://troydhanson.github.io/uthash/,BSD的许可,赞。也找到了一篇文章介绍详细的用法:http://blog.csdn.net/hongqun/article/details/6103275

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 8票) Loading ... Loading ... | 归档目录:C/C++, 算法数据结构, 语言基础 | 标签: , , |
返回顶部