首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >退出操作系统中的应用程序而不分离内存

退出操作系统中的应用程序而不分离内存
EN

Stack Overflow用户
提问于 2014-09-12 01:35:18
回答 1查看 82关注 0票数 5

我正在编写一个单一操作系统(把它称为OS是一个笑话,但它确实有非常小的、学校级别的功能主义者)。当我说单块时,我的意思是,它被编译成一个二进制blob,不支持文件系统等等。目前,我只有一个基本的简单的用户空间,它只不过是无限的时间循环。

我计划让我的操作系统更有用,并希望能够编写用户应用程序,可以终止像常规应用一样,在一个完整的操作系统。

我没有滑头或类似的东西。我当前在用户空间中的库是我编写的代码。现在我的问题是如何为用户空间应用程序添加一个框架,让它们在一个定点终止。

我知道程序是如何在常规系统上编译的,以及当程序终止时会发生什么。然而,在我的例子中,我没有权利针对库编译程序,如果一个程序终止了,那么我的指令指针就会走弯路。

目前,我正在制作所有的应用程序来做一个“回传”,我正在预装一个固定地址的应用程序栈(在发布期间)。有什么更好的方法来解决这个问题吗?

除了答案之外,我非常乐意澄清一些操作系统的概念。

我正在x86模拟器平台上工作,并静态编译我的二进制文件.(我确实有虚拟内存支持)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 02:15:38

手工制作第一个堆栈框架,并返回到您需要运行的任何流程清理代码,似乎是一种非常合理的方法。如果您的操作系统有"syscalls“,那么用户空间进程清理代码(可能称为exit())可能以调用_exit() syscall结束。您仍然需要处理程序试图在‘la-la land’中执行代码的情况,因为这种情况仍然可能发生(然而,在您拥有页面保护系统之前这样做可能是一个困难的问题)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25799435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档