4(1),2024年一起努力应对互联网寒冬吧

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

操作系统:用来管理计算机的软硬件

如何理解管理呢?

可分为两步,一.描述被管理对象

二.组织被管理对象

那如何描述与组织呢?

1.描述:用struct结构体描述。

2.组织:用链表或其他数据结构进行组织。

系统调用和库函数有什么关系呢?

用户使用操作系统暴露的接口开发使用,系统调用适度封装形成了库,库函数是系统调用的产物。

什么是进程呢?是内存中被触发的的程序。这也是我们上文提到冯诺依曼体系的原因。

PCB是进程控制块,本质上是一种数据结构,Linux中名为struct task_struct,用来描述进程的信息。

组织进程则是用数组或者链表等形式来处理一个个进程控制块(PCB)。

ls /proc 是查看进程

ps aux和top命令

ps aux 查看静态信息

第一行对应意义

USER:启动该进程的用户账号名称;

PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的;

%CPU:CPU占用的百分比;

%MEM:内存占用的百分比;

VSZ:占用虚拟内存(swap 空间)的大小;

RSS:占用常驻内存(物理内存)的大小;

TTY:表明该进程在哪个终端上运行。“ ?” 表示未知或不需要终端;

STAT:显示进程当前的状态,S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程);

START:启动该进程的时间;

TIME:该进程占用的CPU时间;

COMMAND:启动该进程的命令的名称;

top  查看动态信息

创建进程    fork

根据父进程信息创建一个子进程(PCB)从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。

还要了解进程处于什么样的状态,分为入下几类

R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。

S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))。

D磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。

T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。

X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态。

我们还要了解僵尸进程的概念,什么是僵尸进程

当子进程退出,而父进程没有接收到子进程退出的返回值,那么子进程就是僵尸进程。

僵尸进程有危害?会占用浪费内存资源,可能造成空间浪费。严重导致内存泄露

了解了僵尸进程后,如果情况相反呢?

父进程先退出,这就是孤儿进程,父进程退出后,孤儿进程被1号init进程领养

查看系统进程 ps -l

UID : 代表执行者的身份

PID : 代表这个进程的代号

PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号

PRI :代表这个进程可被执行的优先级,其值越小越早被执行(进程的优先级)

NI :代表这个进程的nice值(取值范围是-20至19),用来修正进程的优先级。

进程的优先级决定了进程的执行

PRI(新) = PRI(旧) + NI

那么如何改变nice值呢?

就要用到上边讲的top了

进入top后按“r”–>输入进程PID–>输入nice值

进程之间的属性

竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高

效完成任务,更合理竞争相关资源,便具有了优先级

独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰

并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行

并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发

环境变量:

操作系统运行环境的一些参数。常用的有,

PATH : 指定命令的搜索路径

HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)

SHELL : 当前Shell,它的值通常是/bin/bash。

那如何查看环境变量呢?

用echo $NAME //NAME:你的环境变量名称

环境变量相关命令

1. echo: 显示某个环境变量值

2. export: 设置一个新的环境变量

3. env: 显示所有环境变量

4. unset: 清除环境变量

5. set: 显示本地定义的shell变量和环境变量

获取环境变量 : printf(“%s\n”, getenv(“PATH”));

程序地址空间

程序地址空间是虚拟空间,保护实际空间

再次认识进程创建fork

从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。

通过内核空间开辟进程,复制父进程参数,fork有两个返回值,子进程返回值为0,父进程返回值为子进程pid。

接下来我们来认识写时拷贝,是等到修改数据时才真正分配内存空间,之前共用物理内存页。

进程退出有三种场景

1.代码运行完毕,结果正确

2.代码运行完毕,结果不正确

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
配内存空间,之前共用物理内存页。

进程退出有三种场景

1.代码运行完毕,结果正确

2.代码运行完毕,结果不正确

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-CX6DOtgL-1713295607510)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值