• Android 底层驱动开发步骤——linux内核层、HAL层、JNI层

    时间:2024-05-19 18:59:46

    1.Linux驱动实现2.Linux内核驱动测试3.Android HAL层实现4.Aidl实现5.Service java实现6.Service jni 实现7.注册service和jni方法8.Android App调用测试开发环境1.linux驱动实现。下面我就简单实现一个字符驱动代码编译在k...

  • Linux内核hook系统调用

    时间:2024-05-19 18:58:58

    一 获取系统调用表地址在Linux内核2.6之后,不能直接导出sys_call_table的地址后,我们要如何获得系统调用表的地址,从而实现系统调用的截获呢。将生成的.ko 文件加载到内核中.执行“dmesg”,查看系统日志,如图。接下来就要解释解释原理了。我们知道Linux系统中的系统调用是通过用...

  • Linux内核发布时间表

    时间:2024-05-19 11:44:00

    有了这个Linux内核版本发布时间表(0.00到3.19,当然没有包含全部的版本),大家就可以看看自己用的版本是何时发布的了!做内核维护查看相关patch log时大致做个参考。版本号时间发展史0.001991.2-4两个进程分别显示AAABBB0.011991.9第一个正式向外公布的Linux内核...

  • Linux内核入门到放弃-锁与进程间通信-《深入Linux内核架构》笔记

    时间:2024-05-18 09:33:01

    内核锁机制对整数的原子操作<asm-arch/atomic.h>typedef struct {volatile int counter;} atomic_t;//初始化只能借助于ATOMIC_INIT宏atomic_t nmi_active = ATOMIC_INIT(0);atomi...

  • Linux 内核热插拔事件产生

    时间:2024-05-16 23:27:38

    一个热插拔事件是一个从内核到用户空间的通知, 在系统配置中有事情已经改变. 无论何 时一个 kobject 被创建或销毁就产生它们. 这样事件被产生, 例如, 当一个数字摄像头 使用一个 USB 线缆插入, 当一个用户切换控制台模式, 或者当一个磁盘被重新分区. 热 插拔事件转变为一个对 /sbin...

  • linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程

    时间:2024-05-10 12:24:12

    1. 实验目的选择一个系统调用(13号系统调用time除外),系统调用列表,使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用分析汇编代码调用系统调用的工作过程,特别是参数的传递的方式等。阐明自己对“系统调用的工作机制”的理解。实验过程2.1 fork函数本次实验选择fork系统调用,...

  • Linux内核分析(三)----初识linux内存管理子系统

    时间:2024-05-10 12:03:09

    原文:Linux内核分析(三)----初识linux内存管理子系统Linux内核分析(三)昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linux的内存管理子系统,linux的内存管理子系统相当的庞大,所以我们今天只是初识,只要对其进行简单的了解就...

  • 分析Linux内核中进程的调度(时间片轮转)-《Linux内核分析》Week2作业

    时间:2024-05-10 11:54:41

    1.环境的搭建:这个可以参考孟宁老师的github:mykernel,这里不再进行赘述。主要是就是下载Linux3.9的代码,然后安装孟宁老师编写的patch,最后进行编译。2.代码的解读课上的代码全部保存在github上,我fork了一份,然后为它加上了详细的注释,参见mykernel3.代码结构...

  • Linux内核分析——第三周学习笔记

    时间:2024-05-10 11:42:37

    20135313吴子怡.北京电子科技学院chapter1 知识点梳理一、Linux内核源代码简介(视频中对目录下的文件进行了简介,记录如下)arch目录占有相当庞大的空间arch/x86目录下的代码是需要重点关注的。arch下其他目录可以删掉。init目录内核启动相关的基本代码基本都在init目录下...

  • Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS

    时间:2024-05-10 11:41:21

    韩玉琪 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000一、Linux内核源码简介1. 源码主要结构简单的Linux内核源代码结构。2. 我们关注的部分arch/ - 该目录中包含和硬...

  • Linux内核启动分析过程-《Linux内核分析》week3作业

    时间:2024-05-10 11:14:56

    环境搭建环境的搭建参考课件,主要就是编译内核源码和生成镜像start_kernel从start_kernel开始,才真正进入了Linux内核的启动过程。我们可以把start_kernel看做平时用C编程时的main函数。在平时应用程序编程中,main函数并不是一开始就启动的,而是先使用汇编和C准备一...

  • Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序

    时间:2024-05-10 10:48:29

    1、可执行文件的格式在 Linux 平台下主要有以下三种可执行文件格式:1、a.out(assembler and link editor output 汇编器和链接编辑器的输出)2、COFF(Common Object File Format 通用对象文件格式)3、ELF(Executable a...

  • 《linux内核完全剖析》笔记03-进程创建

    时间:2024-05-04 21:30:07

    根据一下问题来看笔记进程占多大的线形地址空间进程实际分配多少物理内存创建进程的开销在哪里一. 从fork系统调用开始kernel/sys_call.s第222行_sys_fork: call _find_empty_process #为新进程分配id testl %eax,...

  • 20135316王剑桥Linux内核学习笔记

    时间:2024-05-04 11:20:09

    王剑桥Linux内核学习笔记《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000计算机是如何工作的个人理解:计算机就是通过和用户进行交互,执行用户的指令,这些指令存放在内存中,通过寄存器存储,堆栈变化,来一步步顺序执行。一...

  • Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    时间:2024-05-04 10:38:45

    1. openSUSE是一款优秀的linux。2.选择默认虚拟机3.选择稍后安装操作系统4.选择linux  opensuse5. 选择默认虚拟机名称6.设置处理器为双核。7.内存设置为2G8. 选择网络地址转换9.设置IO控制器10. 选择默认磁盘类型11.创建一个新的虚拟磁盘12.设置磁盘大小1...

  • Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    时间:2024-05-04 10:35:16

    1. openSUSE是一款优秀的linux。watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Sout...

  • Linux内核常用调优参数

    时间:2024-05-02 07:17:52

    Linux内核常用调优参数 vi /etc/sysctl.conf net.core.rmem_default = 256960net.core.rmem_max = 513920net.core.wmem_default = 256960net.core.wmem_max = 513920net....

  • 如何交叉编译 linux kernel 内核

    时间:2024-05-01 08:35:56

    CompilationWe first need to move the config file by runningcp arch/arm/configs/bcmrpi_cutdown_defconfig .config     # 看情况Then configure the kernel bui

  • 【转】6.4.6 将驱动编译进Linux内核进行测试

    时间:2024-04-30 22:13:12

    原文网址:http://www.apkbus.com/android-98520-1-1.html前面几节都是将Linux驱动编译成模块,然后动态装载进行测试。动态装载驱动模块不会随着Android系统的启动而自动装载,因此Android系统每次启动都必须使用insmod或modprobe命令装载L...

  • 20169212《Linux内核原理与分析》课程总结

    时间:2024-04-29 17:53:28

    20169212《Linux内核原理与分析》课程总结每周作业链接汇总第一周作业:完成linux基础入门实验,了解一些基础的命令操作。第二周作业:学习MOOC课程——计算机是如何工作的;完成实验楼上配套实验一,反汇编一个简单的C程序,分析堆栈变化情况;阅读学习教材《Linux内核设计与实现》第1,2,...