新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 操作系统研究。UEFI
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 操作系统原理 』 → 请教:操作系统可以用高级语言写么? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 33505 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 请教:操作系统可以用高级语言写么? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     硕鼠 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:108
      门派:IEEE.ORG.CN
      注册:2006/12/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给硕鼠发送一个短消息 把硕鼠加入好友 查看硕鼠的个人资料 搜索硕鼠在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看硕鼠的博客楼主
    发贴心情 请教:操作系统可以用高级语言写么?

    大家好,偶尔发现了这个论坛,感觉很好。希望大家帮助我,谢谢!

    有一个问题一直捆饶着我,就是:高级语言如何能写操作系统呢?
    我想操作系统只能用汇编语言来写吧?比如说文件系统,如果用C语言写的话,C自身就要调用操作系统提供的系统调用来完成文件操作,又怎么能用C语言写呢?

    我想自己写一个实验型的操作系统,无奈无法操纵磁盘。有哪里可以查到磁盘方面的资料?(不通过BIOS的INT 13H来操作磁盘,因为我想对保护模式做一些实验)


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    V.P.Nelson,《Digital Logic Circuit Analysis & Design》 (影印版),清华大学出版社,1997; 我找遍了图书城,也没买到这本书,郁闷, 哪为朋友知道哪里有电子版下载,谢谢了!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/7 20:47:00
     
     flyhigher 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:23
      积分:160
      门派:XML.ORG.CN
      注册:2006/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyhigher发送一个短消息 把flyhigher加入好友 查看flyhigher的个人资料 搜索flyhigher在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyhigher的博客2
    发贴心情 
    呵呵,Linux就是用C语言写的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/9 17:12:00
     
     flyhigher 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:23
      积分:160
      门派:XML.ORG.CN
      注册:2006/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyhigher发送一个短消息 把flyhigher加入好友 查看flyhigher的个人资料 搜索flyhigher在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyhigher的博客3
    发贴心情 
    有本专门讲解Linux内核源码的书,推荐你看一下。
    书名忘了,是浙大的一位老师写的
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/9 17:22:00
     
     硕鼠 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:108
      门派:IEEE.ORG.CN
      注册:2006/12/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给硕鼠发送一个短消息 把硕鼠加入好友 查看硕鼠的个人资料 搜索硕鼠在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看硕鼠的博客4
    发贴心情 
    恩,如果写一个可以在裸机上访问硬盘的程序,应该从那里着手呢?

    形式大致如下:

    mov   ax   ,    柱面号
    mov   bx   ,    磁道号
    mov   cx   ,    扇区号
    mov   dx   ,    内存地址
    call    read_disk

    这个   read_disk 就是读磁盘的某个扇区到dx指定的位置。
    我的意思是不能拿别人写好的程序库中的程序来实现 read_disk 子程序 读磁盘的功能
    当然也不可以通过BIOS的功能调用和DOS的功能调用来完成。
    我应该怎么写这个read_disk 程序呢?

    ----------------------------------------------
    V.P.Nelson,《Digital Logic Circuit Analysis & Design》 (影印版),清华大学出版社,1997; 我找遍了图书城,也没买到这本书,郁闷, 哪为朋友知道哪里有电子版下载,谢谢了!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/9 17:47:00
     
     rhonda 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:92
      门派:IEEE.ORG.CN
      注册:2006/12/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给rhonda发送一个短消息 把rhonda加入好友 查看rhonda的个人资料 搜索rhonda在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看rhonda的博客5
    发贴心情 
    你恐怕要自己些微程序了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/10 12:43:00
     
     lidongbin 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:19
      积分:130
      门派:XML.ORG.CN
      注册:2006/12/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lidongbin发送一个短消息 把lidongbin加入好友 查看lidongbin的个人资料 搜索lidongbin在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lidongbin的博客6
    发贴心情 
    我是做编译系统研究的,我的看法是你不如试试用自己的编译器来完成代码的转译
    这样可以笔尖容易实现

    仅工参考

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/15 22:32:00
     
     jbh811 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:100
      门派:XML.ORG.CN
      注册:2007/2/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jbh811发送一个短消息 把jbh811加入好友 查看jbh811的个人资料 搜索jbh811在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jbh811的博客7
    发贴心情 
    操作系统不能完全用高级语言来实现。实际上,所谓的高级语言也不是一个绝对的概念。汇编语言,应该算是公认的低级语言了,java算是高级语言了,但c语言却很难界定。由于c语言和汇编语言一样是属于编译性的语言,所以c语言的程序性能才会有极大的优化空间,这点上,c语言很接近于低级语言。但c语言又是面向过程的,并不是汇编那样的机器级指令,这样来看,他又很像高级语言。而java语言,并不是编译性的语言,java程序编译出的目标文件是字节码文件,是用java自己的虚拟指令集实现的。而其程序能够运行则需要java虚拟机将其虚拟指令集转换成真正可以执行的机器指令。所以java这种高级语言是不能用于实现操作系统的,因为要实现操作系统只能依赖cpu的实指令集,或者说这时候并没有可以依赖的虚拟指令集,因为这时候还没有其他软件。这也决定了,需要实现操作系统,必然应该选取编译性的语言。
        前面说过了,c语言是编译性的语言,但是,操作系统的实现并不能完全的依赖c语言。正如全面说的,c语言在设计的时候就是以一种面向过程的语言来设计的。这也是c语言区别于汇编的根本,否则c语言就退化成汇编语言了。这也就决定了c语言更多的是过程设计,而一些细节的实现c语言是实现不了的(最直接的,c语言不能直接访问寄存器),这部分还是需要依赖汇编。比如引导程序,中断处理,低级I/O等。说白了就是c语言不能实现所有的机器指令集。如果想全部用c语言来实现的话,除非扩展标准的c语言,比如定义一些新的语法,你可以自己扩展编译器来实现。
        很多人都说linux是用c语言写的,其实linux是用c和汇编写的。其实关于c和汇编之间的区别也不是那么大,因为他们都是编译性的语言,所以他们之间的联系也异常紧密,只要固定目标文件格式,c语言编译的目标文件和汇编编译的目标文件是可以链接的。

        ps:我自己写过操作系统,不过只写完引导和简单中断处理就懒惰了:)

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/2/1 12:11:00
     
     gmg_211 帅哥哟,离线,有人找我吗?金牛座1981-5-4
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2007/2/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gmg_211发送一个短消息 把gmg_211加入好友 查看gmg_211的个人资料 搜索gmg_211在『 操作系统原理 』的所有贴子 点击这里发送电邮给gmg_211  引用回复这个贴子 回复这个贴子 查看gmg_211的博客8
    发贴心情 开了眼界了
    我深深理解了学无止境这句话。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/3/1 11:15:00
     
     weson 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:123
      门派:XML.ORG.CN
      注册:2007/5/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给weson发送一个短消息 把weson加入好友 查看weson的个人资料 搜索weson在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看weson的博客9
    发贴心情 
    高级语言写出来了也慢啊``````````````````
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/9 22:49:00
     
     Angelo.j63 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:71
      门派:XML.ORG.CN
      注册:2006/5/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Angelo.j63发送一个短消息 把Angelo.j63加入好友 查看Angelo.j63的个人资料 搜索Angelo.j63在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Angelo.j63的博客10
    发贴心情 
    有志者,事竟成.
    ^_^
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/28 16:32:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 操作系统原理 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/25 12:23:18

    本主题贴数12,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    6,250.000ms