• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • KASLR

    作者:smcdef 发布于:2018-5-6 10:00 分类:内存管理

    引言

    什么是KASLR?KASLR是kernel address space layout randomization的缩写,直译过来就是内核地址空间布局随机化。KASLR技术允许kernel image加载到VMALLOC区域的任何位置。当KASLR关闭的时候,kernel image都会映射到一个固定的链接地址。对于黑客来说是透明的,因此安全性得不到保证。KASLR技术可以让kernel image映射的地址相对于链接地址有个偏移。偏移地址可以通过dts设置。如果bootloader支持每次开机随机生成偏移数值,那么可以做到每次开机kernel image映射的虚拟地址都不一样。因此,对于开启KASLR的kernel来说,不同的产品的kernel image映射的地址几乎都不一样。因此在安全性上有一定的提升。

    阅读全文>>

    标签: kaslr

    评论(11) 浏览(6366)

    fixmap addresses原理

    作者:smcdef 发布于:2018-4-29 20:35 分类:内存管理

    引言

    fixmap是一段固定地址映射。kernel预留一段虚拟地址空间。因此虚拟地址是在编译的时候确定。fixmap可以用来做什么?kernel启动初期,由于此时的kernel已经运?#24615;?#34394;拟地址上。因此我们访问具体的物理地址是不行的,必须建立虚拟地址和物理地址的映射,然后通过虚拟地址访?#20160;?#21487;以。例如:dtb中包含bootloader传递过来的内存信息,我们需要解析dtb,但是我们得到的是dtb的物理地址。因此访问之前必须创建映射,创建映射?#20013;?#35201;内存。但是由于所有的内存管理子系统还没有ready。因此我们不能使用ioremap接口创建映射。为此kernel提出fixmap的解决方案。

    阅读全文>>

    评论(9) 浏览(3853)

    文件系统和裸块设备的page cache问题

    作者:阿克曼 发布于:2018-4-28 10:16 分类:文件系统

    普通文件的数据可以保存在它的地址空间中,同时直接访问块设备?#20889;?#25991;件?#30446;椋?#20063;会将这个文件的数据保存在块设备的地址空间中。这两份缓存相互独立,kernel并不会为这?#22336;?#27491;常访问同步两份缓存,从而避免了同步?#30446;?#38144;。

    注:本文代码基于linux-3.18.31,此版?#23616;?#22359;缓存已经合入页缓存。

    阅读全文>>

    评论(4) 浏览(3509)

    一次触摸屏中?#31995;?#35797;引发的深入探究

    作者:heaven 发布于:2018-4-23 16:01 分类:Linux内核分析

    大家好,我叫张昺华,中间那个字念“饼?#20445;?#39318;?#30830;?#24120;?#34892;?#38472;莉君老师的指点,题目名字也是陈老师起的,也很荣幸此文章能在蜗窝上发表一次,?#34892;还?#22823;侠给的机会

    如下为本人原创,在解决问题的过?#35752;?#30340;一点心得,如果有描述不准确的地方还请各位指出,非常?#34892;?/span>


    Linux内核版本:linux-4.9.18 

    曾有一次调试触摸屏的时候遇到如下的问题

    阅读全文>>

    标签: 中断

    评论(12) 浏览(5380)

    ARM64 Kernel Image Mapping的变化

    作者:smcdef 发布于:2018-4-21 20:25 分类:内存管理

    随着linux的代码更新,阅读linux-4.15代码,从中发现很多与众不同的地方。之所以与众不同,就是因为和我之前从网上博客或者书籍中看到的内容有所差异。当然了,并不是为了表明书上或者博客的观点是错误的。而是因为linux代码更新的太快,网?#31995;?#21338;客和书籍跟不上linux的步伐而已。究竟是哪些发生了差异了?例如:kernel image映射区域从原来的linear mapping region(线性映射区域)搬移到VMALLOC区域。因此,我希望通过本篇文章揭晓这些差异。当然,我相信不久的将来这篇文章也将会成为一段历史。

    阅读全文>>

    评论(11) 浏览(7958)

    tty驱动分析

    作者:callme_friend 发布于:2018-4-20 18:02 分类:TTY子系统

    分析背景:xilinx_uartps.c (drivers\tty\serial)----linux-4.9内核

    以具体驱动为例,描述了驱动的注册、打开和读写过程;梳理了相关数据结构间的关系。最后给出了一个模拟tty驱动实例。

    阅读全文>>

    标签: Linux tty 模拟串口

    评论(23) 浏览(6923)

    ftrace时间精度issue修复

    作者:linuxer 发布于:2018-4-16 19:07 分类:Linux内核分析

    在调试ATMEL SAMA5D3 ?#31995;膄trace功能的时候,发现了一个时间精度的问题,本文主要记录这个issue修复的过程,方便后续查阅。linux内核版本是4.4.19,当然,最新的内核中仍然存在这个issue。

    阅读全文>>

    标签: ftrace sched_clock

    评论(0) 浏览(3902)

    致驱动工程师的一封信

    作者:smcdef 发布于:2018-4-14 21:00 分类:统一设备模型

    作为一个算是合格的驱动工程师,总是有很多话想说。代码看的多了总是有些小感悟。可能是吧。那就总结一下自己看的代码的一些感悟和技巧。如何利用你看的这些代码?如何体现在工作的调试中。作为驱动工程师,主要的工作就是移植各种驱动,接触各种?#24067;?#25509;触最多的就是dts、中断、gpio、sysfs、proc fs。如何利用sysfs、proc fs及内核提供的接口为我们降低调?#38405;?#24230;,快速解决问题呢?

    阅读全文>>

    评论(10) 浏览(12495)

    SLUB DEBUG原理

    作者:smcdef 发布于:2018-2-22 21:49 分类:内存管理

    1. 前言
    在工作中,经常会遇到由于越界导致的各种奇怪的问题。为什么越界访问导致的问题很奇怪呢?在工作差不多半年的时间里我就遇到了很多越界访问导致的问题(不得不吐槽下IC厂商提供的driver,总是隐藏着bug)。比如说越界访问导致的死机问题,这种问题的出现一般需要长时间测试才能发现,而且发现的时候即使有panic log。你也没什么头绪。这是为什么呢?

    阅读全文>>

    标签: slub 内存管理

    评论(12) 浏览(8057)

    图解slub

    作者:smcdef 发布于:2018-2-22 21:02 分类:内存管理

    1. 前言

    Linux中,伙伴系统(buddy system)是以页为单位管理和分配内存。但是现实的需求却以字节为单位,假如我们需要申请20Bytes,总不能分配一页吧!那岂不是?#29616;?#28010;费内存。那么该如何分配呢?slab分配器就应运而生了,专为小内存分配而生。slab分配器分配内存以Byte为单位。但是slab分配器并没有脱离伙伴系统,而是基于伙伴系统分配的大内存进一步细分成小内存分配。

    前段时间学习了下slab分配器工作原理。因为自己本身是做手机的,发现现在好像都在使用slub分配器,想想还是再研究一下slub的工作原理。之前看了代码,感觉挺多数据结构和成员的。成员的意思是什么?数据结构之间的关系是什么?不知道你是否感觉?#35780;?#38654;里。既然代码阅读起来晦涩难懂,如果有精美的配图,不知是否有助于阁下理解slub的来龙去脉呢?我想表达的意思就是文章图多,图多,图多。我们只说原理,尽量不?#21019;?#30721;。因为所?#20889;?#30721;中包含的内容我都会用图来说明。你?#34892;?#36259;绝对有助于你?#21019;?#30721;。

    说明:slubslab中的一种,slab也是slab中的一种。有时候用slab来统称slab, slubslobslab, slubslob仅仅是分配内存策略不同。本篇文章中说的是slub分配器工作的原理。但是针对分配器管理的内存,下文统称为slab缓存池。所以文章中slubslab会混用,表?#23601;?#19968;个意思。

    注?#20309;?#31456;代码分析基于linux-4.15.0-rc3

    阅读全文>>

    标签: slub 内存管理

    评论(13) 浏览(9271)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>