Comments (6)
仅仅实现文件的统一抽象和支持进程间通信的管道机制,还不够灵活。因为这需要两个进程之间相互“知道”它们要通信,即它们不能独立存在。我们可以进一步扩展
进动态程管理
的机制...
“进动态程管理”应改为“进程动态管理”
from rcore-tutorial-book-v3.
具体思路是,在某应用进程执行之前,父进程(比如 user_shell进程)要对子应用进程的文件描述符表进行某种替换。以输出为例,父进程在创建子进程前,提前打开一个常规文件 A,然后 fork 子进程,在子进程的最初执行中,通过 sys_close 关闭 Stdin 文件描述符,用 sys_dup 复制常规文件 A的文件描述符,这样 Stdin 文件描述符实际上指向的就是常规文件A了,这这时再通过** sys_close 关闭常规文件A的文件描述符。** 至此,常规文件A替换掉了应用文件描述符表位置 1 处的标准输出文件,这就完成了所谓的 重定向 ,即完成了执行新应用前的准备工作。
是不是应该为
具体思路是,在某应用进程执行之前,父进程(比如 user_shell进程)要对子应用进程的文件描述符表进行某种替换。以输出为例,父进程在创建子进程前,提前打开一个常规文件 A,然后 fork 子进程,在子进程的最初执行中,通过 sys_close 关闭 Stdin 文件描述符,用 sys_dup 复制常规文件 A的文件描述符,这样 Stdin 文件描述符实际上指向的就是常规文件A了,这这时再通过 ** sys_close 关闭 标准输出文件描述符 ** 。至此,常规文件A替换掉了应用文件描述符表位置 1 处的标准输出文件,这就完成了所谓的 重定向 ,即完成了执行新应用前的准备工作。
from rcore-tutorial-book-v3.
@buhe 最后关闭的确实是常规文件A,不过其他地方有点问题,已经将Stdin改成Stdout。
from rcore-tutorial-book-v3.
文件树中新增的系统调用 sys_close
好像要改成 sys_dup
├── lib.rs(新增两个系统调用:sys_close/sys_pipe)
└── syscall.rs(新增两个系统调用:sys_close/sys_pipe)
from rcore-tutorial-book-v3.
最后一段:“带接收” 应为 “待接收”
from rcore-tutorial-book-v3.
在描述信号Signal的旁注中有一处笔误:
但BSD和SV
FR3二者并不兼容。
from rcore-tutorial-book-v3.
Related Issues (20)
- 我想在user_lib中syscall的部分对Read操作增加枚举 HOT 1
- rCore-Tutorial-Book-v3/chapter8/4condition-variable HOT 1
- rCore-Tutorial-Book-v3/chapter8/5concurrency-problem HOT 4
- rCore-Tutorial-Book-v3/chapter0/8answer HOT 1
- ch4-lab无法编译成功 HOT 4
- rCore-Tutorial-Book-v3/chapter0/7exercise
- rCore-Tutorial-Book-v3/chapter4/9answer HOT 7
- rCore-Tutorial-Book-v3/chapter7/3cmdargs-and-redirection HOT 2
- 1. 运行完第一个用户程序之后,run_next_app()函数是被什么东西调用的?。进入_restore之后,匹配到的是用户申请的trap,不会运行run_next_app
- 建议将本书中部分”同学“字样 修改成 ”同学们“
- ch9: 2device-driver-3 成员变量 `avail_idx` 是可用环索引
- ch8: 用户态的线程管理一节 spawn 方法中 s_ptr.offset(32) 问题
- rCore-Tutorial-Book-v3/appendix-d/1asm HOT 1
- rCore-Tutorial-Book-v3/chapter9/2device-driver-0 HOT 4
- 代码仓RustSBI兼容性适配的对应文档更新
- rCore-Tutorial-Book-v3/chapter9/2device-driver-4 HOT 2
- rCore-Tutorial-Book-v3/chapter9/5answer HOT 1
- 优化调度算法一节的描述并修复错误
- 一些功能与内容方面的建议 HOT 4
- 新增基于vscode的devcontainer插件,利用docker配置环境的相关说明
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rcore-tutorial-book-v3.