程序安全
非恶意的程序漏洞 缓冲区溢出 危害:程序崩溃、执行恶意代码、提权等 ![[images/Pasted image 20251204132810.png]] 不完全验证 检查时刻到使用时刻错误(TOCTTOU) 在检查某个状态(如文件权限)之后、实际使用之前,该状态被恶意修改。 解决:原子操作、减少检查与使用间隔、使用安全 API、以最小权限运行程序 未公开的访问点(后门) 整数溢出错误 未以空终止符结尾的字符串 参数长度、类型和数值错误 竞态条件 两个进程在相同时间间隔内进行竞争,并且此竞争会影响任务的完整性和正确性 资源竞争依赖于两个不同进程的执行顺序和时间,从而使得这些错误很难被发现和测试 计算机病毒概述 计算机病毒是一些能够自我复制的代码段,它能附着在应用程序或系统的其他可执行部分。在宿主程序执行的某些阶段,它能够获得执行控制权。 广义上讲,计算机病毒可以指所有对系统有干扰或破坏作用的代码。 计算机病毒分类 按寄生的方式不同,可分为系统引导型病毒、文件型病毒和复合型病毒三种 按其破坏、危害程度可分为良性病毒和恶性病毒 按传染途径可分为驻留内存型病...
E-R模型
设计过程设计数据库模式、设计访问更新数据库的程序、以及设计控制数据访问的安全模式 概念设计阶段:构建实体-联系图 逻辑设计阶段:将实体-联系图映射到关系模式 物理设计阶段:指明数据库文件组织格式和索引结构 实体-联系模型实体-联系(Entity-Relationship)模型:E-R 模型是一种语义模型,将现实世界事物的含义和相互关联映射到概念模式 基本概念: 实体集 联系集 属性 一个数据库可以被建模为: 实体的集合 实体间的联系 实体集 实体是现实世界可区别于所有其他对象的一个“事物”或“对象” 实体有属性,它是实体集中每个成员所拥有的描述性性质 每个实体的每个属性都有一个值 实体集是相同类型,即具有相同性质(或属性)的一个实体集合 实体集的外延是指属于实体集的实体的实际集合 联系集 联系是指多个实体间的相互关联 联系集是相同类型联系的集合 联系集也可以有属性(用于描述联系,比如创建时间) 角色 实体在联系中扮演的功能称为实体的角色 角色是隐含的,通常不指定 当同样的实体集参与一个联系集多于一次,这类联系集称作是递归联系集 此时需用角色指明实体是如何参与联...
RISC-V Instruction Set
RISC-V Instruction Set(ISA)RISC Fixed-length instructions Load-store architecture: Only load (lw) and store (sw) instructions access memory All ALU operations work on registers only. Data StoreRegister OperandsRISC-V has a 32 $\times$ 64-bit register file: x0 to x31 Use for frequently accessed data word: 32-bit data double word: 64-bit data Register(s) Purpose Notes x0 the constant value 0 0 x1 return address ra x2 stack pointer sp x3 global pointer x4 thread pointer x5...
The Processor
单周期处理器核心子集 存储器访问指令:ld 和 sd 算术逻辑指令:add / sub / and / or 条件分支指令:beq 指令执行核心逻辑 程序计数器(PC)发送到指令所在的存储单元,并从中取出指令 根据指令的某些字段选择要读取的一个或两个寄存器 对于 ld 指令,只需要读取一个寄存器,但大多数其他指令需要读取两个寄存器 所有类型的指令在读取寄存器后都使用算术逻辑单元(ALU)进行运算 经过 ALU 后完成各类指令的所需操作都不同 基础的抽象电路图![[images/Pasted image 20260113211749.png]] PC 的数据来自两个加法器中的一个,需要根据一个数据选择器(multiplexor)进行选择 ALU 的第二个输入来自寄存器或者立即数,也需要一个数据选择器进行选择 ALU 的控制线会根据指令的字段来设置,从而控制 ALU 的运算类型 加入选择器的电路图![[images/Pasted image 20260113212133.png]] 上面的 Mux 控制 PC,当 ALU...
Arithmetic For Computer
Arithmetic Logic Unit (ALU)The ALU executes all arithmetic and logical operations defined by the ISA: Arithmetic: add, sub, mul, div Logical: and, or, xor, shifts (sll, srl) Comparisons: Used in branch instructions like beq, bne, blt, bge Overflow Detection Overflow occurs when the result of an operation cannot be represented within the fixed bit-width (e.g., 64 bits). In RISC-V, overflow in signed operations (e.g., add, addi, sub) triggers a hardware exception, and the Exception Program Co...
CPU Performance
CPU PerformancePerformanceDefine. $$\text{Performance}=\frac{1}{\text{Execution Time}}$$ X is $n$ time faster than Y Equals to: $$\frac{\text{Performance}{x}}{\text{Performance}{y}}=\frac{\text{Execution Time}{y}}{\text{Execution Time}{x}}=n$$ Measuring Execution Time Elapsed time Total response time, including all aspects Processing, I/O, OS overhread, idle time Determines system performance CPU time Time spent processing a given job Discounts I/O time, other job...
Git
常见场景 关键词 含义 示例 init 初始化项目或功能 init: 初始化博客项目结构 feat✅ 新功能、新文章 feat: 添加 RSS 订阅功能 fix✅ 修复 Bug 或问题 fix: 修复首页分页无法点击的问题 docs✅ 修改文档、文章内容 docs: 更新 README 添加部署步骤说明 style✅ 样式调整,无逻辑更改 style: 调整代码块字体大小和行间距 refactor✅ 代码重构,无新增或修复功能 refactor: 重构导航栏逻辑,优化加载速度 chore✅ 杂项,如构建配置、依赖更新等 chore: 更新依赖版本和构建脚本 perf 性能优化 perf: 提升首页渲染性能 test 添加或修改测试 test: 添加文章分页功能的单元测试 build✅ 构建系统修改、打包相关 build: 修改构建配置为 GitHub Pages 支持路径 ci 持续集成相关(如 GitHub Actions) ci: 新增自动部...
Gitlab CI
.gitlab-cihttps://gitlab.cn/docs/jh/ 参考文件image: 172.16.2.26:5005/docker/ci-tools:latest variables: HARBOR_USERNAME: "admin" HARBOR_PASSWORD: "Harbor12345" HARBOR_REGISTRY: "https://10.2.12.57" DOCKER_IMAGE_NAME: "10.2.12.57/test/$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}" stages: - build - test - prod build: stage: build image: docker:latest script: - | echo "Building Docker image for $CI_COMMIT_BRANCH bra...
Hot100-Java
数组T14. 除自身以外数组的乘积 Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. You must write an algorithm that runs in O(n) time and without using the division operation. 如果是遍历每个数,令每个数在每个位置上相乘,则时间复杂度为 $O(n^2)$,不满足题意 使用 lmul 和 rmul 记录:当前这个数左侧所有数的乘积与当前这个数右侧所有数的乘积,就能使用 lmul[i]*rmul[i] 得到对应位置的乘积 public class Solution { public in...
Docker-Compose
Docker ComposeCompose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。使用一个命令,就可以从 YML 文件配置中创建并启动所有服务 使用 Dockerfile 定义应用程序的环境。 使用 docker-compose. yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 最后,执行 docker-compose up 命令来启动并运行整个应用程序。 # yaml 配置实例 version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {} https://www.runoob.com/dock...