diff --git a/.obsidian/app.json b/.obsidian/app.json index 9e26dfe..6abe4c1 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 68a970a..858192b 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -2,5 +2,6 @@ "obsidian-git", "obsidian-kanban", "obsidian-excalidraw-plugin", - "calendar" + "calendar", + "obsidian-image-auto-upload-plugin" ] \ No newline at end of file diff --git a/专业积累/原理/编译原理.md b/专业积累/原理/编译原理.md new file mode 100644 index 0000000..0451218 --- /dev/null +++ b/专业积累/原理/编译原理.md @@ -0,0 +1,33 @@ + +- [ ] 正则表达式 + +# 词法分析 +## 状态转换图 +## 正则表达式 + +# 语法分析 +## 文法 +## 语法树 + +# 目标代码 + + +# 编译 +## 数据 +- 数据类型 + - 检测可以调用哪些函数 + - 决定应该调用哪些函数 + - 函数决定数据的操作 +- 数据对象 + - 数据地址 + - 别名 +## 函数 +- 函数类型 + - 函数名 + - 返回值 + - 参数 +- 函数体 + - 局部变量 + - 语句列表 + + diff --git a/专业积累/原理/计算机.md b/专业积累/原理/计算机.md new file mode 100644 index 0000000..ef32376 --- /dev/null +++ b/专业积累/原理/计算机.md @@ -0,0 +1,81 @@ +# 数字电路 +## 电路 +### 数字电路 +- 与 +- 或 +- 非 +### 时序电路 +- 触发器 +- 存储器 +## 接口 +### 基础运算 +- 加 +- 减 +- 乘 +- 除 +### 总线接口 +- 数据编码 +- 数据寻址 +- 数据读写 + +### 控制单元 +- 自动计算 +### 指令编码 +- 算术运算 +- 逻辑运算 +- 数据传送 +- 控制指令 +### 存储器 +- 寄存器 +- 内存 +- 硬盘 + +# 编码 +## 机器码 +### 开关、跳线 +- 拨动开关传递数据与指令 +### 纸带 +- 打孔传入数据与指令 +- 自动区分数据与指令 +- 自动计算 +## 高级语言 +### 汇编 +### [[C++ 基础]] + +# 数据编码 +## 大小端 +## 编码 +### ASIC +### Unicode +### UTF8 +# 元件 +## 存储 +### 内存 +- 断电后数据丢失 +- 数据易读易修改 +### 只读存储器 +#### 特点 +- 易读难修改 +- 断电不丢失数据 +- 数据编码起点,开机指令起点 +#### 作用 +- 硬件检测、诊断和初始化 +- 基本的输入输出功能(BIOS) +- 交接指令数据,执行外盘主引导扇区 +### 系统盘 +- 第一个扇区为主引导扇区 +- 主引导扇区逐步加载操作系统 +## 显示 +### 显示器 +- 数据转换为像素 +- 显示像素 +### 显卡 +- 控制显示器显示数据 +- 文本模式 和 图像模式 +- 显存存储数据 +![数据映射](https://res.weread.qq.com/wrepub/CB_3300050845_txt008_3.jpg) + + + + + diff --git a/专业积累/工具/LLVM.md b/专业积累/工具/LLVM.md index e69de29..ac60fa8 100644 --- a/专业积累/工具/LLVM.md +++ b/专业积累/工具/LLVM.md @@ -0,0 +1,49 @@ +# LLVM 库 + +## LLVM CORE + +该库提供了源代码和目标代码隔离的优化器,同时支持许多CPU的代码生成支持。这些库基于专门定义的代码表示,被称为LLVM中间表示即LLVM IR。该库提供了完整的文档,可以简单的使用该库作为优化器或者代码生成器来,开发自己的编程语言,或者扩展现有语言。 + +## Clang + +LLVM原生的C/C++/Objective-C编译器,设计目标是使实现快速编译、提供极端有用的错误和警告信息以及提供构建源代码级工具的平台。该子项目包括了Clang Static Analyzer和clang-tidy两个用于自动code check的工具,也是使用clang对C/C++代码进行语法分析的最佳示例 + +## LLDB + +LLDB基于 LLVM core和Clang构建,为LLVM项目的原生调试器。使用Clang ASTs和表达式语法分析器,LLVM JIT,LLVM反汇编器等构建,因此使用感极佳。相比于GDB可以更快且更节省内存的加载符号。 + +## libc++ & libc++ ABI + +这两个子项目为提供了C++标准库的标准规范和高性能实现,包括对C++11和C++14的完整支持。 + +## compiler-rt + +该子项目提供底层代码生成器的高度校准的实现。该项目同时提供运行时库的实现以及动态测试代码如AddressSanitizer,ThreadSanitizer,MemorySanitizer和DataFlowSanitizer实现。 + +## MLIR + +该子项目是构建一个可重用且可扩展的编译器的基础架构。其目标是解决软件分片,提供针对异构硬件的编译效果,降低构建领域定制编译器的成本以及帮助连接现有的编译器。 + +## OpenMP + +提供在Clang中使用OpenMP时的OpenMP运行时环境。 + +## polly + +实现了一系列cache局部优化,以及使用一个polyhedral模型实现了自动化并行化和向量化。 + +## libclc + +该子项目的目标是实现一个OpenCL标准库。 + +## klee + +实现了一个符号化虚拟机,该项目采用了一个定理证明器来评估所有的动态路径,通过一个试图寻找bug和实现功能证明的程序。klee的主要特性是其发现bug时可提供一个测试用例。 + +## LLD + +该项目为一个新的链接器。可用于替换系统链接器,且链接速度更快。 + +## 2. LLVM pass实验准备 + +该项目的核心为"LLVM",包括所有用于处理中间表示和将IR转换为目标文件的工具,库和头文件。工具包括汇编器,反汇编器,二进制分析器,二进制优化器。同样包括基本的回归测试。类似C的语言可使用Clang作为前端。该组件可将C,C++,Objective C和Objective C++编译为LLVM bitcode(LLVM引入的一种中间表示IR),且可将bitcode转换为目标文件。 \ No newline at end of file diff --git a/插件文档/日记/2023-08-07.md b/插件文档/日记/2023-08-07.md new file mode 100644 index 0000000..4b0da15 --- /dev/null +++ b/插件文档/日记/2023-08-07.md @@ -0,0 +1,13 @@ +士大夫十分· +- 胜多负少 +- 电风扇广泛 +sdf # sdaf + # sfdsf + ## title + + \ No newline at end of file diff --git a/插件文档/日记/2023-08-08.md b/插件文档/日记/2023-08-08.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/日记/2023-08-11.md b/插件文档/日记/2023-08-11.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/日记/2023-08-15.md b/插件文档/日记/2023-08-15.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/日记/2023-08-22.md b/插件文档/日记/2023-08-22.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/日记/2023-08-23.md b/插件文档/日记/2023-08-23.md new file mode 100644 index 0000000..8c75eb9 --- /dev/null +++ b/插件文档/日记/2023-08-23.md @@ -0,0 +1,18 @@ +## 修复反馈 + +### 已修复 + +已修复的问题已做完版本,无需新包,热更新后即可查看 + +1. 安装包只支持64位机型 +2. 充值下单失败已修复 +3. 用户协议与文本资质已修改 +4. 调查问卷10级后会显示在主界面左下角 + +![image-20230823133758898](F:\ouczbs\znotes\Assert\Image\image-20230823133758898.png) + +### 权限调用 是 + + + +1. 权限申请的问题不太明白,是指保护指引之后不能立即弹出 权限申请吗? \ No newline at end of file diff --git a/插件文档/日记/2023-08-24.md b/插件文档/日记/2023-08-24.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/日记/2023-08-25.md b/插件文档/日记/2023-08-25.md new file mode 100644 index 0000000..e69de29 diff --git a/插件文档/看板/汇编.md b/插件文档/看板/汇编.md new file mode 100644 index 0000000..41ceb3e --- /dev/null +++ b/插件文档/看板/汇编.md @@ -0,0 +1,18 @@ +--- + +kanban-plugin: basic + +--- + +## 进行中 + +- [ ] [[nasm]] + + + + +%% kanban:settings +``` +{"kanban-plugin":"basic"} +``` +%% \ No newline at end of file diff --git a/插件文档/看板/编译原理.md b/插件文档/看板/编译原理.md new file mode 100644 index 0000000..6bb6f17 --- /dev/null +++ b/插件文档/看板/编译原理.md @@ -0,0 +1,31 @@ +--- + +kanban-plugin: basic + +--- +## [[编译原理]] +## 词法分析 + +- [ ] 正则表达式 +- [ ] DFA NFA + + +## 语法分析 + +- [ ] 文法 +- [ ] 语法树 + + +## 目标代码 + +- [ ] 中间代码 +- [ ] 目标代码 + + + + +%% kanban:settings +``` +{"kanban-plugin":"basic","new-note-folder":"专业积累/原理"} +``` +%% \ No newline at end of file diff --git a/插件文档/看板/设计.md b/插件文档/看板/设计.md new file mode 100644 index 0000000..318587e --- /dev/null +++ b/插件文档/看板/设计.md @@ -0,0 +1,20 @@ +--- + +kanban-plugin: basic + +--- + +## 目标 + +- [ ] 配置文件解析与生成 +- [ ] 跨语言调用 +- [ ] 反射编辑器 + + + + +%% kanban:settings +``` +{"kanban-plugin":"basic"} +``` +%% \ No newline at end of file diff --git a/日常积累/云服务器/腾讯云.md b/日常积累/云服务器/腾讯云.md index 3e9c2d6..7827ffe 100644 --- a/日常积累/云服务器/腾讯云.md +++ b/日常积累/云服务器/腾讯云.md @@ -2,4 +2,8 @@ [IP](175.24.226.114:8888) -![image-20230720110920769](F:\ouczbs\znotes\Assert\Image\image-20230720110920769.png) \ No newline at end of file +![![](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/image-20230720110920769.png) + +## COS + +## Picgo diff --git a/程序开发/安卓开发/Gradle.md b/程序开发/安卓开发/Gradle.md index a73fed1..3036bb8 100644 --- a/程序开发/安卓开发/Gradle.md +++ b/程序开发/安卓开发/Gradle.md @@ -221,6 +221,33 @@ dependencies { - 多渠道配置 +# 清单合并 + +## 流程与优先级 + +![](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/10795559-64a9cc02c079e5a7.webp) + +## 合并冲突启发式算法 + +- `` 元素中的属性绝不合并—仅使用优先级最高的清单中的属性。 + +- [android:required 属性 >``](https://developer.android.com/guide/topics/manifest/uses-feature-element.html?hl=zh-cn) and [``](https://developer.android.com/guide/topics/manifest/uses-library-element.html?hl=zh-cn) 元素使用 *OR* 合并,因此如果出现冲突,系统将应用 `"true"` 并始终包括某个清单所需的功能或库。 + +- `` + + 元素始终使用优先级较高的清单中的值,但以下情况除外: + + - 如果低优先级清单的 `minSdkVersion` 值*较高*,除非您应用 [`overrideLibrary`](https://developer.android.com/studio/build/manifest-merge?hl=zh-cn#override_wzxhzdk35uses-sdk_for_imported_libraries) 合并规则。 + - 如果低优先级清单的 `targetSdkVersion` 值*较低*,合并工具将使用高优先级清单中的值,但也会添加任何必要的系统权限,以确保所导入的库继续正常工作(适用于较高的 Android 版本具有更多权限限制的情况)。 如需了解有关此行为的详细信息,请参阅有关[隐式系统权限](https://developer.android.com/studio/build/manifest-merge?hl=zh-cn#implicit_system_permissions)的部分。 + +- 绝不会在清单之间匹配 `` 元素。 每个元素都被视为唯一元素,并添加至合并清单中的常用父元素。 + +> **不依赖于默认属性值。**由于所有唯一属性都合并到相同元素中,如果高优先级清单实际上依赖于属性的默认值而不需要声明,则可能会导致意外结果。例如,如果高优先级清单*不*声明`android:launchMode` 属性,则会使用 `"standard"` 的默认值;但如果低优先级清单声明此属性具有其他值,该值将应用于合并清单(替代默认值)。因此,您应该按期望明确定义每个属性。(每个属性的默认值都会记录在 [Manifest reference](https://developer.android.com/guide/topics/manifest/manifest-intro.html?hl=zh-cn) 中)。 + +## 合并规则标记 + +合并规则标记是一个 XML 属性,可用于表达您对关于如何解决合并冲突或删除不需要的元素和属性的首选项。 + ## 文章 diff --git a/程序开发/编程语言/汇编/nasm.md b/程序开发/编程语言/汇编/nasm.md new file mode 100644 index 0000000..677a541 --- /dev/null +++ b/程序开发/编程语言/汇编/nasm.md @@ -0,0 +1,21 @@ +# 汇编 +## 代码 +```c++ +section .data + text db "Hello World", 10 + +section .text + global _start + +_start: + mov rax, 1 + mov rdi, 1 + mov rsi, text + mov rdx, 14 + syscall + + mov rax, 60 + mov rdi, 0 + syscall +``` +![image.png](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/20230810092431.png) \ No newline at end of file