- 博客(190)
- 资源 (49)
- 收藏
- 关注
原创 [记录与分享]大模型辅助阅读万行以上规模代码
使用Cursor等AI工具(网页5),输入指令「分析项目的整体架构」,可快速生成模块划分图。例如,对VSCode源码执行此操作,模型会输出核心模块(如编辑器核心、扩展管理、UI组件)及其依赖关系。如输入「分析核心流程和入口文件」,模型会标注出main.js、router.js等关键文件,并生成调用关系图(Mermaid格式),大幅缩短定位时间。例如分析React项目时,可生成组件树与状态管理(如Redux)的数据流图谱,直观展示props传递路径。每个层级用大模型生成5-10句摘要,再选择性深入细节。
2025-03-10 21:54:41
268
原创 [记录与分享] 关系基础
• 及时修复裂痕:犯错后主动道歉并说明补救措施,如“上周迟到是因突发状况,今后我会提前1小时出发”。通过换位思考理解他人需求,如倾听朋友抱怨时回应“我能感受到你的压力”,而非简单建议“你应该怎么做”。• 积极倾听:用肢体语言(点头、眼神接触)和语言反馈(“我理解你的担忧”)表达关注。• 小承诺积累信任:从兑现微小承诺开始(如准时赴约),逐步过渡到重大责任。• 亲密关系:定期开展“信任对话”,互相反馈近期感到被信任/怀疑的具体事件。信任是“长期存款”,需通过日常细节(如每周主动汇报工作进展)证明可靠性。
2025-03-08 07:01:05
281
原创 [记录与分享]如何保持充足的能量
认知重构:当陷入消极情绪时,通过“语言复述法”转换视角(例如将“我被否定”重构为“这可能是改进机会”);· 兴趣活动:每周投入固定时间参与艺术创作、运动或阅读等兴趣领域,通过“心流体验”直接提升情感储备;· 人际关系维护:定期与亲友深度交流(如共进晚餐、协作项目),建立“情感安全网”以抵御外部压力。· 行为驱动:正向情感通过多巴胺分泌强化目标行动力,形成“行动-正反馈-持续投入”的良性循环。”)增强理解力,降低人际冲突风险。· 消耗:负面情绪(如焦虑、愤怒)会加速能量流失,导致“精神内耗”
2025-03-06 23:55:26
189
原创 [记录与分享]提高开源代码阅读效率
设定具体目标:在开始阅读前,明确目标(如修复Bug、学习技术实现或贡献代码),避免在庞大代码库中迷失方向。2. 从简单到复杂:优先阅读功能独立的小模块(如工具类、工具函数),积累对代码风格的熟悉度后,再挑战复杂模块(如并发处理或算法核心)。· 阅读高质量代码:定期分析知名开源项目(如Linux内核、Redis),学习其代码组织和命名规范,培养对优秀代码的直觉。· 版本控制工具:利用Git历史记录查看代码修改脉络,理解功能迭代和问题修复的上下文,帮助识别代码演进的逻辑。
2025-03-06 22:52:46
389
原创 基于 Intel SGX 和 libOS 的机密计算方案
(Library Operating System,简称 LibOS)是根据某类应用的特殊需求,由某一高级编程语言将原本属于操作系统内核的某些资源管理功能,如文件磁盘 I/O、网络通信等,按照模块化的要求,以库的形式提供给应用程序的特殊操作系统。它能代替操作系统内核合理地管理和控制所涉及的计算机资源,并将所涉及的计算机资源直接暴露给应用程序,让应用程序直接访问底层(虚拟)硬件,以便应用程序能够高效地运行。
2024-12-14 13:32:37
821
原创 RISC-V 规范总结
调用规约ELF 规范DWARF 规范该ABI的未来修订版将包括内存模型的规范映射集同步原语。在复杂系统中,理解程序行为并不容易。在这样的系统中,软件有时不能按预期运行。这可能是由许多因素导致。例如,与其他核心、软件、外围设备的交互、实时事件、较差的实现或以上这些组合。因为调试器的侵入性特点,并非总是可以使用调试器来观察正在运行的系统。提供程序运行数据的可视化非常重要,这需要在不产生大量数据情况下实现。一个实现方法是通过采用处理器分支跟踪技术。
2024-12-14 13:24:54
897
原创 物联网安全-ARMv8-M Trustzone 实操
根据代码设置和SAU/IDAU规则可以看出,我们将4G空间按照256M大小以此划分为非安全/安全交替的地址,相邻的256M空间映射到同一个物理器件,这种技术成为alias技术,安全世界可以使用安全地址访问硬件,而非安全世界可以使用对应的安全地址访问硬件,驱动程序无需修改。非安全世界只能通过跳板函数访问安全世界提供的服务。设置0x2001 8000开始,160KB SRAM为非安全,MPCBB_SecConfig_array每个bit表示256Byte的安全属性,1表示安全,0表示非安全。
2024-12-12 07:09:21
1287
原创 TPM 可信平台模块信任根规范
TPM 可以用来保护一些有价值的秘密或者数据,比如知识产权、个人财务数据等,这些都是网络罪犯惦记着的。基于软件的安全已经不管用了,NIST 在 SP 800-164 “移动设备硬件信任根安全指南”中承认了基于软件的安全的风险。实际上,NSIT 在 SP 800-147, 800-155, 800-164定义了 3 个可信计算需求。对于 NIST 来讲,可信意味着平台能够安全预期行为执行:软件清单是我们想要的配置、安全可用并且只能安全软件应该的方式操作。
2024-12-12 07:06:59
1221
原创 如何阅读一本书
该书强调阅读是一种主动的活动。阅读一般分做三种目的:娱乐消遣、获取资讯、增进理解力。只有最后一种目的的阅读能帮助阅读者增长心智,不断成长。该书主要论述指导如何通过阅读增进理解力。它将阅读分做四个层次基础阅读、检视阅读、分析阅读、主题阅读。在书后推荐了一系列的经典名著。阅读的四个层次是渐进掌握的,上一层次包括下一层次阅读法。第一层次的阅读,称之为基础阅读(elementary reading)。都指出一个人只要熟练这个层次的阅读,就摆脱了文盲的状态,至少已经开始认字了。
2024-12-11 21:18:53
744
原创 机密计算 CCA
CCA 硬件架构引入两种新的状态 Realm 和 Root,Realm 状态下运行机密计算程序,Root 运行 EL3 firmware。Armv9 硬件架构分为 4 种特权模式和 4 种状态:特权模式分别为EL3,EL2,EL1,EL0;状态分别为 Root,Realm,Secure, Non-Secure。状态控制寄存器位于 SCR_EL3 的 NS 和 NSE位,状态关系如图。图 3 系统状态控制寄存器Root 状态包含 EL3 模式Realm 状态包含 EL2,EL1,EL0 模式。
2024-12-11 20:58:51
1207
翻译 CPU流水线之旅
像动态跳转表这样的复杂设计很花哨,可以做很多事情,但编译器或CPU都不会预测会发生什么,因此复杂的代码很可能会导致停滞和错误预测。在这种情况下,OOO核心需要取消正在进行的工作,回滚到早期状态,等待所有微操作退役,丢弃它们及其结果,然后在新位置继续。虽然在非流水线世界中有一个很好的答案,但在今天的处理器中,所需的时间取决于附近的指令以及相邻缓存的大小和内容。引入了缓存,并扩大了现有的缓存。这是英特尔的架构和英特尔的指令集,英特尔介绍了所涵盖的最主要的功能,因此为了简单和一致性,我将继续使用他们的处理器。
2024-08-07 09:55:30
263
原创 【高性能网络协议栈】openonload 篇
Onload 是 Solarflare 公司开发的加速的网络中间件。它在用户空间实现了 TCP/IP 网络协议栈,能在用户空间直接访问(安全的)网络适配器硬件访问权限硬件。网络数据可以直接在网络和应用之间收发,而不必通过操作系统,这种技术称为“内核旁路”。
2023-11-04 20:19:28
2678
92
原创 【虚拟文件系统】文件系统 API 解读(1)
Linux 是近年来发展起来的一种新型的操作系统,其最重要的特征之一就是支持多种文件系统,使其更加灵活,从而与许多其它的操作系统共存。Linux支持ext,ext2,xia,minix,umsdos,msdes,fat32 ,ntfs,proc,stub,ncp,hpfs,affs 以及 ufs 等多种文件系统。为了实现这一目的,Linux 对所有的文件系统采用统一的文件界面,用户通过文件的操作界面来实现对不同文件系统的操作。对于用户来说,我们不要去关心不同文件系统的具体操作过程
2023-10-17 17:46:45
893
68
原创 【计算机网络】网络编程接口 Socket API 解读(11)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 shutdown() 调用会将 sockfd 指定的套接字上全双工连接上的一端或者两端关闭。如果 how 指定为 SHUT_RD,那么套接字上将不允许接收;
2023-10-14 08:48:24
2050
98
原创 【计算机网络】网络编程接口 Socket API 解读(10)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述续 【计算机网络】网络编程接口 Socket API 解读(8) SO_PEEK_OFF(Linux 3.4 后) 这个选项目前只有 unix
2023-10-10 20:09:21
2334
103
原创 【计算机网络】网络编程接口 Socket API 解读(9)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述续 【计算机网络】网络编程接口 Socket API 解读(8) SO_PEEK_OFF(Linux 3.4 后) 这个选项目前只有 unix
2023-10-07 09:27:35
2458
78
原创 【计算机网络】网络编程接口 Socket API 解读(8)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 本文主要描述 Linux 网络套接字层的用户编程接口。 BSD 兼容的套接字是用户进程和内核网络协议栈的统一接口。各协议模块被分配不同的协议家族(AF_IN
2023-10-04 21:05:46
1929
91
原创 【计算机网络】Linux 内核网络概述
网络应用程序的开发过去这些年按照指数级增长,这样增加了对系统网络子系统的速度要求和产品化要求。网络子系统不是 Linux 内核必须的组件(Linux 内核可以在没有网络支持的情况下编译通过)。然而非常少的计算系统(即便是嵌入式设备)很难没有网络支持,因为它们都需要联网。现代操作系统使用 TCP/IP 协议栈,协议栈实现了传输层以下的所有协议层,应用层协议通常在用户空间实现(HTTP、FTP、SSH等)。
2023-09-30 11:49:59
2109
60
原创 【IPC 通信】信号处理接口 Signal API(7)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。2.接口定义3.接口描述 exit() 函数会导致普通程序终止并将 status 的低字节返回给父进程。 通过 atexit(3) 和 on_exit(3) 注册的所有函数都会被调到,顺序和注册顺序相反。如果这些函数中有函数没有返回(
2023-09-29 20:27:30
581
22
原创 【IPC 通信】信号处理接口 Signal API(6)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。
2023-09-28 23:48:02
453
12
原创 【IPC 通信】信号处理接口 Signal API(5)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。
2023-09-28 15:57:43
1581
90
原创 【IPC 通信】信号处理接口 Signal API(4)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。2.接口定义3.接口描述 raise() 函数向调用进程或者调用线程发送一个信号,在单线程程序中它相当于: 在多线程程序中,它相当于: 如果信号导致信号处理函数调用了,那么 raise() 函数只
2023-09-24 10:30:00
715
87
原创 【IPC 通信】信号处理接口 Signal API(1)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。
2023-09-23 10:35:04
684
51
原创 【IPC 通信】信号处理接口 Signal API(3)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。2.头文件3.接口定义4.接口描述 sigaction() 系统调用用来改变进程对指定信号采取的行动。(参考 signal(7) 来总体看下各种信号。) signum 指定了信号对应的编号,这个值可以是 SIGKILL 和 S
2023-09-19 15:10:06
1678
118
原创 【IPC 通信】信号处理接口 Signal API(2)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。2.头文件3.接口定义4.接口描述 注意:signal() 的行为会根据不同的 UNIX 版本而变化,同样它也会根据 Linux 版本的不同而不同。考虑到程序的可移植性,尽量避免 signal() 的使用,而是使用 sigacton(2)
2023-09-18 16:08:29
743
32
原创 【四万字】网络编程接口 Socket API 解读大全
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 socket() 创建一个通信端点并返回一个指向该端点的文件描述符。返回的文件描述符号是当前进程没有打开的号最小的文件描述符。 d
2023-09-15 13:49:05
2105
95
原创 【计算机网络】网络编程接口 Socket API 解读(7)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 send()、sendto()、sendmsg() 调用用来向另一个套接字发送消息。 send() 通常只能用在连接状态(即接收者
2023-09-15 09:21:58
490
15
原创 【计算机网络】网络编程接口 Socket API 解读(6)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。
2023-09-13 15:42:51
663
30
原创 【计算机网络】网络编程接口 Socket API 解读(5)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 connect() 系统调用在 sockfd 指定的 socket 上连接 addr 指定的地址,addrlen 参数指定了 addr 的大小,addr
2023-09-12 18:22:08
2333
90
原创 【计算机网络】网络编程接口 Socket API 解读(4)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux 发行版 centos 9 上的 man 工具,和其他平台(比如 os-x 及不同版本会有些出入)。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 listen() 标记 sockfd 指定的 socket 为被
2023-09-10 12:59:01
1578
64
原创 【计算机网络】网络编程接口 Socket API 解读(3)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux 发行版 centos 9 上的 man 工具,和其他平台(比如 os-x 及不同版本会有些出入)。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 poll() 和 select() 做的事情差不多,它等待一个文
2023-09-09 12:19:15
2941
117
原创 【计算机网络】网络编程接口 Socket API 解读(2)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux 发行版 centos 9 上的 man 工具,和其他平台(比如 os-x 及不同版本会有些出入)。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 首先,我们需要注意 select 只能监听少于 FD_SETSI
2023-09-08 10:45:38
1529
46
原创 【计算机网络】网络编程接口 Socket API 解读(1)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux 发行版 centos 9 上的 man 工具,和其他平台(比如 os-x 及不同版本会有些出入)。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。2.头文件3.接口定义4.接口描述 创建一个通信端点(endpoint,通信的每一端都可以成为一个
2023-09-07 18:01:47
1733
24
原创 【机密计算实践】支持 Intel SGX 的 LibOS 项目介绍(二)
Mystikos 是一个运行库和一组工具,用于在硬件可信执行环境(TEE)中运行 Linux 应用程序。当前版本支持英特尔 SGX,而未来版本可能支持其他 TEE。
2023-08-22 16:56:36
478
19
原创 【机密计算实践】支持 Intel SGX 的 LibOS 项目介绍(一)
(Library Operating System,简称 LibOS)是根据某类应用的特殊需求,由某一高级编程语言将原本属于操作系统内核的某些资源管理功能,如文件磁盘 I/O、网络通信等,按照模块化的要求,以库的形式提供给应用程序的特殊操作系统。它能代替操作系统内核合理地管理和控制所涉及的计算机资源,并将所涉及的计算机资源直接暴露给应用程序,让应用程序直接访问底层(虚拟)硬件,以便应用程序能够高效地运行。
2023-08-22 11:41:59
1160
92
原创 【机密计算实践】OPEN Enclave SDK 安装与构建
机密计算是基于硬件支持的可信执行环境的,比如 Intel SGX 硬件技术上面的 enclave 以及 Arm Trustzone 上的 OT-TEE,不过这些异构的 TEE 之间差异还是蛮大的,所以亟需一种能够屏蔽 TEE 差异软件中间件或者 SDK,这就是本文将要提到的微软 Open Enclave SDK。Open Enclave 提供了异构 TEE (SGX 和 OP-TEE)的兼容,为上层机密应用提供了同一的接口,同时为机密计算提供了远程证明、多高级语言支持等功能。
2023-08-14 16:10:52
1518
133
原创 【ARM 调试】如何从 crash 信息找出问题原因
粉丝在进行 ARM-A 系列软件编程时遇到以下问题,串口打印这段日志后就重启了,粉丝求助问是什么原因?
2023-08-11 14:14:01
3531
48
原创 【机密计算-大厂有话说】微软 Open Enclave SDK
Open Enclave SDK 是一个与硬件无关的开源库,用于开发基于硬件的可信执行环境的应用程序,即飞地(Enclave)。Open Enclave (OE) 是一个 SDK,基于 C 和 C++ 语言构建安全区应用程序。不受信任的部分(组件)(称为 host)受信任的部分(组件)(称为 enclave)enclave是受保护的内存区域,可为数据和代码提供机密访问运行的环境。它是可信执行环境 (TEE) 的一种实例,通常由硬件保护,例如英特尔软件防护扩展 (SGX)。
2023-08-11 14:04:49
4873
113
原创 【机密计算-大厂有话说】AMD
VirTEE/sev 工具箱提供了一套基于 rust 语言的简单易用的 API 来访问 AMD EPYC 处理器内的安全处理器,这个库已经早已经支持传统的 SEV 固件,最近在 VirTEE 社区中又增加了新的 SEV-SNP 固件的支持,主要是第三代和新上市的 AMD EPYC 处理器。平台所有者:管理用来部署虚拟机、容器系统软件,比如主机或者云服务商。这些系软件主要指的是运行机密虚拟机、机器容器的虚拟机监视器 hypervisor。来宾所有者:指的是部署工作负载者。
2023-08-07 17:06:59
991
89
原创 【机密计算-大厂有话说】NVIDIA Hopper H100 上的机密计算
在过去的四代中,NVIDIA 一直在不断提高安全性和设备的完整性。最早有文献记载的工作之一是在 NVIDIA V100 GPU 中,为设备上运行的固件提供了 AES 身份验证。身份验证可以保证用户可以信任启动固件没有被破坏,也没有被篡改。随着时间的推移,NVIDIA 推出了诸如对 T4 中的固件进行加密,使恶意攻击者无法轻松查看潜在安全漏洞, Ampere 节点添加了外部微控制器审查固件(ERoT)以确保固件的有效性,到后来的 Hopper:一个完全保密的具有计算能力的GPU。
2023-08-05 11:34:49
1117
54
openonload用户空间网路协议栈C语言源代码
2024-12-11
Intel SGX 软件包安装指南,非常适合 SGX 初学者
2023-08-22
8 个非常优秀的计算机课件:清华、北大、上交大、国防科大、哈工大、浙大
2023-08-21
ADM 芯片版本背书密钥证书和密钥发布系统接口规范
2023-08-14
AMD 基于 SEV-SNP 技术的远程证明技术,用于机密计算
2023-08-14
Intel 安全防护扩展 SGX 开发指南,非常适合 SDK 初学者或者入门者
2023-08-14
微软基于异构 TEE 构建的开源机密计算 SDK,屏蔽 TEE 细节,增加机密计算 SDK 易用性
2023-08-14
NVIDIA Hopper H100, GPU 机密计算白皮书
2023-08-04
IEEE 基于TEE的安全计算 2023 标准规范
2023-08-04
7 个非常好的嵌入式开源实时操作系统源代码和文档
2023-07-25
移植 FreeRTOS 到 RISC-V S 模式和 U 模式实现运行模式隔离,运行在 M 模 secure monitor 上
2023-07-24
百度基于 Intel SGX 的机密计算 SDK 源代码和文档
2023-07-21
66 份 Common Criteria 信息安全通用准则技术规范,用于对信心安全产品进行评估保障评级 EAL
2023-07-21
如何高效的学习一门知识
2023-02-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人