当前位置: 首页 > news >正文

小白成长之路-Linux程序与进程(一)

文章目录

  • 一、Linux程序与进程
    • 1.程序,进程,线程的概念
      • 2、程序和进程的区别
      • 3、进程和线程的区别
    • 二、Linux进程基础(生命周期)
      • 1、进程生命周期
      • 2、父子进程的关系
  • 三、程序管理
    • 常见的软件包类型
    • 安装方法
        • 使用独立的rpm包安装
        • rpm包的命名方法
    • rpm命令
  • 四、yum(dnf) 安装
        • yum相关配置文件
        • yum源类型
    • 配置本地源
  • 总结

一、Linux程序与进程

1.程序,进程,线程的概念

程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行用来完成特定的任务,是静态的

进程:是运行着的陈谷,是操作系统执行的基本单位,是程序运行的过程,是动态的,是有生命周期及运行状态的。是操作系统分配内存,cpu时间片等资源的基本单位

线程:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位

2、程序和进程的区别

  • 程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程;
  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程;
  • 进程还具有并发性和交往性,而程序却是封闭的。

3、进程和线程的区别

  • 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发拥有多个线程,而一个线程同时只能被一个进程所拥有;
  • 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。

二、Linux进程基础(生命周期)

1、进程生命周期

  • 父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID(PID),PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程。
  • 所有进程都是第一个系统进程的后代:在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd。

2、父子进程的关系

  • 子进程由父进程产生,在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。
  • 运行过程:子进程运行时父进程休眠。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境后,剩余释放不掉的资源称之为僵尸进程。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

三、程序管理

常见的软件包类型

1)rpm包:.rpm为后缀,红帽系列操作系统(RedHat,CentOS,OpenSUSE)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径,需要手动的解决依赖关系。(相关命令:rpm,yum,dnf)

2)deb包:.deb为后缀,debian系列操作系统(debian,Ubuntu,kali)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径等,需要手动的解决依赖关系。(相关命令:dpkg,apt[-get])

依赖关系:安装软件包所需的基础环境

3)二进制包:一般以.bin为后缀,直接被计算机执行安装。

4)源码包:一般C语言(高级语言中最底层的语言,一般结合汇编进行驱动编写)编写,安装前需要编译为二进制包;配置【如,安装路径,配置文件路径,运行用户,运行组,功能模块】—>编译—>安装;文件比较集中,便于后期进行维护与管理。

安装方法

  • 使用独立的rpm包安装

需要下载对应的rpm包,一般在centos系统镜像中存在大量的rpm包

  • rpm包的命名方法

zip-0-11.el7.x86_64.rpm

软件名.版本号.安装平台.安装架构平台的位数(32位,x86或者64位,x86_64).rpm

rpm命令

-q:查看指定rpm包是否安装;rpm -q 软件名
-qa 【all】:查看系统中所有已安装的软件包;rpm -qa [| grep 软件名]
-qi 【infomation】:查看已安装软件包的开发信息;rpm -qi 软件名
-ql 【list】:查看已安装软件包的安装路径及生成的文件;rpm -ql 软件名
-qf 【find】:查看命令由哪个软件包安装;which 命令字 rpm -qf 命令的绝对路径;常用于:系统中没有对应指令且不知道由哪个软件包安装生成
-qc:查看已安装软件的配置文件;rpm -qc 软件名;一般情况下,使用rpm安装的应用程序的配置文件都存储在/etc/[应用程序的名称]
-qd:查看已安装软件的帮助文档信息;rpm -qd 软件名

安装、升级、卸载选择项

-i 【install】:安装软件包;rpm -ivh /path/软件包名称(全格式)
-v:【verify】详细显示安装过程
-h:【human】人性化显示
-U:【update】升级软件包;rpm -Uvh 软件包名称
-e:【exclude】卸载已安装软件包;
–nodeps:忽略依赖关系的进行卸载、升级或安装

特殊安装:

#将所有相关软件包放到同一目录下
rpm -ivh *

四、yum(dnf) 安装

可以自动解决依赖关系

  • yum相关配置文件

yum源配置文件

指定yum程序运行时查找软件包的存储路径

/etc/yum.repos.d

yum程序配置文件

yum程序运行时的运行配置

/etc/dnf/dnf.conf

缓存保存路径

/var/cache/dnf
  • yum源类型

本地yum源

利用本地存在的软件包路径

file://localPath(绝对路径)【路径下要包含“repodata(包含rpm包的元数据)”目录】

配置本地源

可以在光驱除新加一个镜像源
使用mount挂载
vim local.repo进去这个文件添加
在这里插入图片描述

在这里插入图片描述
这样配置无网络也可以安装
在这里插入图片描述

总结

提示:希望可以帮到小伙伴们:

相关文章:

  • Kettle 远程mysql 表导入到 hadoop hive
  • 游戏引擎学习第314天:将精灵拆分成多个层
  • 华为高斯数据库(GaussDB)深度解析:国产分布式数据库的旗舰之作
  • OpenCV视觉图片调整:从基础到实战的技术指南
  • Vue 3.0 自定义 Composition API 管理状态
  • 决策树 GBDT XGBoost LightGBM
  • 引导者之歌------------嵌入式软件面试问题集成
  • uni-app(6):Vue3语法基础下
  • vue + ant-design + xlsx 实现Excel多Sheet页导出功能
  • pycharm 新UI 固定菜单栏 pycharm2025 中文版
  • day 23 机器学习管道(pipeline)
  • -资产收集篇FridaHOOKXposed证书提取单向双向检验抓包
  • Python入门手册:函数的定义和使用
  • 【C/C++】多线程下自旋锁的行为逻辑
  • Siege:开源的 HTTP/FTP 压力测试与基准评估工具!全参数详细教程!Kali Linux教程!
  • 网络套接字基础使用和概念
  • 【Mini-F5265-OB开发板试用测评】按键控制测试
  • AWS创建github相关的角色
  • go tour方法和接口
  • Mobaxterm解锁Docker
  • 画出网站和目录结构图/如何自己制作一个网站
  • 怎样做写真网站/qq推广链接
  • 狼雨的网站/b站推广网站2022
  • seo优化心得/网站怎么seo关键词排名优化推广
  • 旅游网站wordpress/设计网站官网
  • 苏州网站推广电话/谷歌浏览器手机版免费官方下载