MIT 6.S081:操作系统工程
简介和例子 Introduction and Examples
操作系统的目标:
抽象硬件
多路复用 multiplex,即同时运行多个程序
隔离性
不同活动共享信息
安全或权限系统
高性能
大量不同的应用场景
分为用户空间和内核 kernel 空间,内核直接与硬件资源交互,应用程序通过系统调用 system call 来与内核交互
系统调用包括了 write、open、fork 等,看起来和普通的函数调用差不多
操作系统设计的矛盾点:
高效 - 抽象
强大 - 简单的 API
灵活 - 安全
组织和系统调用 Organization and System Calls
操作系统的隔离性和防御性
user/kernel mode
虚拟内存
kernel mode 权限更高,能够执行一些 user mode 不允许执行的命令
每个进程都有自己的页表 page table
将程序的控制权转移到内核的指令是 ecall,其传入一个数字作为参数,表示要求的系统调用
内核有时被称为可被信任的计算空间 Trusted Computing Base,其必须将用户的进程当作是恶意的
什么代 ...
愿你们的旅途上充满了无尽的诅咒和祝福
深渊的黎明,人类的黎明
尽管早已听说过“黑深残”的大名,但当我亲眼见证了娜娜奇和米蒂的故事后,我还是感受到了沉重的氛围。米蒂变成了不死的怪物,还有普鲁修卡变成了弹药包,都让我有种《钢炼》中的修·塔克的既视感。
但是这部作品目标并不是描写人类的黑暗面,而是为了展现深渊的黑暗面。与其说深渊是无情,更不如说深渊充满恶趣味,在它手下,任何生命都不过是玩物。也正是这一点,才让黎明卿不至于成为一个单纯的坏人。他已经不代表一个人了,而是代表了整个人类,代表这人类对深渊探索的欲望,也正是人类的复杂性,善和恶才能够如此和谐地在他的身上共存。没有他,人类会变得更好还是更糟?没有定论。只知道没有他,人类对深渊的认识进展会大幅放缓;没有他,也不会有那么多的痛苦和生离死别。所以,理解黎明卿,不应该将其与某个人对应,或是将其视为一个探索深渊的人工智能,正如每个祈手都是他一样,应当将其视为人类意志。
烈日的黄金乡
看了第二季,才知道深渊的黑暗才刚刚开始。
娜娜奇和米蒂重逢的剧情是一个绝妙的设计。当初娜娜奇让雷古送走米蒂时,那一声“等一下”让我潸然泪下。但是,归根结底,娜娜奇和米蒂的羁绊还是应该由她亲手斩断,由她亲手 ...
UCB CS188:人工智能入门
AI 简介 Intro to AI
制作出合理的 rational 机器,其中合理被定义为:做出最大化期望效用的行为
AI 历史:
早期
逻辑驱动
基于知识的方法
统计学方法
本课程分为两部分:
从计算中获取知识:搜索与计划,强化学习
从数据/经验中获取知识:概率和推理,监督学习
一致搜索 Uniformed Search
搜索问题包括:
状态空间
后继函数
初始态
目标测试
搜索树与搜索状态图
深度优先搜索和广度优先搜索
迭代加深搜索:拥有 DFS 的空间优势和 BFS 的时间优势
启发式搜索 Informed Search
启发式 heuristic 是:一个估计某状态离目标的距离的函数,为一个特定的搜索问题设计
贪心搜索:扩展看起来最近的结点
一致花费由路径花费(后向花费 g(n)g(n)g(n))排序,贪心由目标邻近(前向花费 h(n)h(n)h(n))排序,A* 由两者的和排序,即
f(n)=g(n)+h(n)f(n) = g(n) + h(n)
f(n)=g(n)+h(n)
可接受性 admissibility
不可接受(消极)假设通过边缘的陷阱好计划破坏了最 ...
你的故事千家说
菩提祖师
说起西游,菩提祖师的真实身份一直是一个绕不开的话题,可以说是一切故事的源头。是他给孙悟空取名,并教了许多法术,更教了孙悟空做人,才引起了后面的那么多事情。然而,就是这么一个高人,在赶走孙悟空后再也没有出现过,甚至没有出现在任何人的口中。对于其真实身份,有人认为是如来佛祖,有人认为是太上老君,但我觉得以下两种可能性最大:
菩提祖师不是任何神话中的人,而是作者虚构出来的一个理想中的完美形象。西游记本就是融合了道教、佛教、民间传说等诸多的神话体系,并自创了一套神话体系,所以作者喜欢自创角色的做法早已有之。从全文不难看出,作者把佛教、道教、天庭都讽刺了个遍,故本作绝不是所谓“抑道扬佛”的作品。那么,作者的理想是什么呢?是儒释道兼重。而菩提祖师恰恰是这样一个儒释道兼通的人。
另一种可能性是根本不存在菩提祖师这个人。正如那句“菩提本无树”所言,“本来无一物”。“灵台方寸山,斜月三星洞”这个字谜很明显是“心”字,而孙悟空又被叫作“心猿”,故整个拜师学艺的过程可以看作是他“寻心”的过程。所有的一切不过是暗示,一切本领都是孙悟空无师自通的。
六耳猕猴
要说全作最神秘的一难,当属六耳猕猴了。该 ...
直面天命
踏上取经路
如果说有哪一部作品让我又爱又恨,那必定有《黑神话:悟空》了。4 年前,我那时还不知道什么是 3A 大作,当时黑神话的第一个 PV 出来,大火,我也看了。然后又进一步了解到什么是 3A 大作,后来也玩了一些相关的游戏。所以黑神话可以说是我大型游戏生涯的领路人了。
如今,四年之期已到,黑神话也如约问世,理所当然地像当年一样掀起轩然大波,甚至吸引了更多圈外人。
直面天命
本作前三回,尤其是前两回的剧情相当不错。
第一回讲的金池长老的故事,我当年看《西游记》的时候也有过一样的疑问,为什么金池长老如此放不下那件袈裟?因为他是犹太人因为正如观音所说,“若不披上这件衣裳,众生又怎知我尘缘已断、金海尽干”。他倒置了因果,以为披上高僧的袈裟,就能成为高僧了。这种处理让剧情不止于原作的贪欲,在不影响原作的前提下进行了补充,确实是相当出色。
第二回所说的黄风怪的故事也相当不错。尤其是隐藏剧情,让黄风大圣的形象丰满起来。尤其是那一句“我来助你”,和广智的变身一样让人安心。
还有打完后说的那一句“满城百姓,感激不尽”,一个可靠而谦逊的形象立刻就树立了起来。比平时说大话,打 boss 时经常消失不见 ...
地球也包括我吗?
终结
围绕着机器人的寿命论和“心”的作品实在是太多了,我不久之前看的《可塑性记忆》也是非常类似的套路,都是一个一开始就有了期限,一开始就注定了结局的故事。但是,与那部作品着眼于“现在”和“回忆”不同,这部作品更着眼于“未来”和“希望”。
作品的世界背景设定颇具特色,海平面上升与人类文明倒退是一个宏大的话题,一不小心就会落入宏大叙事中,到时候就要么落入俗套,要么难以驾驭而烂尾。而《ATRI》却巧妙地将舞台设定在一个小镇,一个再熟悉不过的小镇,以至于让人忘却了那个宏大的背景,误以为是一个平静的地方发生的再平淡不过的故事。而海边、小镇、居民这种充满美好的夏日气息的设定,消解了末日、废墟、事故带来的不适感。因此能让人带入到与亚托莉的开心的日常中。
而略显平淡甚至枯槁的前期剧情,也通过日记上的叉以及夏生的回忆、亚托莉收到的最后的命令而留下一些悬念,能够吸引人看下去。
希望
第一个让我有所感触的是所有人团结一致,运用智慧和努力,最终点亮了教室的灯泡的剧情。政府已经放弃了他们,人们需要光,更需要希望。小小的火花不仅照亮了前路,更点燃了所有人的希望。
所以后面两个人看着亮起的小镇的场景,让我泪流满面。 ...
重构:改善既有代码的设计
基于 Refactoring: Improving the Design of Existing Code, Second Edition 编写
重构的原则
注意,重构应该是一小步一小步进行的,每一步都不应该破坏代码的功能。因此,最为理想的重构流程应当是修改-测试-提交并一步步迭代。
重构的目标是让代码更加模块化,或者探究其本质,是让代码能够被人读懂。正如作者所说:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
任何傻瓜都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。
添加新功能和重构应该是两个不同的过程,通常是在添加新功能之前,发现现有的的代码结构无法较好地添加新功能,所以先重构。两个过程应当是交替进行的,而不是同时进行
为什么要重构?
提高软件的设计
使软件更容易被理解
帮助寻找 bug
从长期来看,能提高编程的速度
重构类型:
准备重构:使添加新特性更容易
理解重构:使代 ...
献出心脏
墙的那边是海
直到外面的世界出现在我们眼前,笼罩在我们上头的是巨人的阴影。无论是多强的角色,在遇到巨人时都是那么地不堪一击,那么地脆弱。即使明知道是去送死,每个调查兵团的士兵都会毫不犹豫地慷慨就义。所以,他们加入调查兵团的目的是什么呢?是像艾伦一样发誓要“驱逐巨人”,还是像阿尔敏一样想要去“看海”。总之,决不可能是为了建功立业,收到万人敬仰。或许更可能是为了家人,如果我不去挺身而出,总有一天,其家人就会不得不被迫行动。当然,最可能的是他的誓词——为人类献出心脏。
海的那边是什么?
“墙的那边是海,海的那边是敌人,把海那边的敌人杀光 是不是就可以自由了”,如果说之前与巨人的战斗更多的是在讴歌人类的勇气与不屈的斗志,从此开始,巨人才真正进入了主题。原来之前被视为“天灾”的巨人是人造的,恐怖的巨人本质上竟然是人类的恶意。而且,如果是之前的巨人是绝对邪恶的,但这次的人类,双方各执一词,到底谁对谁错,已经难以评说了。正好呼应了开头所提到的有了巨人,人类得以团结起来,但如果只有人类的仇恨呢?
塔塔开
埃尔文团长
调查兵团大团长是我最喜欢的角色,这是一个卑鄙的小人。如果说别人是为了某些崇高的理想而 ...
愿你有一天能与你重要的人重逢
如果…
《可塑性记忆》讲述的是一个悲剧的故事,一个从开始就能够感受到分离时的悲伤的故事。“分离”是一个永恒的话题,而这个故事通过缩短寿命的时限,将这个问题硬生生地摆在了面前,甚至还进一步缩短至一个多月的时间,让人无法回避。
我们应该怎样做?有的人认为与其后世生活在回忆中,独自忍受着痛苦,不如尽可能避免与其接触,留下一些难忘的回忆。很多作品中禁止跨物种恋爱给出的理由都是这类。还有的人认为能够发生所谓的“奇迹”,总是会出现特例的,“爱”能够超越一切。前面提到的很多作品出总是会出现触犯规定的角色,而其结局往往如此。另有一些人认为 ta 没有死,而是活在自己的心中,会带着 ta 的那一份好好的活下去。
然而,这部作品向我们传达的并不是上述的意思。诚然,结局可以如很多人希望的那样写成出现了奇迹,艾拉记忆没有丢失,或者没有变成 wanderer,这样尽管有些庸俗,却不失为一个好结局。但是,正如作品的标题所说,记忆是可塑的,也正如艾露所说,她并不希望和失去记忆的好友去到那些充满回忆的地方,因为这完全是她的一厢情愿。相反,她要和新的好友一起去创造新的回忆,这就是“可塑性记忆”的内涵。
结尾处全程没有出 ...
我出门了
旅途与废墟
新海诚的这部作品我觉得还是挺可惜的,剧情的深度和立意都非常不错,可圈可点之处非常多。作为所谓“灾难三部曲”的最后一部,仅凭剧情上来说甚至说是最优秀的一部都不为过。然而,这里面的感情线是一大败笔,甚至导致整部作品意义不明。看了一些资料,或许新海诚原定的“双女主”的设定是更好的,但终究还是选择了更赚钱的设定。只能说他是“成也感情线,败也感情线”,在《秒速五厘米》中,感情线是最为出彩的地方,但到最近的《天气之子》和《铃芽之旅》,感情线破有些不明所以,或许现在的他已经年纪大了,“不相信爱情了”,当然更可能是因为他发现做感情线能赚很多小情侣的钱,所以每部作品都尽可能往里面添加。
“地震”,我们并不陌生,日本有“东日本大地震”、“阪神大地震”等,我们也有“汶川大地震”、“唐山大地震”等,所以不需要大加渲染就能够理解这些地点背后都代表着什么。这里面使用的所谓“蚓厄”,中国也有类似的“鲶鱼翻身地震动”的说法,还有“往门”、“常世”与“现世”的概念,都有类似的说法。把这些民间传说无缝地融入到现代都市中,带给人一种陌生又熟悉的感觉,从而消解了观众对“地震”的不适感,产生一种奇幻的感觉,也不至 ...
Docker
安装与配置
Docker 有利于更轻松的部署,更一致的运行环境,同时相比传统的虚拟机,开销更小
基本概念:镜像 image、容器 container、仓库 repository
从仓库获取镜像,从镜像启动容器
国内镜像源:
阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像工具 -> 镜像加速器 -> 复制加速器地址)
网易云加速器 https://hub-mirror.c.163.com
百度云加速器 https://mirror.baidubce.com
Docker 也有 hello world:
docker pull hello-worlddocker run hello-world
镜像
Docker Hub 上有大量镜像,获取的方法是:
docker pull 仓库名[:标签]
docker image ls 列出镜像,docker image rm 镜像名或 ID 删除镜像
Dockerfile 定制镜像
构建方法:
docker build -t 目标镜像名 上下文路径
常见指令:
FROM 指定镜像
RUN 执行指 ...
CMake
运行 CMake
现代 CMake 可以直接在根目录下执行指令了,而不是要进入 build 目录:
cmake -B buildcmake --build build
如果想要安装,也只需要一行命令:
cmake --install build
手动指定编译器:
CC=clang CXX=clang++ cmake ..
可以使用 -G"My Tool" 来选择自己想要用的构建工具(GNU Make,MSBuild 等)
基础介绍
CMakeLists.txt 中的第一行指明 CMake 的版本:
cmake_minimum_required(VERSION 3.7...3.29)if(${CMAKE_VERSION} VERSION_LESS 3.12) cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})endif()
设置项目:
project(MyProject VERSION 1.0 ...