《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)
《Linux内核剖析》
《Linux内核剖析》 |
版本 |
作者 |
参与者 |
完成日期 |
备注 |
YanlzLinux_Kernel0.12_V01_1.0 |
严立钻 |
|
2020.02.06 |
|
|
|
|
|
|
##《Linux内核剖析》发布说明:
++++“Linux内核剖析”:是对“Linux系统编程”的综合探索;开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API;底层的驱动内核工程师是嵌入式领域的重要岗位,也是一个公司的技术核心,根据芯片具体情况把操作系统(如Linux)移植到上面;同时编写必要的驱动程序,改写相应的内核代码;
++++“Linux内核剖析”:定位在一个科普类知识,了解Linux环境下的应用程序开发;从基础Linux、C语言、数据结构开始,到ARM、汇编、Linux内核、驱动等!
@@提示:有些博客可能只是开了头,如果感兴趣的同学,可以“点赞”或“评论区留言”,只要关注的同学多了,那就会继续完善哟!(“++==”,表示没有写完的,如果关注度不高就不完善了;“++ok++”,表示此篇博客已经完成,是阶段性完整的!)
$$$$博客溯源:
++++【Linux系统编程】分类:https://blog.****.net/vrunsoftyanlz/category_9694767.html
++++【Linux C函数与算法】:https://blog.****.net/VRunSoftYanlz/article/details/104076473
++++【Linux系统编程】:https://blog.****.net/VRunSoftYanlz/article/details/104151861
++++【Linux从入门到放弃】:https://blog.****.net/VRunSoftYanlz/article/details/104176967
++++【Linux内核API】:https://blog.****.net/VRunSoftYanlz/article/details/104189074
++++【C++C铸就生存利器】分类:https://blog.****.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分类:https://blog.****.net/vrunsoftyanlz/category_9212024.html
++++【立钻哥哥****空间】:https://blog.****.net/VRunSoftYanlz/
++++VR云游戏= Unity +SteamVR+ 云技术 + 5G +AI;(说明:AI人工智能不是我们的主要研究技术,只是了解一下,领略一下有风的感觉!但是,VR是我们的研究重点)
##《Linux内核API》目录
#第一篇:Linux从入门到放弃篇
#第二篇:Linux C篇
#第三篇:Linux系统编程篇
#第四篇:Linux内核API篇
#第五篇:Linux内核剖析篇
#第六篇:Linux驱动开篇
#第七篇:立钻哥哥带您Linux内核驱动开发
#第一篇:Linux从入门到放弃篇
#第一篇:Linux从入门到放弃篇 |
#第一篇:Linux从入门到放弃篇
++++立钻哥哥:开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API;底层的驱动内核工程师是嵌入式领域的重要岗位,也是一个公司的技术核心,根据芯片具体情况把操作系统(如Linux)移植到上面;同时编写必要的驱动程序,改写相应的内核代码;
++++【Linux从入门到放弃】:https://blog.****.net/VRunSoftYanlz/article/details/104176967
#第二篇:Linux C篇
#第二篇:Linux C篇 |
#第二篇:Linux C篇
++++立钻哥哥:开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API,有的属于C语言的标准库函数;
++++【Linux C函数】:https://blog.****.net/VRunSoftYanlz/article/details/104076473
#第三篇:Linux系统编程篇
#第三篇:Linux系统编程篇 |
#第三篇:Linux系统编程篇
++++立钻哥哥:开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API,有的属于C语言的标准库函数;
++++【Linux系统编程】:https://blog.****.net/VRunSoftYanlz/article/details/104151861
#第四篇:Linux内核API篇
#第四篇:Linux内核API篇 |
#第四篇:Linux内核API篇
++++立钻哥哥:Linux编程主要是以用户层面上的编程为主,一般涉及用户API;相对于特定的硬件平台,只对所用到的特定的内核API做简要说明;对于使用Linux内核进行编程开发,需要全面了解内核API;
++D1、Linux内核API概述
++D1、Linux内核API概述 |
++D1、Linux内核API概述
++++立钻哥哥:内核API与用户API是具有本质区别的,因为它们所运行的系统模式是不同的;若要进行Linux内核源代码分析与内核API验证,需要具备一定的基础知识,掌握了这些基础知识后,才能在Linux内核源代码分析与内核API验证实力的理解中做到游刃有余;
++++Linux可以运行在两种模式下:用户模式(user mode)和内核模式(kernel mode);
++Linux内核编程注意事项
++++立钻哥哥:当编写一个普通程序时,有时会包含stdlib.h文件,也就是说我们使用了C标准库,这是典型的用户模式编程,在这种情况下,用户模式的应用程序要链接标准C库;
++++[不能使用浮点运算]:因为Linux内核在切换模式时不保存处理器的浮点状态;
++++[不要让内核程序进行长时间等待]:Linux操作系统本身是抢占式的,但是内核是非抢占内核,就是说用户空间的程序可以抢占运行,但是内核空间程序不可以;
++++[尽可能保持代码的整洁性]:内核调试不像调试应用程序那样方便,因此,在前期代码编写的过程中保持代码的整洁易懂,将大大方便后期的调试;
++++[Linux内核API有很多配对使用]:例如,文件引用计数有加操作,也会有相应的减操作;如果在实验中进行了“引用计数”加操作,函数执行后未进行减操作还原,那么可能会出现系统崩溃;
++++在内核模式下编程,系统内的所有资源都是由内核来统一调配的,并且数量有限,因此申请资源用完后一定要进行释放,避免出现死锁情况;
++Linux内核2.6内核模块的Makefile模板
++++立钻哥哥:在Linux2.6内核中,模块的编译需要配置过的内核源代码;编译过程首先会到内核源码目录下读取顶层的Makefile文件,然后再返回模块源码所在目录;经过编译、链接后生成的内核模块文件的后缀为.ko;
ifneq($(KERNELRELEASE)) mymodule-objs:= mymodule1.0 mymodule2.0 #依赖关系 obj-m += mymodule.o #编译、链接后将生成mymodule.o模块
else PWD := $(shell pwd) KVER := $(shell uname -r) KDIR := /lib/modules/$(KVER)/build
all: $(MAKE) -C $(KDIR) M=$(PWD) #此处将再次调用make
clean: rm -rf *.o *.mod.c *.ko *.symvers *.order *.markers *~ endif |
++++【Linux内核API】:https://blog.****.net/VRunSoftYanlz/article/details/104189074
#第五篇:Linux内核剖析篇
#第五篇:Linux内核剖析篇 |
--_--VRunSoft:lovezuanzuan--_--