自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (8)
  • 收藏
  • 关注

原创 Huawei EROFS 初探

前言华为作为中国代表性的技术型企业,一直在不断推出自己的技术实现,并努力推广到世界,这一点是非常值得称赞的。从大概上游Linux 4.19左右,邮件列表开始出现一个EROFS的东西,不断有邮件的往来。因为太小众,所以当时没有太留意,只是因为EROFS这个名字和写只读文件系统时返回的错误名字一样,所以就留下了印象,其实都没注意到是华为的人做的。最近华为推出新手机,并宣扬自己为手机系统新写的文件系...

2019-03-28 00:59:11 3150 1

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-01 11:21:42 733

原创 Linux下的fallocate操作

1. fallocate和posixfallocate这货是Linux特有的系统调用,并不符合POSIX标准,为了兼容posix标准的fallocate,glibc专门做了一个posix_fallocate函数,看名字就知道这个函数是对应posix标准实现的。然而它和我们要说的fallocate没有任何关系,虽然它从功能上好像是实现的fallocate的基本功能,但是本质上它们是两回事。fal...

2016-04-01 02:55:24 11242

原创 再议O_DIRECT, O_DIRECT与logical_block_size

之前我们说过一篇关于O_DIRECT的问题,那篇是在编译的时候需要注意的问题,编译之后就要运行,关于DIRECT I/O的使用可能很少有人会关注,特别是在C语言里直接使用。如果不是遍写很底层的I/O代码可能不会用到direct io来做什么操作,大部分也都是用默认的buffer io。前不久我们在测试的时候发现LTP也有使用DIRECT I/O的错误,在某些体系结构上会造成运行错误,当然那个问题已

2014-12-05 15:16:16 2308

原创 由open()的O_DIRECT参数引发的公共标准的问题

公共标准对C语言程序的影响

2014-11-10 18:55:23 3897

原创 mount过程分析之七(do_add_mount)

上面五篇文章简要的略过了mount过程如何进入内核,通过

2014-10-27 23:20:57 4787 1

原创 mount过程分析之六——挂载关系(图解)

写到这里我们已经从mount文件系统调用的入口开始,分析到内核的

2014-10-26 14:20:20 8774 13

原创 mount过程分析之五(mount_bdev->fill_super)

sys_mount - > do_mount -> do_new_mount -> vfs_kern_mount -> mount_fs -> xfs_fs_mount -> mount_bdevmount_bdev是针对块设备挂载时使用的函数,此外还有mount_nodev, mount_single等函数,分别用于不同的挂载情况,这里以mount_bdev为例继续讲解。看一下mount_b

2014-10-15 18:36:47 7856 1

原创 mount过程分析之四(vfs_kern_mount->mount_fs->xfs_fs_mount)

sys_mount - > do_mount -> do_new_mount -> vfs_kern_mountvfs_kern_mount的作用就是准备好一个完整的mount结构,包括个别文件系统的个别信息,以及vfs层的通用信息。vfs_kern_mount(struct file_system_type *type, int flags, const char *name, vo

2014-10-14 18:01:31 6023

原创 mount过程分析之三(do_mount -> do_new_mount)

sys_mount - > do_mountdo_mount函数也在namespace.c里可以找到,如下:long do_mount(const char *dev_name, const char *dir_name,                const char *type_page, unsigned long flags, void *data_page)

2014-10-13 18:40:45 5415

原创 mount过程分析之二——mount系统调用

= 引文 =上文中我们说到了file_system_type,以及一个文件系统是如何在内核中注册产生的。但是注册了一个文件系统并不代表这个文件系统被使用了,就像你注册了CSDN帐号但是你不登陆就没有使用它。同理,你不挂载文件系统,这个文件系统在内核中就以一个file_system_type的形式存在,仅仅是存在这么一个type,并没有构建到全局文件系统树中。回忆一下,注册file_sy

2014-10-11 22:41:05 9316

原创 mount过程分析之一(基于3.16.3内核)

file_system_type数据结构研究linux fs的入手点应该是哪呢?可能仁者见仁,智者见智。我一直以来也都是零零散散的翻阅着有关super block, inode, dentry, file等等内容的各种代码和资料,但是知识始终是散乱的,无法拼凑成完整的体系。现在我要试图整理顺一个整套的文件系统知识,我决定从file_system_type入手。本文是要尽力将我已经掌握的

2014-10-10 16:13:09 5915

原创 Guake terminal with mlti-monitors

一直使用Guake终端,感觉蛮好用的,快速的切入切出感觉很爽。但是由于我在工作室的时候会使用很多显示器,多屏令guake表现不尽如我意。我不能随意的把guake终端放到我正在操作的屏幕上使用。针对这个问题,有一次我和同事说起,他说能够给我一个patch让我在多显示器下切换使用guake,那个patch如下:--- /usr/bin/guake.bak 2013-05-27 14

2014-10-10 15:12:08 995

原创 要命的编译警告——指针参数类型混乱

前两天在写程序的过程中发现一个问题,编译后运行结果总是不对,修改了很多回算法都不对。由于整个项目代码过长,所以抽出出错的模型重新写一个简单的易于表述的程序,如下: 1#include 2

2014-10-10 15:09:38 1151 2

原创 谁执行了我的main函数

接着说“调用”,前面我们提到了一点系统调用,又略微详细的说了一下函数调用,现在接着说一下程序调用,应该说是执行一个可执行程序。前面的几篇文章都在围绕着函数调用栈来说,从main函数开始到每个函数的调用和返回,那么在main函数之前和main函数之后,也就是开始执行程序的main函数之前以及main函数返回后又有什么样的动作呢?当我们在终端输入一个可执行文件的路径名时,如:lin

2014-10-10 15:07:33 1640

原创 写一个能输出自己的c程序

今天晚上和一个大一的孩子讨论C语言的问题,闲来无事又看到这个孩子很好学,就出了一个很经典的问题给她:写一个程序输出程序代码本身(不能把源程序open之后输出出来)。对于很多C语言的牛人来说这种问题简直就是糊弄小孩的,好吧,我这个题就是出给小孩纸的;) 在等她解答的过程中我也自己尝试的写了一个程序print_myself.c:#include int main(){

2014-10-10 15:07:23 1467

原创 递归函数的堆栈操作

前文我们介绍了函数调用和返回的过程,下面我们以递归为例进一步看一下函数调用的堆栈操作。我们就先用C语言写一个阶乘的简单递归程序factorial.c:          1#include  2  3int factorial(int a){ 4        int ret; 5        if (a > 1){ 6                re

2014-10-10 15:02:35 1648

原创 简单函数的返回

上文http://1386160874.spaces.eepw.com.cn/articles/article/item/101726我们说到了函数调用,有调用就要有返回,下面我们说函数的返回。首先为了方便先把代码粘贴到这里: 1#include

2014-10-10 14:54:14 1031

原创 如何调用linux系统调用

所谓调用就是让另一个子模块或子系统帮助自己干一些事,然后再返回回来。在我们的口头语中常常用“调XXXX”,这个“调”字被应用的范围太广了,执行一个API函数时我们会说调XXX,执行一个系统调用时我们也会说调XXX,甚至执行一个可执行文件时我们也会说调XXX……        实际上仅就上述三种“调”来说,完全就是不同的三个概念。先说一下函数调用:        函数调用最常见,函数

2014-10-10 14:50:11 1035

原创 简单函数的调用原理

上文我们提到了系统调用,现在说一下函数调用。函数调用应该是一个编程者除了写if...else以外最常写的东西了,记得多年前我第一次写一个C语言函数的时候还觉得很神奇。我们的程序不能只有一个代码段,那么做将使得程序很难协同开发和维护,将程序分割为部分进行封装,每一部分都定义良好的接口,这是非常重要的,我一直觉得封装和接口是人类进步的基本方式。好吧,这里我们不讨论封装和接口,我们讨论函数是怎么调用和返

2014-10-10 14:49:18 4884

原创 AT&T汇编语言及其寻址方式简述

汇编语言早已脱离了主流编程语言的行列,可以说现在基本上没有人想用它来完成什么大的项目,但是作为一个程序员懂得汇编语言是一种修养一种底蕴。看不懂汇编的程序员就像不会画鸡蛋的达芬奇,像不会写楷书的王羲之,像不懂TCP/IP的黑客……本文为后文做铺垫,适合已经有一点汇编基础的人快速浏览阅读,如果没有这个基础请自行学习。汇编语言论风格来分主要是两类,一类是Intel汇编,一类是AT&T汇编,分

2014-10-10 14:48:28 7060 2

原创 利用开源更好的学习

本文我写在了EEPW的博客上,为了更好的分享,现也同步到这个博客里:http://1386160874.spaces.eepw.com.cn/articles/article/item/100869今天看见一个FreeBSD邮件列表上很早的一封邮件,http://lists.freebsd.org/pipermail/freebsd-current/2010-August/

2013-12-09 10:18:59 1448 2

原创 剖析C语言中a=a+++++a的无聊问题

本文本来属原创,但原文我写在EEPW博客里了http://1386160874.spaces.eepw.com.cn/articles/article/item/100850,所以同时也转载在这里。 今天中午在QQ群里和同僚们闲聊,突然就聊到了a+++++a的问题。这种纯属C语言 “二” 级的问题应该是从a+++a引申出来的吧。于是乎兄弟姐妹们开始讨论它的运算结果,以及改如何理解。更有人写

2013-12-05 20:43:31 1914 1

原创 char *pname和char name[]的区别

昨天在为glusterfs写一个test case的时候遇到了一个问题,使得以为很简单的问题多耽误了五分钟。最后使用gdb定位问题后才发现自己犯了一个很愚蠢的错误。好了,我们来看一下问题是什么吧。首先程序开始时我使用main函数的argv作为我需要的参数,让测试参数从外部传入。后来我觉得其中一个参数可以固定写在程序里,不需要每次都从外部传入。于是我就做了类似这样的修改(不是原修改,只是

2013-12-04 15:36:32 2873

原创 在Linux下简单编写、编译并执行一个C语言程序

本文面向第一次在linux尝试写C语言程序的新人。有经验的请绕行。C语言用法不是本文介绍的关键,本文只是引入如何第一次在linux系统下编写、编译和执行一个简单的c程序。学会后请自行深入。= 前提基础 =Linux系统的路径写法有两种,一种是相对路径一种是绝对路径。绝对路径都是以“/”开头的,比如/usr/bin/vi或者/home/zorro/,代表从根目录"

2013-12-02 23:58:47 60387 10

原创 傻瓜式安装Fedora-19

本文目的在于让没有用过linux系统的人在零基础的情况下最简化安装一个Fedora-19系统。如果你想安装在实体机的空硬盘(这里注意,如果你不会安装请不要贸然使用整个电脑的硬盘,否则将很有可能造成硬盘数据严重丢失。)可以跳过虚拟机安装部分。如果你想在虚拟机下尝试使用和安装,则请先看第一部分的虚拟机安装。Fedora-19的镜像地址:x86_64平台,Gnome桌面定

2013-12-02 17:39:39 2695

原创 解决fedora的cscope默认使用了vi(同时设置emacs为用户默认编辑器)

问题说明:我以前是使用debian系统的,最近新安装了Fedora-19系统,发现cscope默认不使用vim而使用vi,但是系统确实是默认使用vim的。所以想把cscope的默认编辑器问题解决了,或者干脆改成让用户默认使用emacs。if 不想看原因分析,then       可以跳过“原因分析”一段。else if 喜欢使用vim,then      直接看“默认使

2013-11-29 16:46:13 1839

原创 浅谈习惯使用less命令的重要性,让less命令“丰富多彩”

首先声明这不是一篇讲GNU的less命令使用技巧的文章,当然最后会有一点关于改进使用的内容。我一直很常用less命令,我周围的同事在查看系统的文档时都是习惯用vi直接打开查看,我非常反对这种做法。何为系统安全,防止外界入侵是一方面,防止自己破坏系统也是关键之一。有很多人喜欢直接使用root用户操作,或者喜欢把自己的用户权限最大化,美其名曰“操作方便,节省时间”,确实是省去了考虑操作权限的问题,但是

2013-01-23 14:44:13 1816

原创 debian squeeze安装Broadcom网卡驱动全程

我的笔记本的三星的Q430JU02,安装debian squeeze系统挺久了,由于本人平日很少使用无线网,所以一直没有让无线网卡工作。今天由于有线网网口紧张,所以被迫想办法启动了无线网卡,整个过程从驱动安装到配置到最后连接成功。下面说一下简单的流程,如果你是我说的系统和硬件,那么按照这个流程一步步走下来基本就可以让你的无线网卡工作了(如果有蓝牙估计也会工作)。硬件环境:三星Q43

2012-11-29 14:38:58 2400

原创 使用kgdb调试内核之模块调试

昨天搭建的kgdb调试环境,今天面临的第一个问题就是调试我的模块。调试内核根据上一篇文章的介绍已经够了http://blog.csdn.net/zr_lang/article/details/8107015,但是调试模块还需要一些额外的工作。下面针对用kgdb调试内核模块的问题的重点部分简要说明一下。首先,有一个小技巧先说明一下,那就是如果你想在gdb没有进入断点的情况下从目标机运行中将主动权

2012-10-26 12:46:08 2675

原创 使用vistualbox建立kgdb调试环境

好吧,我不得不承认没有一种调试技术是万能呢,昨天刚说了UML调试linux内核,今天就又要用kgdb调试了……kgdb吧,是linux内核的私生子,他被linux内核细心的呵护和照顾着,用kgdb调试内核确实是比较主流的一种做法。既然是主流,你可以不喜欢,但你不能不了解(你得先了解主流,才能说你是喜欢主流还是非主流吧)。借着今天帮BOSS搭建kgdb调试环境之际,将方法记录下来,以备后用,并分享与

2012-10-24 19:05:11 2138 1

原创 建立UML(user mode linux)的linux内核调试环境

其实调试内核我最喜欢的还是print,因为它很灵活,这基本上是一个万能的东西,但是print总是需要自己去找对位置然后写上合适的print语句,有时还要为print一个东西而作很多准备工作。如果很复杂的时候可能要在很多点放置print,然后重新编译一遍,再跑一遍再看,如果不行还要再重新写,这就是print的局限性(但我还是乐此不疲)。由于print的缺点我们会去寻求其它的调试内核的手段,下面要说的

2012-10-23 17:32:52 5278 3

Applied Cryptography(应用密码学)

从事信息安全人员必看的修身书籍 世界级大师力作

2010-11-19

CCD传感器相关资料

包括的内容涉及: 1、电视同步信号的优化综合 2、基于PCI总线的1_1方式图像采集卡硬件设计 3、视频实时图像处理系统研究及设计 4、视频同步分离芯片LM1881及其应用 5、视频图像采集系统的设计与实现 6、视频选行触发器设计 7、图像数字化加扰系统中采样信号产生电路 适合于做CCD项目开发的人,或者做飞思卡尔智能车比赛的学生参考

2009-07-10

ATmegal16完整技术资料(中文版)

AVR的megal系列单片机的学习参考技术手册,比一般的介绍AVR的书籍要全面。共330页PDF格式文本文件

2009-06-20

Windows API参考大全

windows API函数的查找学习CHM文档。对于想学习VC,windows编程的人来说很有帮助。查找非常方便,便于学习和工作使用。

2009-06-20

c与c++嵌入式系统编程

嵌入式系统开发的基础,一本简单易懂又实用的教材

2009-04-03

java编程思想第四版习题及解答

java编程思想第四版刚刚出版,还没有中文版,只有英文版,学习英语有一定好处。现提供其配套的第四版习题和解答。各个章节分文件夹分类,希望对你阅读此书更有所帮助,习题都非常经典

2009-03-22

12864液晶显示器资料

12864液晶显示器的使用资料,需要使用12864的朋友必备的资料

2009-02-01

1602液晶显示器资料

1602液晶显示器在单片机中的应用资料,指导书。需要使用1602的朋友必备的资料

2009-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除