![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 78
Simple-Soft
VC 调试入门与提高
https://edu.csdn.net/course/detail/28915
Python PHP Windows Linux 内核 云计算
展开
-
/bin/bash^M: bad interpreter
一种简单的方式是使用vi打开文件,然后执行:set ff=unix然后保存即可原创 2020-07-15 21:09:46 · 106 阅读 · 0 评论 -
使用VC++远程调试Linux程序
为什么要用VC++来调试Linux程序Linux下面的gdb也很好用,说真的,缺点是在调试大型程序的时候不太方便,比如来回的切换线程,查看堆栈等等,总是没有那么直观,但是VC就好一些,毕竟是GUI界面,线程切换,堆栈查看等等,要方便很多,再比如查看内存值,函数参数等等,VC的图像界面就要占一些优势,话不多说,开启调试Linux程序之旅。更详细的描述,可以参考https://edu.csdn.net/course/detail/28915远程调试Linux程序准备工作Linux上.原创 2020-05-18 10:42:53 · 663 阅读 · 2 评论 -
Linux kmap和kmap_atomic解析
名为解析,名不符实,简单记录一下。kmap函数将分配到的高端内存映射到永久内存映射区域.。kmap函数不能用于中断处理程序, 因为它可能进入睡眠状态。上面内容引用自https://blog.csdn.net/gatieme/article/details/52705178kmap_atomic用于高端内存映射,用于紧急的,短时间的映射,它没有使用任何锁,完全靠一个数学公式来避免...原创 2018-08-28 10:05:35 · 4538 阅读 · 0 评论 -
Linux 如何获取PAGE size的大小?
在Linux中,可以通过命令getconf PAGESIZE 或者 getconf PAGE_SIZE来获得系统的PAGE size大小。在内核中,有一个宏PAGE_SIZE,可以直接是用这个宏来获得PAGE SIZE的大小。在应用层,可以使用getpagesize()来获得 ...原创 2018-08-28 11:02:08 · 17421 阅读 · 1 评论 -
BIO bi_sector submit_bio make_request_fn
BIO结构中有一个很重要的字段叫做bi_sector,在高版本中这个字段已经叫bi_iter.bi_sector了,这个不是重点,重点是下面要说的。当读写一个block device的时候,会提交一个bio数据结构给make_request_fn,那么这个bio结构中的bi_sector到底表示什么意思呢?在bio.h中有这么一行注释sector_t bi_sector;...原创 2018-08-31 10:54:43 · 1614 阅读 · 0 评论 -
Linux dmesg显示可读时间方式
直接用dmesg显示系统信息,很难看[95721.670025] snapshot device recevied [read] io request, access on dev sector[272], length is [240] sectors.[95721.670363] device is closed[95721.693207] device is closed显示的时间...原创 2018-08-31 18:02:58 · 41200 阅读 · 1 评论 -
如何统统扩充loop设备的size(linux loop resize2fs)
我们知道,在Linux系统中,可以使用一个文件作为一个磁盘,并且可以对这个文件进行格式化,mount等操作,就完全像一个真正的磁盘一样。下面来使用一个文件制作loop设备,并且mount起来,在其空间不够的时候在进行online扩展空间。步骤:1.创建一个文件,大小为2G。dd if=/dev/zero of=loop.dat bs=1M count=20482.对loop.d...原创 2018-10-06 16:55:27 · 3402 阅读 · 0 评论 -
数据备份,数据保护中的稳定点(in-consistent, crash-consistent, application-consistent)
什么是数据保护的稳定点?比如平时我们用copy命令或者在资源管理器中进行文件拷贝,如果拷贝的文件是正在变化修改的,那么我们拷贝出来的文件就是一个不稳定的状态,可以称之为in-consistent。为什么说是不稳定的呢?比如说我们要拷贝一个目录下的所有文件,假设这些文件都在被改变,那么我们用copy命令拷贝出来的这些文件的时间戳会是不一样的,copy命令只管拷贝。那么怎样才能做到一个稳定点呢...原创 2018-10-23 10:28:16 · 964 阅读 · 0 评论 -
ubuntu如何升级?
just do it:do-release-upgrade原创 2018-11-09 16:07:42 · 467 阅读 · 0 评论 -
那些年,程序员读错的英语
那些年,中国IT工程师读错的英语 Top 10 错误读音 正确读音 错误流行度 putty [ˈpuːti] [ˈpʌti] ★★★★★ ubuntu [juː'bʊntʊ] [ʊ'bʊntʊ] ★★★★★ git [dʒɪt] [ɡɪt] ★★★★★ height [h...原创 2018-11-09 17:28:17 · 184 阅读 · 0 评论 -
Linux error number
errno.00 is: Successerrno.01 is: Operation not permittederrno.02 is: No such file or directoryerrno.03 is: No such processerrno.04 is: Interrupted system callerrno.05 is: Input/output errorerrno...原创 2019-01-08 14:16:08 · 1508 阅读 · 0 评论 -
Ubuntu迁移/boot卷
默认/boot卷总是不是太大,总是有很多理由需要/boot卷很大,说重点,如何在不重新装机的情况下迁移到另外一个空间很大的卷上。步骤:(亲测有效)假设有一个卷/dev/sdc1,并且空间足够1.拷贝/boot里面的所有东西到一个临时目录,比如叫/tmp/boot2.umount /boot3.mount /dev/sdc1 /boot4.拷贝/tmp/boot里面的所有文件...原创 2019-04-05 19:11:16 · 965 阅读 · 1 评论 -
转载:谢谢原作者:块设备驱动实战基础篇四 (逐渐成型,加入ioctl通信机制)
1.6介绍一种内核与用户空间通信的方法-misc设备ioctl机制块设备驱动开发中往往需要配合用户态的管理程序工具,管理我们的块设备,此时我们需要涉及用户空间程序与块设备通信的方法,ioctl机制就是接下来需要学习和实战的,通过ioctl机制,用户态负责发送各种命令给内核驱动;内核态接收用户态发送的命令,并根据命令执行相应的动作,如下图所示。 ioctl提供用户态程序使用内核态函数...转载 2018-08-23 10:23:02 · 139 阅读 · 0 评论 -
转载:谢谢原作者:块设备驱动实战基础篇三 (BIO请求回调机制)
1.5 块设备请求返回处理回调机制 本节我们继续完善1.4节中的代码,在上节我们完成了请求的过滤转发,那么请求被磁盘处理完成后返回回来的路径处理是怎样的,本节我们继续带着这样的问题再一次完善我们的驱动程序,通过本节的学习,我们能够真正掌握请求处理,转发过滤,请求完成后回调处理机制的完整学习。 先给出完善后的IO架构图,我们对比一下1.4节最后给出的图有何区别: 相比1.4节...转载 2018-08-23 10:22:06 · 520 阅读 · 0 评论 -
转载:谢谢原作者: 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行)
1.3块设备驱动关键数据结构及函数API详细剖析经过上节四个步骤我们已经熟悉并实战了一个最基本的过滤块设备驱动的设计技巧,我们这一节先不继续实战,我们本节把上节170行代码中接触到的块设备核心数据结构和API接口剖析一下,把这部分掌握和理解一下。 我们把上节涉及的六个数据结构和相关API接口罗列一下: 块设备核心数据结构 gendisk 块设备仓库...转载 2018-08-23 10:21:15 · 161 阅读 · 0 评论 -
用gdb调试core dump文件
用gdb调试core dump文件原创 2014-11-13 14:09:15 · 2618 阅读 · 0 评论 -
Linux Daemon Writing HOWTO
原文地址:http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html转载 2014-11-12 17:30:15 · 587 阅读 · 0 评论 -
在Linux下编写Daemon
原文地址:http://www.cnblogs.com/itech/archive/2011/01/17/1937447.html在Linux下编写Daemon 转自:http://blog.163.com/prevBlogPerma.do?host=manyhappy163&srl=1644768312010718111142260&mode=prev 在Linux(转载 2014-11-13 11:09:46 · 447 阅读 · 0 评论 -
LINUX防火墙打开与关闭
原文地址:http://my.oschina.net/u/217959/blog/38051(1) 重启后永久性生效:开启:chkconfig iptables on关闭:chkconfig iptables off(2) 即时生效,重启后失效:开启:service iptables start关闭:service iptable转载 2014-11-13 16:09:24 · 539 阅读 · 0 评论 -
Linux makefile中的= := ?=操作符
Linux Makefile = := ?=原创 2014-11-16 14:47:48 · 1295 阅读 · 0 评论 -
Linux中find常见用法示例
LinuxFind用法原创 2014-11-15 21:55:47 · 613 阅读 · 0 评论 -
改变vim注释的颜色
改变vim注释的颜色原创 2014-11-26 21:18:22 · 1180 阅读 · 0 评论 -
[Linux]搜索文件是否包含指定内容并返回文件名
[Linux]搜索文件是否包含指定内容并返回文件名原创 2014-11-24 22:43:26 · 6367 阅读 · 0 评论 -
关于BIO结构分析
struct bio { sector_t bi_sector; /* 本次IO操作的其实扇区,扇区都是512字节大小 */ struct bio *bi_next; /* 用于链接处于同一个request中的BIO */ struct block_device *bi_bdev; /* 该bio所请求的块...原创 2018-08-11 14:27:51 · 4595 阅读 · 0 评论 -
Linux GCC lib库相互引用,互相依赖(交叉引用)链接解决办法
Linux GCC中,如果lib a依赖b,b又依赖a,链接的时候无论a放在前,还是b放在前,都会提示unrefrence。解决办法就是:链接的时候a链接两次,即: -la -lb -la...原创 2018-08-08 10:33:45 · 4365 阅读 · 0 评论 -
Linux kernel filp_open解析
/** * filp_open - open file and return file pointer * * @filename: path to open * @flags: open flags as per the open(2) second argument * @mode: mode for the new file if O_CREAT is set, ...原创 2018-08-26 18:18:48 · 8662 阅读 · 0 评论 -
Linux kernel block device 的 submit_bio 都做了什么?
先看看原型申明:void submit_bio(int rw, struct bio *bio)其中rw 代表是读还是写bio 描述这个I/O的结构最后submit_bio调用generic_make_request(bio);去完成真正的IO请求。需要注意一点的是,bio结构里面有一个很重要的字段struct block_device *bi_bdev;这个...原创 2018-08-23 10:09:30 · 1742 阅读 · 0 评论 -
转载:谢谢原作者:块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)
1 内核块设备驱动基础学习与实战1.1 设备驱动IO架构初探 操作系统是如何将数据读到缓冲区的,发生了什么?我们带着这样的问题,粗略走一下read调用系统过程,希望这个初探,可以唤起大家研究操作系统内核的好奇心和兴趣,并以此为例,让我们先初步对请求在过滤块设备驱动中的处理过程有个大概印象和了解。 块设备在整个Linux中应用的总体结构图如下: 从上图可以看出,块...转载 2018-08-23 10:19:55 · 170 阅读 · 0 评论 -
GDB中应该知道的几个调试方法
七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几转载 2014-11-13 13:32:18 · 375 阅读 · 0 评论