博客专栏  >  架构   >  秒扒Linux

秒扒Linux

Linux源码学习与研究,共享知识

关注
1 已关注
20篇博文
  • Linux内核头文件

    Linux内核根据与体系结构的关系,可以分为以下三大类头文件: 1.<linux/xxx.h>:Linux内核标准头文件,与体系结构无关,位于内核源码顶层include目...

    2018-06-13 11:54
    95
  • linux/init/main.c(一)

    linux内核启动过程: 启动Linux内核的最终目的是使用Linux上的应用程序,这些应用程序可以是纯软件的,也可以是硬件相关的。 1.BIOS自检 BIOS(Basic Input/Ou...

    2018-06-19 17:07
    197
  • Linux __setup与early_param

    #define __setup_param(str, unique_id, fn, early) / static char __setup_str_##unique_i...

    2018-06-19 17:25
    46
  • Linux源码研究 - 初识Linux

    官网 https://www.kernel.org/   源代码结构 arch目录:包含了所有硬件体系结构特定的内核代码,每种硬件平台占一个相应的目录。在x86体系结构下,包括kernel、m...

    2018-05-04 08:44
    113
  • Linux源码研究-Documentation/process/stable-api-nonsense.rst

    这里会解释为什么Linux没有二进制的内核接口,也没有稳定的内核接口。注意这描述的是内核内部的接口,而不是内核面向用户空间的接口,而面向用户空间的内核接口是非常稳定的。 只有古怪的人才会想写一个不用...

    2018-05-04 09:45
    52
  • Linux源码研究-用户和管理员手册-release 4.x

    什么是Linux Linux是Unix操作系统的克隆,由Linus Torvalds及通过网络组织在一起的团队开发,目标是遵循POSIX和单一Unix规范。它有Unix的所有特性,包括多任务、虚拟内...

    2018-05-04 13:18
    47
  • Linux源码研究-用户管理员手册-内核命令行参数

    下面的列表是__setup(), core_param()和module_param()宏实现的内核参数,内核从命令-开始解析参数,如果参数不被识别,也不包含“.”,参数会被用来启动,含“=”的参数会...

    2018-05-04 15:40
    156
  • Linux源码研究-内核开发-内核编码风格

    1) 缩进 -------------- 制表符是 8 个字符,所以缩进也是 8 个字符。有些异端运动试图将缩进变为 4 (甚至 2!) 字符深,这几乎相当于尝试将圆周率的值定义为 3。 理由:缩进...

    2018-05-04 17:07
    45
  • Linux内核研究-内核开发-PGP

    Linux内核开发中的PGP角色 PGP帮助确保Linux内核社区的代码完整性,通过PGP签名邮件交换来在开发者间建立可信通信。 Linux内核代码发布成两种主要格式:   分布式源码库(gi...

    2018-05-07 09:37
    44
  • Linux源码研究-内核开发-原理相关文档索引

    Linux内核树中的文档 Sphinx book , make {htmldocs | pdfdocs | epubdocs} 在线文档   Linux内核邮件列表索引 https://ker...

    2018-05-07 10:10
    64
  • Linux源码研究-内核开发-魔数

    使用魔数来保护内核数据结构是一个非常好的主意,这就允许你在运行期检查一个结构是否已经被攻击,或者你已经给一个例行程序通过了一个错误的结构。 使用魔数值的方法是在结构的开始处声明的,如下: str...

    2018-05-07 10:44
    104
  • Linux源码研究-内核开发-volatile类型

    C程序员通常认为volatile表示某个变量可以在当前执行的线程外被改变,因此在内核中用到共享数据结构时,常常会有C程序员使用volatile这类变量,然而在内核中使用volatile几乎总是错误的。...

    2018-05-07 11:14
    77
  • Linux源码研究-内核开发工具-Coccinelle

    Coccinelle是一个文本模式转换的正则式匹配的工具。 获取Coccinelle 大部分Linux分支版本都有这个工具。   Debian Fedora Ubuntu OpenSUS...

    2018-05-07 13:31
    178
  • Linux内核研究-内核开发工具-Sparse

    Sparse是C语言的语义检查器。 类型检查 "__bitwise"是一个类型属性,所以你需要这么做: typedef int __bitwise pm_request_t...

    2018-05-07 15:15
    51
  • Linux内核研究-内核开发工具-kcov

    代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程序的重要指标,kcov是用于随机测试中合适表达代码覆盖率的一种工具。 前置需求 内核需要配置 CONFIG_KCOV=y ...

    2018-05-08 15:13
    207
  • Linux内核研究-内核开发工具-gcov

    gcov是一个GCC使用的覆盖测试的工具,为了获得特定文件的覆盖结果,需要改变内核编译的目录和使用-o选项。 # cd /tmp/linux-out # gcov -o /sys/kernel/d...

    2018-05-08 16:05
    95
  • Linux内核研究-内核开发工具-KASAN

    Kernel Address Sanitizer是一个动态内存错误检测工具,常用来发现用后释放和越界的bug。 使用 在内核中启用KASAN CONFIG_KASAN = y 然后从CONF...

    2018-05-08 16:22
    122
  • Linux源码研究-内核开发工具-UBSAN

    Undefined Behavior Sanitizer,用于运行时未定义行为检测。UBSAN使用编译时指令来获取未定义行为。编译器插入代码,在可能引起UB的操作之前运行某类检查,如果失败,会调用__...

    2018-05-08 16:28
    199
  • Linux源码研究-内核开发工具-Kmemleak

    Kmemleak提供一种类似追踪垃圾回收的方式进行内存泄露检测方法。 用法 需要启用CONFIG_DEBUG_KMEMLEAK 显示所有可能的内存泄露: # mount -t debugfs...

    2018-05-08 16:42
    138
  • Linux源码研究-内核开发工具-gdb

    gdb提供了一个python的脚本接口,内核提供了一些有用的脚本用来简化内核的调试步骤。 设置   为QEMU/KVM创建一个虚拟机。 编译内核时启用CONFIG_GDB_SCRIPTS,但不...

    2018-05-08 16:53
    55

秒扒GIS
4294
秒扒Dubbo
5360867
秒扒Spring
6328078
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部