一、目标
1、亲手完成练习
2、达到5000到20000行代码量
二、过程体系
语言
C语言
C++
算法
算法
数据结构
基础(系统核心(kernel)编程)
平台:
linux/unix window MacOSX
PC机 服务器 ARM
操作系统应该具备如下能力
设备驱动 进程管理 内存管理 文件目录 系统管理 IO
基础学习过程:
内存管理
文件目录
IO
进程管理
创建
控制
通讯
同步
线程管理
创建
同步
通信
应用:
网络
数据库(pro *c/c++)
UI
shell
XML处理
分布式和中间件
web服务
OpenGL
定位:提高编程能力
三 、内存管理
硬件层次的内存管理
内存结构管理
内核层次的内存管理
内存映射
堆扩展
语言层次:c: malloc
c++: new
数据结构:
STL
智能指针
问题:
malloc怎么分配空间
malloc与new的关系
linux对内存的描述
/proc/pid/ - 存放着进程运行时的所有信息
任何程序的内存空间分成4个基本部分
代码区
全局栈区
堆
栈
理解程序的变量与内存空间的关系
堆栈是一种数据结构
查看程序的内存地址
理解malloc的工作原理
malloc使用一个链表维护分配的空间链表的由已经分配的空间上一个空间数据下一个空间等信息构成
不要越界访问,容易破坏维护结构
c++的new与malloc的关系
new的实现使用的是malloc来实现的
区别:new使用后还要初始化变脸
如果是UDT类型还要调用指定的构造器
delete调用free实现,负责调用析构器然后再调用free
new 与 new[ ]的区别
new只调用一个构造器初始化
new【】循环对每个区域调用构造器
原文:http://blog.csdn.net/ctxbloger/article/details/18231743