2021-07-10

操作系统的接口

  • API 与 ABI 的区别
    ABI 是用来约束链接器 (Linker) 和汇编器 (Assembler) 的。基于不同高级语言编写的应用程序、库和操作系统,如果遵循同样的 ABI 定义,那么它们就能正确链接和执行。
    因此 API 是用来约束编译器 (Compiler) 的:一个 API 是给编译器的一些指令,它规定了源代码可以做以及不可以做哪些事。API 与编程语言相关,如 LibC 是基于 C 语言编写的标准库,那么基于 C 的应用程序就可以通过编译器建立与 LibC 的联系,并能在运行中正确访问 LibC 中的函数。

操作系统抽象

执行环境

普通控制流

异常控制流

中断,异常,陷入

进程

  • 一个进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。

地址空间

是操作系统通过处理器中的内存管理单元 (MMU, Memory Management Unit) 硬件的支持而给应用程序和用户提供一个大的(可能超过计算机中的内存条容量)、一致的(连续的地址空间)、私有的(其他应用程序无法破坏)的存储空间。

文件

操作系统的特征

五个方面的特征

  • 虚拟化 (Virtualization)、并发性 (Concurrency)、异步性、共享性和持久性 (Persistency)。

Error response from daemon: Container 91830a1e319a7180cab0ee39410afd57b4856ad5f850f8f23cc304cc71d29964 is not running
解决办法:

wswtc@wswtc-ThinkPad:~$ docker ps -a 
CONTAINER ID   IMAGE                COMMAND    CREATED        STATUS                    PORTS     NAMES
9f424c7d7b65   hello-world          "/hello"   37 hours ago   Exited (0) 37 hours ago             compassionate_bose
91830a1e319a   rust:1.53.0-buster   "bash"     37 hours ago   Exited (0) 32 hours ago             rCore-Homework-v3
wswtc@wswtc-ThinkPad:~$ docker start 91830a1e319a 
91830a1e319a
wswtc@wswtc-ThinkPad:~$ docker exec -it rCore-Homework-v3 /bin/bash
root@91830a1e319a:/# 

lab 1实战

移除标准库依赖

  • 移除标准库依赖
  • 提供语义项 panic_handler
  • 移除 main 函数
  • 分析被移除标准库的程序

构建用户态执行环境

rust编程之道

第三章

  • 同时支持静多态和动多态
  • rust一切皆为表达式,表达式皆有值,值皆有类型。rust类型安全。
  • rust中大部分类型是在编译时就可确定大小
  • 对于不可确定的用引用
  • 零大小类型
  • trait
    • 接口抽象

元组

  • 是不同类型的集合
    数组和切片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值