参考:linux内核结构介绍、什么是shell
作者:丶PURSUING
发布时间: 2021-02-15 14:15:24
网址:https://blog.csdn.net/weixin_44742824/article/details/113814934?spm=1001.2014.3001.5502

本文为学习笔记,整合课程内容以及部分文章,参考的原文链接如下:

图解linux系统的系统架构板块:
参考:原文链接
作者:YF.Hao

目录

  • Linux内核结构框图
  • 图解linux系统架构
    • shell
    • shell脚本

Linux内核结构框图

对内核结构框图有个总体的把握,有助于理解为什么驱动要这样写,为什么写的应用程序所用的C库接口能够产生这么多的事情。

函数库就像一个“黑匣子”,提供了一系列API支配内核运作,但你不知道内核发生了什么。

内核是一个很厉害的超级逻辑,把硬件底层的东西抽象化,对用户来说只需要调API就好了,根本不需要管寄存器,协议,总线…(单片机会去直接操作),这些全部由操作系统做好。动不动写个操作系统是不现实的。

能把字符设备,块设备的设备驱动吃透,已经是一个很厉害的工程师了。

图解linux系统架构

最内层是硬件,最外层是用户应用,比如浏览器等等。硬件是物质基础,而应用提供服务。

为了方便调用内核,Linux将内核的功能接口制作成系统调用(system call)。用户不需要了解内核的复杂结构,就可以使用内核。系统调用是操作系统的最小功能单位。一个操作系统,以及基于操作系统的应用,都不可能实现超越系统调用的功能。

系统调用提供的功能非常基础,所以使用起来很麻烦。一个简单的给变量分配内存空间的操作,就需要动用多个系统调用。Linux定义一些库函数(library routine)来将系统调用组合成某些常用的功能。上面的分配内存的操作,可以定义成一个库函数,比如常用的malloc

shell

shell(壳)是一个特殊的应用,也经常被称为命令行 。可以理解为是一个命令解释器

例如:当我们输入“ls -l”的时候,它将此字符串解释为

1.在默认路径找到该文件(/bin/ls),
2.执行该文件,并附带参数"-l"。

UNIX的一条哲学是让每个程序尽量独立的做好一个小的功能。而shell充当了这些小功能之间的"胶水",让不同程序能够以一个清晰的接口(文本流)协同工作,从而增强各个程序的功能。

一个shell对应一个终端 (terminal)。曾经来说,终端是一个硬件设备,用来输入并显示输出。如今,由于图形化界面的普及,终端往往就像下图一样,是一个图形化的窗口。

你可以通过这个窗口输入或者输出文本,这个文本直接传递给shell进行分析解释,然后执行,本质就是提供和内核交互的程序。

shell脚本

在没有图形界面之前,shell充当了用户的界面,当用户要运行某些应用时,通过shell输入命令,来运行程序。shell是可编程的,它可以执行符合shell语法的文本,这样的文本叫做shell脚本(script)。

linux内核结构介绍相关推荐

  1. linux内核结构介绍及驱动引入

    目录 一.Linux内核结构框图 二.图解linux系统架构 三.驱动认知 3.1 为什么要学习写驱动 3.2 文件名与设备号 3.3 open函数打通上层到底层硬件的详细过程 四.shell she ...

  2. Linux基础系列—Linux体系结构和Linux内核结构

    Linux体系结构 如下图所示,Linux体系结构,从大的方面可以分为用户空间(User Space)和内核空间(Kernel Space). 用户空间中包含了C库,用户的应用程序.在某些体系结构图中 ...

  3. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  4. linux 进程管理 ppt,Linux内核结构与进程管理.ppt

    Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...

  5. 文件系统(文件系统目录结构、磁盘分区、虚拟文件系统)、linux内核结构框图

    什么是文件系统? 常规认知就是根目录下那些文件,但其实并不是那样.文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构:即在存储设备 ...

  6. TQ210 —— s5pv210 Linux内核结构

    Linux内核结构 1.内核的子系统 (1) 系统调用接口SCI(System Call Interface):SCI层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核 ...

  7. 认识linux内核结构

    linux内核结构 用户级 函数库 :提供了应用程序支配内核干活的接口 内核级 Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信. 1.进程调度(Proces ...

  8. linux体系结构+linux内核结构+linux内核目录结构

    一.linux体系结构 (1)用户空间:用户空间中又包含了,用户的应用程序,C库 (2)内核空间:内核空间包括,系统调用,内核,以及与平台架构相关的代码 Linux内核可以划分为3层,最上面是系统调用 ...

  9. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

最新文章

  1. 1996 年 3 月. IEEE 成立了 802.3z 工作组开始制定 1000Mb/s 标准。下列千兆以太网中不属于该标准的是(19)【答案】C
  2. 【T10】记住,TCP__IP不是轮询的
  3. 中南继续教育学院计算机绘图,求答案~~机电一体化,计算机绘图
  4. AC_Automata模板
  5. c++ qt获取电脑的内存_Qt官方示例信号量
  6. 易被销售员忽略的销售细节
  7. netstat 命令 与 ps 命令
  8. 华为机试HJ57:高精度整数加法
  9. (数论)51NOD 1136 欧拉函数
  10. ORA-12514: TNS:listener does not currently know of service …
  11. python3.7 获取网络时间
  12. tomcat修改http长度限制_解决浏览器与服务器请求url长度限制
  13. 计算机关机doc命,[计算机]自动关机命令设置.doc
  14. 孔明锁三通步骤_32根鲁班锁拼装步骤
  15. chrome浏览器调试时阻止图片的加载
  16. Pytorch警告UserWarning: Loky-backed parallel loops cannot be called in a multiprocessing
  17. Android应用自启动保活手段与安全现状分析
  18. 使用pyecharts绘制各个3D图表代码示例整理和分享
  19. switch 语句的参数类型
  20. c语言 char* 参数,深入理解c语言中两级指针(char **pptr)的参数的用法

热门文章

  1. 小程序跨行跨列多列复杂表格实现
  2. PyOpenCL图像处理:Box模糊
  3. jQuery Validate 验证,校验规则写在控件中的具体例子
  4. 你研究过单例么?这样写单例效率最高.
  5. 《移动App测试的22条军规》—App测试综合案例分析23.13节测试微信App的流量和电量消耗...
  6. WPF WebBrowser 加载 html ,出现安全警告, 运行 脚本和 activeX 控件,
  7. 计算UILabel带行间距的行高
  8. MyBatis之八:需要说明的几个java api的生命周期以及封装
  9. 消息摘要算法-MAC算法系列
  10. IOS静态库生成及测试