
在无线路由器的设置页面上,我们可能会看到一个名为「智能队列」的功能(根据品牌或操作系统的不同,也可能会被称做「智能 QoS」、「SQM」等)。
这一功能是如何工作的?是否能让网速变快?是否需要打开?本文将尝试解答这些问题。
继续阅读“「智能队列」如何改善你的家庭网络质量”在无线路由器的设置页面上,我们可能会看到一个名为「智能队列」的功能(根据品牌或操作系统的不同,也可能会被称做「智能 QoS」、「SQM」等)。
这一功能是如何工作的?是否能让网速变快?是否需要打开?本文将尝试解答这些问题。
继续阅读“「智能队列」如何改善你的家庭网络质量”前段时间,我学习了中国大学 MOOC 上的信息素养通识教程:数字化生存的必修课。在经过老师的同意后,我将自己的课程作业、讨论区发布的帖子整理到个人博客上,便于后续进行回顾。
命令行、Shell 脚本、纯文本编辑器(Vim 等)、版本控制(Git)…… 无论是否为计算机行业从业者,合理使用这些工具,都能够大幅度提高使用电脑的效率。
但是,不少人应该和之前的我一样,对这些工具有过一定的了解,也会简单使用其中的一部分功能。但是,想要系统、全面地学习这些工具,却又觉得无从下手。
而来自 MIT 的 The Missing Semester of Your CS Education 课程(下文中简称 missing-semester
),能够帮助我们更好地了解和使用这些工具。
Hacker Tools 是 MIT 的一系列讲座,介绍了在软件开发等场景中,能够大幅度提升效率的工具,例如 Shell 脚本、纯文本编辑器、版本控制系统等。
虽然对于课程中的大部分内容,很多人都应该或多或少的接触过,但是通过这门课程,能将这些知识系统的整理下来,从而在今后遇到问题时,能够意识到需要使用哪些工具,并主动尝试去使用。所以,如果想要进一步提升自己在电脑使用、软件开发方面的效率,推荐大家学习一下这一系列课程。
在我学习 Hacker Tools 之后,通过本文以思维导图的形式整理了课程的主要内容,方便进行查漏补缺和针对性的学习。
单片机通常通过编程器来下载程序。而 Arduino 中有一小段 bootloader 程序,在复位的时候运行,可以通过串口接收程序并写入单片机,因此可以不使用额外的编程器,直接通过串口下载程序。
前段时间,在为 AirTerminal 增加 XMODEM 协议的支持后,打算在下一个版本增加 Arduino 程序下载功能。所以先提前了解一下 Arduino Bootloader 使用的程序下载协议,并通过本文整理相关知识。
文章仅提供了解这些协议所需要的链接,对于协议的具体内容不再过多描述。文章内容将会根据自己的进一步了解不断更新。
Assignment 3 的主要目标,是使自己的操作系统能够运行用户态程序。这个 Assignment 中,需要实现特权级别切换、上下文切换、调度器、系统调用处理、虚拟内存等代码。并将之前实现的 shell 移动至用户态,做为一个进程来运行。
Assignment 2 实现了一个 FAT32 文件系统,以及其所依赖的内存申请释放程序、SD 卡驱动。同时,也需要实现 ls, pwd, cd, cat 等命令行工具,方便进行文件系统操作,验证文件系统是否可用。
在 CS140e Assignment 0 中,主要通过点亮 LED,来熟悉 Rust 和 Raspberry Pi 的开发环境。Assignment 1 正式开始操作系统的编写,主要包括驱动、bootloader 和 shell。
本文记录了 Assignment 1: Shell 的学习过程。
CS140e 是 Stanford 的一门操作系统课程。与其他操作系统课程相比,该课程使用现代的程序设计语言 Rust 来编写实验代码;且所有代码运行在 Raspberry Pi 3 上,通过真实硬件进行实验,学习起来应该更有乐趣。
目前有进一步熟悉操作系统基础知识的想法,而且手上刚好有一块正在吃灰的 Raspberry Pi,所以打算从这门课开始学习。
本文主要记录 Assignment 0: Blinky 的学习经过。
最近在同学的 QQ 空间上,发现了这样一道智力题:
有一条河,河边有一个猎人牵着一头狼,一个男人带着两个小男孩,还有一个女人带着两个小女孩。
如果猎人离开,狼就会把所有人吃掉。
如果男人离开,女人会把两个小男孩掐死。
如果女人离开,男人会把两个小女孩掐死。
河里有一条船,船上只能乘坐两人(狼算一人),只有猎人、男人、女人会划船。
如何使他们全部过河?
看到这道题,首先想到的是农夫过河问题。既然这两个问题十分相似,那我就尝试按照农夫过河问题的思路,通过程序来找出该题的解。