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命令,是安装到哪?如果关闭容器,下次再启动时,是否还有这个文件?

相关推荐
Q26433650233 小时前
【有源码】基于 Hadoop 生态的化妆品销售数据存储分析与可视化 面向化妆品行业的用户画像构建与销售机会识别研究
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
2601_962078198 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_962218619 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949659 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin9 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885729 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户9 小时前
Java锁
java·开发语言
Li Ming&9 小时前
Windows Server 2019 操作系统《保姆级安装教程》
windows·信息与通信
李高钢9 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
多加点辣也没关系9 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript