SIG-MAIN周会分享_0815
Netlink 协议和 uevent 机制的作用原理与设计实现解析
Mentioned issue:#653: sysfs 支持 uevent
主要工作目录:
kernel/src/driver/base/uevent
kernel/src/net/socket/netlink
uevent 机制
关联:设备驱动模型
uevent( user space event)是 内核与用户空间的一种基于netlink机制通信机制,主要用于设备驱动模型,常用于设备的热插拔。
uevent 是 kobject 的一部分,用于在 kobject 状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。
例如:U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点;更进一步,可以通知其它的应用程序,将该U盘设备mount到系统中,从而动态的支持该设备。
Uevent 是通过 Netlink 套接字发送的一些特殊格式的字符串 ...
关于TLS证书
HTTPS、TLS/SSL的基本概念HTTPS(HyperText Transfer Protocol Secure)是HTTP协议的安全版。它通过加密来确保数据在客户端和服务器之间传输时不会被窃取或篡改。TLS/SSL是用于实现HTTPS的加密协议。SSL(Secure Sockets Layer)是最早的版本,后来被TLS(Transport Layer Security)取代,后者更安全和现代化。
证书与密钥的基本原理在HTTPS中,有两个核心概念:公钥加密和证书。
公钥加密:类比:想象你有一个密码箱,这个箱子有两把钥匙:公钥和私钥。公钥像是只负责锁上箱子的钥匙,任何人都可以得到一把公钥来锁上你的箱子,但只有你持有的那把私钥可以打开这个箱子。在HTTPS中,公钥用来加密数据,而私钥用来解密数据。
证书:类比:假设你去某个银行开设账户(比如申请一个公钥),银行会给你一个带有公章的证明文件,这证明你确实是你,并且你申请的账户(公钥)确实属于你。这个证明文件在HTTPS中就是证书。证书由证书颁发机构(CA,Certificate Authority)签发,它可以验证你的公钥确实属于你, ...
Sig-Main例会会议记录
Sig-Main例会会议记录第一次会议 0801blocklayerspeaker:谢润霖开发目的:
支持多类型磁盘设备共存
为 I/O 调度提供统一的接口核心数据结构:
对单个块 I/O 设备的抽象-bio
请求优化后,即将发往设备的请求-request
全局请求队列-request_queue
主要流程
进程通过系统调用发起I/0操作并阻塞
文件系统将进程谐求转换为bio,将其发送到全局请求队列中
向全局请求队列添加bio将会触发调度,调度程序将新增的bio转换为request,或者将其与队列中的reqeust合并
全局请求队列被定时器timeout触发,向硬件队列发送队列中的请求,然后将已发送的请求缓存在辅助队列中5. 硬件队列中的请求将被驱动程序拉取处理,并通过请求中的状态位储存处理的结果
值守线程定期轮询辅助队列,唤醒已完成请求对应的线程预期施工地点:kernel/src/driver/blockkernel/src/disk/ahci
kprobe 设计与实现 讨论speaker:陈林峰
内核追踪机制Linux存在众多 tracing tools,比如 ftrace ...
LLM+ 应用开发学习经验记录
LLM+ 申论微调大模型数据准备
申论数据集,包括申论题目和申论答案申论题型申论大纲训练集准备格式:prompt + completion测试集准备mi-gpt
Eureka Labs 学习笔记
https://karpathy.ai/https://github.com/EurekaLabsAIhttps://www.youtube.com/@AndrejKarpathy
开源项目管理经验
code review
在 GitHub 上玩转开源项目的 Code Review
GitHub官网文档: reviewing-proposed-changes-in-a-pull-request
google.github.io
Linux使用过程中的疑难杂症
磁盘相关
执行某个操作例如某脚本./local_test.sh init 的时候,遇到报错
解决方法:
查阅资料stackoverflow: At least one invalid signature was encountered
后进行尝试和排查,发现应该是磁盘空间不足了,进行虚拟机磁盘扩容
【实操】手把手教你完成Linux CentOS7磁盘扩容
Insufficient free space: XXX extents needed, but only 0 available
insufficient-free-space-x-extents-needed-but-only-y-available网络相关
ssh连接不上,有很多原因
扩容后虚拟机启动不起来了:原因是因为虚拟机的磁盘扩容后,虚拟机的分区表没有更新,所以虚拟机无法识别新的磁盘空间。
解决方法:VMWare中给Ubuntu 虚拟机硬盘扩容后无法正常开机的相关问题
启动之后网络不通,ens33网卡状态异常。连不到dockerhub,vscode也ssh不到
解决方法:Ubuntu上不了网:ifconf ...
Rust基本功修炼
Rust基本功修炼所有权所有权规则、内存与分配stack and heap
Drop
移动
Clone针对堆上的数据,使用clone方法,会在堆上重新分配内存,将数据复制到新的内存中,返回新的指针。
Copy针对栈上的数据,使用copy方法,会直接复制数据,不需要重新分配内存。对于只存在于栈上的数据,实现了copy trait的类型,可以直接复制数据,不需要重新分配内存。对他们来说,深度拷贝和浅度拷贝没有区别。Copy trait:Drop trait:实现了copy trait的类型,不允许实现drop trait。因为drop trait会在变量离开作用域时,释放内存,而copy trait的类型不需要释放内存。
所有权与函数在语义上,将值传递给函数和把值赋给变量是类似的:会发生移动或者复制。函数的参数也是变量的一种。
返回值与作用域
函数在返回值的过程中也会发生所有权的转移。
一个变量的所有权总是遵循同样的模式
把一个值赋给另一个变量时,发生移动。
当一个包含堆上数据的变量离开作用域时,它的值会被drop。除非数据的所有权被移动到另一个变量中。reference
引用允许你使 ...
电工实验理论考试考前突击
真题出发实验六 RLC串联谐振电路的研究
当L、C不变,R变化时,谐振频率不变,品质因数Q变化
$Q=\frac{1}{R}\sqrt{\frac{L}{C}}$
$f_0=\frac{1}{2\pi\sqrt{LC}}$实验五 一阶RC串联电路暂态过程的研究
在一阶RC电路中,当电路状态改变时,不能产生跃变的是
a. 电容电压
b. 电容电流
c. 电阻电流实验八 RL串联电路及其功率因素的提高
灯管电压 $UD$, 镇流器电压 $U{rl}$, 输入电压 $U$ 的关系是矢量关系:
$U=UD+U{rl}$
在RL串联电路中,当功率因数 $cos \theta<1$ 时,电路有功功率 P 和输入电压 U 的关系为:
$P=UIcos\theta$,$P<UI$实验一 电路元件伏安特性测试
为了减小测量误差,测量稳压管伏安特s性应采用: C未知
频率变化时不影响其阻抗值的理想元件是 电阻
下列TTL电路中,输出端能直接连接的是(与非门、或门、OC门)? OC门实验十三 单管共射放大电路
在单管放大器实验中,测量输入正弦波信号须选用 A
...