用户态切换到内核态是用户程序在运行过程中的状态切换;用户程序在运行过程中遇到对外部资源的申请,比如程序执行过程中需要访问:磁盘、内存分配、网卡、声卡甚至主板上的LED指示灯时,从用户态切换到内核模式将发生。比如读写文件:open/read/write会从用户态切换到内核态;例如申请内存:C语言:malloc/java语言中每一个new对象都需要申请内存空间;包括select/poll/epoll都是系统调用;从用户态切换到内核态一般有三种方式:系统调用、异常、中断;系统调用有流程、文件、设备调用、信息、通信等;查看内核提供的可用系统调用,可以使用:mansyscalls可以导出系统调用看看:mansyscalls|col-b>syscalls.txt系统调用一般分为以下几类:进程调用:终端命令exitfork;文件调用:chmodchown;设备调用:读写;信息读取:如cpu信息getcpu;通信:pipemmap(文件内存映射)
