Replies: 115 comments 26 replies
-
几位(cjy,wyd,zyj, lyf)关于syscall的分工如何划分? |
Beta Was this translation helpful? Give feedback.
-
关于process/thread control block的设计,目前是否已经确定了?在哪些方面还没确定? |
Beta Was this translation helpful? Give feedback.
-
@Azure-stars 我把文件系统添加到你的进程里时遇到了一个问题,ArceOS的依赖关系如下图,如果要在axtask里调用axfs里的结构和接口的话,会出现一条axfs->axsync->axtask->axfs的循环依赖。 graph TD;
axalloc
axconfig
axdisplay
axdriver
axfs
axhal
axlog
axnet
axruntime
axsync
axtask
axsync-->axdisplay
axdriver-->axdisplay
axhal-->axdriver
axalloc-->axdriver
axconfig-->axdriver
axdriver-->axfs
axsync-->axfs
axtask-.dev.->axfs
axconfig-->axhal
axalloc-->axhal
axlog-->axhal
axhal-->axnet
axsync-->axnet
axtask-->axnet
axdriver-->axnet
axalloc-->axruntime
axconfig-->axruntime
axdriver-->axruntime
axhal-->axruntime
axlog-->axruntime
axfs-->axruntime
axnet-->axruntime
axdisplay-->axruntime
axtask-->axruntime
axtask-->axsync
axalloc-->axtask
axhal-->axtask
axconfig-->axtask
axlog-->axtask
|
Beta Was this translation helpful? Give feedback.
-
我现在已经完成了process和task模块的解耦,当前我的代码中依赖关系如下: graph TD;
axsync-->axdisplay
axdriver-->axdisplay
axhal-->axdriver
axalloc-->axdriver
axconfig-->axdriver
axdriver-->axfs
axsync-->axfs
axtask-.dev.->axfs
axconfig-->axhal
axalloc-->axhal
axlog-->axhal
axhal-->axnet
axsync-->axnet
axtask-->axnet
axdriver-->axnet
axalloc-->axruntime
axconfig-->axruntime
axdriver-->axruntime
axhal-->axruntime
axlog-->axruntime
axnet-->axruntime
axdisplay-->axruntime
axtask-->axruntime
axprocess-->axruntime
axtask-->axsync
axtask-->axprocess
axfs-->axprocess
axhal-->axprocess
axalloc-->axtask
axhal-->axtask
axconfig-->axtask
axlog-->axtask
即axprocess模块依赖于axtask等模块,在此基础上你将axfs添加到axprocess中就可以完成进程中文件描述符的支持。 |
Beta Was this translation helpful? Give feedback.
-
关于你提到的线程控制块中有指向进程的弱指针,这里我做了一层抽象。我在线程控制块中仅保留了所属进程的ID,而没有保留指针。在进行线程回收时,我发现当前线程回收的调用接口仅有 相比于之前的逻辑,回收操作放在了进程控制块而非线程控制块,从而完成解耦。 对于不需要进程支持的系统,仅需要将线程对应属性置为0即可。 |
Beta Was this translation helpful? Give feedback.
-
关于支持进程情况下的任务启动参考(以下仅以单核情况出发,多核情况暂未考虑) /// 开始进行调度,我们先执行gc任务,通过gc任务逐个执行并收集RUN_QUEUE中的任务
/// 所以先切换到gc对应的任务上下文即可
pub fn start_schedule() {
// 若是第一次执行任务,curr应当为gc
let curr: CurrentTask = current();
#[cfg(feature = "preempt")]
curr.set_preempt_pending(false);
curr.set_state_running();
unsafe {
let prev_ctx_ptr = TaskContext::new_empty();
let next_ctx_ptr = curr.ctx_mut_ptr();
// The strong reference count of `prev_task` will be decremented by 1,
// but won't be dropped until `gc_entry()` is called.
(*prev_ctx_ptr).switch_to(&*next_ctx_ptr);
}
} 之后在 |
Beta Was this translation helpful? Give feedback.
-
进程支持下的应用程序启动
|
Beta Was this translation helpful? Give feedback.
-
更新当前依赖关系图:将mem虚存与process分离开,process作为一个容器存储task,mem,fs等资源,同时将文件系统接入arceos中。 graph TD;
axsync-->axdisplay
axdriver-->axdisplay
axhal-->axdriver
axalloc-->axdriver
axconfig-->axdriver
axdriver-->axfs
axsync-->axfs
axtask-.dev.->axfs
axtask-->axfs_os
axfs-->axfs_os
axconfig-->axhal
axalloc-->axhal
axlog-->axhal
axhal-->axnet
axsync-->axnet
axtask-->axnet
axdriver-->axnet
axalloc-->axruntime
axconfig-->axruntime
axdriver-->axruntime
axhal-->axruntime
axlog-->axruntime
axnet-->axruntime
axdisplay-->axruntime
axtask-->axruntime
axprocess-->axruntime
axtask-->axsync
axtask-->axprocess
axfs_os-->axprocess
axhal-->axprocess
axprocess-->axsyscall
axsyscall-->axruntime
axalloc-->axtask
axhal-->axtask
axconfig-->axtask
axlog-->axtask
axhal-->axmem
axalloc-->axmem
axmem-->axprocess
说明:axfs是对fat32文件系统的交互模块,而axfs-os是将axfs移植进内核的中转模块。在axfs-os中实现了包括文件描述符等一系列适用于内核文件操作的数据结构。 |
Beta Was this translation helpful? Give feedback.
-
需求描述arceos现在是unikernel模式,要给arceos增加宏内核模式,且支持aero操作系统的用户态程序(包括图形界面程序)。 目标
规划
|
Beta Was this translation helpful? Give feedback.
-
进度报告:分析arceos实现。 |
Beta Was this translation helpful? Give feedback.
-
@xushanpu123 5月31日前的问题:syzkaller 用到了哪些Linux syscall? 请给出分析回答。 |
Beta Was this translation helpful? Give feedback.
-
进度报告:arceos与宏内核对比。
|
Beta Was this translation helpful? Give feedback.
-
进度报告:实现一个最小系统。
|
Beta Was this translation helpful? Give feedback.
-
进度报告:最小系统实现总结,准备开始实现进程管理。
|
Beta Was this translation helpful? Give feedback.
-
进度报告:开始实现进程管理。
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
![]() |
Beta Was this translation helpful? Give feedback.
-
![]() |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
在starry-next中支持vdso功能第一周(7.13-7.19)目前主要在 x86 和 riscv 上进行工作。 完成的目标:
TODO
日报仓库 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
小任务:
注:2025春夏季OS训练营四阶段同学,请结合自己的兴趣和时间,先选择你觉得适合你的一个小任务(建议从简单的入手),并告知相关助教和老师。
2025OS训练营后续的暑期实践小任务
2025OS训练营小任务
欢迎提出自己感兴趣的新的小任务,请联系 请联系我 yuchen AT tsinghua.edu.cn OR 微信 id chyyuu @chyyuu @Azure-stars
相关网址:
开发日志:
参考资料:
如有兴趣一起来探索,承担小任务。请联系我 yuchen AT tsinghua.edu.cn OR 微信 id chyyuu
Beta Was this translation helpful? Give feedback.
All reactions