SylixOS ECS 启动过程
在 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 启动过程相关推荐
- 菜鸟 Linux系统学习1简介 安装 云服务器 启动过程
Linux 是一种 自由和开放源码的类 UNIX 操作系统. Linux 英文解释为 Linux is not Unix. Linux 是在 1991 由 林纳斯·托瓦兹 在赫尔辛基大学上学时创立的, ...
- Android系统的启动过程
Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...
- Linux0.11内核引导启动过程概述
Linux0.11仅支持x86架构.它的内核引导启动程序在文件夹boot内,共有三个汇编代码文件.按照启动流程依次是: (1)bootsect.s.boot是启动引导的意思,sect即sector,是 ...
- linux启动sql server数据库,SQL Server数据库启动过程详解及启动不起来的问题分析及解决方法...
第五步.启动系统数据库model model系统数据库同样也是SQL Server启动过程中用到的一个非常关键的数据库,如果这个库损坏,SQL Server启动也会失败,关于model数据不能启动的原 ...
- Linux必知必会的目录与启动过程
第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [root@znix ~]# cat /etc/sy ...
- Spring Boot启动过程(二)
书接上篇 该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractAppl ...
- Linux X Window System运行原理和启动过程
本文主要说明X Window System的基本运行原理,其启动过程,及常见的跨网络运行X Window System. 一) 基本运行原理 X Window System采用C/S结构,但和我们常见 ...
- Spring 容器的启动过程
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来源:http://r6f.cn/b47K 一. 前言 ...
最新文章
- ansys大变形开关要不要打开_ANSYS网格质量评定指标介绍
- 重绘Winform窗体
- JZOJ 5490. 【清华集训2017模拟11.28】图染色
- 收下这 16 篇最新论文,周会基本不用愁
- 鸿蒙之火是什么意思,鸿蒙突然火了!鸿蒙是什么?
- LinkedList的实现原理
- 小红书起诉4家涉虚假种草通告平台及MCN机构,索赔1000万
- react15源码简析(分享PPT)
- 北大软微计算机技术硕士复试,【高分学长带你飞】北大软微408学长超详经验贴...
- cassandra 避免 allow filter 提升性能的方法
- 【前端冷知识】冷门函数之Math.hypot
- indesign选中不了图片删除_文件夹删除不了怎么办?文件夹删除不了的解决方法...
- java access group by 用法_详解SQL中Group By的用法
- Geany 编程工具的使用
- Android虚拟机是以哪种方式实现的,底层逻辑又是怎样的?
- C++ Primer 学习笔记 第十九章 特殊工具与技术
- Java中arraycopy()的使用说明
- 第10章 Python第三方库概览
- 利用BCD码计数器和7段码转换器子电路
- 【基因调控网络】Discovering Gene Networks with a Neural-Genetic Hybride(单层神经网络与遗传算法混合算法2005)
热门文章
- overleaf表格_latex编写表格.doc
- 飞控陀螺仪,磁力计,加速计,四元数姿态结算
- vue中a标签的href属性的写法
- 自考02324离散数学第二章思维导图
- iOS之KVC原理自定义KVC
- Aocoda-RCF7/F7 MINI飞控无法解锁的疑难杂症-使用 Betaflight 10.8.0调参软件地面站刷写固件以及AOCODAF722MINI 配置文件
- Android 九宫格布局(图片上传、预览)
- Taq DNA聚合酶的种类与应用现状
- 第二章 数列极限与数值级数
- invalid byte 1 of 1-byte UTF-8 sequence