Skip to content

Commit db6921b

Browse files
committed
update ch6:lec0/3
1 parent c7f0698 commit db6921b

File tree

2 files changed

+10
-21
lines changed

2 files changed

+10
-21
lines changed

source/chapter6/0intro.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194
│   │   └── page_table.rs
195195
│   ├── sbi.rs
196196
│   ├── syscall
197-
│   │   ├── fs.rs(修改:新增 sys_open/sys_dup)
197+
│   │   ├── fs.rs(修改:新增 sys_open)
198198
│   │   ├── mod.rs
199199
│   │   └── process.rs(修改:sys_exec 改为从文件系统中加载 ELF,并支持命令行参数)
200200
│   ├── task
@@ -225,11 +225,11 @@
225225
├── Makefile
226226
└── src
227227
├── bin
228-
│   ├── cat_filea.rs(新增)
228+
│   ├── cat_filea.rs(新增:显示文件filea的内容)
229229
│   ├── cmdline_args.rs(新增)
230230
│   ├── exit.rs
231231
│   ├── fantastic_text.rs
232-
│   ├── filetest_simple.rs(新增:简单文件系统测例)
232+
│   ├── filetest_simple.rs(新增:创建文件filea并读取它的内容 )
233233
│   ├── forktest2.rs
234234
│   ├── forktest.rs
235235
│   ├── forktest_simple.rs
@@ -243,14 +243,14 @@
243243
│   ├── sleep.rs
244244
│   ├── sleep_simple.rs
245245
│   ├── stack_overflow.rs
246-
│   ├── user_shell.rs(修改:支持命令行参数解析和输入/输出重定向)
246+
│   ├── user_shell.rs
247247
│   ├── usertests.rs
248248
│   └── yield.rs
249249
├── console.rs
250250
├── lang_items.rs
251251
├── lib.rs(修改:支持命令行参数解析)
252252
├── linker.ld
253-
└── syscall.rs(修改:新增 sys_open 和 sys_dup)
253+
└── syscall.rs(修改:新增 sys_open)
254254
255255
256256
本章代码导读

source/chapter6/3using-easy-fs-in-kernel.rst

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -594,29 +594,18 @@ K210 真实硬件平台
594594

595595
.. code-block:: rust
596596
:linenos:
597-
:emphasize-lines: 15-24
597+
:emphasize-lines: 6-9
598598
599599
// os/src/syscall/process.rs
600600
601-
pub fn sys_exec(path: *const u8, mut args: *const usize) -> isize {
601+
pub fn sys_exec(path: *const u8) -> isize {
602602
let token = current_user_token();
603603
let path = translated_str(token, path);
604-
let mut args_vec: Vec<String> = Vec::new();
605-
loop {
606-
let arg_str_ptr = *translated_ref(token, args);
607-
if arg_str_ptr == 0 {
608-
break;
609-
}
610-
args_vec.push(translated_str(token, arg_str_ptr as *const u8));
611-
unsafe { args = args.add(1); }
612-
}
613604
if let Some(app_inode) = open_file(path.as_str(), OpenFlags::RDONLY) {
614605
let all_data = app_inode.read_all();
615606
let task = current_task().unwrap();
616-
let argc = args_vec.len();
617-
task.exec(all_data.as_slice(), args_vec);
618-
// return argc because cx.x[10] will be covered with it later
619-
argc as isize
607+
task.exec(all_data.as_slice());
608+
0
620609
} else {
621610
-1
622611
}
@@ -665,7 +654,7 @@ K210 真实硬件平台
665654
读写文件
666655
+++++++++++++++++++++++++++++++++++++++++++++++
667656

668-
基于文件抽象接口和文件描述符表,我们可以按照无结构的字节流在处理基本的文件读写,这样可以让文件读写系统调用 ``sys_read/write`` 变得更加具有普适性,为后续支持把管道等抽象为文件打下了基础:
657+
基于文件抽象接口和文件描述符表,我们可以按照无结构的字节流来处理基本的文件读写,这样可以让文件读写系统调用 ``sys_read/write`` 变得更加具有普适性,为后续支持把管道等抽象为文件打下了基础:
669658

670659
.. code-block:: rust
671660

0 commit comments

Comments
 (0)