3.23[Q]s

为什么已经在容器里了,但是无法运行命令?

官方文档和实际项目有所出入,即官方文档里的运行命令是simbricks-run,但并没有找到定义改操作的文件,我现在要在实际项目中寻找能运行程序的命令,应该如何寻找?

为什么要有"插槽",即中间步PCIe的接口,直接让PCIeChannel接到self上,省略掉中间的add_if不行吗?

什么是磁盘镜像格式?"Gem5 支持 raw,QEMU 支持 raw/qcow2"什么意思?

什么叫把文件当真实的硬盘来读写?这是怎么做到的?

为什么一定要替换为主机为Gem5适配的I40E主机类?直接用原来的不行吗?

为什么对于Host0,1要加入两个盘,cfg和tar?只用一个不行吗?

复制代码
# create disk images
distro_disk_image = system.DistroDiskImage(sys, "base")
# Disk images shipped with simbricks
class DistroDiskImage(DiskImage):
    def __init__(self, h: sys_host.FullSystemHost, name: str) -> None:
        super().__init__(h)
        self.name = name
        self.formats = ["raw", "qcow2"]

    def available_formats(self) -> list[str]:
        return self.formats

    def path(self, inst: inst_base.Instantiation, format: str) -> str:
        path = inst.env.hd_path(self.name)
        if format == "raw":
            path += ".raw"
        elif format == "qcow2":
            pass
        else:
            raise RuntimeError("Unsupported disk format")
        DiskImage.assert_is_file(path)
        return path

    def toJSON(self) -> dict:
        json_obj = super().toJSON()
        json_obj["name"] = self.name
        json_obj["formats"] = self.formats
        return json_obj

    @classmethod
    def fromJSON(cls, system: sys_base.System, json_obj: dict) -> DiskImage:
        instance = super().fromJSON(system, json_obj)
        instance.name = utils_base.get_json_attr_top(json_obj, "name")
        instance.formats = utils_base.get_json_attr_top(json_obj, "formats")
        return instance

这里构建镜像的逻辑是什么?输入base时,得到的是什么?

我在experiments目录下创建了生成的sim_logger.py后,在目录下生成了__pycache__和其中的文件/workspaces/simbricks/experiments/pycache/sim_logger.cpython-310.pyc,这个文件还不可打开,这都是什么?为什么会生成?有什么用?

解析命令,并将命令注入到模拟节点的代码是在哪里?怎么实现的?

这里host将app加入,即add_app方法后,再BaseLinuxHost基类里,add_app方法就只是将app加入到applications当中,我现在就是迫切的想知道System是在哪段代码里定义了对Host的application操作?

复制代码
def simple_instantiation(
    simulation: sim_base.Simulation,
) -> inst_base.Instantiation:
  instance = inst_base.Instantiation(sim=simulation)
  instance.preserve_tmp_folder = False
  instance.create_checkpoint = True
  return instance

这是simple_instantiation方法,实现了什么?然后再往后如何定位对application操作呢?

这个def()->:中,->是什么意思?

simulator = st(simulation)什么意思?"for comp in system._all_components.values(): # 遍历System中所有组件(Host/NIC/Switch等) if comp in simulation._sys_sim_map: # 跳过已分配模拟器的组件(避免重复) continue"为什么要跳过已分配模拟器的组件?什么叫已分配模拟器的组件?

有个问题,在使用simple_simulation方法时,会传入很多组件,但是simulator是在每个for循环中构建的,simulator也没加入到simulation当中里啊?即我现在感觉最后return的simulation和在for循环中构建的simulator无关,因为我没看到它们之间建立关系的代码

在simulation里写的代码,和在system里写的,分工是怎样的?就是我之前一直以为system里写的才是对各个组件的模拟逻辑,但实际上好像是simulation里?那么system里好像就只是在不断定义不同的组件?

这里st(simulation)当中,st是什么?类型是什么?

我现在是在docker容器当中遇到的这个问题,那我现在安装,即执行pip install命令,是安装到哪?如果关闭容器,下次再启动时,是否还有这个文件?

相关推荐
固定资产管理系统软件2 分钟前
商务局RFID固定资产管理系统的应用价值与落地要点解析
大数据·python
码农颜23 分钟前
6.3 主函数流程剖析
开发语言·php
研☆香1 小时前
聊一聊前端的常见字 关键字
开发语言·前端·javascript
lancyu1 小时前
关于多轮对话机器人的上下文Token优化和解决方案
人工智能·python·深度学习·机器学习·chatgpt·机器人·prompt
草莓橙子碗2 小时前
Claude 使用指南
开发语言·python
工具分享2 小时前
陪跑跟品爆单AI选品助手,高效跟品会赔本吗?
人工智能·python
COOLMO研究AI2 小时前
Python 如何实现 AI API 的提示词(Prompt)版本管理与热更新
人工智能·python·prompt
老郑聊AI业财智造2 小时前
Transformer 技术架构与源码分析
人工智能·python·深度学习·语言模型·架构·transformer·软件工程
longxiaozhang62 小时前
C# Array类:数组其实没那么难
开发语言·c#
程序员三藏2 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例