论文阅读
文章平均质量分 86
LinHan_Li
这个作者很懒,什么都没留下…
展开
-
虚拟内存管理
vvv原创 2022-09-29 17:56:55 · 901 阅读 · 0 评论 -
多处理器操作系统实现中存储器和通信的二重性
kkk原创 2022-08-29 15:22:52 · 558 阅读 · 0 评论 -
Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs
发发发发发发原创 2022-08-09 15:40:41 · 259 阅读 · 0 评论 -
Rust的安全系统编程
Rust的安全系统编程在编程语言设计中,两种看似不可调和的需求之间存在着长期的紧张关系。˲安全。我们需要静态地排除大类错误的强类型系统。我们想要自动内存管理。我们需要数据封装,这样我们就可以对对象的私有表示强制不变量,并确保它们不会被不受信任的代码破坏。控制。至少对于“系统编程”应用程序(如Web浏览器、操作系统或游戏引擎)来说,性能或资源约束是主要关注的问题,我们希望确定数据的字节级表示。我们希望使用低级编程技术优化程序的时间和空间使用。我们希望在需要的时候能够接触到“裸金属”。可悲的是,就像传统原创 2022-04-26 17:08:36 · 1853 阅读 · 0 评论 -
An Open Operating System for a Single-User Machine翻译
An Open Operating System for a Single-User Machine摘要描述了单用户操作系统的文件系统和模块化。主要的兴趣点是系统的开放性,它在自身和用户程序之间没有明确的界限,以及用来使系统健壮的技术,1介绍在过去的几年中,一种关于操作系统的思考方式已经被广泛接受。根据这种观点,操作系统的功能是提供一种子宫(或者,如果你喜欢,一个虚拟机),用户或她的程序可以在其中生存和开发,安全地与外部世界的严酷现实隔离[2,5,13]。事实上,作者之一是这种“封闭”系统[12]的原创 2022-03-11 09:09:06 · 163 阅读 · 0 评论 -
SafeDrop
摘要Rust是一种新兴的编程语言,旨在防止内存安全漏洞。然而,Rust目前的设计也带来了副作用,可能会增加内存安全问题的风险。特别是,它使用OBRM(基于所有权的资源管理),并在不使用垃圾收集器的情况下强制自动回收未使用的资源。因此,它可能错误地释放回收的内存,并导致free -after-free或double-free问题。在本文中,我们研究了无效内存回收问题,并提出了一种静态路径敏感的数据流分析方法SafeDrop来检测此类错误。我们的方法通过遍历控制流图和提取每个数据流的所有别名来迭代分析Rust原创 2022-01-17 16:46:08 · 438 阅读 · 0 评论 -
AC:本地语言的可组合异步IO论文翻译
AC:本地语言的可组合异步IO摘要:本文介绍了AC,一种在C/ c++等本地语言中用于可组合异步IO的语言构造。与传统的同步IO接口不同,AC允许线程发出多个IO请求,以便并发地对它们进行服务,因此长延迟操作可以与计算重叠。与传统的异步IO接口不同,AC保留了一种顺序的编程风格,不需要代码使用多个线程,也不需要代码被“栈分解”成回调链。AC提供了一个async语句来确定IO操作并发发出的机会,一个do…finish块来等待任何封装的异步工作完成,以及一个cancel语句来请求取消封装的do…finish原创 2021-10-11 10:36:20 · 460 阅读 · 0 评论 -
rustconf deadlock
会议记录chapter 1 problems之前有标准库,它需要一些同步原语,最重要的就是互斥量,通常是对于某些东西的互斥访问,例如数据或某些其他资源,以便在威胁之间安全的共享它,所以互斥锁是一种在线程间共享某些东西的方法。原语比互斥锁多,这些现在不重要,重要的是自己实现原语是困难的,锁实现中的错误通常非常微妙,很难找到,他们的错误是非常低级甚至有时特定于架构的代码之间的复杂交互。在linux Mac 和其他unix上实现了pthread的一部分——pthread_mutex_t所以鉴于他们的实现原创 2021-09-28 11:13:32 · 310 阅读 · 0 评论 -
Rust中的系统编程:超越安全
摘要Rust是一种新的系统编程语言,它为c提供了一种实用而安全的替代方案。Rust的独特之处在于,它在没有运行时开销的情况下加强了安全性,最重要的是,没有垃圾收集的开销。虽然零成本安全本身就很显著,但我们认为Rust的超级力量超越了安全。特别是,Rust的线性类型系统实现了传统语言(包括安全语言和不安全语言)无法有效实现的功能,这极大地提高了系统软件的安全性和可靠性。我们展示了这类功能的三个例子:零拷贝软件故障隔离、高效静态信息流分析和自动检查点。虽然这些能力长期以来一直是系统研究的焦点,但它们的实际应用原创 2021-07-15 11:42:23 · 823 阅读 · 0 评论 -
Recovering Device Driver翻译
摘要本文提出了一种新的机制,使应用程序能够在设备驱动程序失败时正确运行。因为设备驱动程序是大多数系统的主要故障部件,减少驱动程序引起的故障大大提高了整体可靠性。早期的工作表明,操作系统可以经受住驱动程序的故障,但是依赖于它们的应用程序却不能。因此,虽然操作系统的可靠性得到了极大的提高,但应用程序的可靠性通常没有得到提高。为了纠正这种情况,我们引入了一种新的操作系统机制,称为影子驱动程序。影子驱动程序监视设备驱动程序,并从驱动程序故障中透明地恢复。此外,它还承担了恢复过程中出现故障的驱动程序的角色。通过这原创 2021-06-16 19:11:33 · 188 阅读 · 0 评论 -
Inter-process communication in a safe kernel论文翻译
Inter-process communication in a safe kernel摘要:传统的操作系统遵循单片设计,在共享地址空间中执行所有内核子系统,从而以牺牲隔离和安全为代价获得良好的性能。微内核通过将操作系统组件分离到单独的地址空间来改进这种设计,但由于交换地址空间的成本很高,过去一直非常昂贵。RedLeaf是一个新的操作系统,它依赖于Rust编程语言的安全性,而不是硬件机制的隔离。RedLeaf在相同的硬件地址空间中运行所有的操作系统内核子系统,并通过语言安全和特殊通信原语的组合来实现隔离原创 2021-06-07 15:37:59 · 221 阅读 · 1 评论 -
RedLeaf
RedLeaf:安全操作系统中的隔离和通信摘要:RedLeaf是Rust公司为探索语言安全对操作系统组织的影响而开发的全新操作系统。与商品系统相比,RedLeaf不依赖于硬件地址空间进行隔离,而是只使用Rust的类型和内存安全语言。脱离昂贵的硬件隔离机制,我们可以探索采用轻量级细粒度隔离的系统的设计空间。我们开发了一个基于轻量级语言的隔离域的新抽象,它提供了一个信息隐藏和故障隔离单元。域可以动态加载和干净地终止,也就是说,一个域中的错误不会影响其他域的执行。基于RedLeaf隔离机制,我们演示了实现端到端原创 2021-05-24 21:06:45 · 1083 阅读 · 2 评论 -
mach ipc 学习
mach ipcmach kernel提供面向消息的,基于权能的进程间通信。进程间通信(IPC)原语有效地支持许多不同风格的交互,包括远程过程调用(RPC)、面向对象的分布式编程、数据流和发送大量数据。IPC原语操作于三个抽象:消息、端口和端口集。用户任务通过IPC原语访问所有其他内核服务和抽象。消息原语让任务发送和接收消息。任务向端口发送消息。发送到端口的消息被可靠地传递(消息可能不会丢失),并按照发送的顺序接收。消息包含一个固定大小的消息头和消息头后面可变数量的类型化数据。报头描述消息的目的地和大原创 2021-05-11 22:58:40 · 706 阅读 · 0 评论 -
天桥:微内核快速安全的进程间通信
天桥:微内核快速安全的进程间通信摘要:近年来,人们对微核进行了广泛的研究几十年了。但是,进程间通信仍然是运行时开销的主要因素,细粒度隔离通常会导致过多的IPC。ipc的主要开销来自于内核的参与,包括模式切换和地址空间更改的直接成本,以及由于处理器结构的污染而产生的间接成本。本文介绍了一种为微内核同步IPC而设计和优化的新型通信设备SkyBridge。SkyBridge在通信过程中不需要kernels的参与,它允许进程直接切换到目标进程的虚拟地址空间并调用目标函数。SkyBridge保留了传统的虚拟地址原创 2021-04-01 21:14:08 · 1219 阅读 · 0 评论 -
无线传感器网络定位问题的大象群优化算法
无线传感器网络定位问题的大象群优化算法摘要提出了一种用于解决无线传感器网络定位问题的大象群优化算法。EHO是一种相对较新的群体智能元启发式算法,在处理NP-hard问题时取得了很好的效果。无线传感器网络中的节点定位问题属于NP-hard优化问题,是该领域最重要的挑战之一。节点定位的目标是为监测区域内随机部署的位置未知的传感器节点设置地理坐标。节点定位需要报告事件的起源、协助传感器的组查询、路由和网络覆盖。对于节点定位问题,EHO算法的实现在文献中还没有发现。在本文的实验部分,我们与其他最先进的算法在同一原创 2021-03-26 00:28:19 · 1945 阅读 · 4 评论 -
For a Microkernel, a Big Lock Is Fine
For a Microkernel, a Big Lock Is Fine摘要众所周知,高端的可伸缩性需要细粒度的锁定,对于Linux这样的系统,即使在中等核心数的情况下,大的锁也会降低性能。然而,我们认为大锁对于设计用于运行在紧密耦合内核(共享缓存)上的微内核来说可能足够细粒度,就像设计良好的微内核的典型短系统调用一样,在实际负载下锁争用仍然很低。1.介绍为了同步访问共享内核状态,最简单的方法是使用大内核锁(BKL),该锁在内核进入时使用,直到内核退出才释放。由于争用,即使在中等处理器数量的情况下原创 2021-03-18 23:07:55 · 276 阅读 · 0 评论 -
迁移线程模型
将Mach 3.0升级为迁移线程模型摘要我们已经修改了Mach3.0,将跨域远程过程调用(RPC)视为一个单独的实体,而不是一系列消息传递操作。随着RPC的提升,我们通过更改线程模型来改进RPC期间的控制传输。与大多数操作系统一样,Mach将线程视为与单个任务静态关联的,RPC中涉及两个线程。另一种模型是迁移线程,在RPC期间,单个线程抽象在具有逻辑控制流的任务之间移动,并且“服务器”代码被被动地执行。我们兼容地用迁移线程替换了Mach的静态线程,试图将操作系统设计和实现的这方面隔离开来。新系统为线程原创 2021-02-18 15:27:58 · 914 阅读 · 0 评论 -
EROS快速能力系统论文总结
EROS:a fast capability system摘要1.EROS是一种基于能力的操作系统,用于使用单级存储模型的商品处理器。(啥叫单级存储模型?)2.单级存储的持久性对应用程序是透明的。3.支持透明持久性和基于能力的体系结构的性能后果通常被认为是负面的。4.EROS基本操作(ipc)与传统系统成本基本相同。5.EROS系统通过将精心选择的抽象对象与这些对象的缓存技术相耦合来实现其性能。6.对象(进程、节点和页面)得到了传统硬件的良好支持,减少了功能开销。7.这些对象的软件管理的缓存原创 2021-01-13 17:59:56 · 962 阅读 · 0 评论 -
CODOMs
CODOMs——论文总结摘要1.当前软件系统既不安全也不可靠。2.当前硬件提供的基本软件保护原语迫使系统在同一保护域中运行许多不可信的软件组件(例如过程,库,插件,模块),如果不是这样,需要进行地址切换,但是地址切换会导致性能的下降。3.本文提出了codoms(以代码为中心的内存域),这是一种新颖的体系结构,它可以在组件之间提供更细粒度的隔离,并可以高效率运行,零运行开销。4.在周期准确的全系统x86模拟器中实现codom表明,在正确的硬件支持下,细粒度的保护和性能可以和平共存。一.介绍复杂的原创 2021-01-03 21:26:33 · 913 阅读 · 2 评论 -
Harmonzing Performance and Isolation in Microkernels论文阅读
Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication论文阅读总结一.摘要本文提出了一个新的设计方案UnderBridge机制,在运行时UnderBridge在用户空间和内核空间移动操作系统组件。本文还对内核空间的英特尔用户空间内存保护密钥(PKU)进行了改造,以有效实现隔离,并且设计了一种跨操作系统的快速IPC机制。...原创 2020-12-05 22:49:36 · 756 阅读 · 0 评论