linux是用什么语言写的

人气:393 ℃/2023-02-18 14:36:20

linux是用什么语言写的?我们一起来了解一下吧。

Linux操作系统是用C语言、汇编语言编写的,Linux是一种自由和开放源码的类Unix操作系统,其不同于windows的不可更改性,可以对源码进行修改,并且可以免费进行使用。

linux系统与windows系统的区别

区别1:开放性

所谓的开放性就是linux操作系统是开放源码系统,可以对其程序进行编辑修改。而微软的windows系统是手微软版权保护,就是只能微软内部进行开发及修改。

区别2:价格不同

linux系统是免费使用,而微软开发的windows系统则是需要花费金钱去购买。

区别3:文件格式不同

windows 操作系统内核是NT,而linux 是shell;另外,windows 硬盘文件格式是fat32或NTSF,而linux 需要的文件格式是ext2或ext3,该操作系统还多一个SWAP格式的交换分区。

linux内核是用什么写的

Linux常用的编译工具GCC

Linux内核是一个复杂的开源项目,主要的编写语言是C语言和汇编语言,因此,深入理解Linux内核的必要条件是熟悉C语言。Linux内核是由全球顶尖的程序员编写的,其中采用了众多精妙的C语言编写技巧,是非常值得学习的典范。

另外,Linux内核采用GCC编译器来编译,了解和熟悉GCC编译器以及GDB调试器的使用也很有必要。

Linux内核代码已经达到2000万行,庞大的代码量会让读者在阅读和理解代码方面感觉到力不从心,那在Linux中有没有一款合适的阅读和编写代码的工具呢?

由Linux内核创始人Linus开发的git工具已经在全球范围内被广泛应用,因此读者也必须了解和熟悉git的使用。

Linux常用的编译工具GCC。

GCC工具

GCC(GNU Compiler Collection)编译器在1987年发布了第一个C语言版本,它是用GPL许可证发行的自由软件,也是GNU计划的关键部分。GCC现在是GNU Linux操作系统的默认编译器,同时也被很多自由软件采用。GCC在后续的发展过程中,扩展支持了很多的编程语言,如C 、Java、Go等语言。另外,GCC还支持多种不同的硬件平台,如x86、ARM等体系结构。

GCC的编译流程主要分成4个步骤。

如图2.1所示,用C语言编写test程序的源代码test.c。首先进入GCC的预处理器(cpp)进行预处理,把头文件、宏等进行展开,生成test.i文件。接下来,进入GCC的编译器,由于GCC可以支持多种编程语言,这里调用C语言的编译器ccl。编译完成之后生成汇编程序,输出test.s文件。在汇编阶段,GCC调用汇编器(as)进行汇编,生成可重定位的目标程序。最后一步是链接,GCC调用链接器把所有目标文件和C语言的标准库链接成可执行的二进制文件。

图1.1GCC编译流程

由此可见,C语言代码需要经历两次编译和一次链接过程才能生成可执行的程序。

1.1.2ARM GCC

GCC具有良好的可扩展性,除了可以编译x86体系结构的二进制程序外,还可以支持很多其他体系结构的处理器,如ARM、MIPS、RISC-V等。这里涉及两个概念,一个是本地编译,另一个是交叉编译。

交叉工具链的命名规则一般如下。

[arch] [-os] [-(gnu)eabi]

许多Linux发行版提供了编译好的ARM GCC的工具链,如优麒麟Linux 18.04上提供如下和ARM相关的编译器。

1.1.3GCC编译

GCC编译的一般格式:

gcc [选项] 源文件 [选项] 目标文件

GCC的常用选项如表1.1所示。

表1.1GCC的常用选项

本文摘自《奔跑吧 Linux内核 入门篇》

end

喜欢的朋友欢迎转发到朋友圈

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.