Linux系统学习笔记 | 青训营笔记

59 阅读4分钟

Linux系统的主要部分

  • 1.内核(内核相当于冯诺依曼体系架构中的运算器)
    可以这样说在Linux操作系统中,内核相当于操作系统的核心引擎,负责控制和管理硬件资源,并为上层的应用程序和服务提供支持和服务
  • 2.shell(命令行) shell的存在主要是让用户可以更好地跟操作系统进行沟通的一个桥梁
  • 3.文件系统(在Linux中一切皆文件)
    在linux操作系统中主要使用的VFS(virtual file system),它主要允许应用程序和操作系统服务通过统一的接口来访问不同的文件系统,对于用户而言它提供了一组通用的文件系统的操作函数,例如打开、读取、写入、关闭文件等等。通过VFS,应用程序可以使用相同的程序接口来操作文件使得应用程序可以方便地与不同的文件系统进行交互
  • 4.应用程序

进程管理

查看进程信息

  • 1.ps -ef 查看所有进程信息
  • 2.top - p pid 查看某个进程的信息
  • 3.kill pid 杀死某个进程

进程的状态

  • R(TASK_RUNNING)表示运行状态
  • S(TASK_INTERRUPTIBLE),表示可中断的睡眠状态
  • D(TASK_UNINTERRUPTIBLE),表示不可中断的睡眠状态
  • T(TASK_STOPPED OR TASK_TRACED),表示暂停状态或跟踪状态
  • Z(TASK_DEAD),表示僵尸状态
  • X(TASK_DEAD),表示死亡状态

Linux进程管理机制

进程创建进程调度进程状态进程间通信资源管理进程监控和调试
进程创建是通过fork()系统调用实现的。fork()会创建一个新的进程,新进程是原进程的副本,包括代码、数据和打开的文件等。新进程会继承父进程的属性,并在fork()之后继续执行。之后,可以使用exec()系列系统调用在新进程中加载不同的程序。进程调度决定了哪些进程应该在给定的时间片内运行。Linux使用调度算法来进行进程调度,常见的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转(Round Robin)、多级反馈队列(Multilevel Feedback Queue)等。调度器会根据进程的优先级、调度策略和当前系统负载等因素来决定下一个要执行的进程。进程可以处于不同的状态,包括运行态、就绪态、等待态等。运行态表示进程正在CPU上执行,就绪态表示进程已经准备好但还未被分配到CPU上执行,等待态表示进程正在等待某个事件的发生,如等待I/O完成或等待信号。通过进程调度器,操作系统可以根据进程状态进行进程切换和调度。Linux提供了多种进程间通信(IPC)机制,用于实现进程之间的数据传输和同步。常见的IPC机制包括管道(pipe)、命名管道(named pipe)、共享内存、消息队列、信号量和套接字等。这些机制允许进程在不同的地址空间之间进行数据传递和共享,以实现进程之间的协作和通信。Linux为每个进程分配资源,如内存、文件描述符和CPU时间片等。每个进程有自己的地址空间,其中包含可执行代码、数据段和堆栈等。操作系统通过管理资源,确保进程之间的公平性和资源的合理分配。Linux还提供了进程限制和控制机制,可以限制进程的资源使用,以防止某个进程耗尽系统资源。Linux提供了各种工具和命令,用于监控和调试进程。常用的工具包括ps、top、htop等,可以获取进程的状态信息、资源使用情况和运行状态。

Linux用户账户管理

  • 1.用户账户(分为普通用户账户和超级用户账户)
  • 2.组账户(分为标准组账户和私有组账户,标准组可以容纳多个用户,私有组只有用户自己)