由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 为什么linux是portable?
相关主题
弱问编译器是executable吗?继续批评 gentoo
也说说谭浩强(转载) (转载)[KJPT]阿里巴巴宣布成“阿里云” 专注云计算(图) (转载)
OpenOffice without X问一个 Shell 的问题
无root权限就不能用apt-get这种包工具吧?Process and Thread
linus 这个俗人如何把Linux平台下C++源代码转换到 windows平台下编译?
software raid vs intel matrix storageWhat is the biggest diff between Win and Linux?
请教一个基础C++问题 (转载)请教一个linux下的POSIX timer的问题。 (转载)
about compiling new glibc/gcc in fc14问个很弱的问题啊,关于terminal显示中文字
相关话题的讨论汇总
话题: portable话题: compiler话题: c语言话题: linux话题: 编译器
进入Linux版参与讨论
1 (共1页)
s****b
发帖数: 2039
1
据说因为linux主要是用C语言写的。而C语言是portable的,因为C的compiler也是用C
写的。
但是俺想,C的compiler的compiler。。。。。。最后总要有一个是machine dependent
的啊,那么portable是怎么实现的呢?
j*a
发帖数: 14423
2
c的compiler几乎在所有平台都有;c语言有标准

C
dependent

【在 s****b 的大作中提到】
: 据说因为linux主要是用C语言写的。而C语言是portable的,因为C的compiler也是用C
: 写的。
: 但是俺想,C的compiler的compiler。。。。。。最后总要有一个是machine dependent
: 的啊,那么portable是怎么实现的呢?

s****b
发帖数: 2039
3
如果有个公司出一个新的CPU,怎样做一个新的C compiler呢?
Thanks!

【在 j*a 的大作中提到】
: c的compiler几乎在所有平台都有;c语言有标准
:
: C
: dependent

b*******s
发帖数: 5216
4
做处理器的就那么几家,就像主流编译器就那么几个
相互之间合作是比较紧密的,在产品上市前已经合作了相当时间了

【在 s****b 的大作中提到】
: 如果有个公司出一个新的CPU,怎样做一个新的C compiler呢?
: Thanks!

d****i
发帖数: 4809
5
C语言的国际标准是ANSI, ISO, 然后对于操作系统来说,内核都是C写的然后编译出来
,kernel到userland, UNIX类操作系统都支持POSIX标准,然后对于用在嵌入式实时操
作系统,除了标准的ANSI,POSIX以外,还加了适用于有自己操作系统特色的东西,所
以C可以用在任何大大小小的OS上。

C
dependent

【在 s****b 的大作中提到】
: 据说因为linux主要是用C语言写的。而C语言是portable的,因为C的compiler也是用C
: 写的。
: 但是俺想,C的compiler的compiler。。。。。。最后总要有一个是machine dependent
: 的啊,那么portable是怎么实现的呢?

d****i
发帖数: 4809
6
这个需要芯片生产商提供这种CPU的指令集,这样编译器就可以把C编译成对应于这种
CPU架构的机器码指令。比如ARM就有自己的编译器armcc,当然也可以用gcc for ARM,
据说前一种出来的更高效优化一点。

【在 s****b 的大作中提到】
: 如果有个公司出一个新的CPU,怎样做一个新的C compiler呢?
: Thanks!

n****1
发帖数: 1136
7
linux的portable只是相对于70年代之前的各种OS而言吧. 之后的unix/bsd/linux都是C
写的,可移植性也差不了太多.
最关键的是写软件的人是否注重可移植性,是否希望自己的软件被移植到千奇百怪的硬
件上. 微软就是典型反面教材
t*******y
发帖数: 1289
8
我对这个portable的理解是:
1. 内核的可定制裁剪。
2. 代码开源,而且要求对代码的改动也要开源。
3. 内核的开发由一个非常有领导能力的人带领。
我发而觉得和用C没太大的关系,要说有关系的话,也是因为和硬件打交道的比较熟悉C

是C

【在 n****1 的大作中提到】
: linux的portable只是相对于70年代之前的各种OS而言吧. 之后的unix/bsd/linux都是C
: 写的,可移植性也差不了太多.
: 最关键的是写软件的人是否注重可移植性,是否希望自己的软件被移植到千奇百怪的硬
: 件上. 微软就是典型反面教材

n****1
发帖数: 1136
9
做CPU的恨不得所有OS都能移植到自己硬件上,而且做OS的不是竞争对手而是合作对象.
用专利打压非同行纯属犯2
n****1
发帖数: 1136
10
如果是新平台新架构, 没人会帮你写编译器的, 这公司得自己动手写编译器交付客户使
用. 大多数公司没实力单独开发维护编译器, 所以就靠在gcc这大树下乘凉了, 当然自
己那点代码也就得开源了.
等你做大了,经过市场考验了, 就会有人帮你提高代码了, 或者你也可以开始弄闭源编
译器了. 没市场份额的话, 开源也没人鸟你.

【在 s****b 的大作中提到】
: 如果有个公司出一个新的CPU,怎样做一个新的C compiler呢?
: Thanks!

l*****s
发帖数: 2109
11
底层都是用汇编写的,说白了,用汇编设置一个c的运行环境,再交给c,c再设置一个
kernel的运行环境,再交给kernel。
所谓移植性,就是设计的时候把主体部分和硬件隔离开,硬件相关部分很少,交给厂商
或底层开发者完成。

C
dependent

【在 s****b 的大作中提到】
: 据说因为linux主要是用C语言写的。而C语言是portable的,因为C的compiler也是用C
: 写的。
: 但是俺想,C的compiler的compiler。。。。。。最后总要有一个是machine dependent
: 的啊,那么portable是怎么实现的呢?

l*****s
发帖数: 2109
12
至于c的编译器,完全可以用交叉编译器产生目标代码,或者干脆编译一个目标编译器
,在目标硬件上运行这个目标编译器。

C
dependent

【在 s****b 的大作中提到】
: 据说因为linux主要是用C语言写的。而C语言是portable的,因为C的compiler也是用C
: 写的。
: 但是俺想,C的compiler的compiler。。。。。。最后总要有一个是machine dependent
: 的啊,那么portable是怎么实现的呢?

1 (共1页)
进入Linux版参与讨论
相关主题
问个很弱的问题啊,关于terminal显示中文字linus 这个俗人
linux上面有没有轻量级的message queue? POSIX message queue不合适。software raid vs intel matrix storage
linux 下为什么没有修复permissions请教一个基础C++问题 (转载)
原来MAC是BSD的一支?about compiling new glibc/gcc in fc14
弱问编译器是executable吗?继续批评 gentoo
也说说谭浩强(转载) (转载)[KJPT]阿里巴巴宣布成“阿里云” 专注云计算(图) (转载)
OpenOffice without X问一个 Shell 的问题
无root权限就不能用apt-get这种包工具吧?Process and Thread
相关话题的讨论汇总
话题: portable话题: compiler话题: c语言话题: linux话题: 编译器