Resource
Searching engine
Google / baidu / bing / patent(new tech)
Wiki
wikipedia / 百度百科/百度文库
search in http://www.ibm.com/developerworks/cn/ OR http://www.ibm.com/developerworks/
http://www.ibm.com/
Datasheet
http://www.alldatasheet.com
http://www.datasheetschina.com
http://elcodis.com/36/accelerometers.html
Buletooth Specification including all of profiles, services,protocols and transports
https://www.bluetooth.org/en-us/specification/adopted-specifications
eMMC Specification
http://www.jedec.org
UEFI Specification including GUID partition table and disklayout
http://uefi.org/specifications
-> UEFI Specification UEFI Specification Version 2.4(Errata B)
USB
http://www.usb.org/developers/docs/
//Kernel
https://www.kernel.org/doc/
$KERNEL/Documentation/zh_CN
$KERNEL/Documentation
$KERNEL/Documentation/arm/Porting
//Android
http://code.google.com/p/android/issues/list
http://android.git.kernel.org/
https://source.android.com/
(https://source.android.com/devices/tech/security/selinux/index.html#introduction)
How to review source code
check Makefile to list each part, like executable file, so,*.a …
make out overall block graph, then data & control workflow
Steps of Kernel Study
学习步骤:系统地基础知识学习 -》 驱动范例学习和练手 -》子系统代码解读-》核心模块架构深耕
系统学习:从专业书籍中获得较为全面的快速入门,例如LDD,ULK,了解内核运行大致原理和接口
驱动学习:从外围驱动入手,了解kernel API和各个子系统的接口,以及驱动工作原理
子系统分析:阅读子系统源代码,了解子系统的机制原理和流程
Kernel核心解读:阅读内存管理,进程调度,文件系统,中断机制
Books
Book written by 高焕堂
思考软件,创新设计——A段架构师的思考技术
http://baike.baidu.com/link?url=pFz0hdBLC8psrsVzU06rPgK88XrIaHPNSTzYU8B8sYoKUo2yI9q_UBqjewyMtlF0hde2L9KmiC6d_F2dEA516K
#Classical books:
"C程序设计语言", “C语言核心技术”,“数据结构于算法分析——C语言描述”
“C和指针”,“C陷阱和缺陷”,“C++ Primer”
“GNU Make”
----
“UNIX环境高级编程”,“深入理解计算机系统”
“UNIX网络编程”,“TCP/IP详解”
-----
ARM Architecture Reference Manual
要推荐的书,我在《那两年炼就的Android内功修养》这篇文章中有提到,这里再列一下出来:
语言类:
《深度探索C++对象模型》,对应的英文版是《Inside C+++ Object Model》
程序编译、链接、加载类:
《链接器和加载器》,对应的英文版是《Linker and Loader》
《程序员的自我修养:链接、装载和库》
操作系统类:
《Linux内核设计与实现》,对应的英文版是《Linux Kernel Development》
《深入理解Linux内核》,对应的英文版是《Understanding the Linux Kernel》
《深入Linux内核架构》,对应的英文版是《Professional Linux Kernel Architecture》
《Linux内核源代码情景分析》
网络类:
《Linux网络体系结构:Linux内核中网络协议的设计与实现》,对应的英文版是《The Linux Networking Architecture: Design and Implementation of Network Protocols in the Linux Kernel》
《深入理解LINUX网络技术内幕》,对应的英文版是《 Understanding Linux Network Internals》
设备驱动类:
《Linux设备驱动程序》,对应的英文版是《Linux Device Drivers》
《精通Linux设备驱动程序开发》,对应的英文版是《Essential Linux Device Drivers》
虚拟机类:
《Java SE 7虚拟机规范》
《深入Java虚拟机》,对应的英文版是《Inside the Java Virtual Machine》
《Oracle JRockit: The Definitive Guide》
嵌入式类:
《嵌入式Linux开发》,对应的英文版是《Embedded Linux Primer》
《构建嵌入式Linux系统》,对应的英文版是《Building Embedded Linux Systems》
ARM体系架构类:
《ARM嵌入式系统开发:软件设计与优化》,对应的英文版是《ARM System Developer's Guide: Designing and Optimizing System Software》
综合类:
《深入理解计算机系统》,对应的英文版是《Computer Systems: A Programmer's Perspective》