自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Sublime Text 3 配置笔记

安装安装插件管理器import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.Pro

2016-06-27 10:46:24 140

原创 约瑟夫问题分析

问题描述今天我们来学习两种更高效的算法,一种是递推,另一种也是递推。第一种递推的公式为:令f[n]表示当有n个候选人时,最后当选者的编号。f[1] = 0f[n] = (f[n - 1] + K) mod n接下来我们用数学归纳法来证明这个递推公式的正确性:(1) f[1] = 0显然当只有1个候选人时,该候选人就是当选者,并且他的编号为0。(2) f[n] = (f

2016-04-22 22:47:19 187

原创 自旋锁,信号量,互斥锁比较

内核同步措施(用于linux内核)http://blog.163.com/hbu_lijian/blog/static/126129153201261722410353/为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。Linux使用的同步机制可以说从2.0到2.6以来不断发展完善。

2016-03-25 16:37:11 195

原创 Linux、C/C++重要资料搜集

本科时期受一些思想的影响,忽视了理论的深度和广度,一味追求项目实践,跟着老师做了不少项目,却忽视了基本功的修行,后面越来越受限制。本文列举了一些不断学习过程中遇到的重要的资料,对编程开发的广度和深度都非常有帮助,值得反复研读,记录下来方便以后查找,也用来分享。

2016-02-28 16:14:40 563

原创 gdb调试问题记录

记录一下gdb调试程序过程中遇到的一些问题,方便以后查找。1. cannot exec file

2016-02-28 12:45:48 912

原创 gdb查看代码 - gdb调试笔记

http://blog.csdn.net/hejinjing_tom_com/article/details/26704487观察. 用disasseble./m 源码和汇编一起排列 /r 还可以看到16进制代码(gdb) disassemble /m mainEnd of assembler dump.用 x/i 可以查看指令(gdb) x/15i main

2016-02-28 01:57:51 1098

原创 inline内联函数抽丝剥茧

不能使用inline的情况当一个函数使用递归方法时,就不能使用inline,原因很简单,递归的函数在编译时,不可能确定其递归次数,否则我们也没必要使用递归调用了。而inline展开函数时,要求展开的结果必须是明确的!这一点非常重要,因为编译产生的结果是明确的。不适合使用inline函数的几种情况下面有几种情况之前有同事跟我争论说这么用就是错的,但是在我看来,这么说过于偏激,说不合适更准

2016-02-25 15:38:19 124

原创 ARM架构下Linux进程切换 - Linux进程调度

本文主要记录S3C6410/ARM1176JZF-S架构下Linux(kernel 2.6.35)内核如何进行进程切换。 http://www.2ndmoon.net/weblog/?p=585进程切换是操作系统进程调度的基础,首先要能够实现切换,接下来才谈得上“多进程”、“多线程”以及调度算法等更高级的话题。(这里在说“进程切换”的时候提到多线程,并不是把概念搞混淆了。在内核里谈切换的时候

2016-02-13 23:59:31 359

原创 Ubuntu环境下调试android手机

android adb devices offline的解决办法 http://www.linuxidc.com/Linux/2013-04/83052.htm

2016-02-04 22:39:56 148

原创 Ubuntu环境配置笔记

安装主题推荐主题 http://www.linuxidc.com/Linux/2015-02/113496.htmhttp://www.linux.org/threads/nitrux-os.7742/ mac os主题 http://news.mydrivers.com/1/314/314462.htm

2016-02-03 23:45:12 80

原创 查看Linux系统内核编译选项

查看Linux内核编译配置有时候我们需要查看Linux系统的内核是否在编译的时候的编译选项,从而确定某个模块是否已经加入到内核以及参数设置等等。方法有两种:# zcat /proc/config.gz# cat /boot/config-$(uname -r)

2016-01-28 21:28:03 10207

原创 X86函数调用栈结构

函数调用栈结构总览http://www.360doc.com/content/15/0105/11/982782_438311997.shtml 图1 x86处理器函数调用栈典型结构栈的生长方式所有人都知道栈是从髙地址往低地址方向生长的,一个进程每产生一次函数调用就会相应的为被调用的函数生成栈空间。这个栈空间中包含刚开始跟同学讨论这个问题的时候陷入了一个误区,栈是从髙地址

2016-01-20 23:01:56 633

原创 Linux proc文件创建 - Linux内核笔记

http://blog.csdn.net/orzlzro/article/details/6343404利用proc_mkdir()创建一个mydir,再利用create_proc_read_entry()函数创建一个processinfo文件。我们从模块里面获取的信息都将写入到processinfo文件中。有几个地方不太明白的地方: 1.proc_read_processinfo(ch

2016-01-16 17:10:36 436

原创 Linux内核空间与用户空间数据交互

数据交互 http://blog.csdn.net/bingqingsuimeng/article/details/7924756linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。  Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G

2016-01-16 17:07:43 760

原创 Linux OverCommit分析 - Linux内存管理

OverCommit简介是OverCommit策略Linux下的OverCommit机制,主要是为了应对可能的异常的大量内存申请对OS本身造成冲击。Linux有三种OverCommit机制,可以通过:/proc/sys/vm/overcommit_memory来配置,三种配置的具体含义: 0:启发式策略,后果比较严重的Overcommit将不能成功,而轻微的Overcom

2016-01-10 11:18:31 905

原创 Linux容器技术之namespace

Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于某个特定的Namespace。每个namespace下的资源对于其他namespace下的资源都是透明,不可见的。因此在操作系统层面上看,就会出现多个相同pid的进程。系统中可以同时存在两个进程号为0,1,2的进程,由于属于不同的namespace,所以它们之间并不冲突。而在用

2016-01-01 18:26:44 374

原创 Linux下OOM机制深入解析 - Linux内存管理

尽管Linux使用虚拟内存和swap如何巧妙的管理内存,Linux设备可用的物理内存终归是有限的,在手机这样的内存容易吃紧的设备上很常见。当内核无法分配足够的物理内存给进程使用,但是这个进程有比较重要,急需使用内存,这时候Linux内核采用了一种更加主动,但是有些激进的方式来解决,那就是OOM。OOM是什么?保护进程不被 OOM killer 杀掉很容易联想到一个问题,怎么保护一个

2016-01-01 10:59:16 282

转载 gdb打印内存数据

用gdb查看内存 格式: x /nfu参数说明:x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, 可取如下值 x 按十六进制格式显示变量。 d 按十进制格式显示变量。 u 按十进制格式显示无符号整型。 o 按八进制格式显示变量。 t 按二进制格式显示变量。 a 按十六进制格式显示变量。 i 指令地址格式 c 按字符格式显示变量。 f 按

2015-12-30 21:56:55 19638

原创 从类的内存结构看C++继承

本人对C++一直没什么了解,有几次开发用到C++也都没有研究很深,后来跟朋友谈论集成,发现一旦深入内存,类、集成、虚表什么的就变的很美,于是想写下这篇博客记录探究的过程,本文可能有些地方出现错误欢迎大家提出。

2015-12-29 23:46:17 120

原创 从类的内存结构看C++继承

本人对C++一直没什么了解,有几次开发用到C++也都没有研究很深,后来跟朋友谈论集成,发现一旦深入内存,类、集成、虚表什么的就变的很美,于是想写下这篇博客记录探究的过程。

2015-12-29 22:04:44 69

原创 bcache-tools代码编译和bcache配置问题总结 - Linux内核之bcache 1.2

本文主要记录在bcache-tools编译和bcache配置过程中遇到的问题,有关bcache配置的方法请通过下面的链接:编译和安装过程中问题做简单记录。

2015-12-22 23:07:23 2880

原创 EXT4磁盘组织 - EXT4文件系统分析 1

我们都知道,磁盘是最典型的块设备,不管是机械硬盘还是固态硬盘,存取的最小单位一般是扇区(sector)。在磁盘上,所有的扇区是按照顺序排列的,就好像积木整齐的堆积在一起,这些积木都按照顺序进行编号,但是这样还远远不够。我们需要用这些积木组建房屋、街道,最终变成一个城市,需要通过一定的方式管理这些积木,才不至于让这些积木乱套,并且合理充分的使用他们。

2015-12-20 21:04:48 5053

原创 Ubuntu修改软件源 - Ubuntu配置笔记

本文简单记录一下Ubuntu修改软件源的方法和中间遇到的问题,以便以后查阅。但是本人需要稍微提醒一下,现在Ubuntu原生的源速度也不会太慢,如果可以尽量使用原生的源,我就曾经因为换用国内的源升级系统导致桌面无法启动,百般折腾以后不得不重装系统。

2015-12-20 20:17:46 652

原创 bcache配置方法 - Linux内核之bcache 1.1

本文不再花时间介绍bcache的基本概念了,这不是本文的重点,想给出几个官方链接大家自己看吧。另外本文结尾的参考文章可以为大家提供一些其他信息。

2015-12-16 00:17:08 5598 1

原创 EXT4文件组织 - EXT4文件系统详解2

EXT4 文件系统是从 EXT2 和 EXT3 上发展而来的,这里我们来分析它们是如何将一个文件的内容组织起来,从而在磁盘上“拼凑出一个文件”。

2015-12-11 16:51:11 2172

原创 Linux内核符号表

在内核中通过/proc/kallsyms获得符号的地址Linux内核符号表/proc/kallsyms的形成过程 ./scripts/kallsyms.c负责生成System.map ./kernel/kallsyms.c负责生成/proc/kallsyms ./scripts/kallsyms.c解析vmlinux(.tmp_vmlinux)生成kallsyms.S(.tmp_kall

2015-10-28 14:58:07 183

原创 修改命令行前缀 - Ubuntu配置笔记

本文将介绍如何修改配置文件使命令终端只显示当前路径最后一级目录,顺便说明修改用户名和主机名显示的方法,来缩短命令行前缀。

2015-10-28 14:49:36 4563

原创 僵尸进程与孤儿进程 - Linux进程管理

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。 如果进程不调用wai

2015-10-18 21:05:06 49

原创 CFS调度算法 - Linux任务调度

CFS内部原理CFS去掉了struct prio_arry,并引入实体调度(scheduling entity)和调度类(scheduling classes),分别由struct sched_entity和struct sched_class定义。因此,task_struct包含关于sched_entitty和sched_class这两种结构的信息。 代码参考linux/include/l

2015-10-04 00:44:01 318

原创 Linux进程内存空间

用户态进程空间

2015-10-01 23:30:18 81

原创 n个人重新排队,不站在原来位置 - 算法分析

题目有n个人排队,原来读顺序为:A B C D E F G……现在进行重新排序,要求每个人不能站在原来的位置上,请问一共有多少种排法?题解递推关系式: ⎧⎩⎨a1=0;a2=1;an=(n−1)(an−1+an−2);\begin{cases}a_1 = 0; \\a_2 = 1; \\a_n = (n - 1)(a_{n-1} + a_{n-2});\end{cases

2015-09-20 18:29:16 2446

原创 排序算法对比

时间复杂度对比时间复杂度和稳定性 算法名称 最差时间复杂度 平均时间复杂度 稳定性 冒泡排序 O(n^2) O(n^2) 稳定 快速排序 O(n^2) O(n*logN) 不稳定 选择排序 O(n^2) O(n^2) 稳定 二叉树排序 O(n^2) O(n*logN) 稳定 归并排

2015-09-05 15:22:35 58

原创 Linux下var目录详解

/var文件系统/var 包括系统一般运行时要改变的数据.每个系统是特定的,即不通过网络与其他计算机共享. /var/catman当要求格式化时的man页的cache.man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中.而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再

2015-08-22 15:04:24 1434

原创 Linux下32位和64位不同数据类型字段长度

谨以此作为记录,方便日后查询,错误之处,欢迎指正。验证环境Ubuntu 12.04&14.04 32bit&64bit gcc-4.832位和64位系统不同数据类型字字段长度对比 数据类型 32bit Linux 64bit Linux char 1 1 int 4 4 long 4 8 long long 8 8 float 4

2015-08-21 13:10:07 1142

原创 调度算法

调度算法性能评判1.吞吐量:单位时间内CPU完成作业的数量。 2.CPU利用率:从0%~100%。 3.周转时间: 评价批处理系统的性能指标。 Ti = 作业完成时刻 - 作业提交时刻确定进程调度原则 在系统角度来说,公平性:每个进程(不论优先级)都有机会被运行;较大的吞吐量。 用户角度:及时性:响应速度要快;较短的周转时间:不应当让用户等待时间过长。常见的调度策略先来

2015-08-18 22:29:33 155

原创 new

Created with Raphaël 2.1.0system panicSD dumpSucceed?eMMC dumpSucceed?EndUSB dumpnoyesno

2015-07-15 13:50:24 57

转载 Python字符串与数字转换

字符串转换成数字:>>> a = "18">>> b = string.atoi(a, 16)>>> print b24

2015-06-03 11:03:42 434

原创 Python从二进制文件读取结构体

http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最重要的三个函数是pack(), unpack(), calcsize() p

2015-06-01 17:55:46 2488

原创 Python定义常量

Python 实现类似C/C++中const功能I 访问字典的元素使用dobj.get(‘key’, somethingelse),如果对应key值元素不存在,你将会得到somethingelse值,例如“not found” 不要使用dobj[‘key’],因为如果key对应元素不存在,则会产生KeyError异常,这样必须使用try…except来封装II 名字空间中的属性可以

2015-06-01 17:44:59 491

原创 inline内敛函数 剥丝抽茧

1. 前言实不相瞒,这篇文章是在实习期间提交的一个Patch被公司前辈一番“批斗”之后写的,甚至得到了“如果面试的时候有人这样用inline我就直接让他回家或者打一个很低的分数”这样的回复。当时有些莫名其妙,所以决心把这玩意弄清楚。2. inline & 内联函数简介2.1 何为inline简单地说inline仅仅只是的关键字,就像大家熟知的const一样,目前我只在C&C

2015-05-29 00:50:06 145

空空如也

空空如也

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

TA关注的人

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