从README开始吧
其实我觉得对于linux内核,真的不知道从哪里入手是好,因为各个环节关联性太强了,以至于看到这里就不得不翻一下那里是怎么实现的,所以对于入门的确是一件很头疼的事情,我也大概在这里折腾了一个多月,把《linux内核设计与实现》也看了两三遍,还是有点摸不着头脑,不过随着接触多了也就对整体有了一定的认识,在西电的一本《linux操作系统分析》的书上,我发现它首先是从linux内核的启动开始的,这让我觉得是个不错的注意,于是我也就从这里看起。
就像在使用软件之前要读一下README一样,内核也有这样的一个文件,何不尝试阅读以下提取一些有用的信息呢。
Linux是UNIX操作系统的一个衍生类型的操作系统,它是由Linus Torvalds创造完成,并且和散布在世界各地的、无组织的内核黑客们通过网络共同编写和维护的操作系统,它遵守POSIX和Single UNIX Specification的规约。
Linux具有你对一个现代的、成熟的、全面的操作系统一切能够期望功能,包括真正的多任务、虚拟内存管理、共享库、动态模块、写时复制、内存管理和覆盖IPV4和IPV6的网络支持。并且它是在GNU General Public License规约下发布的,可以被任何使用者使用、传播,但是要在free的前提下。
Linux能够很轻松的移植到任何通用的32位和64位体系结构上,只要该系统具有分页式内存管理单元(PMMU)和一定的GCC编译器端口的功能,并且Linux还可以一直到不具有PMMU功能的架构上,虽然一些功能会受到限制。
安装内核:
1、首先将内核下载到本地的任何一个目录下,当然最好不要使用/usr/src/linux目录,因为这里已经包含一部分的源代码,可能产生混乱,然后对它进行解压:
gzip -cd linux-3.X.tar.gz | tar xvf - 或者 bzip2 -dc linux-3.X.tar.bz2 | tar xvf -
这里的X表示的是版本号,我们这里使用的是3.0.16版本的内核。
2、可以不在本目录下编译,这时候就需要在make命令下增加一定的选项,使用"make O=output/dir"可以在执行目录下对源代码进行编译,如下例:
kernel source code: /usr/src/linux-3.N
build directory: /home/name/build/kernel
To configure and build the kernel use:
cd /usr/src/linux-3.N
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install
可以看到,对于内核的编译也是通过类似于编译软件的方式make config / make / make install三步。
3、配置内核,一般使用make config之类的方式进行内核的配置,通常我们会有以下几个可以选择的方式:
"make config" 基于文本的配置
"make menuconfig" 基于图形界面的配置方式
"make xconfig" 基于X-windows(QT)图形界面的配置方式
"make oldconfig" 如果只希望在当前的版本上完成新的选项的配置,它将使用./.config的配置信息完成已存在的配置,然后进行新的配置
"make defconfig" 使用arch/$ARCH/defconfig或者arch/$ARCH/configs/${PLATFORM}_defconfig的配置信息进行配置,并在当前目录下创建一个config文件,使用默认的配置选项。
4、编译内核,首先保证你的GCC编译器版本至少在3.2以上,然后使用make命令会将内核编译成一个压缩的内核映像,为了能够启动新的内核,需要将这个映像(在具体的架构目录的boot目录下的bzImage文件)移动到一般的内核启动的映像所在的目录。
5、修改/etc/lilo.conf文件的一些关于新编译内核的信息,以至于重新启动的时候可以选择新内核启动,配置好这些属性之后就可以重新启动,选择新内核就可以运行新编译的内核了。
以上内容是自己对整个内核编译和使用的理解,关键在于配置内核信息和编译内核,这会消耗一定的时间,最后要选择使用的引导程序完成内核启动时的引导配置,这样就能够使用新编译的属于自己的内核了。
从README开始吧相关推荐
- README 规范和项目文档规范
1. README 规范 我们直接通过一个 README 模板,来看一下 README 规范中的内容: # 项目名称<!-- 写一段简短的话描述项目 -->## 功能特性<!-- 描 ...
- TVM示例展示 README.md,Makefile,CMakeLists.txt
TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...
- uboot readme 文件 (1)
Software Configuration: ======================= 软件的配置 Configuration is usually done using C preproce ...
- github README.md教程
github README.md教程 总结 github中README.md通过特殊字符标记和缩进来达到格式控制,也可以用HTML标签来实现格式控制. 教程一: Markdown 的目标是实现「易读易 ...
- GitHub上README.md教程
http://blog.csdn.net/kaitiren/article/details/38513715 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文 ...
- 论文LaTeX、项目README:无脑套用格式、开源模板最高10万赞
公众号关注 "视学算法" 设为 "星标",消息即可送达! 来自 | GitHub 转自 | 机器之心 参与 | Jamin.思.一鸣 即使是最具创意性的机 ...
- P4factory ReadMe Quickstart 安装p4factory
操作系统: Ubuntu 14.04 前言 在之前,我直接从P4.org给的GitHub网址上下载了p4factory,但是在根据ReadMe的内容进行QuickStart的时候,发生了shell脚本 ...
- 如何写一个通用的README规范
背景 我们平常在进行项目开发时,一般都会把代码上传至代码托管平台上方便管理和维护.目前大家使用的托管平台最多的还是Github,国内外还有一些比较知名的代码托管平台,比如Gitlab.BitBucke ...
- 如何写一个通用的README规范 1
背景 我们平常在进行项目开发时,一般都会把代码上传至代码托管平台上方便管理和维护.目前我厂使用的托管平台是SVN,国内外还有一些比较知名的代码托管平台,比如github.Gitlab.BitBucke ...
- 如何在github存储库中添加屏幕截图到README?
本文翻译自:How to add screenshot to READMEs in github repository? Is it possible to place a screenshot in ...
最新文章
- 50 年人类登月史:那些不为人知的故事
- Ubuntu 16.04 安装 CUDA、CUDNN 和 GPU 版本的 TensorFlow 一般步骤总结
- HTML标签strong和em
- gevent.joinall()开启协程
- python数据匹配_python 匹配@
- Linux网卡配置(二)网卡配置命令
- tracepro应用实例详解_离心铸造工艺(实例)
- 微信“看一看“个性化推荐:排序篇
- 荣幸参加 微软 Teched 2012 会议
- 开启事物_《原神》全新角色甘雨登场 「浮生孰来」活动祈愿开启_新闻资讯_最新手游时评_原创手游资讯...
- Windows Azure移动终端云服务管理(公测版)
- cuda编程python接口_混合编程[python+cpp+cuda]
- 我不够格,但我还是希望事情到此为止,继续工作罢
- Tomcat学习总结(4)——基于Tomcat7、Java、WebSocket的服务器推送聊天室
- 建立RoBERTa模型以发现Reddit小组的情绪
- Mac本终端连接服务器
- Mysql基础篇(1)—— 基础概念、DML基本语法和表连接
- 下雨天,走一段路,是走淋雨少还是跑
- 数据仓库-你不知道的HSQL?
- 运行官方byfn.sh跑通网络
热门文章
- 未来应用陈鸿:被微信封掉公众号后怎么办?——给微信创业者的10点真诚建议
- 寻回犬:笔记本、智能手机守护者
- 素描入门工具需要准备哪些
- Centos部署Spring cloud微服务(CCE example)
- MyBatis-Plus之简介、快速入门、insert、update
- css零到一基础教程006:CSS 颜色
- Java汉字转拼音(全拼、首字母拼)
- 在unity中读取并可视化dicom图像(fo-dicom / C# / unity)
- mysql错误1064_mysql 1064异常原因及解决方法
- 计算机毕业设计ssm基于ssm流浪宠物领养系统8xg84系统+程序+源码+lw+远程部署