京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7228|回复: 0

送书|微软拥抱开源,Win10为啥要引入真Linux4.X内核?

[复制链接]

9

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-5-19 05:26:31 | 显示全部楼层 |阅读模式 来自 中国
脚本之家
2 B' Y) E: R& V+ v# r! h: w2 `" J; Q; r0 n
你与百万开发者在一起
8 i' v6 E$ W* }2 H. ~* N! j2 k* ]0 ^
- m/ E) e* f4 C) H: d

" r0 ]7 g  O; D1 Q+ Y: m7 a5 c8 M) ~/ W! o6 b
来源 | 异步 | 文末赠书' G6 E1 u& i, C: m' t: D2 @9 E. e7 S
$ I. ^* Y7 n% n: j0 `' ~

9 l9 ?0 V/ T& I6 n, t: X; W
( b& I* P3 c, y9 Z" s" Q3 _8 T" o9 z, u/ X/ C( I5 |8 Q; i8 c7 X7 T: D9 _

. e& `5 W' J( u4 }+ m% \& u2 {' w" W2019 年微软 Build 开发者大会在雷德蒙德召开。继将 Bash shell、原生 OpenSSH、WSL 引入 Windows,以及在微软商店提供 Ubuntu、SUSE Linux 和 Fedora 等发行版,微软又宣布了一个重大的决定 —— 将完整的 Linux 内核引入 Windows 10。6 _( n, |4 R0 E2 v, ]+ j$ U

! @! _( R4 u! B3 o$ D3 p* z- \9 o' S' F
按照微软的说法,到时 Windows 10 将包含内置的完整定制版 Linux 内核,为最新的 WSL 提供更好的支持。Linux 内核版本为 4.19,是一个长期稳定版。随着 WSL2 正式发布,WSL2 用的 Linux 内核也将完全开源。近些年,微软公司来雇佣了很多 Linux contributor,给微软带来了很多业界领先的 Linux 技术,所以才会有去年的 WSL,这样的举动也必将吸引更多的人才加入。+ [) G8 u8 ~, _0 m0 [' l

6 Y, k0 P5 b  {# p1 A2 y# y# v0 ]$ q$ x6 S# g3 x' U4 E" d/ J
Linux内核是使用最广泛的开源内核,在服务器和智能手机领域处于统治地位,物联网、大数据、云计算和人工智能等热点技术也离不开Linux内核。对于商业公司而言,采用开源的Linux内核可以享受很多好处,比如节约成本,可以利用行业先进的技术,还可以根据自己的需求定制、修改内核。对于个人而言,从Linux内核中可以学习先进的设计方法和编程技术,为内核贡献代码可以证明自己的技术实力。
. `  l2 P9 @/ h8 ]- ^* V- k5 p& |可是,当我们准备学习Linux内核时,会发现Linux内核的代码庞大而复杂,在没有专业书籍指导的情况下,读懂代码是一件非常困难的事情。如何学Linux内核?小编推荐这本《Linux内核深度解析》,书中剖析的代码基于Linux 4.12版本,同时,它基于ARM64硬件平台,将两者结合。
. h( _# P1 O9 [" u3 u- q0 h, q1 v
[img=236px,311px]https://mmbiz.qpic.cn/mmbiz_jpg/iaibvmyz4605OgibqwlLBTjlHDt3VfbicR3Lg3DXbkgt1ibOp6R6IcvFKdiaLQLibhdeINe7YkmxjLZbx8ERplLmpvkNQ/640?wx_fmt=jpeg[/img]

+ f+ T  F1 K# h  i

0 F( g% Q. K* k7 l
作为一个优秀的开源系统,Linux在业界有很广泛的应用。从1994年发布1.0正式版本开始,Linux内核一直在发展,代码越来越庞大,参伍以变,错综其数,要想深入掌握它,并不是一件轻松的事情。

: r$ w8 c1 T1 U5 c0 X本书作者余华兵从事Linux内核开发工作十余年,有着丰富的实践经验,使用过不同的版本和硬件平台,从2.x到4.x,从MIPS、x86到ARM。伴随着研发大楼的华灯,当年初出校门的学子,如今萧萧两鬓生华,成为一个在Linux领域有深厚积累的专家。相信这本书会让你收获满满。
1 C! W: E5 z: v/ y. u- l 对于从事应用程序开发的软件工程师,
  x* R- ~# ?, i1 U. Z是否有必要学习内核呢?) G' h/ H, p, ~" x" {+ \2 g0 J; @
应用程序通常使用封装好的库,看起来似乎和内核没有关系,但是库是在内核提供的系统调用的基础上做了一层封装。读者如果研究了库函数和内核配合实现库函数提供的功能,那么对软件运行过程的理解将会更深刻,个人的技术水平也将会提升到新的高度—能够设计开发出高质量的应用程序,在软件运行过程中出现问题时可以快速地分析定位。另外,内核代表了软件行业的最高编程技术,这些编程技术也适用于应用程序。是否有必要学习内核呢?答案是肯定的。
: q9 w7 w+ p& u% g- y9 p8 A

+ |" ~/ X: X* k2 O  z8 Z2 n 为什么要学Linux4.X? 8 o% I$ F) F3 ]: G% t

  v# D. M; f# D: X5 x2 _
' P9 z+ B0 y8 G% D; T2 y; F+ G早些年数通领域各厂商(包括思科和华为)的操作系统,都是基于传统的嵌入式操作系统(如典型的VxWorks操作系统)开发的。2010年以后,Linux内核在数通厂商中快速生长,迅速成为数通设备网络操作系统的内核。就像基于Linux内核的安卓系统已经成为智能手机领域的领头羊一样,在数通设备领域,Linux内核也大有一统江湖之势。
+ }" Z8 F# g, U, c4 o) e; C7 ?我们在基于Linux内核开发网络操作系统的过程中遇到的某些技术问题,在Linux内核的演进过程中已经提供了解决方案。Linux 3.11版本ARM架构支持巨型页机制,解决了ARM架构的进程访问大内存的性能问题。Linux 3.14版本引入ZRAM内存压缩技术,用于节省内存空间,这项技术适合在内存容量小的设备上使用。Linux 2.6.29版本引入的squash文件系统和Linux 3.18版本引入的overlay文件系统,在闪存容量小的设备上解决了存储空间不足的问题。squash文件系统可以压缩数据,但是它是一个只读的文件系统,而设备需要一个可写的文件系统,我们在Linux内核找到了解决方案—使用overlay文件系统在squash文件系统上面叠加一个可写的文件系统。这些拿来即用的Linux内核技术,在这本书中都有提及。
' k  [) v& [9 l) B$ G' f- p- k近年来Linux发展迅速,公司最早使用的Linux内核是2.6版本,从2011年发布3.0版本开始到2018年年底发布4.20版本,Linux一共发布了41个版本,技术发展日新月异。很多技术虽然有众多的工程师在使用和总结,但仍相对零散,基于Linux 4.x的图书更是少之又少。: S2 X3 e/ ]! A5 `4 m- @! {
 本书特点是什么吗? 4 J- |& X& @4 ?3 O/ n
1 m5 D' Z: Y: |- x$ R! [* s- ], H

7 t" k6 q6 B/ J3 K2 g/ H本书剖析的代码基于Linux 4.12版本,发布于2017年,是Linux内核史上变动较大的版本之一。基于这个版本进行内核代码解析并出版成书,是比较新颖的,既不失通用性,又兼顾4.x版本中引入的不少新技术点。同时,它基于ARM64硬件平台,将两者结合的书,目前还是比较少的。
# `0 |% Y. \/ J' N8 Y9 w, D4 Y: a另外,本书没有过多地介绍操作系统的基础原理,而更多地是以实际代码来解读在Linux内核中是如何实现操作系统的各个子系统的。对于熟悉操作系统基础的读者来说,可以快速地切入到具体代码的理解与实现中。从内核引导和初始化开始,到进程管理、内存管理、中断/异常/系统调用、内核互斥技术和文件系统,本书比较系统地对内核代码进行了深度解析。
# F$ E4 r+ K1 E7 j4 XLinux内核的知识点相当繁多,很难在一本书中面面俱到,也没有必要。所以,在这本书中,看似不经意间逐层展开的知识点,都是比较基础和常用的。作者以他的实践经历尽量通俗地进行解读,并抓住了其中的重点,可以让读者在实际的开发、调试和维护工作中学以致用。* `( F0 a( e' l0 \2 p4 R$ l2 `
“行是知之始,知是行之成”,学习Linux内核技术尤其如此。要真正消化理解Linux内核,离不开大量的工程实践。希望本书可以成为你前进路上的好帮手!( j! C  Q) F: d( z3 ?1 {
 如何读这本书?  q# P$ h/ ^; u9 H" j
本书介绍4.12版本的Linux内核,建议你在阅读本书时到Linux内核的官方网站中下载一份代码,对照代码学习。推荐使用“Source Insight”软件阅读代码。
7 U9 c7 k( f$ K" ]3 u4 _! |
' L6 p" w. k# E
( s9 t/ Y6 }- T8 u+ n' m
  Q! r& o: z8 N$ t) ~; d
Linux内核支持多种处理器架构,处理器架构特定的代码放在“arch”目录下。ARM处理器在手机和平板电脑等移动设备上处于统治地位。ARM处理器从ARMv7演进到支持64位的ARMv8,ARM公司重新设计了处理器架构,ARMv8定义了AArch64和AArch32两种执行状态,AArch64是64位架构;AArch32是32位架构,兼容ARMv7。因为ARMv8和ARMv7的差别很大,所以Linux内核把ARMv8和ARMv7当作两种不同的处理器架构,ARMv7架构的代码放在“arch/arm”目录下,ARMv8架构的代码放在“arch/arm64”目录下。人们通常把ARMv8架构的AArch64执行状态称为ARM64架构。本书在介绍Linux内核时选择ARM64处理器架构。( H, ]" F' k- f: U5 T
学习本书,需要具备ARM64处理器的基础知识,推荐以下两篇文档,读者可以从ARM公司的网站下载。
1 s7 G' B$ s3 M  `( \0 R1 \8 l(1)“ARM Cortex-A Series Programmer’s Guide for ARMv8-A”:这篇文档接近300页,适合入门学习。
, k8 Y. q4 {& f. n! R(2)“ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile”:这篇文档有6000多页,写得很详细,适合当作工具书来查询。6 _9 }: p. c1 Z: E% \2 k8 L& Q
学习内核,关键是要理解数据结构之间的关系和函数调用关系。内核中数据结构之间的关系错综复杂,函数调用层次深,有些函数中的分支非常多,一个函数就可能涉及很多技术,这些都是初学者学习中的障碍。作者建议读者在学习时抓住主要线索,弄清楚执行流程,刚开始不要过多关注函数的细节。为了方便学习,作者绘制了很多图来描述数据结构之间的关系和函数的执行流程。另外,作者在介绍每种技术时会先介绍使用方法,从使用方法开始学习技术,相信会对读者理解技术有很大的帮助。
# F6 M6 w0 E( r$ }% n全书内容共分为6章。4 M  t9 A9 N' Z/ I* f( d
第1章介绍内核的引导过程,本书选择常用的引导程序U-Boot,读者可以从德国DENX软件工程中心的网站下载U-Boot的代码,对照学习。
% q9 E. x5 ]- |" {; g第2章介绍内核管理和调度进程的技术原理。
5 z$ _* U3 @( d' F6 b第3章介绍内核管理虚拟内存和物理内存的技术原理。( _- K6 R. c/ R3 ^8 ^. Q! X- f
第4章介绍内核处理异常和中断的技术原理,以及系统调用的实现方式。$ s3 d0 H! R/ C
第5章介绍内核实现的各种保护临界区的互斥技术。4 D! }) m8 l; E4 u/ e
第6章介绍内核的虚拟文件系统,内核使用虚拟文件系统支持各种不同的文件系统。. S$ W, B9 @" E# `6 K; l
[img=187px,246px]https://mmbiz.qpic.cn/mmbiz_jpg/iaibvmyz4605OgibqwlLBTjlHDt3VfbicR3Lg3DXbkgt1ibOp6R6IcvFKdiaLQLibhdeINe7YkmxjLZbx8ERplLmpvkNQ/640?wx_fmt=jpeg[/img]书名:《Linux内核深度解析》
; q$ G9 i( |' ]( `7 o8 e( S作者:余华兵8 B0 m' a1 l2 ~6 v! e8 O

# e" ~! d3 ^/ d8 f编辑推荐:  3 Z! j9 G0 ^  `$ i* ^1 @5 w; n1 Q
% }9 A: R3 l' i; R7 X6 Q4 w; D

    5 R' c, v% S$ d) z* \  e
  • 基于ARM64架构的Linux 4.x内核;
      G# s7 K3 [0 h' N( \  G; T4 n$ f
  • 大量图例描述数据结构之间的关系和函数的执行流程;- W; ?* \5 d1 W7 P1 v& X4 U
  • 结合代码分析,以通俗化语言全面剖析Linux内核。
    6 @+ ]8 }+ y; ?( m$ b) |- J8 d8 n# y
本书基于4.x版本的Linux内核,介绍了Linux内核的若干关键子系统的技术原理。本书主要内容包括内核的引导过程、内核管理和调度进程的技术原理、内核管理虚拟内存和物理内存的技术原理、内核处理异常和中断的技术原理,以及系统调用的实现方式等。此外,本书还详细讲解了内核实现的各种保护临界区的互斥技术,以及内核的文件系统。本书内容丰富,深入浅出,通过大量的图例来描述数据结构之间的关系和函数的执行流程,并结合代码分析,引导读者阅读和理解内核源代码。
- u) P. }  r4 e1 f1 C
-END-
$ Y; N5 C& ]0 ^& `
4 D7 o% [- h9 v, X
( K* S. s$ L, J3 y

- T6 o' ^2 m5 m2 O$ s' g5 \

" a( B9 I" k1 T' E8 k3 Z! ^踩楼送书活动参与方法:
' _" c8 i) ?; ]

: ]$ w1 o& ]" n+ c/ b# K9 p

$ s$ [5 ?8 ]  y- i0 y% [% W& M本文下方留言,发表您对Linux的经验感想机会总是靠自己去争取来的!小编将对留言进行精选被精选的留言将会显示在页面中(由于微信留言功能限制,最多只能显示100条)。7 r) }. F; E3 l% g9 W( M' x( }
踩楼送书活动获奖须知: 
$ ^- [% y* V$ a$ ]% [! L' ?1、活动结束时踩中指定楼层的精选留言将获得《Linux内核深度解析》一本,共5名中奖者  @% P7 M% B0 q2 v6 r
2、活动结束我们会在本公众号公布中奖楼层的解压密码,并在3个工作日内收集到获奖用户信息后发出(收到奖品的小伙伴欢迎来留言区晒晒。)* r$ \# Z" {4 N4 Y0 O7 E6 o1 F  r
3、获奖楼层下载地址(文件解压密码2019年5月21日公布)- N) m0 x' }' b1 Q& O& e- v
百度云链接:( t, G4 ^, c7 |6 `
https://pan.baidu.com/s/17Uc4uXsFrFgQqpQAUtZmfQ
/ [  ?1 L* L& M/ O! _提取码: 8fu9. B% h. l! x% c2 j8 w1 |

0 o+ t" @) \: ^% i# e
' L, J6 u; x) D% A. D) F3 F0 C: j
+ R9 \5 [) [9 U- ?. M6 B% Y

: M8 J& Y" q; r7 T5 ?1 N% ?1 `

7 g/ ?* _  _5 S6 U9 l9 I2 r; k
! k9 M# e2 S6 Y+ z( F0 ?, p

6 O$ o, U5 \5 [/ N7 M, \
3 f( t1 }* Z, S: a* y 活动时间" x+ ]" E6 s& \$ O* I8 X; u# q3 @
活动时间:即日起至2019年5月21日下午4点整

# d; E0 P3 Z. z" Y
. \3 M; i* l1 U9 E5 I精选书单 点蓝字即可 
* g( `0 T# g, R0 d- d" h/ `( V 我放弃Python转Go语言的9大理由 | 优秀书籍推荐
" u6 d' C" ~) c& X$ E: ?

' ]7 Z6 Q0 z7 C1 k6 Z7 L♡ 99%的程序员都会收藏的书单,你读过几本?
& `3 b/ ^& G! ^♡ 你眼中的Linux高手,都应该读过这几本书!
7 g0 ?- G3 l0 ]: \% p- e( j♡ 薪资那么高的Web前端,该看些什么书?# r/ G/ W8 a3 x1 g! c& \3 P0 `: L
♡ 顶级程序员必备书籍,雷军都点赞的书单!* A4 R  N5 k/ s% R2 T
♡ 推荐 | 怎样才能自学好Java?(内附攻略&书单)
& s& T0 f1 n* n2 [! @1 k♡ 吐血推荐 | Android开发从入门到进阶的十本好书
/ s' X9 N6 I) y8 _; K' r5 u8 _' {; \8 {♡ 安全类书籍天团配置,给你最好的安全指导!
( Q' C; d' H4 Q- _9 t. _% p; p$ }& m♡ 微信小程序 + 公众号开发运营看这一篇就够了!!!
7 f6 t9 \$ H! @* P  i8 h♡ 荐书 | 您有一份JavaScript书单待签收, W. S; e& k7 G( U  `5 R
更多好书请关注脚本之家微店5 _$ T# b% p+ j" a8 M% k

% r% h9 C9 S/ j9 I9 Q6 V$ Q来源:http://mp.weixin.qq.com/s?src=11&timestamp=1558213204&ver=1614&signature=-JrJ3Ehk6-AgIUqXq0vIuKoRAO7VY*2Gq4WTxRvXLEJmFQS9QAGAOxv6OOKCF8pP8DMzXftTLRDOliJWcg3cLP6GVP--UAHEQfOLHFdIIi7LJIJKSMS51MuR0XVXd-1H&new=14 J% i' Y* U( w9 X) R/ r, Y
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-17 05:57 , Processed in 0.052109 second(s), 28 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表