Linux+C编程一站式学习.pdf
这本书有什么特点?面向什么样的读者? 这本书最初是为北京亚嵌教育研究中心的嵌入式Linux系统工程师就业班课程量身定做的教材之 一。该课程是为期四个月的全日制职业培训,要求学员毕业时具备非常Solid的C编程能力,能熟 练地使用Linux系统,同时对计算机体系结构与指令集、操作系统原理和设备驱动程序都有较深 入的了解。然而学员入学时的水平是非常初级而且参差不齐的:学历有专科、本科也有研究生, 专业有和计算机相关的也有很不相关的(例如会计专业),以前从事的职业有和技术相关的也有 完全不相关的(例如HR),年龄从二十出头到三十五六岁的都有。这么多背景完全不同、基础 完全不同、思维习惯和理解能力完全不同的人来听同一堂课,大家都迫切希望学会嵌入式开发技 术,投身IT行业,这就是职业教育的特点,也是我编这本书时需要考虑的主要问题。 学习编程绝不是一件简单的事,尤其是对于零基础的初学者来说。大学的计算机专业有四年时间 从零基础开始培养一个人,微积分、线代、随机、离散、组合、自动机、编译原理、操作系统、 计算机组成原理等等一堆基础课,再加上C/C++、Java、数据库、网络、软件工程、计算机图形 学等等一堆专业课,最后培养出一个能找到工作的学生。很遗憾这最后一条很多学校没有做好, 来亚嵌培训的很多学生就是四年这么学过来的,但据我们考查他们的基础几乎为零,我不知道为 什么。与之形成鲜明对比的是,只给我们四个月的时间,同样要求从零基础开始,最后培养出一 个能找到工作的学生,而且还要保证他找到工作,这就是职业教育的特点。 ### Linux+C编程一站式学习知识点概览 #### 书籍特点及适用人群 本书是专门为北京亚嵌教育研究中心设计的嵌入式Linux系统工程师就业班课程的一部分。该课程旨在四个月内为学员提供全面的C编程技能训练,并使他们能够熟练掌握Linux系统操作。考虑到学员背景多样,包括不同的学历层次(专科至研究生)、专业背景(计算机科学到会计)以及工作经历(技术岗位到人力资源),本书在编写时充分考虑到了这些差异性,以满足不同背景的学习者需求。 #### 学习目标 - **C编程能力**:培养学员熟练掌握C语言编程的能力。 - **Linux系统操作**:让学员能够高效使用Linux操作系统。 - **计算机体系结构与指令集**:加深对计算机硬件架构和指令集的理解。 - **操作系统原理**:理解操作系统的基本原理及其功能。 - **设备驱动程序开发**:熟悉设备驱动程序的设计与实现。 #### 核心内容概述 1. **C语言入门** - **程序的基本概念**:介绍程序和编程语言的基础知识,包括自然语言与形式语言的区别。 - **常量、变量和表达式**:学习数据类型的使用、变量的声明与初始化、常量的定义等。 - **简单函数**:掌握函数的定义、调用、参数传递及作用域等。 - **分支语句**:if语句、if/else语句、switch语句的应用。 - **深入理解函数**:return语句的使用、递归函数的概念。 - **循环语句**:while、do/while、for循环的使用,break和continue语句的作用。 - **结构体**:理解复合数据类型、结构体的定义与使用。 - **数组**:数组的基本操作、多维数组的使用。 - **编码风格**:代码格式化、注释、标识符命名规范等。 - **gdb调试工具**:单步执行、设置断点、跟踪函数调用等功能。 - **排序与查找算法**:插入排序、归并排序、线性查找和折半查找等算法的实现。 2. **C语言本质** - **计算机中数的表示**:二进制计数系统、不同进制之间的转换、整数和浮点数的表示。 - **数据类型详解**:整型、浮点型的数据范围,类型转换机制。 - **运算符详解**:位运算、复合赋值运算符、条件运算符等。 - **计算机体系结构基础**:内存与地址、CPU结构、MMU的工作原理等。 - **x86汇编程序基础**:汇编语言的简单程序、寄存器的作用、寻址方式等。 - **汇编与C之间的关系**:函数调用机制、main函数和启动例程的执行过程。 - **链接详解**:多目标文件的链接过程、静态库和共享库的区别。 - **预处理**:宏定义的使用、条件预处理指示符等。 通过以上内容的学习,学员将能够建立起扎实的C编程基础,并且对Linux系统有着深刻的理解,为进一步深入学习嵌入式系统开发打下坚实的基础。本书不仅适合零基础的初学者,也适合有一定编程经验但希望系统学习C语言和Linux系统的读者。