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

Linux复习(1)

1.策略

Linux复习的策略和C++类似,先过一遍知识点,把不会的列出来,进行重点复习。

2.Linux知识点

1.基础指令

先把知识点全列出来:

目录相关:Linux目录结构,树结构。

Linux下绝对路径相对路径,绝对路径就是有完整的磁盘路径,相对路径是相对于当前路径而言。

不熟悉:Linux下磁盘分区。Linux所有指令

文件和压缩,Linux的设计哲学是一切皆文件。

进程相关的ps,ps是查看进程的状态

kill命令一般可以杀死进程,,而且kill -9 无法被捕获,防止的是出现不死不灭的进程。

Linux网络相关的netstat,netstat 是一个功能强大的网络工具,用于显示网络连接、路由表、接口统计等信息,-t代表TCP,-u代表查UDP,-l代表监视端口,-p显示进程信息,-n数字格式信息。

ipc指令是查看进程间通信的命令,ipcs是查看进程间通信-m查共享内存,-s查信号量,-q查消息队列,-a(all)代表详细的信息

ipcsrm是删除,-m代表删除共享内存,信号量是-s,-q代表消息队列

系统调用资源相关的,top是实时系统监控,free是内存的使用情况,df磁盘空间检查,du目录空间分析,fdisk磁盘分区管理

文件权限:

文件权限中的用户分类有三种,所有者,文件的创建者,对文件拥有最高权限。

所属组,对多个用户设置相同的权限。

其他人,既不是所有者也不是所属组的用户。

文件权限有读写执行,r代表读,w代表写,x代表执行

文件权限的计算如下:

分别是3个二进制位,从高位到低位分别代表rwx

权限的表示,当ls查看的时候会出现9个,分别代表所有者,所属组和其他人。

数字表示一个数字代表一个组的权限,比如754,7代表的就是所有者的权限,5代表的是所属组的权限,4代表的是其他人的权限。

权限命令,umask是默认的文件和目录创建权限,权限进行计算要用写入的权限-umask的值。

chmod修改文件或目录的权限。

chown是修改文件或目录的所有者。

chgrp用于修改文件或目录的所属组。

粘滞位是一种特殊的权限,通常设置在目录上,作用是只有目录的所有者和root用户可以删除该目录下的文件,防止用户误删他人的文件。

2.常用工具

yum,gdb,gcc/g++,make,git

重点就是文件执行的流程,预处理,编译,汇编,链接

链接是重点,链接分为动态链接和静态链接, 静态链接是编译的时候把库文件的全部代码复制到可执行文件中,工作阶段是编译阶段,动态链接是运行的时候才将库文件的代码加载到内存中,多个程序可以共享内存的一个共同的库文件,工作阶段是加载、运行状态。

根据它们的特性就知道,如果需要可执行文件独立运行,不依赖外部库,就用静态链接无加载库的开销,但是静态链接的代码体积会变大,库更新后需要重新。

gcc的-E是预处理之后,-S是编译之后,-o是指定输出文件的名称

3.Linux进程理解

冯若依曼五大硬件分别是,输入设备,内存,输出设备,中央处理器运算器,其中以内存为核心,CPU只和内存打交道。设备的速度往往取决于内存的速度。

一句话冯若依曼结构即使所有硬件都是围绕内存工作的。

操作系统:操作系统就是一个软件和硬件的管理者,它是躺在中断上的一个死循环。

管理方式的核心是先描述,在组织。

库函数和系统调用接口的关系是,库函数是操作系统提供的接口,库函数底层一定封装了系统调用的接口,因为只有通过系统调用接口才能进行一些高权限操作。比如用户往往无法直接使用物理内存,需要内核去申请。

进程概念,课本概念,进程是一个运行起来的程序,在我看来进程就是一个PCB和资源,创建一个PCB,底层就是创建一个PCB的结构体来保存进程的相关信息,指向相关的资源。先描述再组织,操作系统管理进程就是用PCB来描述一个进程,再用一个双链表对他们进行管理。理论和实践相统一!

进程控制,进程创建用fork(),当fork之后就会创建出一个子进程,对于父进程它的返回值是子进程的pid,对于子进程它的返回值是0.

除了fork还有一个vfork,它的创建目的是为了快速创建子进程并执行exec函数,进行替换,所以OS不会为它创建新的虚拟地址空间。程序替换后会有全新的虚拟地址空间,但是还是属于原来父进程的子进程。

进程终止分为运行完毕终止了,异常终止,被其他信号强制终止。

进程等待就是进程终止后需要的过程了,一个进程创建出来是为了完成任务的,为了知道它任务完成的怎么样,就需要父进程来拿到它的退出信息了。在父进程未拿到子进程的退出信息之前,子进程处于僵尸进程的状态。

进程终止后内核会对进程释放内存资源,关闭文件描述符表,发送信号,通知它的父进程你的子进程终止了。保留退出状态。

僵尸进程是进程已经终止,但父进程还未调用wait来回收,内核仍保留它的PID和状态信息,僵尸进程无法被杀死,包括kill -9因为你无法杀死一个已经死掉的进程。

孤儿进程就是子进程还没退出呢?父进程先退出了,这样操作系统就需要领养这个进程,避免这个进程成为孤儿进程,从而导致僵尸进程,导致内存泄漏。

如果出现大量的僵尸进程,会导致内存资源被打满,崩掉。

进程等待的具体方式一个是wait(),一个是waitpid(),给一段代码看一下吧

wait变量就一个参数,它是一个输入输出的。带出来的就是退出信息

#include <sys/wait.h>
pid_t wait(int *status);
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>int main() {pid_t pid = fork();if (pid == 0) {// 子进程:执行后退出printf("Child PID: %d\n", getpid());exit(10); // 退出码为10} else if (pid > 0) {// 父进程:等待子进程终止int status;pid_t exited_pid = wait(&status);printf("Waited child PID: %d\n", exited_pid);if (WIFEXITED(status)) { // 判断是否正常退出printf("Child exited with code: %d\n", WEXITSTATUS(status)); // 输出10}}return 0;
}
#include <sys/wait.h>
pid_t waitpid(pid_t pid, int *status, int options);
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>int main() {pid_t pid = fork();if (pid == 0) {// 子进程:休眠3秒后退出sleep(3);exit(20);} else if (pid > 0) {// 父进程:非阻塞等待子进程int status;while (1) {pid_t ret = waitpid(pid, &status, WNOHANG); // 非阻塞if (ret == 0) {// 子进程未终止,继续等待printf("Child not exited yet...\n");sleep(1);} else if (ret == pid) {// 子进程已终止printf("Child exited, code: %d\n", WEXITSTATUS(status)); // 输出20break;}}}return 0;
}

waitpid()有三个参数,分别是要等待的进程,退出信息,和等待方式是阻塞还是非阻塞。

4.环境变量

环境变量是系统级别的全局参数,供所有进程访问和共享。

5.虚拟地址空间

虚拟地址空间是什么?虚拟地址空间就是task_struct里的mm_struct的一个结构体。

用于操作系统向进程描述一个完整的连续的地址。

虚拟地址的管理有分段,分页,分段页。

虚拟地址就是操作系统给每个进程画的一个饼,让每个进程都以为自己拥有4GB的内存。

这样的好处是:让进程之间天然隔离,不同虚拟内存和物理内存的映射关系不同。

增强内存访问的独立性,增强安全性,虚拟转物理进行检查。提高内存的利用率,只有当你实际用到的时候才会去分配实际的物理内存(通过缺页中断)。

http://www.dtcms.com/a/517374.html

相关文章:

  • 做网站高手武冈企业建站
  • xml解释 OA表单配置文件的权限信息
  • 临海网站制作好了如何上线一个网页前端和后端
  • 兰州网站建设最新招聘信息做特效很牛的一个外国网站
  • 零基础入门C语言之操作符详解1
  • 元隆盛建设集团有限公司网站青海企业网站建设开发
  • 福建网站建建设房地产销售流程详细
  • 面试学校网站开发平台公司债务风险
  • 工程建设教育网首页梧州网站优化价格
  • 建设银行陕西分行网站简单的网站首页模板
  • 方微商城网站开发wordpress内容主题模板下载失败
  • 一个主做海贼王的网站建设网站需要哪些硬件
  • 网站建设项目实训报告书设计官网和推广的公司
  • 代做网站转账截图新做的网站如何备案
  • 网站建设设计 飞沐高端网站建设公司服务好吗
  • 2024 ICPC 沈阳(JDBEM)
  • OS:使用ffmpeg从视频文件提取音频文件
  • 企业网站的内容模块常州网站建设方案书
  • 软件公司网站建设做淘宝客为什么要做网站
  • 微网站一键导航一站式的手机网站制作
  • AWQ量化
  • 四川禾力建设工程质量检测有限公司网站宣传片拍摄制作多少钱
  • 自动化文件管理:分类、重命名和备份
  • 长沙网站seo推广东莞网站制作建设公司
  • 大型网站建设哪个好网络营销专业背景
  • 如何在Elasticsearch中设置召回率优先的搜索策略?
  • 泉州网站建设工作室涿州住房和城乡建设局网站
  • 上海网站专业制作怎么在百度上推广自己
  • a站插画ss网站代码
  • 操作系统-内存寻址