一个系统软件工程师的方法论 -a system software engineer’s methodology
DESCRIPTION
一个系统软件工程师的方法论 -A System Software Engineer’s Methodology. 陈怀临,创办人 《 弯曲评论 》 www.tektalk.cn. 提纲. ×《 弯曲评论 》 × 系统软件 × 知识结构 × 工作方法 × 系统理解 × 工业动态 × 结束寄语. × 目标:非盈利性智库机构 × 领域: × 科技跟踪 × 专题分析 × 人物报道 × 学术打假. 《 弯曲评论 》 ( www.tektalk.cn ). - PowerPoint PPT PresentationTRANSCRIPT
04/20/23 1
一个系统软件工程师的方法论
-A System Software Engineer’s Methodology
陈怀临,创办人《弯曲评论》
www.tektalk.cn
04/20/23 2
× 《弯曲评论》
× 系统软件
× 知识结构
× 工作方法
× 系统理解
× 工业动态
× 结束寄语
提纲
04/20/23 3
× 目标:非盈利性智库机构
× 领域:× 科技跟踪
× 专题分析
× 人物报道
× 学术打假
《弯曲评论》( www.tektalk.cn )
04/20/23 4
最近工作总结: × 专题分析
《对中国系统软件的思考与建议》
《对华为系统软件的战略思考(上)》
《对华为系统软件的战略思考(下)》
《对陆首群“坚持开源软件的创新之路”一文的讨论 》
《对国防科大麒麟操作系统研发的思考》
《中国计算机发展史略 (1956-2006) 》
《弯曲评论》( www.tektalk.cn )
04/20/23 5
最近工作总结: × 学术打假: IPV9 批判
IPv9 ,中国的创新,还是骗子的杰作?如果中国少几个张庆松——写在张庆松力挺 IPv9 之后科技问题政治化和狐假虎威的范例阳光下的争辩—— IPv9 是什么
没有知识你可以有常识,没有学问你应该有疑问——再驳张庆松博士大家快来看上帝啊—— IPv9 的一些技术细节揭开 IPV9 的神秘面纱–“ IPv9” 公开信息统计谢建平先生到底拥有哪些“ IPv9” 专利?
《弯曲评论》( www.tektalk.cn )
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 )
04/20/23 7
最近工作总结:
× 人物评述:
《邓稼先传》
《海外学人》
《计算的美丽 - 图灵奖的第一个四十年》(上)
《计算的美丽 - 图灵奖的第一个四十年》(下)
《弯曲评论》( www.tektalk.cn )
04/20/23 8
× 操作系统× 桌面操作系统× 服务器操作系统× 嵌入式操作系统
× 编译器与工具链( gcc, binutil, gdb…)
× 编程环境,中间件×PVM , MPI , OpenMP×Mapreduce , Hadoop×CORBA , DCOM
系统软件
04/20/23 9
× 嵌入式操作系统
- 传统分时系统: Linux , FreeBSD
- 微内核: QNX/Neutrino , L4 , Mach
- 大型通信操作系统:华为 /VRP ,思科 /IOS 、 IOX
系统软件
04/20/23 10
× 系统软件工程师
×系统开发的关键成员
×系统调试的关键成员
×系统维护的关键成员
×系统升级的关键成员
知识结构
04/20/23 11
× 形而下
×掌握一种 CPU 的结构
×熟练掌握汇编语言和相应的调试方法
×熟练掌握 C 语言和相应的调试方法
知识结构
04/20/23 12
× 形而下
×深刻理解经典操作系统原理- 调度,内存管理,通信,同步,锁
×深刻理解一个进程空间的分布
知识结构
04/20/23 13
× 形而上
×了解一种 CPU/NP/SoC 的微结构
×了解多种流行 CPU 、 NP 的结构- MIPS , ARM 、 XScale- IA32 , PowerPC- XLR , Cavium- AMD
知识结构
04/20/23 14
× 形而上
×熟悉一种总线或连接( Interconnect )
×了解多种流行总线或连接×MPX , 603 ,×HT , CSI ×PCI , PCI-E, RapidIO
知识结构
04/20/23 15
× 形而上
× 熟悉一款 OS 子系统实现机制× 熟悉一款 OS 内核开发环境×了解各种 OS优缺点和映射关系
知识结构
04/20/23 16
× 形而上
× 熟悉协议栈
×阅读 RFC
知识结构
04/20/23 17
× 形而上
×熟悉经典数据结构算法
× 熟悉排队论系统( Queue System )
×基本算法复杂性分析能力
知识结构
04/20/23 18
× 形而上
× 跟踪工业界研发动态
×阅读经典学术文献
知识结构
04/20/23 19
×谨慎,谦虚
×不生气
ד当你认为再也没有 bug 的时候,至少还有一个没有发现的 bug”
ד 你最担心的地方,也就是你要犯错的地方!”
×系统层次的 bug 是致命的。
×任何一行系统代码都是重要的。
工作方法
04/20/23 20
×调试硬件开发板工作方法:
-阅读硬件规约第一遍的仔细与精确性
-撰写调试日志的工作习惯
- 建立 Baseline 的重要性
- 步步为营和可追溯性。
工作方法
04/20/23 21
×调试硬件开发板工作方法:
- 与厂商技术支持交互
-不要相信开发板和硬件工程师
- 如果出现过(一个错误),一定会再出现
工作方法
04/20/23 22
×系统研发工作方法:
-简单就是美;实用才是王道!
-次优算法;解决问题;把最优算法留给教授。
-策略与机制的分离!
-不要从新发明;不要当民科!
-最好的老师是 www.google.com
工作方法
04/20/23 23
×系统研发工作方法:
-控制平面
-数据平面
- 管理平面
- 调试平面
工作方法
04/20/23 24
×系统联调工作方法:
- 概念清晰,层次感强: Divide and Conquer
-集成复杂性
-放弃侥幸心理
工作方法
04/20/23 25
×系统测试和联调工作方法:
×简单 bug 的调试方法(可重复的)
-LED点灯调硬件板
-printf 的使用
- 子系统 Loopback 调试
工作方法
04/20/23 26
×系统测试和联调工作方法:
×复杂 bug 的调试方法(非常难重复的)
-bug 的表象原理
-bug 的累积原理
-功力(基础)有多深;就能走多远。
工作方法
04/20/23 27
×系统测试和联调工作方法:
×复杂 bug 的调试方法(非常难重复的)
-最复杂的 bug 是概念不清而引入的
bug
-最头痛的 bug 是 memory corruption
工作方法
04/20/23 28
×系统测试和联调工作方法:
×科学攻关 vs 工业研发
--不要轻易放弃
--不是做研究,发文章。
--patch 的使用;度的掌握
工作方法
04/20/23 29
×系统可扩展性和升级研发方法:
- 硬件计算能力的翻倍 ! =系统性能的翻倍!
-瓶颈通常是通信开销,总线开销。
- 坚持系统改良的道路;不要做激烈革命者
工作方法
04/20/23 30
×系统可扩展性和升级研发方法:
- “ You can’t control it, if you can’t measure a system
-基于可量化的科研方法。
工作方法
04/20/23 31
×如何与客户打交道:
-已经是网络工程师搞不定的 bug
-稳住客户
-不要轻易下结论
- 解决方案或者补丁 patch.
- 一个 Best Efforts 的技术解释。
工作方法
04/20/23 32
× 系统( System )与核心( Kernel) 的关系
×计算单元的多样化( ASIC , FPGA , CPU , NP)
×互连网络的多样化( Bus , Interconnect )
系统理解
04/20/23 33
工业动态
× 多核系统的持续应用
×微观分布式并行计算系统
04/20/23 34
工业动态
04/20/23 35
04/20/23 36
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
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
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
04/20/23 40
结束语
谢谢大家!
欢迎访问弯曲评论www.tektalk.cn