自己动手写内核(环境篇)(原创)

本教程介绍GCCSkelix项目的环境需求,包括推荐的Linux内核版本及GCC编译器版本,并讨论了如何确保编译环境的正确配置。此外,还提到了一些有用的背景知识和技术资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0课:环境需求

声明:转载请保留

译者http://www.cppblog.com/jinglexy(新的博客地址是:http://blog.csdn.net/jinglexy)

原作者:xiaoming.mo at skelix dot org

MSN & Email: jinglexy at yahoo dot com dot cn

GCC
Skelix
使用c语言编写,当然也用了汇编语言(at&t风格),在linux下使用gcc编译。

[root@root ~]$ gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

在每篇教程中都给出了源程序和软盘映象文件,你可以直接使用它们。如果你需要编译这些源程序,编译环境必须正确。我们推荐的环境是linux2.6.x内核,gcc3.x编译器。

由于在源程序中使用了__asm__, __attribute__, __extention__,以及gcc内嵌汇编,还有unsigned long long(直到C99才开始支持);如果你使用了其他编译器,需要修改对应的源程序。且编译器必须是32位,这样做的目的是保持源程序简洁清晰。

对于windows用户可以使用 cygwin,它提供了windows下的linux环境。不过我没有尝试使用它,因为我的电脑上没有安装windows操作系统。也可以在你的windows系统上安装一个虚拟机上的linux,如果你的电脑足够快的话。


VMWARE

为了运行教程中的范例,一个虚拟机必不可少,virtual pc2007已经可以免费使用了,在M$的官方网站上可以找到下载。当然也可以使用qemubochs之类的虚拟机。推荐的虚拟机是VMWARE

Things Are Good To Know

如果能看懂Makefile最好了,这是*nix程序员必须掌握的一项基本知识。另外,如果你熟悉内存地址映射,中断,异常,GDTLDTIDT,分页机制,范围端口就更好了。当然不懂也没关系,Intel的三卷手册是案头必备:http://www.intel.com

IA-32 Intel Architecture Software Developer's Manual Volume1: Basic Architecture
IA-32 Intel Architecture Software Developer's Manual Volume2A: Instruction Set Reference: A-M
IA-32 Intel Architecture Software Developer's Manual Volume2B: Instruction Set Reference: N-Z
IA-32 Intel Architecture Software Developer's Manual Volume3A: System Programming Guide Part1
IA-32 Intel Architecture Software Developer's Manual Volume3B: System Programming Guide Part2

读者对这些东西不必紧张,我在教程中会解释相关的知识。c语言和汇编是最基本的要求,能够很清楚的了解什么是堆和栈。关于c语言的数据成千上万,但是保护模式方面的书籍比哈雷慧星还少,据说每76年可以买到一本,如果你足够幸运的话:)

风格约定

 

原文中的格式被擅自去掉了,翻译后的风格应该可以一看就懂。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值