链接及内核概念

146 阅读3分钟

4月「掘金·日新计划」第15天

一、软硬链接概念

都可以vi改变内容

  1. 软链接(3:文本文件,快捷方式,有独立indoe)

    1. 类似window的快捷方式
    2. 在符合链接中,文件实际是一个文本文件,其中包含另一个文件的位置信息
    3. 选定的位置上生成一个文件镜像,不会占用磁盘空间
    4. 不同目录使用相同文件可以使用,或被链接的文件不容易记忆
    5. 软连接文件具有独立的inode,是一个独立的文件
  2. 硬链接(一个inode,多个文件指向,删除一文件不会删除inode释放资源)

    1. 生成一个和源文件大小相同的文件(错误的

    2. 硬链接就是同一个文件使用了多个别名

    3. 防止误删,因为只有当所以链接删除才会被释放

    4. Linux系统允许多个文件指向一个inode 名称。可以用不同的名称访问同一文件的内容,这种方式叫做硬链接

二、内核

2.1、内核及操作系统

  1. 内核是什么

    1. 内核是操作系统内核的简称,负责实现操作系统的核心功能(内存管理、调度系统、硬件设备管理、文件系统)
    2. 内核不包括应用程序。只有内核是没法用的,因为做任何事情都是通过相应的应用程序来完成的。所以就需要内核和常用应用程序打包在一起,这就是操作系统的发行版(也就是普通意义上的操作系统)
  2. 操作系统是什么

    1. linux、windows、android、ucos就是操作系统
    2. 本质上是一个程序,由很多个源文件构成,需要编译链接成操作系统程序(vmlinux、zImage、uImage)
    3. 操作系统的主要作用就是管理计算机硬件,给应用程序提供一个运行环境
  3. 操作系统核心功能

    1. 内存管理:操作系统负责管控所有的内存,所有的应用程序需要使用内存时都要向操作系统去申请和注册,由操作系统的内存管理模块来分配内存给你使用(虚拟地址,地址私有化,别的程序无法访问),这样好处是可以保证内存使用不会冲突。避免内存践踏等,段错误
    2. 进程调度:操作系统下支持多个应用程序同时运行,操作系统的进程调度模块负责在各个进程之间进行切换,分时复用机制
    3. 硬件设备管理:操作系统的硬件设备管理模块就是驱动模块
    4. 文件系统:文件系统是管理存储设备的一种方式

2.2、内核、驱动和根文件系统的关联

  1. 内核和驱动的关联

    1. 驱动属于内核的一部分
    2. 驱动工作在内核态,应用程序工作在用户态
    3. 应用程序通过内核定义的API接口来调用内核工作
  2. 内核和根文件系统的关联

    1. 根文件系统为操作系统启动提供了很多必备的资源:根目录、进程1
    2. 根文件系统提供根目录(/),进程1存放在根文件系统中,内核启动最后会去装载根文件系统

2.3、模块化设计

  1. 内核中各个功能模块在代码上是彼此独立的

  2. 模块化设计的目的就是实现功能模块的松耦合

  3. 配置时可裁剪模块化编译和安装 为了方便,逐渐从静态变成了动态升级

  4. 模块化设计的好处

    功能可裁剪、灵活性

    可扩展性(动态安装卸载、新硬件的支持)

    利于协作