
笔记
文章平均质量分 55
流水石板路
物联网 机器人 自动控制 嵌入式
展开
-
设备驱动模型--存储技术原理分析笔记 基于2.6.43内核
本文为读书笔记,详细内容参考《存储原理技术分析》原创 2023-02-27 21:58:15 · 468 阅读 · 0 评论 -
PCI Express体系结构导读_3PCI总线的数据交换--读书笔记
pcie原创 2023-02-13 23:19:27 · 437 阅读 · 0 评论 -
架构简洁之道读书笔记--第三部分设计原则
单一职责原则。该设计原则是某于康威圧律(Conway'sLaw)的一个推论——一个软件系统的最佳结构高度依赖于开发这个系统的组织的内部结构。这样,每个软件模块都有且只有一个需要被改变的理由。开闭原则。该设计原则是由BertrandMeyer在20世纪80年代大力推广的,其核心要素是如果软件系统想要更容易被改变,那么其设计就必须允许新增代码来修改系统行为,而非只能靠修改原来的代码。里氏替换原则。接口隔离原则。这项设计原则主要告诫软件设计师应该在设计中避免不必要的依赖。...原创 2022-07-22 17:25:11 · 527 阅读 · 0 评论 -
架构简洁之道读书笔记--第二部分编程范式
依赖反转让模块间解耦,增加系统的独立部署能力事件溯源我们可以不借助临时变量,通过记录系统历史变化,进行回溯历史的当前、历史状态。原创 2022-07-22 15:19:06 · 275 阅读 · 0 评论 -
《编写高质量代码-改善C程序代码的125个建议》读书笔记-1数据
1- 回绕溢出问题1.1- 显式声明为signed char或unsigned char的类型来执行算术运算因为不显式声明是否有符号,将由编译器决定是否加符号1.2- 使用rsize_t或size_t类型来表示一个对象所占用空间的整数值单位确保入参和其比较值数据类型相同订正:........................原创 2022-05-11 11:37:41 · 287 阅读 · 0 评论 -
程序员的自我修养读书笔记---内存10
10.1- 程序的内存布局原创 2021-06-03 20:26:38 · 171 阅读 · 0 评论 -
程序员的自我修养读书笔记---linux共享库的组织8
感觉了解即可。。。8.1- 共享库版本(了解)可以读下"8.1.3- SO-NAME"8.2- 符号版本(了解)可以了解下“8.2.2 Solaris中的符号版本机制”8.3- 共享库系统路径(了解)/lib; /usr/lib; /usr/local/lib;8.4- 共享库查找过程(了解)8.5- 环境变量(了解)8.6- 共享库的创建和安装(了解)...原创 2021-05-18 19:54:46 · 103 阅读 · 0 评论 -
程序员的自我修养读书笔记---动态链接7
相比于静态链接,动态链接的内容还是有点多、有点难懂的,尤其是链接时重定位,先了解即可。7.1- 为什么要动态链接(重点了解)1- 避免浪费内存。加入有两个程序:P_1和P_2,这两个程序都需要用到库LIB_3。如果使用静态链接,则LIB_3都将会被编译到P_1和P_2中。将P_1和P_2运行时,其实上内存中有两份LIB_3。如果使用动态链接,则只需加载一份LIB_3即可。2- 程序发布变得简单。还是上面例子,如果使用静态链接,LIB_3代码修改了,需要重新编译一份P_1和P_2进行发布,加.原创 2021-05-15 16:55:56 · 184 阅读 · 0 评论 -
程序员的自我修养读书笔记---可执行文件的装载与进程6
6.1- 进程虚拟空间每个程序运行,拥有自己的独立虚拟空间。虚拟空间大小由CPU地址线宽度决定。对于32位地址线,进程虚拟空间为2^32=4G。其中0-3G为用户空间,3-4G为内核空间。6.2- 装载的方式覆盖装载:由编程人员自行控制,将程序加载到内存、从内存卸载。映射装载:通常由操作系统控制,也就是常说的内存管理。可执行文件-虚拟内存-物理内存按页划分、建立映射。需要执行那段程序,就根据映射关系,将可执行文件对应的页信息加载到物理内存中。6.3- 从操作系...原创 2021-05-10 10:57:22 · 142 阅读 · 0 评论 -
程序员的自我修养读书笔记---windows PE/COFF5
略原创 2021-05-07 17:16:08 · 109 阅读 · 0 评论 -
程序员的自我修养读书笔记--涉及到的命令
4- 静态链接P101 查看elf文件、.o文件段属性:objdump -h xxxP104 elf文件、.o文件反汇编:objdump -dxxxP107查看重定位表:objdump -rxxx.oP119 查看静态库文件由哪些目标文件组成:ar -t libxxx.aP119 查看库文件、elf文件、.o文件符号表:objdump -txxxP120解压库文件: ar -x libxxx.aP120 关闭gcc内置优化: gcc -c -f...原创 2021-05-07 16:53:04 · 113 阅读 · 0 评论 -
程序员的自我修养读书笔记---静态链接4
章节总结本章首先介绍了以下内容:1- 目标文件再被链接成可执行文件时,输入目标文件的各个段是如何合并到输出文件中,链接器又如何为他们在输出文件中确定空间、地址。2- 一旦输入段的地址被最终确定,接下来进行符号解析、重定位。链接器对各目标文件中引用的符号进行解析,对需要重定位的指令、数据进行修补,使他们指向正确位置。4.1- 空间和地址分配(重点阅读)P101两步链接:1- 扫描所有输入目标文件,获取各段长度、属性信息。2- 符号解析和重定位。4.2- 符号解析与重..原创 2021-05-07 16:35:04 · 177 阅读 · 0 评论 -
如何制作一个静态库并调用库里的函数接口--转载
目的:制作一个库文件,在c文件中调用库文件的接口。步骤:1- 制作库文件。将c文件制作成.o文件;利用ar命令(ar -rcs libxxx.a xxx.o)将.o文件制作成.a文件。2- 定义头文件,供其他.c文件引用库接口。3- 其他.c文件调用库接口。4- 制作可执行文件(gcc -o xxx xxx.c -L ./ -lyyy),试验。注意:1- 使用ar制作库文件时,库文件的名字必须以lib开头。例:libtest.a。2- 制作可执行文件命令:...转载 2021-05-07 15:22:33 · 718 阅读 · 0 评论 -
程序员的自我修养读书笔记---目标文件里有什么3
主要讲解了目标文件的各种信息。主要介绍了ELF文件的代码段、数据段和BSS段等与程序相关的段结构信息。还详细介绍了ELF文件的文件头、段表、重定位表、字符串表、符号表、调试表等相关结构。从本章了解到,无论是可执行文件、目标文件和库,实质上都是基于段的文件或这种文件的集合,程序的源码经过编译后,按照代码、数据分别存放到相应的段中,编译器(汇编器)还会将一些辅助信息(符号表、重定位信息等)按照表的方式存放在目标文件中。通常情况下,一个表往往就是一个段。3.1- 目标文件格式目标文件是源文件.原创 2021-05-07 11:34:55 · 177 阅读 · 1 评论 -
程序员的自我修养读书笔记---编译和链接2
1- P38 一个c代码如何编译成可执行文件xx.c+xx.h--->预编译xx.i--->编译成xxx.asm--->汇编成xxx.o+xxx.a--->链接成xxx.out2- P41 编译器做了什么3- P48链接器诞生的背景(重点阅读)原始的程序员将程序记录在打点的纸带上,纸带上每一行的孔可以理解成某个物理地址处的指令。场景: 我们在执行纸带第一行的指令,假定第一行的指令表示要跳到第5行去执行另一条指令。如果我们发现代码有bug,需要...原创 2021-04-28 14:10:27 · 189 阅读 · 1 评论 -
程序员的自我修养读书笔记---温故知新1
1- P4 hello world引发的一系列问题。答案在哪里?2- P14 内存不够。程序直接访问物理内存引发的3个问题:a- 地址空间不隔离。进程A和B运行在物理空间,进程A直接操作物理空间(操作的物理地址可能是进程B的进程空间),导致进程B运行异常。解决方案:内存隔离。进程A、B运行与虚拟内存,虚拟内存和物理内存的映射由MMU决定。当A访问越界,产生中断,异常处理。b- 程序置换效率低下。如果内存空间只有2G。其中程序A需要0.5G,程序B需要1G,程序C需要0.8..原创 2021-04-28 10:51:15 · 167 阅读 · 1 评论