Linux
文章平均质量分 87
轩轩uvtg
编程在学新人
展开
-
Linux网络——传输层
我们之前已经谈到过传输层负责的是保证数据能够完整的从发送端发送到接收端。原创 2024-12-02 15:41:47 · 1102 阅读 · 0 评论 -
Linux网络——应用层
在这里我们实现一个简易的网络版计算器,首先我们先完成一个 TCP 服务,如下enumBindErr,ListenErr// 监听时套接字排队的未处理连接请求的最大数量class Sockpublic:Sock(){}~Sock(){}public:// 创建套接字// 创建字节流型(TCP)套接字// 绑定// 将一个地址(包括IP地址和端口号)分配给套接字,使得套接字与特定的网络接口和端口关联起来。原创 2024-11-27 09:20:02 · 812 阅读 · 0 评论 -
Linux网络——套接字编程
在公网上, ip 地址能标识唯一一台主机,端口号 port 能标识该主机上的唯一一个进程,因此我们可以使用 ip:port 来表示全网唯一的一个进程而我们将 client_ip:client_port 与 server_ip:server_port 间的通信称为套接字编程!原创 2024-11-19 23:23:45 · 925 阅读 · 0 评论 -
Linux网络——网络初识
在谈及网络之前,我们要先对学的知识有一个了解网络的本质就是获取数据,而系统的本质就是加工数据。原创 2024-11-14 22:26:13 · 635 阅读 · 0 评论 -
Linux基础——线程
线程:我们认为线程是OS调度的基本单位进程:对OS来说,进程是承担分配系统资源的基本实体既然如此,那么线程是资源吗?——算,不过它是当前进程的内部执行流资源!我们重新定义它们后,之前讲的进程又如何理解呢?——OS以进程为单位来分配资源,而当前进程内部只有一个执行流。由于 进程:线程 = 1:n,即 OS 中一定存在大量的线程,而 OS 想要管理它们就需要先描述再组织,而这个过程中不同的操作系统就采取了不同的方案。原创 2024-11-11 11:14:05 · 918 阅读 · 0 评论 -
Linux应用——线程池
我们创建线程池的目的本质上是用空间换取时间,而我们选择于 C++ 的类内包装原生线程库的形式来创建,其具体实行逻辑如图可以看到,整个线程池其实就是一个大型的 CP 模型,接下来我们来完成它。原创 2024-11-09 22:11:15 · 490 阅读 · 0 评论 -
Linux基础——进程间的通信
我们现在所做的工作只是让不同的进程看到同一份资源,我们现在来编写通信代码(IPC code),对于客户端(client)来说,一旦有数据写入到共享内存,立马就能看到,不需要经过系统调用,直接就能看到地址;综上,我们对信号量进行 PV 操作时,必须保证它们是原子的(要么做完,要么不做,没有正在做的概念)!其中,pipefd[2] 是一个输出型参数,它的作用是将文件的文件描述符数字带出来,让用户使用,比如:3,4,其中pipefd[0] 表示读下标(3),pipefd[1] 表示写下标(4)。原创 2024-10-13 15:25:22 · 607 阅读 · 0 评论 -
Linux应用——简易日志
对于一个日志来说,我们任认为其应该具有以下的内容1. 日志时间2. 日志等级3. 日志内容4. 文件名称与行号在此基础上我们对不同的日志做出分级,即info: 常规信息warning: 报警信号error: 严重信号,可能需要立即处理fatal: 致命信号Debug: 调试信息。原创 2024-10-03 19:29:29 · 208 阅读 · 0 评论 -
Linux基础——文件
1. 从本质上来说,文件其实就是内容加上属性。而一个文件一般都是先拥有属性,再拥有内容的。2. 文件分为未打开的文件和打开的文件。3. 对于未打开的文件,它们存放在哪呢?——磁盘,对于未打开的文件,我们最关注的是什么呢?我们要知道,在整个磁盘中,没有被打开的文件是相当多的,因此最值得被关注的应该是:文件如何被分门别类的放置好,以便我们快速的进行增删查改。4. 对于打开的文件,它们是由谁来打开呢?——进程,所以研究打开的文件本质上就是研究进程和文件的关系。原创 2024-09-19 17:20:10 · 1035 阅读 · 0 评论 -
Linux基础——进程控制
在这之前我们曾了解过进程创建(详见),我们在这里对fork函数做一些补充其实对于父子进程来说,若是有一方试图修改数据时,会向物理内存中申请一份新空间,并将数据拷贝到其中,拷贝完成后将自己对应页表中的只读属性去掉。原创 2024-03-05 09:21:43 · 1030 阅读 · 0 评论 -
Linux基础——进程初识(三)
首先我们要知道,进程优先级是操作系统用来确定多个进程同时运行时,哪个进程会获得更多CPU时间片的相对重要性或优先级的评估。他和权限的区别在于权限决定了能不能访问资源,而优先级是在能访问资源的前提下,决定了资源访问谁先访问,谁后访问。那么我们为什么需要优先级呢?在去食堂的时候,如果能给我们每一个人配备一个厨师,那么我们就不需要进行排队了,问题是没有那么多的厨师分配给我们,而进程也是同理,因为资源是有限的,而进程有多个,那么注定了进程之间的关系为竞争关系——这就是进程的竞争性。原创 2024-01-04 16:27:29 · 926 阅读 · 0 评论 -
Linux基础——进程初识(二)
我们知道在创建一个文件时,它会被默认创建到当前目录下,那么它是如何知道当前目录的呢?对于下面这样一段代码在它被加载成为一个进程时,我们查看相应的PID有在Linux中所有进程是被存放在一个/proc目录中的,即我们找到对应的PID就能进入并查看该进程,进入后发现可以看到,在进程中有一个cwd文件,即current work dir(当前工作目录),在代码中使用fopen向磁盘中写入文件tmp.txt时,会自动的将cwd中的路径拼接到它的前面。原创 2024-01-02 17:38:14 · 1738 阅读 · 0 评论 -
Linux基础——进程初识(一)
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)(operating system)内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库,shell程序等等)简单来说,操作系统是一个对软硬件资源进行管理的软件。原创 2023-12-08 19:57:25 · 1051 阅读 · 0 评论 -
Linux小程序——进度条
首先我们需要知道,回车与换行是两个概念,在C语言中使用"\n"时,默认使用的是回车+换行,举一个简单的例子,在以前写作文时,我们在某一行写到最后一个字时,我们会将字写在下一行,此时这个换行的动作就叫换行,但是如果只换行的话此时的笔尖应该落在下一行的最后一个格子上,此时我们再将笔尖移动到这一行的开始,这个动作就叫做回车。也就是说如果我们只使用回车("\r")的话,会将光标移动到本行的一开始,只使用换行的话,会将光标移动到下一行的相同位置。原创 2023-10-26 20:53:28 · 125 阅读 · 0 评论 -
Linux基础——基础工具
1. 在Linux下安装软件一个通常的办法是下载程序的源代码并进行编译得到可执行程序2. 但是这样太麻烦了于是有些人把一些常用的软件提前编译好做成软件包可以理解成windows上的安装程序)放在一个服务器上通过包管理器可以很方便的获取到这个编译好的软件包直接进行安装3. 软件包和软件包管理器就好比"App"和应用商店这样的关系是Linux下非常常用的一种包管理器主要应用在Fedora, RedHat, Centos等发行版上。原创 2023-11-02 15:11:25 · 202 阅读 · 0 评论 -
Linux基础——权限
在操作系统中,权限是指用户或进程能够执行的特定操作的范围。权限决定了一件事情能否被做。而在权限进行判断时首先认证的是身份,而Linux中身份又分为拥有者,所属组和其他人,这些身份与用户(root用户和普通用户)互相交叉,即root用户与普通用户都可能是这三个身份中的一个。在之后,查看文件的属性,在使用ll指令后,我们可以看到可以发现,最前方由10个字符组成,在这之中的第一列,即表示的是文件的类型(因此在Linux中文件名后缀无直接意义),具体如下d:文件夹:普通文件l:软链接(类似。原创 2023-05-19 21:44:28 · 2033 阅读 · 0 评论 -
Linux基础——指令
在Windows环境下,对于复制粘贴我们常常使用ctrl+c/ctrl+v,但是这在Linux环境中是不适用的,而在我所使用的xshell软件中,使用来进行,使用来进行。原创 2023-05-14 23:09:31 · 1053 阅读 · 0 评论
分享