6.S081 学习笔记 - Lab-Traps RISC-V 知识点 RISC-V 寄存器 RISC-V 寄存器 从表中可以看到,保存寄存器和临时寄存器的编号不是连续的。这是为了支持另一个只有 16 个寄存器的 RISC-V 变种 RV32E。 保存寄存器和栈指针在函数调用前后保持不变,它们的值由被调用者保存和恢复。 临时寄存器、函数参数和返回值在函数调用前后可能会被修改,它们的值由调用者保存和恢复。 关于调用前后是否一致可以这样理解:保存 2025-01-15 操作系统 #RISC-V #汇编
6.S081 学习笔记 - Lab-Page-tables 页表 页表是操作系统用来管理虚拟内存的数据结构。页表将虚拟地址映射到物理地址,这样操作系统可以隔离不同进程的地址空间,保证进程之间不会相互干扰。 页表结构 xv6 基于 Sv39 RISC-V,所以只用了 64 位虚拟地址的后 39 位。这 39 位中的前 27 位用于索引页表,后 12 位用于索引页内偏移。所以每页的大小是 \(2^{12}=4096\) 字节。 xv6 的页表逻辑上是一个 \( 2025-01-10 操作系统 #6.S081
6.S081 学习笔记 - Lab-System-calls 操作系统架构 操作系统需要实现三个基本功能:多路复用、隔离和交互。 操作系统将硬件资源抽象为服务实现这三个功能。 操作系统在进程间透明地切换资源,程序不必意识到自己在和其他程序分时共享资源。即使某个程序处于无限循环,也不会导致其他程序获取不到资源。 程序通过系统调用访问敏感资源,操作系统就能对访问进行合理的控制,避免程序之间的干扰。 系统资源的抽象使得进程间的交互变得简单,例如文件描述符抽象了许多 2025-01-05 操作系统 #6.S081
C 语言学习笔记 本文记录阅读《The C Programming Language Second Edition》时的一些笔记,对之前所学查漏补缺。 数据类型,运算符和表达式 基础类型和类型修饰符 short 和 long 实际是类型修饰符,它们都可修饰 int,long 还可修饰 double。 在声明变量时单独用 short 和 long 实际是 short int 和 long int 的简写。 sign 2025-01-05 编程 > C
6.S081 学习笔记 - 指针练习 练习源代码 这是 MIT 6.S081 课程中的一个指针练习,要求在第二个 Lab 前完成。 在课程的 Guidance 中是这样说的: Unless you are already thoroughly versed in C, do not skip or skim the pointer exercises above. If you do not really understand po 2025-01-05 编程 > C #指针 #6.S081
C 语言中的复杂指针声明 当初学习 C 语言时就对指针的声明感到疑惑。比如应该是 int *ip; 还是 int* ip;?其中的 * 是表示指针类型吗?但 * 又是解引用运算符,难道用在声明和表达式中是两个意思吗? 直到前段时间读了 Kernighan 和 Ritchie 的所著的《The C Programming Language》后豁然开朗,感觉对指针的理解基本明晰了。 指针声明的含义 首先 * 作为运算符只有乘和 2025-01-04 编程 > C #指针
6.S081 学习笔记 - Lab-Utilities xv6 系统调用 系统调用 描述 int fork() 创建一个进程,返回子进程的 PID int exit(int status) 终止当前进程,并将状态报告给 wait() 函数。无返回 int wait(int *status) 等待一个子进程退出;将退出状态存入 *status; 返回子进程 PID。 int kill(int pid) 终止对应 PID 的进程, 2025-01-04 操作系统 #6.S081
Celery 基础使用指南(更新中) 介绍 Celery 是一个分布式的任务队列。所谓任务队列就是给不同线程或进程分发任务的一种工具。分布式是指可以向不同的机器分发任务,充分利用多台机器的计算资源。Celery 由 Python 编写,但也有其他一些语言的实现。 celery logo 项目主页:https://github.com/celery/celery 官方文档:https://docs.celeryq.dev Celer 2024-12-14 编程 > Python #Celery #任务队列
SillyTavern 世界信息百科全书 本文译自 World Info Encyclopedia 世界信息百科全书 本页面由 kingbri 编写 kingbri, Alicat, Trappu 参与贡献 需要帮助?在 Discord 服务器上 @kingbri !我的私信已关闭。如果你想贡献内容,请联系我我,我会把你的名字加入贡献者名单! 世界信息对于为你的角色建立环境和世界至关重要。如 2024-11-05 有趣 #SillyTavern #LLM
在 Unity 中使用 GPS 定位功能 前段时间有在 Unity 中添加定位功能的需求,先后尝试了三种方法,在此记录一下。 Unity 原生方法 Unity 提供了 LocationService,LocationInfo 和 LocationServiceStatus 三个 API 来实现定位功能。 LocationService 类用于控制定位服务和获取定位数据,LocationService 类的实例可通过 Input.locat 2024-07-14 Unity #Android #Unity #定位
学生福利白嫖之路 (2)—— 续期 Azure 学生订阅 强烈建议将 [email protected] 加入邮件白名单,避免续期邮件被误判为垃圾邮件而错过续期时间。 新的续期流程 微软在你的学生订阅到期前 30 天会发一封续期邮件。比如我去年续期后的学生订阅到期时间是 2025 年 1 月 10 日,微软在 2024 年 12 月 11 日给我发了一封续期邮件。但是邮件被分到垃圾邮件里 2024-01-10 服务器 #Azure #学生订阅 #云计算
VMware 虚拟机无法正常启动后取出 vmdk 虚拟磁盘内的数据 前段时间用 Ubuntu 虚拟机写程序,调试的时候不知道怎么把虚拟机给搞坏了,虚拟机关机后就无法正常启动。但一些重要的数据还在虚拟机里面,得想办法把数据取出来。 VMware 虚拟机内的文件都存储在 vmdk 格式的虚拟磁盘文件中,打开虚拟机所在的目录,可以找到这些虚拟磁盘文件。虚拟磁盘文件的名称一般以虚拟机的名称开头,比如我的虚拟机名称为 Ubuntu01,对应的虚拟磁盘文件就是下图中的这些。 2023-12-03 疑难解决 #VMware #虚拟机
Spotlight—— 每日更换一张精美壁纸 之前的一篇文章介绍了 Windows 聚焦壁纸的 API,然后基于此写了一个可以开机自动换壁纸的小程序。我自己用了挺久了感觉还不错,最近把程序又完善了一下,现在发布出来。 Spotlight 是一个控制台程序,运行后会随机下载一张图片设置为壁纸。壁纸来源于 Windows 的锁屏壁纸库,这个库至少有 500 张以上的壁纸,所以一年多每天壁纸不重样是没问题的。程序运行截图如下。 壁纸图片及元信息保 2023-08-23 有趣 #Windows #壁纸 #C#
解决 Stable Diffusion 安装 ADetailer 插件后启动缓慢的问题 Stable Diffision 在安装了几个插件后启动速度变得很慢,要好几分钟才能启动起来,而之前只需要十几秒钟。经过排查后发现启动缓慢是 ADetailer 这个面部修复插件造成的,如果不启用这个插件就能达到原来的启动速度。 在 Github 上这个插件有一个 issue 反映了同样的问题。原来是 Adetailer 用到的一些模型是在 Huggingface 上的,如果网络不好访问 Hugg 2023-08-02 疑难解决 #Stable Diffusion #AI绘画
宝塔面板安装及使用 在前面的两篇文章中,我们创建好了服务器。目前服务器的状态就好像刚装好系统的新电脑一样,只有系统自带的软件。为了能让网站或者其他服务在服务器上面运行起来,我们需要安装必要的环境。服务器上的系统是纯命令行,没有图形界面,这对我们这样初次接触服务器的小白不太友好。宝塔面板是一个图形化的服务器管理程序,可以大大简化配置环境,部署网站,文件管理等操作。这篇文章介绍如何在服务器上安装宝塔面板以及宝塔面板主要的 2023-05-18 服务器 #Linux #VPS #宝塔面板 #运维
Github 学生包 ——Namecheap 一年免费 .me 域名 Github 学生包 (GitHub Student Developer Pack) 是 Github 及其合作伙伴为学生开发者提供的一系列免费的开发资源和工具。包括辅助生成代码的 AI 助手 Github Copilot,Jetbrains 旗下的各种 IDE,云服务器,域名和各类设计工具等等。Namecheap 是一家域名注册商,在 Github 学生包中 Namecheap 为我们提供了一年 2023-05-14 服务器 #DNS #域名 #VPS
Windows 锁屏图片 API Windows 的锁屏图片都很好看,很适合做桌面壁纸。Win11 实际上有将 Windows 聚焦图片作为桌面壁纸的选项,但是可能是由于网络原因经常不能自动更新,于是就写了一个将 Windows 聚焦图片设为壁纸的小程序。 又因为官方的 API 返回的 json 数据内容太多了,就精简了一下,写了这个 API。API 的使用说明和示例如下。 API 文档 注意:本 API 2023-05-07 有趣 #Windows #API #壁纸
使用 Azure 学生订阅创建免费的 Linux 和 Windows 虚拟机 在上一篇文章中我们成功申请到了 Azure 学生订阅,学生订阅中包含了一台 Linux 虚拟机和一台 Windows 虚拟机一年的免费使用时长(不会扣除 100 美元的免费额度)。但是只有特定配置的虚拟机才能免费使用。在创建虚拟机的过程中配置选项繁多,一不小心选错就会造成不必要的收费。这篇文章介绍如何在 Azure 门户中创建免费的 Linux 和 Windows 虚拟机并进行初步的配置。 2023-04-27 服务器 #Azure #Linux #学生订阅 #VPS
学生福利白嫖之路 —— 申请 Azure 学生订阅 本文将介绍如何申请 Azure 学生订阅。Azure 学生订阅是微软旗下的云计算服务平台 Azure 面向学生提供的一项免费订阅,其中包含众多免费服务。对于我们大学生来说,是一个非常不错的学习资源。如果你对云计算感兴趣或者想建立个人的网站,那么就快快申请吧。 1. 什么是 Azure 和 Azure 学生订阅 Azure Azure 是微软旗下的云计算服务平台,提供服务器、云存储、AI 等超过 2023-04-23 服务器 #Azure #学生订阅 #云计算
开始 从白嫖到 Azure 的学生订阅到现在创建好博客折腾了好一段时间。头一次玩服务器搞网站,自然是遇到了不少问题。自己一点点摸索,搜索资料,最终还是基本配置好了。既然搭了博客,那就开始写点东西吧。写什么呢?折腾服务器的过程就挺值得记录的。不过总感觉第一篇文章不先抒发点感想就写技术文章有点怪怪的。那么,下面就是一些感想。 万事开头难。 自学了各种杂七杂八的东西,我是能深深体会到这句话的道理。这个 “ 2023-04-12 随想