在 SylixOS ECS 中可以通过 SHELL 命令 “ecs“ 和 ”srtp“ 创建一个新的容器环境,其中 ”ecs“ 命令本质就是使用 ”srtp"。

1、新容器环境的创建是在 SHELL 命令背景线程中创建的,注册命令 "srtp" 时会加上创建新容器标志 LW_OPTION_KEYWORD_NEW_CONTAINER,如下图所示:

2、SylixOS 处理 shell 命令的调用链:API_TShellExec() ---> __tshellExec() ---> __tshellBgCreateEx(),在 __tshellBgCreateEx() 中如果判断到创建新容器标志则会调用 __containerCreate() 创建新的容器上下文。成功创建后调用 __containerEnter() 进入新容器上下文中,即更新页表基址到新容器页表基址处,如下图所示:

3、在 SHELL 命令背景线程中成功进入新的容器环境之后就开始执行 "srtp" 命令的处理部分,即调用 __tshellConCmdSrtp()。"srtp" 命令在启动可执行文件的流程上与命令 "exec" 类似,大致按照如下流程加载 elf 文件、创建进程等。需要注意的是在动态库加载过程中,即调用 API_ModuleRunEx() ---> vprocRun() ---> API_ModuleLoadEx() ---> __elfListLoad() ---> __elfLoad() ---> elfLoadExec() 中。如果判断不在内核容器中,也就是容器号不为 0,则将原本需要加载的库 libvpmpdm.so 替换为 libsrtpe.so。相关接口也就会调用 libsrtpe.so 中的接口,如下图所示:

SylixOS ECS 启动过程相关推荐

  1. 菜鸟 Linux系统学习1简介 安装 云服务器 启动过程

    Linux 是一种 自由和开放源码的类 UNIX 操作系统. Linux 英文解释为 Linux is not Unix. Linux 是在 1991 由 林纳斯·托瓦兹 在赫尔辛基大学上学时创立的, ...

  2. Android系统的启动过程

    Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...

  3. Android系统默认Home应用程序(Launcher)的启动过程源代码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...

  4. Linux0.11内核引导启动过程概述

    Linux0.11仅支持x86架构.它的内核引导启动程序在文件夹boot内,共有三个汇编代码文件.按照启动流程依次是: (1)bootsect.s.boot是启动引导的意思,sect即sector,是 ...

  5. linux启动sql server数据库,SQL Server数据库启动过程详解及启动不起来的问题分析及解决方法...

    第五步.启动系统数据库model model系统数据库同样也是SQL Server启动过程中用到的一个非常关键的数据库,如果这个库损坏,SQL Server启动也会失败,关于model数据不能启动的原 ...

  6. Linux必知必会的目录与启动过程

    第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [root@znix ~]# cat /etc/sy ...

  7. Spring Boot启动过程(二)

    书接上篇 该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractAppl ...

  8. Linux X Window System运行原理和启动过程

    本文主要说明X Window System的基本运行原理,其启动过程,及常见的跨网络运行X Window System. 一) 基本运行原理 X Window System采用C/S结构,但和我们常见 ...

  9. Spring 容器的启动过程

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来源:http://r6f.cn/b47K 一. 前言 ...

最新文章

  1. ansys大变形开关要不要打开_ANSYS网格质量评定指标介绍
  2. 重绘Winform窗体
  3. JZOJ 5490. 【清华集训2017模拟11.28】图染色
  4. 收下这 16 篇最新论文,周会基本不用愁
  5. 鸿蒙之火是什么意思,鸿蒙突然火了!鸿蒙是什么?
  6. LinkedList的实现原理
  7. 小红书起诉4家涉虚假种草通告平台及MCN机构,索赔1000万
  8. react15源码简析(分享PPT)
  9. 北大软微计算机技术硕士复试,【高分学长带你飞】北大软微408学长超详经验贴...
  10. cassandra 避免 allow filter 提升性能的方法
  11. 【前端冷知识】冷门函数之Math.hypot
  12. indesign选中不了图片删除_文件夹删除不了怎么办?文件夹删除不了的解决方法...
  13. java access group by 用法_详解SQL中Group By的用法
  14. Geany 编程工具的使用
  15. Android虚拟机是以哪种方式实现的,底层逻辑又是怎样的?
  16. C++ Primer 学习笔记 第十九章 特殊工具与技术
  17. Java中arraycopy()的使用说明
  18. 第10章 Python第三方库概览
  19. 利用BCD码计数器和7段码转换器子电路
  20. 【基因调控网络】Discovering Gene Networks with a Neural-Genetic Hybride(单层神经网络与遗传算法混合算法2005)

热门文章

  1. overleaf表格_latex编写表格.doc
  2. 飞控陀螺仪,磁力计,加速计,四元数姿态结算
  3. vue中a标签的href属性的写法
  4. 自考02324离散数学第二章思维导图
  5. iOS之KVC原理自定义KVC
  6. Aocoda-RCF7/F7 MINI飞控无法解锁的疑难杂症-使用 Betaflight 10.8.0调参软件地面站刷写固件以及AOCODAF722MINI 配置文件
  7. Android 九宫格布局(图片上传、预览)
  8. Taq DNA聚合酶的种类与应用现状
  9. 第二章 数列极限与数值级数
  10. invalid byte 1 of 1-byte UTF-8 sequence