《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内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第1张图片

 

 

 

 

++++【Linux系统编程】分类:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html

++++【Linux C函数与算法】:https://blog.csdn.net/VRunSoftYanlz/article/details/104076473

++++【Linux系统编程】:https://blog.csdn.net/VRunSoftYanlz/article/details/104151861

++++【Linux从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/104176967

++++【Linux内核API】:https://blog.csdn.net/VRunSoftYanlz/article/details/104189074

++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html

++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html

++++【立钻哥哥CSDN空间】:https://blog.csdn.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.csdn.net/VRunSoftYanlz/article/details/104176967

 

 

 

 

 

 

 

#第二篇:Linux C篇

#第二篇:Linux C篇

#第二篇:Linux C篇

++++立钻哥哥:开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API,有的属于C语言的标准库函数

++++【Linux C函数】:https://blog.csdn.net/VRunSoftYanlz/article/details/104076473

 

 

 

 

 

 

 

#第三篇:Linux系统编程篇

#第三篇:Linux系统编程篇

#第三篇:Linux系统编程篇

++++立钻哥哥:开发Linux环境下的应用程序时,需要使用大量的Linux函数;这些函数有的属于Linux操作系统的API,有的属于C语言的标准库函数

++++【Linux系统编程】:https://blog.csdn.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.csdn.net/VRunSoftYanlz/article/details/104189074

《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第2张图片

 

 

 

 

 

 

 

 

 

 

《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第3张图片

#第五篇:Linux内核剖析篇

#第五篇:Linux内核剖析篇

#第五篇:Linux内核剖析篇

++++立钻哥哥:全面而深刻的理解Linux工作机理,为进一步学习和研究Linux打下坚实的基础

++++D1、Linux基础

++++D2、微型计算机组成结构

++++D3、内核编程语言和环境

++++D4、80x86保护模式极其编程

++++D5、Linux内核体系结构

++++D6、引导启动程序

++++D7、初始化程序(main.c)

++++D8、内核代码(asm.s)

++++D9、块设备驱动程序(blk.h)

++++D10、字符设备驱动程序(keyboard.s)

++++D11、数学协处理器(math_emulate.c)

++++D12、文件系统(buffer.c)

++++D13、内核管理(memory.c)

++++D14、头文件(include/)

++++D15、库文件(_exit.c)

++++D16、建造工具(build.c)

++++D17、实验环境设置与使用方法(Bochs)

++++D18、立钻哥哥带您Linux内核驱动编程

 

 

 

++D1、Linux基础

++D1、Linux基础

++D1、Linux基础

++++立钻哥哥:Linux操作系统的诞生、发展和成长过程依赖于:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准、Internt

 

++Linux基础篇

++++立钻哥哥:Linux相关的基础可以查阅“Linux系统编程”分类,其中包括“Linux从入门到放弃”、“Linux C函数”、“Linux系统编程”、“Linux内核API”、“Linux内核剖析”等

++++【Linux系统编程】分类:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html

++++【Linux从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/104176967

++++【Linux C函数与算法】:https://blog.csdn.net/VRunSoftYanlz/article/details/104076473

++++【Linux系统编程】:https://blog.csdn.net/VRunSoftYanlz/article/details/104151861

++++【Linux内核API】:https://blog.csdn.net/VRunSoftYanlz/article/details/104189074

++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html

++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html

++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/

 

 

 

 

 

++D2、微型计算机组成结构

++D2、微型计算机组成结构

++D2、微型计算机组成结构

++++立钻哥哥:计算机系统可分为硬件部分和软件部分,但两者相互依存;硬件部分是计算机系统的可见部分,是软件运行和存储的平台;软件时一种控制硬件操作和动作的指令流;犹如存储于人类大脑中的信息和思维控制着人体的思想和动作一样,软件可以看做是计算机“大脑”中的信息和思维

 

++微型计算机组成原理

++++立钻哥哥:CPU通过地址线、数据线和控制信号线组成的本地总线(或称为内部总线)与系统其他部分进行数据通信;地址线用于提供内存或I/O设备的地址,即指明需要读/写数据的具体位置;数据线用于在CPU和内存或I/O设备之间提供数据传输的通道,而控制线则负责指挥执行的具体读/写操作

《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第4张图片

 

++计算机组成原理

++++立钻哥哥:计算机相关的认识有一个“计算机组成原理”分类,大家感兴趣可以在这个分类下查看相关文章

++++【计算机组成原理】分类:https://blog.csdn.net/vrunsoftyanlz/category_8060814.html

 

 

 

 

 

++D3、内核编程语言和环境

++D3、内核编程语言和环境

++D3、内核编程语言和环境

++++立钻哥哥:语言编译过程就是把人类能理解的高级语言转换成计算机硬件能理解和执行的二进制机器指令的过程;这种转换过程通常会产生一些效率不是很高的代码,所以对一些运行效率要求高或性能影响较大的部分代码通常就会直接使用汇编语言来比编写,或者对高级语言编译产生的汇编程序再进行人工修改优化处理

++++Linux0.1x系统中使用了两种汇编器(Assembler):一种是能产生16位代码的as86汇编器,使用配套的ld86链接器;另一种是GNU的汇编器gasas),使用GNU ld链接器来链接产生的目标文件

++++[as86汇编器]:as86ld86是由MINIX-386的主要开发者之一Bruce Evans编写的Intel808680386汇编编译程序和链接程序;as86的语法是基于MINIX系统的汇编语言语法,而MINIX系统的汇编语法则是基于PC/IX系统的汇编器语法;汇编器专门用来把低级语言程序编译成含机器码的二进制程序或目标文件;汇编器会把输入的一个汇编语言程序(如srcfile)编译成目标文件(objfile

as [选项] -o objfile srcfile

++++[GNU as 汇编]:as86汇编器仅用于编译内核中的“boot/bootsect.S”引导扇区程序和实模式下的设置程序“boot/setup.s”;内核中其余所有汇编语言程序(包括C语言产生的汇编程序)均使用gas来编译,并与C语言程序编译产生的模块链接;在编译C语言程序时,GNU gcc编译器会首先输出一个作为中间结果的as汇编语言文件,然后gcc会调用as汇编器把这个临时汇编语言程序编译成目标文件

 

++as汇编语法

++++立钻哥哥:为了维持与gcc输出汇编程序的兼容性,as汇编器使用AT&T系统的V的汇编语法(AT&T语法);这种语法与Intel汇编程序使用的语法(Intel语法)很不一样

++++[汇编程序预处理]:as汇编器具有对汇编语言程序内置的简单预处理功能;该与处理功能会调整并删除多余的空格字符和制表符;删除所有注释语句并且使用单个空格或一些换行符替换它们;把字符常数转换成对应的数值

++++[符号、语句和常数]:符号(Symbol)是由字符组成的标识符,组成符号的有效字符取自大小写字符集、数字和3字符“-”、“.”、“$”;语句(Statement)以换行符或者行分割字符“;”作为结束

AT&T语法与Intel语法中转换指令的对应关系

AT&T

Intel

说明

cbtw

cbw

%al中的字节值符号扩展到%ax中;

cwtl

cwde

%ax符号扩展到%eax

cwtd

cwd

%ax符号扩展到%dx:%ax中;

cltd

cdq

%eax符号扩展到%edx:%eax中;

mov %ax, %bx

mov $1, %bx

 

++指令语句、操作数和寻址

++++立钻哥哥:指令(Instructions)是CPU执行的操作,通常也称做操作码(Opcode);操作数(Operand)是指令操作的对象;而地址(Address)是指定数据在内存中的位置

++++[指令操作码的命名]:AT&T语法中指令操作码名称(即指令助记符)最后一个字符用来指明操作数的宽度;字符bwl分别指定bytewordlong类型的操作数;如果指令名称没有带这样的字符后缀,并且指令语句中不含内存操作数,那么as就会根据目的寄存器操作数来尝试确定操作数宽度

++++[指令操作码前缀]:操作码前缀用于修饰随后的操作码;它们用于重复字符串指令、提供区覆盖、执行总线锁定操作或指定操作数和地址宽度;通常操作码前缀可作为一条没有操作数的指令独占一行并且必须直接位于所影响指令之前,但是最好与它修饰的指令放在同一行上

操作码前缀列表

操作码前缀

说明

cs,ds,ss,es,fs,gs

区覆盖操作码前缀;通过指定使用“区:内存操作数”,内存引用形式会自动添加这种前缀;

data16,addr16

操作数/地址宽度前缀;前两个前缀会把32位操作数/地址改变成16位的操作数/地址;但请注意:as并不支持16位寻址方式;

lock

总线锁存前缀;用于在指令执行期间禁止中断(仅对某些指令有效);

wait

协处理器指令前缀;等待协处理器完成当前指令的执行;对于80386/80387组合用不着这个前缀;

rep,repe,repne

串指令操作前缀,使串指令重复执行%ecx中指定的次数;

repne scas %es:(%edi), %al

++++[内存引用]:section为内存操作数指定可选的段寄存器,并且会覆盖操作数使用的当前默认段寄存器

AT&T语法

section:disp(base, index, scale)

Intel语法

section:[base + index*scale +disp]

++++[跳转指令]:跳转指令用于把执行点转移到程序另一个位置处继续执行下去;这些跳转的目的位置通常使用一个标号来表示;在生成目标代码文件时,汇编器会确定所有带有标号的指令的地址,并且把跳转到指令的地址编码到跳转指令中;跳转指令可分为无条件跳转和条件跳转两大类;条件跳转指令将依赖于执行指令时标志寄存器中某个相关标志的状态来确定是否进行跳转,而无条件跳转则不依赖于这些标志

jmp NewLoc

#直接跳转;无条件直接跳转到标号NewLoc处继续执行;

jmp *%eax

#间接跳转;寄存器%eax的值是跳转的目标位置

jmp *(%eax)

#间接跳转;从%eax指明的地址处读取跳转的目标位置

++++[区与重定位]:区(Section),也称为段、节或部分,用于表示一个地址范围,操作系统将会以相同的方式对待和处理在该地址范围中的数据信息

 

++符号(Symbol)

++++立钻哥哥:在程序编译和链接过程中,符号(Symbol)是一个比较重要的概念;程序员使用符号来命名对象,链接器使用符号进行链接操作,而调试器利用符号进行调试;标号(Label)是后面紧随一个冒号的符号;符号名以一个字母或“.”、“_”字符之一开始

++++[特殊点(.)符号]:特殊符号“.”表示as汇编的当前地址

++++[符号属性]:除了名字以外,每个符号都有“值”和“类型”属性

 

++as汇编命令

++++立钻哥哥:汇编命令是指示汇编器操作方式的伪指令;汇编命令用于要求汇编器为变量分配空间、确定程序开始地址、指定当前汇编的区、修改位置计数器值等;所有汇编命令的名称都以“.”开始,其余是字符,并且大小写无关

++++1、[.align abs-expr1, abs-expr2, abs-expr3].align是存储对其汇编指令,用于在当前子区中把位置计数器值设置(增加)到下一个指定存储边界处

++++2、[.ascii string...]:从位置计数器所指当前位置为字符串分配空间并存储字符串,可使用逗号分开写出多个字符串

++++3、[.asciz string...]:该汇编命令与“.ascii”类似,但是每个字符串后面会自动添加NULL字符

++++4、[.byte expressions]:该汇编命令定义0个或多个用逗号分开的字节值;每个表达式的值是1字节

++++5、[.comm symbol, length]:在bss区中声明一个命名的公共区域;在ld链接过程中,某个目标文件中的一个公共符号会与其他目标文件中同名的公共符号合并;如果ld没有找到一个符号的定义,而只是一个或多个公共符号,那么ld就会分配指定长度length字节的未初始化内存;length必须是一个绝对值表达式,如果ld找到多个长度不同但同名的公共符号,ld就会分配长度最大的空间

++++6、[.data subsection]:该汇编命令通知as把随后的语句汇编到编号为subsectiondata子区中;如果省略编号,则默认使用编号0;编号必须是绝对值表达式

++++7、[.desc symbol, abs-expr]:用绝对表达式的值设置符号symbol的描述符字段n_desc16位值;仅用于a.out格式的目标文件

++++8、[.fill repeat, size, value]:该汇编命令会产生数个(repeat个)大小为size字节的重复拷贝

++++9、[.global symbol]或者[.globl symbol]:该汇编命令会使得链接器ld能看见符号symbol

++++10、[.int expressions]:该汇编命令在某个区中设置0个或多个整数值(80386系统为4B,同.long

++++11、[.lcomm symbol, length]:为符号symbol指定的局部公共区域保留长度为length字节的空间

++++12、[.long expressions]:含义与.int相同

++++13、[.octa bignums]:这个汇编指令指定0个或多个逗号分开的16B大树(.byte.word.long.quad.octa分别对应124816字节数)

++++14、[.org new_lc, fill]:这个汇编命令会把当前区的位置计数器设置为值new_lc

++++15、[.quad bignums]:这个汇编命令指定0个或多个用逗号分开的8B大数bignum

++++16、[.short expressions][.word expressions]:这个汇编命令指定某个区中0个或多个用逗号分开的2字节数;对于每个表达式,在运行时刻都会产生一个16位的值

++++17、[.space size, fill]:该汇编命令产生size个字节,每个字节填值fill

++++18、[.string string]:定义一个或多个用逗号分开的字符串;在字符串中可以使用转义字符;每个字符串都自动附加一个NULL字符结尾

++++19、[.text subsection]:通知as把随后的语句汇编进编号为subsection的子区中

++++20、[.word expressions]:对于32位机器,该汇编命令含义与.short相同

 

++AS汇编器命令行选项

-a

开启程序列表;

-f

快速操作;

-o

指定输出的目标文件名;

-R

组合数据区和代码区;

-W

取消警告信息;

 

++C程序编译和链接

++++立钻哥哥:使用gcc汇编器编译C语言程序时通常会经过4个处理阶段,即预处理阶段、编译阶段、汇编阶段和链接阶段

++++[预处理阶段]:gcc会把C程序传递给C前处理器cpp,对C语言程序中指示符和宏进行替换处理,输出纯C语言代码

++++[编译阶段]:gcc把C语言程序编译生成对应的与机器相关的as汇编语言代码

++++[汇编阶段]:as汇编器会把汇编代码转换成机器指令,并以特定二进制格式输出保存在目标文件中

++++[链接阶段]:GNU ld链接器把程序的相关目标文件组合链接在一起,生成程序的可执行映像文件

#gcc [选项] [-o outfile] infile ...

 

#gcc -o myhello myhello.c

#gcc -S -o myhello.s myhello.c

#gcc -c -o myhello.o myhello.c

《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第5张图片

 

 

 

 

 

 

++D4、80x86保护模式及其编程

++D4、80x86保护模式及其编程

++D4、80x86保护模式及其编程

++++立钻哥哥:阅读基于80x86CPULinux内核源代码之前需要了解基础知识,比如80x86基础知识;保护模式内存管理;各种保护措施;中断和异常处理;任务管理;保护模式编程的初始化等

++++D4.1、80x86系统寄存器和系统指令

++++D4.2、保护模式内存管理

++++D4.3、分段机制

++++D4.4、分页机制

++++D4.5、保护

++++D4.6、中断和异常处理

++++D4.7、任务管理

++++D4.8、保护模式编程初始化

++++D4.9、立钻哥哥带您多任务内核实战

 

 

++D4.1、80x86系统寄存器和系统指令

++D4.1、80x86系统寄存器和系统指令

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

《Linux内核剖析》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Makefile+块设备驱动+字符设备驱动+数学协处理器+文件系统+内存管理+GDB+立钻哥哥+==)_第6张图片

++++VR云游戏=Unity+SteamVR+云技术+5G+AI;(说明:AI人工智能不是我们的主要研究技术,只是了解一下,领略一下有风的感觉!但是,VR是我们的研究重点

++++【Linux系统编程】分类:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html

++++【Linux从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/104176967

++++【Linux C函数与算法】:https://blog.csdn.net/VRunSoftYanlz/article/details/104076473

++++【Linux系统编程】:https://blog.csdn.net/VRunSoftYanlz/article/details/104151861

++++【Linux内核API】:https://blog.csdn.net/VRunSoftYanlz/article/details/104189074

++++【Linux内核剖析】:https://blog.csdn.net/VRunSoftYanlz/article/details/104200535

++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html

++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html

++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/

 

 

 

 

 

 

 

【XR游戏开发QQ群:784477094

++立钻哥哥推荐的拓展学习链接(Link_Url)

立钻哥哥推荐的拓展学习链接(Link_Url)

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++虚拟现实VR资讯: https://blog.csdn.net/VRunSoftYanlz/article/details/89165846

++++HTC_VIVE开发基础https://blog.csdn.net/VRunSoftYanlz/article/details/81989970

++++Oculus杂谈https://blog.csdn.net/VRunSoftYanlz/article/details/82469850

++++Oculus安装使用https://blog.csdn.net/VRunSoftYanlz/article/details/82718982

++++Unity+SteamVR=>VRhttps://blog.csdn.net/VRunSoftYanlz/article/details/88809370

++++Unity减少VR晕眩症https://blog.csdn.net/VRunSoftYanlz/article/details/89115518

++++SteamVR简介https://blog.csdn.net/VRunSoftYanlz/article/details/86484254

++++SteamVR脚本功能分析https://blog.csdn.net/VRunSoftYanlz/article/details/86531480

++++SteamVR2.0开发指南https://blog.csdn.net/VRunSoftYanlz/article/details/86618187

++++SteamVR2.2.0开发指南https://blog.csdn.net/VRunSoftYanlz/article/details/88784527

++++SteamVR2.2.0快速入门https://blog.csdn.net/VRunSoftYanlz/article/details/88833579

++++SteamVR2.2.0交互系统https://blog.csdn.net/VRunSoftYanlz/article/details/89199778

++++SteamVR2.2.0传送机制https://blog.csdn.net/VRunSoftYanlz/article/details/89390866

++++SteamVR2.2.0教程(一)https://blog.csdn.net/VRunSoftYanlz/article/details/89324067

++++SteamVR2.2.0教程(二)https://blog.csdn.net/VRunSoftYanlz/article/details/89894097

++++SteamVR_Skeleton_Poserhttps://blog.csdn.net/VRunSoftYanlz/article/details/89931725

++++SteamVR实战之PMCorehttps://blog.csdn.net/VRunSoftYanlz/article/details/89463658

++++SteamVR/Extrashttps://blog.csdn.net/VRunSoftYanlz/article/details/86584108

++++SteamVR/Inputhttps://blog.csdn.net/VRunSoftYanlz/article/details/86601950

++++OpenXR简介https://blog.csdn.net/VRunSoftYanlz/article/details/85726365

++++VRTK杂谈https://blog.csdn.net/VRunSoftYanlz/article/details/82562993

++++VRTK快速入门(杂谈)https://blog.csdn.net/VRunSoftYanlz/article/details/82955267

++++VRTK官方示例(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82955410

++++VRTK代码结构(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82780085

++++VRTK(SceneResources)https://blog.csdn.net/VRunSoftYanlz/article/details/82795400

++++VRTK_ControllerEventshttps://blog.csdn.net/VRunSoftYanlz/article/details/83099512

++++VRTK_InteractTouchhttps://blog.csdn.net/VRunSoftYanlz/article/details/83120220

++++虚拟现实行业应用https://blog.csdn.net/VRunSoftYanlz/article/details/88360157

++++Steam平台上的VRhttps://blog.csdn.net/VRunSoftYanlz/article/details/88960085

++++Steam平台热销VRhttps://blog.csdn.net/VRunSoftYanlz/article/details/89007741

++++VR实验:以太网帧的构成https://blog.csdn.net/VRunSoftYanlz/article/details/82598140

++++实验四:存储器扩展实验https://blog.csdn.net/VRunSoftYanlz/article/details/87834434

++++FrameVR示例V0913https://blog.csdn.net/VRunSoftYanlz/article/details/82808498

++++FrameVR示例V1003https://blog.csdn.net/VRunSoftYanlz/article/details/83066516

++++SwitchMachineV1022https://blog.csdn.net/VRunSoftYanlz/article/details/83280886

++++PlaySceneManagerV1022https://blog.csdn.net/VRunSoftYanlz/article/details/83280886

++++Unity5.x用户手册https://blog.csdn.net/VRunSoftYanlz/article/details/81712741

++++Unity面试题ABChttps://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++Unity面试题Dhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630838

++++Unity面试题Ehttps://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity面试题Fhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630945

++++Cocos2dx面试题https://blog.csdn.net/VRunSoftYanlz/article/details/78630967

++++禅道[zentao]https://blog.csdn.net/VRunSoftYanlz/article/details/83964057

++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818

++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502

++++Lua快速入门篇(基础概述)https://blog.csdn.net/VRunSoftYanlz/article/details/81041359

++++框架知识点https://blog.csdn.net/VRunSoftYanlz/article/details/80862879

++++游戏框架(UI框架夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80781140

++++游戏框架(初探篇)https://blog.csdn.net/VRunSoftYanlz/article/details/80630325

++++.Net框架设计https://blog.csdn.net/VRunSoftYanlz/article/details/87401225

++++从零开始学架构https://blog.csdn.net/VRunSoftYanlz/article/details/88095895

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++专题:设计模式(精华篇)https://blog.csdn.net/VRunSoftYanlz/article/details/81322678

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++Unity小游戏算法分析https://blog.csdn.net/VRunSoftYanlz/article/details/87908365

++++Unity案例(Vehicle)https://blog.csdn.net/VRunSoftYanlz/article/details/82355876

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++PowerDesigner简介https://blog.csdn.net/VRunSoftYanlz/article/details/86500084

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++Unity知识点0008https://blog.csdn.net/VRunSoftYanlz/article/details/81153606

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++Unity资源加密https://blog.csdn.net/VRunSoftYanlz/article/details/87644514

++++PhotonServer简介https://blog.csdn.net/VRunSoftYanlz/article/details/86652770

++++编写Photon游戏服务器https://blog.csdn.net/VRunSoftYanlz/article/details/86682935

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++UnityAPI.Rigidbody刚体https://blog.csdn.net/VRunSoftYanlz/article/details/81784053

++++UnityAPI.Material材质https://blog.csdn.net/VRunSoftYanlz/article/details/81814303

++++UnityAPI.Android安卓https://blog.csdn.net/VRunSoftYanlz/article/details/81843193

++++UnityAPI.AndroidJNI安卓JNIhttps://blog.csdn.net/VRunSoftYanlz/article/details/81879345

++++UnityAPI.Transform变换https://blog.csdn.net/VRunSoftYanlz/article/details/81916293

++++UnityAPI.WheelCollider轮碰撞器https://blog.csdn.net/VRunSoftYanlz/article/details/82356217

++++UnityAPI.Resources资源https://blog.csdn.net/VRunSoftYanlz/article/details/83155518

++++JSON数据结构https://blog.csdn.net/VRunSoftYanlz/article/details/82026644

++++CocosStudio快速入门https://blog.csdn.net/VRunSoftYanlz/article/details/82356839

++++Unity企业内训(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82634668

++++Unity企业内训(第1讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82634733

++++Unity企业内训(第2讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82861180

++++Unity企业内训(第3讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82927699

++++Unity企业内训(第4讲)https://blog.csdn.net/VRunSoftYanlz/article/details/83479776

++++Unity企业内训(第5讲)https://blog.csdn.net/VRunSoftYanlz/article/details/83963811

++++Unity企业内训(第6讲)https://blog.csdn.net/VRunSoftYanlz/article/details/84207696

++++钻哥带您了解产品原型https://blog.csdn.net/VRunSoftYanlz/article/details/87303828

++++插件https://blog.csdn.net/VRunSoftYanlz/article/details/83963905

++++计算机组成原理(教材篇)https://blog.csdn.net/VRunSoftYanlz/article/details/82719129

++++5G接入:云计算和雾计算https://blog.csdn.net/VRunSoftYanlz/article/details/88372718

++++云计算通俗讲义https://blog.csdn.net/VRunSoftYanlz/article/details/88652803

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

--_--VRunSoft:lovezuanzuan--_--

你可能感兴趣的:(人工智能AI2026,C++C铸就生存利器,Linux系统编程)