QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1214|回复: 6

关于写操作系统很迷惑的问题,请大家指教!

[复制链接]
发表于 2003-12-15 12:42:00 | 显示全部楼层 |阅读模式
1.Linux操作系统大部分是用C 语言写的(对不对?),那C语言库函数哪些可以调用,哪些不可以调用?我认为像open打开一个文件这样的函数是不能调用的,因为调用open打开一个文件会发生系统调用,除非自己写这个函数,对吗?
2.当我用一个编辑器在编辑一段Linux汇编代码时,这段代码有需要在Kernel mode运行的指令,那我想运行一下这段代码那该怎么办?因为我便记者段代码时肯定在User mode。
3.读Linux的汇编源码时需要汇编知识,请问我在那儿能找到这些知识?比如arch\i386\kernel\head.s中有ENTRY(gdt_table)、.org 0x5000等是什么意思?哪儿有讲这些汇编知识的资料?
谢谢各位!!!
发表于 2003-12-15 13:05:45 | 显示全部楼层
1,C语言库函数正常情况下都可以使用.open不是库函数,是系统调用.系统调用本来就是提供给用户程序的,为什么不可以调用?

2,写成module

3,gas文档,有汇编语法的说明
http://www.gnu.org/software/binutils/manual/gas-2.9.1/html_mono/as.html
回复

使用道具 举报

发表于 2003-12-18 16:04:26 | 显示全部楼层
楼上误解了他的意思了,他意思是说:写操作系统的时候能否使用open这样的函数。我认为这样:你写的操作系统本身应该是提供open这样的系统调用的,可你的操作系统要在完全初始化后(驱动加载)其他程序才能调用open这样的函数。当然open是要你自己写的,内核代码中不应该有open!
回复

使用道具 举报

发表于 2003-12-22 16:41:02 | 显示全部楼层
呵呵
回复

使用道具 举报

发表于 2003-12-23 19:06:08 | 显示全部楼层
_z_, _z_,
回复

使用道具 举报

发表于 2004-6-14 08:45:11 | 显示全部楼层
我是新手,不要笑话我呦!我读代码的时候看到了printf,差点没吓死我。往哪输出啊!。后来我看到了的实现,才缓过气来。
回复

使用道具 举报

发表于 2004-7-1 21:46:09 | 显示全部楼层
区分user mode 还是 kernel mode不是看你编辑代码是在什么模式的。
是看你的代码运行时状态标志时kernel mode 还是 user mode。
你可以通过自陷指令进入内核态的。
2.当我用一个编辑器在编辑一段Linux汇编代码时,这段代码有需要在Kernel mode运行的指令,那我想运行一下这段代码那该怎么办?因为我便记者段代码时肯定在User mode。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:27 , Processed in 0.042966 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表