一、Linux系统怎么构成的?
Linux系统由两部分构成:
1.用户空间:
基础的c语言和C库,包括(管道、消息队列、socket、网络等一些编程),C库提供了应用程序支配内核干活的接口(C库与系统调用接口打交道)。
open、read、write
系统调用接口:open-->sys_open;read-->sys_read;write-->sys_write
2.内核空间:
Linux内核的任务:
1.从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。
2.从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。
3.内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。
4.内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。
内核架构:
shell是什么呢?
严格意义上来讲,Shell是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。