一:一切皆文件
linux有个口号是:一切皆文件,也就是它把所有的对象都当成一个文件操作,这个操作的前提就是LINUX
的虚拟文件系统VFS。
二:数据结构与面向对象
linux中的结构体到处可见,无论实现哪一个子系统,都是先定义一堆结构体,有时甚至把结构体的某些实现
称为数据结构。关于它的面向对象的思想就是在结构体里边封装了函数指针,这样就可以通过操作这些结构体实现
对函数的调用,有点类的思想了吧。 同时可以这些指针也可以是父类指针或者是基类指针,也算是实现了继承机制
了吧,多了,结构体还可以嵌套的,,,
#include <stdio.h>
struct DEMO
{
int x,y;
int (*func)(int,int); //函数指针
};
int add1(int x,int y)
{
return x*y;
}
int add2(int x,int y)
{
return x+y;
}
void main()
{
struct DEMO demo;
demo.func=add2; //结构体函数指针赋值
//demo.func=&add2; //结构体函数指针赋值
printf("func(3,4)=%d\n",demo.func(3,4));
demo.func=add1;
printf("func(3,4)=%d\n",demo.func(3,4));
}
执行后终端显示:
func(3,4)=7
func(3,4)=12
三:内核即模块
linux内核的实现机制是由模块构成的,这些模块可以动态地添加或者移除,这就为驱动程序的开发提供了方便。
暂且写到这里,以后添加哈