IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux进阶---第一篇 -> 正文阅读

[系统运维]Linux进阶---第一篇

目录

?1.基础复习

?2. 头文件存放位置

?3.printf

?4.主函数的参数

?5.常识

?6. 内存

?7.程序在内存中的存储?

?8.? 地址

?9. 进程空间

10.? 程序的划分

11.进程

12.fork---复制进程


1.基础复习

1). Linux 目录结构

/ 根

/boot 存放系统内核及启动相关的文件,类似于windows的C盘

/bin 存放常用的命令(二进制可执行程序)

/lib 存放库文件

/etc 存放系统的配置文件

/home 家目录(所有普通用户的家目录)

/root 存放管理员的家目录

/usr 存放系统应用文档和程序 ? 例如:QQ 微信

/dev 存放我们的设备文件

/proc 存放虚拟文件系统目录,保存进程在内存中的信息

/mnt 临时挂载点

2). 文件类型

普通文件 -

目录文件 d??? ==》 windows 的文件夹

管道文件 p

链接文件 i

设备文件 c,d

套接字文件 s

windows上所有能拷贝进Linux的文件(照片,电影,pdf,exe...),都是Linux里的普通文件

?

?3). 权限? chomd

r (读) ???? w(写) ?????? x(执行)

?4) 命令:

?????? 操作文件:cp,rm,mv,more,less,head,tail,vi/vim

???????????????????????? mkdir,cat,touch,cd,pwd

?????? 进程:ps (显示运行的程序)???? 结束进程:kill?????

? ? ? ? ? ? ? ? ? & :后台运行进程??? jobs:查看后台运行的进程??

????????????????? top:查看系统的运行的进程,cpu利用率等等,类似于windows的任务管理器

?5)如果要直接运行 可执行程序

? 则需要把可执行程序移动到 /bin 目录下,系统是从/bin这个目录下开始找二进制的可执行文件

?6) 可执行程序的标准存放路径 --- $PATH

?7)静态库和共享课

静态库:libxx.a

共享库:libxx.so

8)静态库和共享库的区别:

静态库是在编译链接生成可执行程序时,把库里的方法直接放到可执行程序里,作为可执行程序的一部分

共享库:在运行可执行程序时,动态去链接

通过静态库编写的程序,放在任意计算机都可执行

通过静态库编写的程序,只有计算机上存在这些共享库才能被执行

9)可通过命令 ldd 查看可执行程序用到了那些共享库

?

2. 头文件存放位置

3.printf

1).存在 \n时

?

?先打印 hello world 再睡眠3秒钟

2).不在存在\n时

先睡眠3秒再打印 hello world

?3)prntf为什么需要缓冲区?

在屏幕打印出数据时,是把数据交给内核,内核帮助我们去打印,如果没有缓冲区,一直频繁的切换用户态和内核态,让内核去打印,开销太大,效率太低。

4) printf缓冲区的作用

为了避免开销太大,并且提高效率,我们设置缓冲区,用来存储将将要打印的数据。

5)刷新缓冲区

a:缓冲区放满(完全缓冲)

b:缓冲区未满(行缓冲),printf里的\n会强制刷新缓冲区,将此行数据送到内核,也可通过fflush (stdout)强制刷新

c:?? 程序结束时?

exit????? ---> ?? 1. 刷新缓冲区

? ? ? ? ? ? ? ? ? ??? 2.调用_exit(),退出整个程序

6)缓冲区的大小

一般为0.5k或者4k

4.主函数的参数

1)获取外部信息 char* argv[ ]

?主函数的第一个参数内容是自己的名字, 所以主函数至少会有一个参数内容

?多个参数

?2) 环境变量 char* envp

?从第一个元素开始填充,最后一个元素赋值为NULL

5.常识

?1)冯诺依曼结构计算机---五大组成部分:控制器,运算器,存储器,输入输出设备

2)总线:地址总线,数据总线,控制总线

3)内存由内核(操作系统)进行管理分配

4)操作系统:管理计算机的软硬件资源,为用户提供交互的接口

6. 内存

操作系统在进行内存管理时,会将内存分为若干页进行管理,一页是4k/8k

假设内存为4G,1页为4K,那么可以划分为2^20页

物理内存4G,会被划分为2^20 物理页,把程序加载到内存时,也会把程序进行划分,4k的程序作为1页,存放在物理页中

?

?

7.程序在内存中的存储?

程序在内存中并不是连续存储的,物理页的那一页空闲就会被操作系统随机分配用来存储程序,所以为了清楚每一页程序在物理内存中的位置,通过页表来记录每一页程序的编号所对应的物理页的编号,再通过偏移量的计算,就能找到物理页上每个数据的准确位置,便于进行访问或者修改

?

?8.? 地址

调试所用的地址为逻辑地址而不是物理地址

不采用物理地址,是因为我们不清楚那块物理地址所对应的空间是空闲的

使用逻辑地址时,我们不用考虑这些问题,操作系统会给我们分配空闲的物理空间,并且记录相应的逻辑地址和物理地址(页表),因此可以由逻辑地址推算出对应的物理地址(查页表计算偏移量

9. 进程空间

?在32位系统下,物理内存无论多少,进程地址空间都是4G

?每个进程都有自己的进程地址空间,他们的进程地址空间之间没有什么联系,互不干预

?

10.? 程序的划分

?

?在页表记录时,是从代码段开始的页面开始记录的,所以一定不会从0页开始,上面只是为了方便理解,所以是从0开始的

代码段,数据段,堆,栈,内核,这五部分再进行页面划分时,是不会有任意两个出现在同一个页面的,在设计时,进行了有意的区分,一页未满,但跨入了下一个段时,则会将此页剩余部分浪费掉,在新页进行下一个段的划分

11.进程

操作系统给每个进程创建了一个进程控制块---PCB,对进程进行管理

PCB ---> struct task_struct????? Linux上用一个结构体来表示PCB

pid---唯一标识进程

status---表示进程的当前状态(就绪,运行,阻塞)

?

?

?

12.fork---复制进程

pid_t fork(void) ? 头文件 #include <unsitd.h>

?

?两个进程同时进行

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:43:29  更:2022-05-12 16:43:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:33:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码