![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux札记
hovan-邓永坚
这个作者很懒,什么都没留下…
展开
-
ubuntu 用命令mutt 发邮件
不知有没有朋友跟我一样,想定时一任务,做完了就发个邮件出来。按照网上配置mail总是失败。最后只能用mutt了。一、安装apt-get install muttapt-get install msmtp二、配置在 /etc/Muttrc 文件里最后加入set sendmail="/usr/bin/msmtp"set use_from=yesset原创 2013-08-11 14:38:04 · 3499 阅读 · 0 评论 -
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!发表于 2012 年 1 月 6 日Oops 信息来源及格式Oops 这个单词含义为“惊讶”,当内核出错时(比如访问非法地址)打印出来的信息被称为 Oops 信息。Oops 信息包含以下几部分内容。1 一段文本描述信息。比如类似“Unable to handle kernel N转载 2015-02-10 17:31:18 · 1564 阅读 · 0 评论 -
Linux内核中的中断栈与内核栈的补充说明
Linux内核中的中断栈与内核栈的补充说明 (2012-02-20 20:17)标签: Linux内核栈 中断栈 Linux中断处理 设备驱动 分类: Linux系统内核中断栈与内核栈的话题更多地属于内核的范畴,所以在《深入Linux设备驱动程序内核机制》第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出转载 2016-07-22 17:01:02 · 1458 阅读 · 0 评论 -
android 4.4 zram内存压缩的优缺点
内存不足时: linux本身的做法是把程序不用的page交换到磁盘中去,并不是所有的page会被映视到物理内存,现代计算机为何用page管理内存,可以参考操作系统书籍 linux加入一个新的方案zram,即在内存划出一些区域,把不常用的page压缩然后放进去,需要用的时取出解压andrdoid 4.4的内核已经支持zram技术传统方式缺点:交换到磁盘中,需要启动io操作原创 2016-07-16 11:33:25 · 6436 阅读 · 0 评论 -
性能之procrank命令
procrank是android system/xbin工具,能够列出各进程占用内存情况,从大到不排列,只有eng版本才会编译root@msm8952_64:/ # procrank PID Vss Rss Pss Uss cmdline转载 2016-07-16 15:17:38 · 6343 阅读 · 0 评论 -
ARM的栈帧
1. ARM的栈帧 先来看看ARM的栈帧布局图: 上图描述的是ARM的栈帧布局方式,main stack frame为调用函数的栈帧,func1 stack frame为当前函数(被调用者)的栈帧,栈底在高地址,栈向下增长。图中FP就是栈基址,它指向函数的栈帧起始地址;SP则是函数的栈指针,它指向栈顶的位置。ARM压栈的顺序很是规矩(也比较容易被黑客攻破么),依次转载 2016-07-19 14:09:00 · 6203 阅读 · 0 评论 -
ARMv8 Linux内核head.S源码分析
http://blog.csdn.net/qianlong4526888/article/details/10972035ARMv8Linux内核head.S主要工作内容:1、 从el2特权级退回到el12、 确认处理器类型3、 计算内核镜像的起始物理地址及物理地址与虚拟地址之间的偏移4、 验证设备树的地址是否有效5、 创建页表,用于启动内核转载 2016-07-19 15:05:37 · 1565 阅读 · 0 评论 -
GCC对编译的优化试验
通过这两天的不断试验,研究反汇编代码,感觉GCC对编译的优化还是非常强的1:局部变量及语句优化: 函数内的,空局部变量,空语句都会被优化掉,不占用任何栈空间的代码空间2:局部变量一定占用栈空间吗? 众所周知,局部变量实际上是栈里存储的,如果局部变量都是基本数据类型,且都不大,会用寄存器 代替,直接运算,不开栈空间。 如果需要引有此原创 2016-07-20 15:42:25 · 1695 阅读 · 0 评论 -
Linux下函数调用堆栈帧的详细解释
http://www.ibm.com/developerworks/cn/linux/l-overflow/本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的 原理及对策。前言从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回 时,相转载 2016-07-21 17:20:28 · 1251 阅读 · 0 评论 -
android reboot流程视图
下面是android简单的reboot流程视图下面是源码分析从Java层的ShutdownThread.java的shutdown()开始:frameworks/base/services/java/com/android/server/power/ShutdownThread.java发出shutdown的广播,原创 2014-12-24 17:42:43 · 3771 阅读 · 0 评论 -
深入理解SELinux SEAndroid(第一部分)
深入理解SELinux SEAndroid转自:http://blog.csdn.net/innost/article/details/19299937SEAndroid是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制。而SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对Linux的安全加强系统转载 2014-12-06 21:18:26 · 1004 阅读 · 0 评论 -
深入学习Make命令和Makefile(上)
make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况,自动判断应该对那些模块重新编译,从而保证软件是由最新的模块构成。本文分为上下两部分,我们将紧紧围绕make在软件开发中的应用展开详细的介绍。一、都是源文件太多惹得祸当我们在开发的程序中涉及众多源文件时,常常会引起一些问题。首先,如果程序只有两三个源文件,那么修改代码后直接重转载 2013-08-15 15:39:49 · 855 阅读 · 0 评论 -
嵌入式Linux之我行——ARM MMU工作原理剖析
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成转载 2013-11-10 15:37:14 · 909 阅读 · 0 评论 -
DVFS--动态电压频率调整
linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。设备驱动级:主要实现对单个设转载 2013-12-15 13:00:48 · 1542 阅读 · 0 评论 -
关于oop错误定位的学习
6.4 必修实验3--内核异常分析(3)接下来的这些信息,和这个模块的调试没多大关系,它们是虚拟内存页目录、页表信息、oops错误号以及最后访问的sysfs文件等。pgd = c39d8000 [00000000] *pgd=339cf031, *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] last sysf转载 2014-04-29 18:56:32 · 855 阅读 · 0 评论 -
/proc/config.gz文件
config.gz文件是kernel的配置文件,一adb pull proc/config.gz .原创 2014-05-17 17:37:28 · 8527 阅读 · 0 评论 -
什么是BogoMIPS?
Bogomips(读作bogumips)是Linux操作系统中衡量计算机处理器运行速度的的一种尺度,而提供这种度量的程序也被称为BogoMips,是由Linux主要开发者linus Torvalds写的。原创 2014-05-17 16:58:06 · 34017 阅读 · 0 评论 -
Linux Namespaces机制
Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,LXC(Linux conta转载 2014-12-01 14:58:08 · 617 阅读 · 0 评论 -
SELinux 初探
SELinux 初探在進入了 CentOS 5.x 之後,SELinux 已經是個非常完備的核心模組了!CentOS 5.x 提供了很多管理 SELinux 的指令與機制, 因此在整體架構上面比以前的版本要單純且容易操作管理!所以,在這一版以後,我們建議大家千萬不要關掉 SELinux 這玩意兒! 讓我們來仔細的玩玩這傢伙吧!什麼是 SELinux什麼是 S转载 2014-12-03 14:48:26 · 22750 阅读 · 0 评论 -
gdb 显示结构体中成员的偏移量
在分析死机问题时,经常要阅读汇编代码,局部变量,或者形参经常是结构体指针变量 static inline void __rb_change_child(struct rb_node *old, struct rb_node *new, struct rb_node *parent, struct rb_root *root) { if (parent) {原创 2016-08-08 11:24:50 · 9710 阅读 · 0 评论