从零开始嵌入式

Thinking will not overcome fear but action will.

使用 supabase 注册和登录

使用 supabase 提供的 saas 能力实现注册和登录功能

使用 supabase 的后端示例 代码文件 文件清单如下: 1 2 3 .env package.json server.js .env 内容如下: 当我们创建好一个 supabase 项目后,在项目主页会有如下信息: 项目 API 您的 API 由 API 网关保护,每个请求都需要 API 密钥。 您可以使用以下参数来使用 Supabase 客户端库。 项目 UR...

Web 的 CSRF 防护

使用 node.js 后端的 CSRF 程序

CSRF 是什么 CSRF (Cross-Site Request Forgery,跨站请求伪造) 是一种攻击方式。 攻击者诱导已经登录的用户在不知情的情况下执行一些非本意的操作。 CSRF 攻击示例 假设一个场景: 用户已经登录了银行网站 A; 用户访问了恶意网站 B; 恶意网站 B 包含了一个自动提交的表单,指向银行网站 ...

bazel 的使用

本地构建以及使用 buildbuddy 远程构建

写在前面 一些网站 bazel 官网:https://bazel.google.cn/ buildbuddy 官网:https://bazel.google.cn/ Bazel 和 Bazelisk 的区别 bazel 是 Google 开源的构建工具,用于构建和测试各种软件项目。 bazelisk 是一...

Linux 共享终端的方法

使用 ttyd 共享任意进程

使用 ttyd 可以用网页共享任意进程,共享 bash 就可以在网页上运行终端(不依赖 ssh 服务); ttyd 的编译 编译过程中生成的 compile_commands.json 方便我们配置 VSCode 去阅读源码; 1 2 3 4 5 6 7 8 9 10 11 12 13 # 安装依赖 sudo apt install git sudo apt insta...

各系统共享网络的方法

windows 和 linux 共享网络给 qemu

写在前面 共享网络的方法: 在主机上创建 tap0 虚拟网卡设备,给该设备共享网络; qemu 使用主机上 tap0 的网络在虚拟机中创建 eth0 网卡设备; 参考资料: 理解 Linux 虚拟网卡设备 tun/tap 的一切 《跟唐老师学习云网络》 - 网络命名空间 Network Namespace 《跟唐老师学习云网络》 - Veth 网线 《跟...

VSCode+gdb+qemu 调试 linux 内核

断点可视化调试 x86_64 linux 内核

写在前面 先看文章 QEMU 仿真入门 制作 ubuntu-base 根文件系统 一些环境 wsl2 ubuntu22.04(已经升级 wslg); linux kernel 使用 5.19.6 版本; 运行方式 qemu 运行 vmlinux(debug 版本),然后通过 vscode+gdb 来调试 linux 内核源码; 调试流程 编译 linu...

Docker 运行 GUI 程序

wslg + docker-desktop 环境下在容器中运行 gui 程序

在 wsl2 运行步骤 运行环境 使用 wslg 中自带的 xserver 环境; wsl2 ubuntu22.04 环境,并且升级为了 wslg; 升级方法:使用管理员权限 powershell 运行下面命令更新 wsl2 内核: 1 wsl --update wsl2 后端的 docker-desktop 环...

Matlab 建模和代码生成

Simulink 绘图,Coder 生成代码

写在前面 Matlab 需要安装的组件 组件的介绍:MATLAB & Simulink; MATLAB 本体; Simulink 本体; 状态机:Stateflow; 代码生成: MATLAB Coder:.m 脚本转 C、C++ 代码; Simulink Coder:simulink、stateflow 模型转 C、...

WSL2 上编译本地 linux 内核模块

编译简单的 hello.ko

怎么开发内核模块 编译内核模块,依赖 linux-headers; linux-headers 是什么? linux-headers 是 linux 的开发头文件: linux-headers 系统正规路径在 /lib/modules/$(uname -r); 如果是通过 apt-get 自行安装的 linux-headers 包(通常和内核镜像、新模块包一起安装)...

Go Web 编程

使用 Go 语言创建 Web 应用

实践内容参考 build-web-application-with-golang; 一些规划 GOPATH 目录 $GOPATH 目录下有三个子目录: src 存放源代码(如 .go .c .h .s 等); pkg 存放编译后生成的文件(如 .a); bin 存放编译后生成的可执行文件; 代码目录结构 $GOPATH 下的 src 目录是接下来开发程序的...