下载此文档

2021年要怎么学嵌入式linux嵌入式linux怎么学?Linux学习资料.docx


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
要怎么学嵌入式linux嵌入式linux怎么学?Linux学****资料

  现现在,Linux的应用和学****日趋广泛,多种学****内容和方法也层出不穷,我个人认为,千锋教育的教育方法就别具一格,且极为实用。
  “学****Linux内核”对不一样的人有不一样的含义,学****方法、侧关键、投入的精力也大不相同。我大致分三类:reader、writer、hacker。reader 就是了解某个功效在内核的大致实现 how does it work,通常不关心一些极端情况下(内存不足、受到攻击)的处理方法,对于看不懂的地方也能够跳过。
  我自己最多算半个 reader,只看我感爱好的一小部分代码(我只关心 TCP 收发数据,不论 IP routing/forwarding/fragment 等,更不会去关心 ethernet 层),而且读一个函数通常只看主干(happy path),不论 security/debugging/tracing,常常忽略错误处理分支。writer 是给内核加feature和改bug的人,需要更深入的知识,写代码要考虑 how not to break it。hacker 是经过分析代码找出安全漏洞并加以利用的人,研究 how to break it,读代码恐怕更注意找出error handling分支没有覆盖的case。内核向用户态提供的接口很稳定,不过内核的详细实现改变很快,你深入钻研取得的知识很轻易就过时。比喻说 Linux 的 TCP 实现在2021年3月新加了 TCP_NEW_SYN_RECV 这个非标准的 TCP state,同年6月公布的 kernel 才开始用它。
  假如你学的是一年前的 kernel,那么建立TCP连接这方面的细节知识对于今年公布的 Ubuntu 可能已经过时了。Linux内核的编码风格不值得效仿。比如 tcp_v4_rcv 这个函数,有很多 goto:tcp_ [linux/net/ipv4/tcp_]Linux内核的部分做法在 C 语言中是合理的(比喻说用包含函数指针的多种 xxx_ops struct 来手工实现虚函数表,经过控制 struct 内存布局来模拟继承:tcp_sock 继承 inet_connection_sock 继承 inet_sock 继承 sock 继承 sock_common),在其它高级语言中往往有更简便的实现方法,无须生搬硬套。碰到 xxx_ops->some_func(arg) 这种代码,思绪轻易断线,这个 xxx_ops 到底指向哪个详细实现?最好能把代码跑起来,用调试器单步跟踪,一下子就定位到了 callee。
  当然,读 OO 代码也会碰到这个困难,传进来的这个 interface 在运行时到底是哪份实现?读 Python 代码就更难了,函数参数光有个名字,连 type 全部没有。Linux内核比较重视代码的通用性和复用性,要照料那些即使你用不到但少数人会用的需求。通用性方面,即使现在大家全部用以太网,不过网络协议栈的代码还在支持 FDDI、Token Ring(从 版起已删除)、ATM 等,偶然会扰乱视线,更在原本简单直接的做法上增加间接层,加大了了解代码的负担。复用性方面,从 版开始,IPv4 和 IPv6 共享同一个 tcp_c

2021年要怎么学嵌入式linux嵌入式linux怎么学?Linux学习资料 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书百遍
  • 文件大小16 KB
  • 时间2021-02-26