September 27, 2022
OAuth # Role # Client # 需要获取用户权限的的三方应用,需要用户授权(主动授权,隐式静默授权)
Resource server # 获取用户信息的 api 服务
鉴权服务 # 用于用户鉴权,通常跟 resource server 一起,也可独立拆开做鉴权服务
Resource owner # 用户,资源所有者
应用创建 # Redirect URI # Client ID # Client Secret # 需保密,不能暴露给端
Authorization # 获取用户授权
authorization code # 授权码, 通常用于 web server apps 的授权, 因为 client_secret 在服务端使用,是安全的
PKCE # proof key for code exchange,通常用于单页应用 single page apps, 纯 js 应用
...
June 10, 2022
硬件设计理念 # 并不绝对,都是权衡(trade-off)
越小越快 时钟周期 # CPU 时钟一个周期的时间
Register # 寄存器
在 RISC-V 架构里,一个寄存器的大小是 64 bit,64 bit 又称为 双字 ,32 bit 称为 字 ,通常只有 32 个寄存器
寄存器数量过多会增加时钟周期(电子信号走的远就更耗时)
1 Byte = 8 bits
Procedure # 程序
x10-x17,8个参数寄存器,用来传参和返回值 x1,返回地址寄存器 执行过程 # 把参数放到程序能访问到的地方 控制权转移给待执行程序 分配程序执行需要的存储空间 程序执行 把返回值放在调用者能访问到的地方 转移控制权给调用方 返回地址 # 程序执行完后需要返回到的 调用方 的地址
June 6, 2022
头文件 # 用于将函数,变量声明放在同一个文件里,便于被其他文件引用
仅包含声明,不包含定义,定义在 linker 阶段链接到程序里
如下图
#include "something.h" /*当前目录下找*/ #include <iostream> /*在系统环境里找, include directory*/
June 5, 2022
预处理 # C: C 或 C++
程序编译前的转换过程,不修改源文件,仅在内存中完成转换
preprocessor 不理解 C 的语法
指令在编译前被解析
参考
预处理指令 # 以 #symbol 开头(symbol为指令字符),以换行符结尾;
常用指令
指令 含义 #include 引入头文件 #define 宏定义 #ifdef, #ifndef, #endif. 条件编译指令 #if 0 不编译某些代码块 Object-like Macros # 类对象宏
#define PRINT_JOE /* 用于条件编译 */#define MY_NAME "Alex" /* 用于常量定义, 老代码里用到 */
June 3, 2022
Package # Module #