Linux用户空间的核心

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Davincdada/article/details/78707701
--嵌入式的完整系统通常具有:操作系统、中间件、应用程序层这几个层次。

嵌入式操作系统(A)核心部分的内容与通用操作系统类似,包含了进程调度、进程通信、内存管理、设备管理。
A 通常包括移植层和驱动程序——作为A适配不同硬件的接口。

A扩展模块中通常含有文件系统、网络协议、GUI系统、数据库系统等。
不同A包含的内容不一定相同。如果A不具有这些模块但需要,则可以作为中间件实现。

--中间件提供软件层的API,是整个系统中承上启下的重要软件层

基于Linux构建一个完整的系统,技术上需要具有以下内容:

  • Linux的内核及其硬件相关的移植

  • 各种设备的驱动程序

  • 用户空间C库、shell

  • 用户空间的各种中间件

  • 用户空间的应用程序
    这里写图片描述

    在特定的开发环境中,将内核空间和用户空间各部分整合之后,经过优化才能完成基于Linux的完整系统。

嵌入式Linux系统内核空间和用户空间的接口包括以下几部分:

  • 系统调用:POSIX标准的系统调用
  • 基于设备节点:字符设备和块设备,作为硬件相关的特殊接口
  • 基于Socket的网络
  • 基于proc或sys文件系统

C 语言库

简称 C 库,是C语言程序的运行基础。C库建立于操作系统的调用之上,提供C语言的函数接口(API)。Linux中,用户空间编程的基础也是C语言库。

C库本身基于系统调用实现,其对上层(应用层)提供库接口(函数接口),比如字符处理函数strcpy(),strcmp()等。C库中的一些函数需要调用操作系统的系统调用来实现,比如:标准输出printf()函数需要向标准输出设备(屏幕)输出字符,显然需要硬件的支持。由于C库不需要知道系统的硬件情况,只要调用write()这个系统调用即可。

这里写图片描述

关于系统调用和函数调用的概念和区别,可以看一下该链接文章     

猜你喜欢

转载自blog.csdn.net/Davincdada/article/details/78707701