zyfforlinux

专注linux内核,系统编程,C++服务器端编程,golang ,python/bash脚本编程,DevOps,分布式...

排序:
默认
按更新时间
按访问量

关于文件写入的原子性讨论

​   文件的写入是否是原子的?多个线程写入同一个文件是否会写错乱?多个进程写入同一个文件是否会写错乱?想必这些问题多多少少会对我们产生一定的困扰,即使知道结果,很多时候也很难将这其中的原理清晰的表达给提问者,侯捷曾说过,源码面前,了无秘密,那么本文也希望从源代码的角度分析上述问题。在开始之前我们...

2017-08-04 09:19:55

阅读数:655

评论数:2

Linux内核原理-pid namespace

前言这几晚在看进程相关的内核原理,正好看到了pid这块,看起来不是很复杂,但是引入了pid namespace后增加了一些数据结构,看起来不是那么清晰了,参考了Linux内核架构这本书,看完后感觉还没有理解。所以就在网上找了一些文章参考,其中我发现了一篇质量相当不错的文章,为什么说质量不错呢主要是...

2015-11-19 13:31:30

阅读数:3097

评论数:6

Linux内核模块编程-系统调用拦截

系统调用拦截本文实验基于Centos6.5 内核版本2.6.32-431.el6.x86_64,系统调用拦截的目的其实就是把系统真正要执行的系统调用替换为我们自己写的内核函数。系统调用拦截的实现那么如何去实现系统调用拦截呢,通过学习系统调用的内核实现我们发现其实系统调用的地址是放在sys_call...

2015-11-16 22:15:48

阅读数:1537

评论数:0

Linux内核模块编程-与设备文件对话

与设备文件对话在上一篇博文中,我们编写了一个字符设备驱动,简单的回顾下我们编写的流程: 实现open/close/read/write四个操作设备文件的函数 填充file_operations结构体 注册设备和指明操作设备的file_operations 与设备之间可以通过上面提到的几个函数来进行...

2015-11-15 16:39:41

阅读数:708

评论数:0

Linux内核模块编程-proc文件系统进阶

proc作为输入关于proc的一些基本概念和基本使用以及一些核心数据结构可以参考我的上一篇文章 在上一篇文章中提到了利用proc作为内核空间传递数据给用户空间的一种方式,那么proc能否作为用户空间传递数据给内核空间的一种手法呢?答案当然是可以的,熟悉linux的读者应该都知道我们不光光可以读取...

2015-11-14 11:04:00

阅读数:1414

评论数:2

内联汇编基础学习

内联汇编简介在Linux内核代码中有一部分是使用汇编语言编写的,尤其是与特定体系结构相关的代码和一些对性能影响很大的代码都是使用汇编语言进行编写的,那么GCC为了可以在C语言中来编写汇编代码,提供了内联汇编的功能,可以在C代码中直接内嵌汇编语言,大大方便了程序设计。内核汇编基本语法 __asm__...

2015-11-11 23:18:52

阅读数:1138

评论数:0

Linux内核模块编程-proc文件系统

什么是procproc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系...

2015-11-11 22:49:10

阅读数:1809

评论数:0

Linux内核原理-进程入门

进程进程是处于执行期的程序,进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段等。线程是进程中活动的对象,每个线程都拥有一个独立的程序计数器,进程炸,和一组进程寄存器。内核调度的对...

2015-11-07 22:14:01

阅读数:837

评论数:0

Linux内核模块编程-字符设备驱动

设备驱动简介设备被大概的分为两类: 字符设备和块设备。 字符设备 提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。 块设备 应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘...

2015-11-07 17:30:34

阅读数:1282

评论数:1

Linux内核模块编程-HelloWorld

HelloWorld内核开始断断续续学习内核,大概半年了,多少开始对内核有点感悟了,但是对于这个庞然大物我显得很渺小,在枯燥的内核源码之中似乎没有一点点成功的喜悦,因此我选择学习内核模块编程,通过编写一些内核模块来体验那一点点小小的成就感吧!什么是内核模块内核模块是具有独立功能的程序。它可以被单独...

2015-11-07 17:00:56

阅读数:3678

评论数:0

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