- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 vlc代码分析(4)——mpgv的demux
Mpgv.c 是对mpeg vedio的解码部分,从demux开始,到sample到输出。其中,核心部分是函数ParseMPEGBlock。两种数据格式:video_format 是video的meta_data,block是实际的数据Code Path:Open()----->Modules/demux/Mpgv.c1)set function point. p_sys is main
2006-12-28 02:06:00 15660 1
原创 边学边干Linux内核指导(4)——系统调用
POSIX 是系统调用的————操作系统的标准程序只有通过门(gate)陷入(trap)到内核调用中去,实际上是通过0x80中断进入的0)概念:mode switch & context switch 前者简单,只是进行寄存器上下文切换page, frame, segment逻辑地址 = 选择子 : offset,选择子= 索引:TI:RPL GDT(Global Descriptor Ta
2006-12-28 01:56:00 1244
原创 边学边干Linux内核指导(3)——内核模块
1)操作系统分为两种:micro kernel & monolithic kernel2)module 是在内核空间运行的程序。3)内核模块的编写:#include int init_module(void);void cleanup_module(void);4)实现机制4.1内核符号表 结构:内存地址 符号名称 [所属模块]4.2模块的引用计数器4.3模块的依赖关系
2006-12-28 01:52:00 1035
原创 vlc代码分析(3)——输入模块
输入模块的Code Path,看来主要的分析还是在demux和access模块的分析。现在的code path只是大致的模块input_CreateThread2 ---> Create() ---->Run() ---->Init() vlm.c input.c input.c input.c
2006-12-24 21:37:00 3092
原创 边学边干Linux内核指导(2)——内核时钟
DOS,Mac使用硬中断,Linux使用软中断,在硬中断到来时处理任务调度(发出软中断)启动后的滴答数来统计——全局变量jiffies基本概念:系统调用:内核提供的,功能强大的一些函数。内核模式和用户模式:每个模式都有自己的堆栈,用户栈和核心栈。较低级别的进程不会影响其他进程地址空间:地址保护,每个用户都有核心进程的地址入口,但不能进入。只有进入系统调用后,才可以。通过,copy_to_user,
2006-12-24 15:27:00 1259
原创 边学边干Linux内核指导(1)——理解Shell
1.内核初始化过程,所有的函数列表。P262.在用户态初始化阶段init程序在每个tty端口上创建一个进程以支持用户登陆。每个进程都运行一个getty程序的拷贝。getty负责验证口令,进入shell3.Shell的几大功能: 3.1 后台运行 if ((pid= fork() ==0) execv(buffer, arg); else
2006-12-24 15:26:00 1463
原创 Thinking in C++ learning(3)-----隐藏实现
1.访问控制:public, private, protected2.友元:struct X{private: int i;friend void g(X*, int); //Global friendfriend void Y::f(X*); // Struct member friendfriend struct Z; // E
2006-12-20 16:21:00 689
原创 Thinking in C++ learning(2)-----Data Abstract
1.delete 和 new 与 malloc() 和 free() 一样都是在堆中申请内存。无论申请的内存付值给了哪个变量,都要释放一下2.delete [] 是释放对象数组3.C++中必须所有函数都要先声明,然后再引用。所以头文件很重要。C编译时会出现问题,对于每个翻译单元,编译器创造一个目标文件,这些文件连同启动代码,由连接器连接,生成可执行代码。4.名字冲突,导致了C++。
2006-12-08 15:49:00 717
原创 Thinking in C++ learning(1)-----C in C++
1.& 语法糖 2.Make 编译控制 //{L} Global2 带有Global2名字的文件要被连接进来(很像xdoclet)3.变量的定义:extern, static(两种含义:作用域内不变,指定作用域) and automatic4.Link: internal linkage 和 external linkage 5.C++ 显示转换 l=static_cast(i);
2006-12-08 14:49:00 856
ArcGIS 图层控制实例代码
2010-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人