您的位置:首页 > 运维架构 > Linux

全面解析Linux 内核 3.10.x - 抉择

2015-11-05 22:06 661 查看
From: 全面解析Linux 内核 3.10.x - 本文章完全基于MIPS架构

不在沉默中爆发,就在沉默中灭亡 - 鲁迅大神

北京的冬天总是来的快,去的晚。好似冬天就占据了一年的一半,秋装没装上几天,就已经不能抵御那寒风和雾霾!今天好像还飘起了雪花,夜晚总是这么的安静! 时光就这样悄悄的溜走,毕业两年,学了很多,做了很多!可是总是觉得越学越无知,知识总是那么的让人叹为观止,多到你有时候都觉得脑袋要炸掉!最近被一篇文章刷屏了,叫技术的力量!诚然程序员是这个世纪最伟大的群体之一,但是国内真正有那种Power(如Linus,Stallman等)的确寥寥无几,我也没有想过去成为他们,也没有那个能力!但是毛主席说的好,人多力量大嘛!我只是希望自己能在空闲的时间将一些事情去做到透彻,没有想着去影响别人,最起码先要影响我自己! 之前在大学时期页曾经写过一些总结,不过都是在网易的博客上。更新页蛮勤快,两年访问破5万啊,还是自我感觉不错的!不过排版过于难看,只有自己在默默的写,互动太少!希望藉此在csdn上开博客以后,可以和各路大牛小牛一起谈Bug,品代码!冬天到了,不应该懒惰!

我的切入点肯定是Linux内核了,因为目前也是从事这方面的工作!

1、什么是Linux?

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

请记住一个人的名字,Linux 之父 Linus Torvalds

2、Linux发展时间轴



3、Linux Kernel 能为Linux做甚么?

Linux Kernel 只是Linux操作系统一部分。可分为两个层面,对于下面,它管理系统的所有硬件设备;对于上面,它通过系统调用(System Call),向Library(例如C库)或者其它应用程序提供接口!

来一张经典的图



4、我为什么选择3.10.x这个版本呢?

目前网络上充斥着各种各样的对内核进行研究的内容,但是其本质还停留在十年前,基本都是以2.6.32等版本作为模版来进行追踪,我当然要选择一个目前少部分人的研究的呀(其实俺们公司也是3.x,至于到底是哪个版本,就不能说啦)!

说说当前版本的特性:

完整支持DynTicks(动态定时器),并成为内核级别的核心特性。
KVM虚拟化改进。
音频/声音驱动更新。
ARM架构支持改进,包括更好地支持64位架构。
大量的Linux加密子系统优化。
AMD电源管理改进。
分阶段驱动(Staging Drivers)改进与新举措。
BCache固态硬盘/机械硬盘缓存框架已经可用,使用两种硬盘的系统将会大大提速。
eCryptfs AES-NI性能改进,支持AES指令集的AMD/Intel x86处理器将会大大提速。
Btrfs文件系统支持skinny extent,quota也进行了一些重建。
F2FS闪存文件系统重大改进。
XFS额外保护。
DRM驱动多方面改进。
Radeon DRM驱动支持golden registers、UVD视频解码、RadeonSI tiling。
引入QXL KMS驱动。


是不是看的眼花缭乱? 有木有一种冲动的感觉?

在来看看当前版本的维护者:

3.10    2013年06月30日 3.10.92 Greg Kroah-Hartman  长期支持版本,从2013年6月至2015年9月


5、我选择的是那种架构呢?

硬件很重要,同上:既然市面上(服务器市场)已经被x86完全淹没,移动端也基本被ARM霸占,那么我就选择MIPS吧!

6、MIPS系列的CPU的优点在于那里?

目前市面上,不管服务器,存储等可能MIPS架构确实比较少见!那么它的优点在那里呢?

1、MIPS的历史我这里不想阐述,作为精简指令的鼻祖,很早就已经支持64Bit指令和操作!

2、MIPS指令比ARM稍微多一些,执行部分运算更为灵活!

3、MIPS在架构授权方面更为开放,允许授权商自行更改设计,如更多核的设计!

国家如果要想在芯片领域不依赖欧美,那么自主就很重要,虽然目前中国龙芯确实有点扶不起,但是商业模式是随着市场而变化的,龙芯根本也不在技术,而在模式!

说这么多,然并卵,其实我觉得最重要的还是第三点!开放..对.就是开放!

我们都知道ARM公司其实业务营收完全依靠IP核收入的!

像联发科之类的企业,说好听点叫半导体企业,说不好听点就是半导体组装企业!他家的CPU本质上是高级一点的组装产品——购买现成的IP核(ARM),购买GPU核(Imagination、Mali)以及各种接口IP核(Synopsys),通过一定的流程,集成(高级组装)SOC。根本不涉及最核心的微结构设计!估计连华为海思都拼不过,也就依组装才能在山寨机和国产低端机中赚取差价的利润!

MIPS就不一样了,国内像大唐,他自己的CPU就是完全自主研发(当然架构也肯定是借鉴),但是总比组装机强!

好了,扯了这么多,开始正题!选好之后,那么开始动手干活!

7、搭建环境

0.首先你需要安装Linux操作系统

推荐ubuntu 12.04 不过凡事都选择最新的,我就喜欢经典的版本!

1.去Linux Kernel官网下载内核

我选择长期支持的3.10.92吧!

2.选择交叉编译工具

交叉编译的重要性和原理我就不说了!这里说另外一点!交叉链子依赖是32位的Lib库的!

在有的64位系统中可能使用不了,这里需要安装32位lib库.

ubuntu 下执行
sudo apt-get install ia32-libs


*接下来让我开始我的内核之旅吧*

By: Keven - 点滴积累
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: