我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- cuihao
- 帖子: 4793
- 注册时间: 2008-07-24 11:33
- 来自: 郑州
- 联系:
我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
太头疼了,同样用gcc编译出来,linux能脱离操作系统运行,而普通程序却不能,他们有什么区别呢?还有,在windows或dos下编译内核会是什么结果呢?如果不行,那最初的linux又是怎么编译出来的呢?
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 蓝红黄蓝绿红
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
- 冲浪板
- 论坛版主
- 帖子: 7513
- 注册时间: 2007-05-06 8:19
- zszzd
- 帖子: 156
- 注册时间: 2007-12-12 22:54
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
其实也不算完全脱离吧,还有BIOS呢?BIOS引导工作完成后把系统控制权交给linux内核了。
只要是符合标准,在什么平台中应该都可以编译吧,
最初的linux 应该是在其它系统中编译出来的吧,应该是,猜的。
只要是符合标准,在什么平台中应该都可以编译吧,
最初的linux 应该是在其它系统中编译出来的吧,应该是,猜的。
- kittycartal
- 帖子: 100
- 注册时间: 2008-11-09 17:00
-
- 帖子: 1994
- 注册时间: 2007-05-06 10:12
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
可以,引导过去就可以的,hello world都可以...只要你解决掉文件系统等原来操作系统的工作就行了
- CLOCKWORKHEART
- 帖子: 635
- 注册时间: 2007-11-05 19:26
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
好问题,如果都研究透了,计算机应该就学通了。
Everything that has a beginning has an end.
- Terpineol
- 帖子: 1230
- 注册时间: 2007-12-09 14:35
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
追上去就是依赖一个个二极管了 

Linux is for human being,love is for human making
- 冲浪板
- 论坛版主
- 帖子: 7513
- 注册时间: 2007-05-06 8:19
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
-
- 帖子: 139
- 注册时间: 2007-10-06 0:56
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
linux本身就是个操作系统啊,怎么叫脱离操作系统运行呢?
事实上操作系统本身就是一个程序,只是把很多需要作的事情都提取出来,让上层的软件可以更为灵活而简单的实现而已。
至于编译器是由什么来编译的,就更简单了,电脑刚出现的时候,程序极为简单,是没有编译这个概念的,就是0101的开关而已,后来出现了卡片,再后来才出现了极为简单的编译器。最早出现的编译器已经无法考证了,但是毫无疑问是非常简单的,而且一定是人工进行编译的,运用手中粗糙的编译器去编译更为先进的编译器代码,得到更为先进的编译器,目前的GCC就是这样来的。
事实上操作系统本身就是一个程序,只是把很多需要作的事情都提取出来,让上层的软件可以更为灵活而简单的实现而已。
至于编译器是由什么来编译的,就更简单了,电脑刚出现的时候,程序极为简单,是没有编译这个概念的,就是0101的开关而已,后来出现了卡片,再后来才出现了极为简单的编译器。最早出现的编译器已经无法考证了,但是毫无疑问是非常简单的,而且一定是人工进行编译的,运用手中粗糙的编译器去编译更为先进的编译器代码,得到更为先进的编译器,目前的GCC就是这样来的。
- vmmm
- 帖子: 458
- 注册时间: 2008-10-23 19:01
- 来自: 乌有之乡
- foolegg
- 帖子: 249
- 注册时间: 2007-12-01 14:56
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
关于linux系统和普通程序的问题,其实很简单,因为普通的应用程序,使用了操作系统提供的功能函数,而操作系统,只使用了硬件提供的功能(比如bios)。
所以操作系统只需要硬件环境就可以运行,而应用程序还需要操作系统。
至于最初的linux和gcc
楼主可以想象一下工厂里的自动机器人A
这些机器人A是在另一个工厂里,由更简单一点的自动机器人B制造出来的
而机器人B也是在另一个工厂里,由再简单一点的自动机器人C制造出来的
....
最后,最简单的自动机器人Z,是纯手工打造的@ @
所以操作系统只需要硬件环境就可以运行,而应用程序还需要操作系统。
至于最初的linux和gcc
楼主可以想象一下工厂里的自动机器人A
这些机器人A是在另一个工厂里,由更简单一点的自动机器人B制造出来的
而机器人B也是在另一个工厂里,由再简单一点的自动机器人C制造出来的
....
最后,最简单的自动机器人Z,是纯手工打造的@ @
-
- 帖子: 10
- 注册时间: 2006-12-19 13:11
Re: 我始终想不明白,linux用和普通程序一样的语言,怎么却能独立运行呢?
楼上解释的很清楚了
普通的应用程序,使用了操作系统提供的功能函数
普通的应用程序,使用了操作系统提供的功能函数