关于Linux内核开发的问题,觉得可以分享下
来源:互联网 发布:linux dhcp server 编辑:程序博客网 时间:2024/05/22 02:22
我是电脑小白,现在刚刚学习完了C语言、C++、C#、java语言,还理解得不太透彻,没有学习过汇编语言。我想基于Linux内核开发一个自定义的Linux发行版系统,请问应该从哪里入手,需不需要学习汇编语言,请给我推荐些相关的书籍与教程,还有,从Linux官网下载的Linux内核是什么语言的,怎样解压和打开阅读代码,最好是能在windows系统中打开。
回答:内核的源文件是用c++和汇编写的,还有一大堆编译配置文件等,如果是初学,建议找0。11版的,有的有中文注释。tar。gz文件是压缩包,可以用rar打开。
linux的核心是基于C及汇编写的,但你要了解一个概念,既然是操作系统本身的核心。它是直接基于硬件的,不可能在直接任何系统包括widnwos中打开
你有这个想法固然很好,但你要走的路会很长,几点建议
1。要对电脑硬件结构十分了解(你若直接在PC上做,肯定要了解PC的硬件结构,若是嵌入式,硬件相当简单些)
2。汇编是必须的,linux的核心部分至少有5%的代码是直接用汇编编写的(最低层的引导部分无法用C完成)
3。要有一个虚拟的硬件平台(实际硬件平台成本高且不方便)
4。若是嵌入式的,非X86结构的硬件,你还需要了解交叉编译器
5。如果想做linux开发,建议就不要考虑用windows系统了
目前你先要做的,安装一个linux系统(若你真要做开发,直接将你的电脑安装centos或ubtuntu,我们的程序员都不用windwos的),然后研究它的程序开发过程(不仅仅是C语言,还有它的工具,如make等),可以下载类似ucliux源码先研究下(毕竟它相当简单)
不要指望有教材可以帮到你(研究这个的教材即使有,也没什么用),只能自己看文档(linux有全套文档的),另外英文是必须的(文档基本都是英文的)
回答:内核的源文件是用c++和汇编写的,还有一大堆编译配置文件等,如果是初学,建议找0。11版的,有的有中文注释。tar。gz文件是压缩包,可以用rar打开。
linux的核心是基于C及汇编写的,但你要了解一个概念,既然是操作系统本身的核心。它是直接基于硬件的,不可能在直接任何系统包括widnwos中打开
你有这个想法固然很好,但你要走的路会很长,几点建议
1。要对电脑硬件结构十分了解(你若直接在PC上做,肯定要了解PC的硬件结构,若是嵌入式,硬件相当简单些)
2。汇编是必须的,linux的核心部分至少有5%的代码是直接用汇编编写的(最低层的引导部分无法用C完成)
3。要有一个虚拟的硬件平台(实际硬件平台成本高且不方便)
4。若是嵌入式的,非X86结构的硬件,你还需要了解交叉编译器
5。如果想做linux开发,建议就不要考虑用windows系统了
目前你先要做的,安装一个linux系统(若你真要做开发,直接将你的电脑安装centos或ubtuntu,我们的程序员都不用windwos的),然后研究它的程序开发过程(不仅仅是C语言,还有它的工具,如make等),可以下载类似ucliux源码先研究下(毕竟它相当简单)
不要指望有教材可以帮到你(研究这个的教材即使有,也没什么用),只能自己看文档(linux有全套文档的),另外英文是必须的(文档基本都是英文的)
0 0
- 关于Linux内核开发的问题,觉得可以分享下
- 关于在linux下编译内核出现的一些问题
- 关于linux内核驱动开发中Makefile编译的问题
- 今天看了关于重载与多态的文章,觉得不错,分享下
- linux内核的水很深,分享一下关于__raw_writel()出错的问题
- Linux 2.6内核下编译可以加载的内核模块
- Linux 2.6内核下编译可以加载的内核模块
- 转载一篇关于springmvc下session的用法,觉得作者写的不错,给大家分享一下
- 关于Linux内核开发的管理
- 分享Linux内核学习和驱动开发的经验
- linux下遇到觉得有用的命令
- 关于linux内核的几个面试问题
- 关于Linux内核的一些问题
- 关于fl2440开发板Linux内核添加USB驱动的问题
- ios 对请求工具AFNetWoring封装自己的一些用法分享(觉得有用的可以看看)
- 觉得帮助到你了,可以转载保存分享给身边的朋友。
- 分享自己觉得有意思的
- [分享]觉得不错的网站
- HDU 1394 Minimum Inversion Number
- Java Advanced Management Console简介
- ubuntu下安装quagga-0.99.19.tar.gz
- 编写Jquery -- 简单版 查找元素
- (LeetCode)Add Digits --- 整数各位相加
- 关于Linux内核开发的问题,觉得可以分享下
- poj1717 Dominoes (背包)
- 中文字符与英文字符所占字节
- Xcode The certificate used to sign "xxx" has either expired or has been revoked. An updated certif
- 取消iOS对图片的渲染
- sass学习笔记
- 【Git/Github学习笔记】Git分支管理(一)
- sql分页查询
- android 长图显示模糊问题