【Linux】初步理解操作系统和进程概念

简介: 【Linux】初步理解操作系统和进程概念

一.认识操作系统

操作系统是一款纯正的 “搞管理” 的文件

那操作系统为什么要管理文件?

“管理” 又是什么?

它是怎么管理的?

为什么?

1.操作系统帮助用户,管理好底层的软硬件资源;

2.为了给用户提供一个良好,安全的环境

即操作系统通过管理好底层的软硬件资源,为用户提供一个良好,安全的环境。

怎么管理?

操作系统里是有各种各样的很多的数据的,但是操作系统并不相信任何用户!

那它怎么为用户服务呢?

操作系统为了保护自己的数据安全,同时保证为用户提供良好的服务,操作系统以接口的方式提供给用户使用的入口,这就称为系统调用

接口是用C语言写的函数,所以调用接口时,也就是在调用函数。

所有访问操作系统的行为,只能通过系统调用来完成!

所以我们经常会发现,有一些软件在linux操作系统上行,可能到了windows操作系统就不行了,这是因为软件运行时一定会通过接口访问操作系统,不同的操作系统的接口可能并不完全一样,所以就造成了这种状况。

“管理”如何理解?

首先,既然有管理者,那么也就有被管理者。

1.管理者和被管理者并不需要见面就能完成管理;

2.那不见面该如何管理呢?-----通过被管理者的数据进行管理,所以管理的本质是通过对数据的管理,来达到对人的管理;

3.管理者和被管理者都不见面,该怎么拿到数据呢?-----通过执行者

来看上图:

操作系统就是管理者,底层硬件就是被管理者,驱动程序就是执行者

操作系统一定是通过驱动程序拿到底层硬件的数据,然后实现对底层硬件的管理,不能跨级访问!

操作系统在拿到数据后,首先对数据进行描述,C语言中对数据描述通常使用的都是结构体,操作系统也是这样,建立结构体来描述数据,然后把这些结构体组织起来,即用某种数据结构组织起来,所以操作系统里一定存在大量的数据结构!

总结成6个字:先描述,再组织!

回想我们写通讯录的时候,先建立一个结构体来描述一个人的信息,然后再加一个指针来找到下一个人的信息,这样就把联系人的数据组织起来了。


二.进程概念

可能我们再很多书上看到进程的概念都是:

一个正在运行的程序或是一个加载到内存的程序。

但事实上并没有这么简单。

PCB进程控制块

PCB进程控制块,,全称:process control block

PCB里包括该进程得各种属性,例如进程的编号,状态,优先级等等,可以说PCB是进程属性的集合。

PCB是一个非常庞大的结构体。

当一个程序被加载到内存时,操作系统会为这个程序创建一个PCB,PCB中描述了进程的各种属性,还有一些指针,他帮助操作系统找到这个程序的代码和数据,所以:

进程=内核PCB数据结构对象 + 程序的代码和数据

把这些进程组织起来,就变成了对某种数据结构的增删查改。

task_struct

linux下的PCB是 task_struct,task_struct 是PCB的一种。

task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。


🐬🤖本篇文章到此就结束了, 若有错误或是建议的话,欢迎小伙伴们指出;🕊️👻

😄😆希望小伙伴们能支持支持博主啊,你们的支持对我很重要哦;🥰🤩

😍😁谢谢你的阅读。😸😼

目录
相关文章
|
2月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
105 0
|
4月前
|
NoSQL Linux 编译器
GDB符号表概念和在Linux下获取符号表的方法
通过掌握这些关于GDB符号表的知识,你可以更好地管理和理解你的程序,希望这些知识可以帮助你更有效地进行调试工作。
180 16
|
4月前
|
Unix Linux
对于Linux的进程概念以及进程状态的理解和解析
现在,我们已经了解了Linux进程的基础知识和进程状态的理解了。这就像我们理解了城市中行人的行走和行为模式!希望这个形象的例子能帮助我们更好地理解这个重要的概念,并在实际应用中发挥作用。
90 20
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
111 18
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
120 10
|
3月前
|
存储 Linux Shell
Linux进程概念-详细版(二)
在Linux进程概念-详细版(一)中我们解释了什么是进程,以及进程的各种状态,已经对进程有了一定的认识,那么这篇文章将会继续补全上篇文章剩余没有说到的,进程优先级,环境变量,程序地址空间,进程地址空间,以及调度队列。
62 0
|
3月前
|
Linux 调度 C语言
Linux进程概念-详细版(一)
子进程与父进程代码共享,其子进程直接用父进程的代码,其自己本身无代码,所以子进程无法改动代码,平时所说的修改是修改的数据。为什么要创建子进程:为了让其父子进程执行不同的代码块。子进程的数据相对于父进程是会进行写时拷贝(COW)。
64 0
|
6月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
存储 IDE Unix
用了这么久 Linux ,才知道这些概念。。。
我们大家应该知道,Linux 和 UNIX 中的文件系统是一个以 / 为根的树状式文件结构,/ 是 Linux 和 UNIX 中的根目录,同样它也是文件系统的起点。所有的文件和目录都位于 / 路径下,包括我们经常听到的 /usr、/etc、/bin、/home 等。在早期的 UNIX 系统中,各个厂家都定义了自己文件系统的命名构成,比较混乱,而且难以区分。
用了这么久 Linux ,才知道这些概念。。。
|
2月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
597 13