一个系统软件工程师的方法论 -a system software engineer’s methodology

40
06/08/22 1 个个个 个个个个个个个个个 一统 -A System Software Engineer’s Methodology 个个个 个个个 个个个个www.tektalk.cn

Upload: mari-jefferson

Post on 03-Jan-2016

156 views

Category:

Documents


0 download

DESCRIPTION

一个系统软件工程师的方法论 -A System Software Engineer’s Methodology. 陈怀临,创办人 《 弯曲评论 》 www.tektalk.cn. 提纲. ×《 弯曲评论 》 × 系统软件 × 知识结构 × 工作方法 × 系统理解 × 工业动态 × 结束寄语. × 目标:非盈利性智库机构 × 领域: × 科技跟踪 × 专题分析 × 人物报道 × 学术打假. 《 弯曲评论 》 ( www.tektalk.cn ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 1

一个系统软件工程师的方法论

-A System Software Engineer’s Methodology

陈怀临,创办人《弯曲评论》

www.tektalk.cn

Page 2: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 2

× 《弯曲评论》

× 系统软件

× 知识结构

× 工作方法

× 系统理解

× 工业动态

× 结束寄语

提纲

Page 3: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 3

× 目标:非盈利性智库机构

× 领域:× 科技跟踪

× 专题分析

× 人物报道

× 学术打假

 

《弯曲评论》( www.tektalk.cn )

Page 4: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 4

最近工作总结: × 专题分析

《对中国系统软件的思考与建议》

《对华为系统软件的战略思考(上)》

《对华为系统软件的战略思考(下)》

《对陆首群“坚持开源软件的创新之路”一文的讨论 》

《对国防科大麒麟操作系统研发的思考》

《中国计算机发展史略 (1956-2006) 》

《弯曲评论》( www.tektalk.cn )

Page 5: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 5

最近工作总结: × 学术打假: IPV9 批判

IPv9 ,中国的创新,还是骗子的杰作?如果中国少几个张庆松——写在张庆松力挺 IPv9 之后科技问题政治化和狐假虎威的范例阳光下的争辩—— IPv9 是什么

没有知识你可以有常识,没有学问你应该有疑问——再驳张庆松博士大家快来看上帝啊—— IPv9 的一些技术细节揭开 IPV9 的神秘面纱–“ IPv9” 公开信息统计谢建平先生到底拥有哪些“ IPv9” 专利?

《弯曲评论》( www.tektalk.cn )

Page 6: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 6

最近工作总结: × 科技书籍:

《 PowerPC and Linux Kernel Inside 》

《 Linux 核 心》( The Linux Kernel) (下)

《 Linux 核 心》( The Linux Kernel) (中)

《 Linux 核 心》( The Linux Kernel) (上)

《 MIPS CPU 体系结构概述, Linux/MIPS 内核》(下)

《 MIPS CPU 体系结构概述, Linux/MIPS 内核》(上)

《 See MIPS Run 》

《弯曲评论》( www.tektalk.cn )

Page 7: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 7

最近工作总结:

× 人物评述:

《邓稼先传》

《海外学人》

《计算的美丽 - 图灵奖的第一个四十年》(上)

《计算的美丽 - 图灵奖的第一个四十年》(下)

《弯曲评论》( www.tektalk.cn )

Page 8: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 8

× 操作系统× 桌面操作系统× 服务器操作系统× 嵌入式操作系统

× 编译器与工具链( gcc, binutil, gdb…)

× 编程环境,中间件×PVM , MPI , OpenMP×Mapreduce , Hadoop×CORBA , DCOM

系统软件

Page 9: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 9

× 嵌入式操作系统

- 传统分时系统: Linux , FreeBSD

- 微内核: QNX/Neutrino , L4 , Mach

- 大型通信操作系统:华为 /VRP ,思科 /IOS 、 IOX

系统软件

Page 10: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 10

× 系统软件工程师

×系统开发的关键成员

×系统调试的关键成员

×系统维护的关键成员

×系统升级的关键成员

知识结构

Page 11: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 11

× 形而下

×掌握一种 CPU 的结构

×熟练掌握汇编语言和相应的调试方法

×熟练掌握 C 语言和相应的调试方法

知识结构

Page 12: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 12

× 形而下

×深刻理解经典操作系统原理- 调度,内存管理,通信,同步,锁

×深刻理解一个进程空间的分布

知识结构

Page 13: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 13

× 形而上

×了解一种 CPU/NP/SoC 的微结构

×了解多种流行 CPU 、 NP 的结构- MIPS , ARM 、 XScale- IA32 , PowerPC- XLR , Cavium- AMD

知识结构

Page 14: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 14

× 形而上

×熟悉一种总线或连接( Interconnect )

×了解多种流行总线或连接×MPX , 603 ,×HT , CSI ×PCI , PCI-E, RapidIO

知识结构

Page 15: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 15

× 形而上

× 熟悉一款 OS 子系统实现机制× 熟悉一款 OS 内核开发环境×了解各种 OS优缺点和映射关系

知识结构

Page 16: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 16

× 形而上

× 熟悉协议栈

×阅读 RFC

知识结构

Page 17: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 17

× 形而上

×熟悉经典数据结构算法

× 熟悉排队论系统( Queue System )

×基本算法复杂性分析能力

知识结构

Page 18: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 18

× 形而上

× 跟踪工业界研发动态

×阅读经典学术文献

知识结构

Page 19: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 19

×谨慎,谦虚

×不生气

ד当你认为再也没有 bug 的时候,至少还有一个没有发现的 bug”

ד 你最担心的地方,也就是你要犯错的地方!”

×系统层次的 bug 是致命的。

×任何一行系统代码都是重要的。

工作方法

Page 20: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 20

×调试硬件开发板工作方法:

-阅读硬件规约第一遍的仔细与精确性

-撰写调试日志的工作习惯

- 建立 Baseline 的重要性

- 步步为营和可追溯性。

工作方法

Page 21: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 21

×调试硬件开发板工作方法:

- 与厂商技术支持交互

-不要相信开发板和硬件工程师

- 如果出现过(一个错误),一定会再出现

工作方法

Page 22: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 22

×系统研发工作方法:

-简单就是美;实用才是王道!

-次优算法;解决问题;把最优算法留给教授。

-策略与机制的分离!

-不要从新发明;不要当民科!

-最好的老师是 www.google.com

工作方法

Page 23: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 23

×系统研发工作方法:

-控制平面

-数据平面

- 管理平面

- 调试平面

工作方法

Page 24: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 24

×系统联调工作方法:

- 概念清晰,层次感强: Divide and Conquer

-集成复杂性

-放弃侥幸心理

工作方法

Page 25: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 25

×系统测试和联调工作方法:

×简单 bug 的调试方法(可重复的)

-LED点灯调硬件板

-printf 的使用

- 子系统 Loopback 调试

工作方法

Page 26: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 26

×系统测试和联调工作方法:

×复杂 bug 的调试方法(非常难重复的)

-bug 的表象原理

-bug 的累积原理

-功力(基础)有多深;就能走多远。

工作方法

Page 27: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 27

×系统测试和联调工作方法:

×复杂 bug 的调试方法(非常难重复的)

-最复杂的 bug 是概念不清而引入的

bug

-最头痛的 bug 是 memory corruption

工作方法

Page 28: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 28

×系统测试和联调工作方法:

×科学攻关 vs 工业研发

--不要轻易放弃

--不是做研究,发文章。

--patch 的使用;度的掌握

工作方法

Page 29: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 29

×系统可扩展性和升级研发方法:

- 硬件计算能力的翻倍 ! =系统性能的翻倍!

-瓶颈通常是通信开销,总线开销。

- 坚持系统改良的道路;不要做激烈革命者

工作方法

Page 30: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 30

×系统可扩展性和升级研发方法:

- “ You can’t control it, if you can’t measure a system

-基于可量化的科研方法。

工作方法

Page 31: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 31

×如何与客户打交道:

-已经是网络工程师搞不定的 bug

-稳住客户

-不要轻易下结论

- 解决方案或者补丁 patch.

- 一个 Best Efforts 的技术解释。

工作方法

Page 32: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 32

× 系统( System )与核心( Kernel) 的关系

×计算单元的多样化( ASIC , FPGA , CPU , NP)

×互连网络的多样化( Bus , Interconnect )

系统理解

Page 33: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 33

工业动态

× 多核系统的持续应用

×微观分布式并行计算系统

Page 34: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 34

工业动态

Page 35: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 35

Page 36: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 36

Page 37: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 37

Centralized Shared Memory Multiprocessor

Interconnection Network

Processor

Caches

Main Memory I/O System

Processor

Caches

Processor

Caches

Processor

Caches

High-end Internet Appliance Architecture

Page 38: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 38

High-end Internet Appliance Architecture

Interconnection Network

Caches

Memory I/O

Caches

Memory I/O

Caches

Memory I/O

Non-Uniform Memory Access (NUMA):Accessing local memory is faster than accessing remote memory

Processor ProcessorProcessor

Page 39: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 39

Cluster Interconnection Network

Memory I/O

Proc.

Caches

Node Interc. Network

Proc.

Caches

Proc.

Caches

Memory I/O

Proc.

Caches

Node Interc. Network

Proc.

Caches

Proc.

Caches

Distributed Shared Memory (Clusters of SMPs)Typically: Shared Address Space with ccNUMA

High-end Internet Appliance Architecture

Page 40: 一个系统软件工程师的方法论 -A System Software Engineer’s Methodology

04/20/23 40

结束语

谢谢大家!

欢迎访问弯曲评论www.tektalk.cn