Linux
文章平均质量分 57
macans
止步就是退步
展开
-
sync同步命令
在Linux系统中,为了加快数据的读取速度,默认情况下已经加载到内存的数据不会被写回硬盘,而是先暂存在内存中,这样的话如果一个数据被你重复改写,可以直接从内存中取来,速度上一定提升很多。但是万一系统因某些情况造成不正常关机,由于数据尚未写回硬盘,所以就会造成数据的更新不正常。 这是就需要sync命令来进行数据的写入操作。这个命令最好在系统关机或重启之前多执行几次(虽然目前的shutdown/r原创 2016-11-28 08:53:12 · 1121 阅读 · 0 评论 -
GDB中断原理
gdb的断点是基于信号(signal)实现的在某个地址增加一个断点,实际上就是修改那个地址的代码,把原来的代码替换成INT 3指令,同时让gdb捕获这个signal并做相应的处理:包括执行被替换掉的指令,并跳转回来。因此,只要断点不被走到,那么断点就不会影响程序的运行效率;因为程序的其他地方都没改变,该怎么运行还是怎么运行。gdb在遇到断点之后可以做很多事情转载 2017-08-27 22:02:48 · 1817 阅读 · 0 评论 -
Linux内存管理
本文以32位机器为准,串讲一些内存管理的知识点。 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍转载 2017-07-26 11:01:54 · 760 阅读 · 0 评论 -
Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
转载出处: http://kyang.cc/栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论转载 2017-07-09 21:29:04 · 636 阅读 · 0 评论 -
谈谈Linux下动态库查找路径的问题
本文转载自:http://blog.chinaunix.net/uid-23069658-id-4028681.html学习到了一个阶段之后,就需要不断的总结、沉淀、清零,然后才能继续“上路”。回想起自己当年刚接触Linux时,不管是用源码包编译程序,还是程序运行时出现的和动态库的各种恩恩怨怨,心里那真叫一个难受。那时候脑袋里曾经也犯过嘀咕,为啥Linux不弄成windows那样呢,装个软件那转载 2017-06-29 10:37:20 · 939 阅读 · 0 评论 -
linux内核 RCU数据同步机制详解
简介 RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相转载 2017-05-04 11:47:12 · 705 阅读 · 0 评论 -
互斥锁,信号量,条件变量,临界区
原子操作共享数据(全局变量或堆变量)的自增(++)操作在多线程环境下会出现错误是因为这个操作(一条c语句)被编译为汇编代码后不止一条指令,因此在执行的时候可能执行了一半就被调度系统打断,去执行别的代码。我们把单指令的操作称为原子的(Atomic),因为无论如何,单条指令的执行是不会被打断的。为了避免出错,很多体系结构都提供了一些常用操作的原子指令,例如i386就有一条inc指令可以转载 2017-04-18 11:02:55 · 810 阅读 · 0 评论 -
关于文件描述符
文件描述符在形式上是一个非负整数。内核(kernel)利用文件描述符(file descriptor)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉原创 2017-03-15 22:21:46 · 655 阅读 · 0 评论 -
Linux makefile 教程 --- 跟我一起写 Makefile
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解转载 2017-03-11 10:37:16 · 744 阅读 · 0 评论 -
Linux中gdb 查看core堆栈信息
本文转载自:http://blog.csdn.net/suxinpingtao51/article/details/12072559core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的。调试的话输入: gdb filename corefilename就是产生core文件的可执行文件,croe转载 2017-09-24 21:22:16 · 2273 阅读 · 0 评论