![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 94
爱生活,爱代码
天行健,君子以自强不息
展开
-
一篇搞懂五种io模型
linux转载 2022-07-30 15:40:09 · 154 阅读 · 0 评论 -
linux就该这么学【网络编程socket套接字】
本节重点认识IP地址, 端口号, 网络字节序等网络编程中的基本概念;学习socket api的基本用法;能够实现一个简单的udp客户端/服务器;能够实现一个简单的tcp客户端/服务器(单连接版本, 多进程版本, 多线程版本);理解tcp服务器建立连接, 发送数据, 断开连接预备知识源IP地址和目的IP地址在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址.我们都知道ip是标识着全网的唯一一台主机,只要找到了目的ip地址就可以确定数据该往哪里传输, 而源ip.原创 2022-03-26 10:44:10 · 3779 阅读 · 13 评论 -
linux就该这么学【信号】
认识信号生活角度的信号你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解成“在合适的时候去取”。在收到通知,再到你拿到快递期间,是有一个时间窗口的,在这段时间,你并没有拿到快递,但是你知道有一个快递已经来了。本质上.原创 2022-03-08 00:06:51 · 8304 阅读 · 10 评论 -
linux就该这么学【网络基础】
本节重点了解网络发展背景, 对局域网/广域网的概念有基本认识;了解网络协议的意义, 重点理解TCP/IP五层结构模型;学习网络传输的基本流程, 理解封装和分用;计算机网络背景网络也是属于OS的范畴:网络与OS的布局关系在下图中包含着网络发展独立模式: 计算机之间相互独立;...原创 2022-03-20 00:05:36 · 7341 阅读 · 14 评论 -
linux就该这么学【线程基本概念】
目录重点学习:进程总结、线程初步认识:Linux线程概念线程的优点线程的缺点线程异常线程用途线程库重点学习:了解线程概念,理解线程与进程区别与联系。学会线程控制,线程创建,线程终止,线程等待。了解线程分离与线程安全概念。学会线程同步。学会使用互斥量,条件变量,posix信号量,以及读写锁。理解基于读写锁的读者写者问题。进程总结、线程初步认识:创建一个进程OS需要为你创建数据结构、task_struct、建立页表中虚拟地址和物理内存的映射关系,并将代码和数据装载到内存当中,CPU会去.原创 2022-03-18 21:10:57 · 694 阅读 · 7 评论 -
linux就该这么学【进程间通信】
目录进程间通信的目的进程间通信发展1、使用文件的方式2、使用特定的标准管道什么是管道进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变进程间通信发展1、使用文件的方式.原创 2022-03-04 19:51:36 · 1123 阅读 · 12 评论 -
linux 下理解文件系统的inode
前言inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块转载 2022-02-27 22:44:01 · 1149 阅读 · 0 评论 -
linux就该这么学【动静态库】
静态库与动态库静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码在可执行文件开始运行以前,外部函数的机器码由操作系统从磁盘上的该动态库中复制到内存中,这个过程称为动态链接(dynamic linking)动态库可以在多个程序间共享,所以动态链接使得可执行文件更小,节.原创 2022-02-20 16:08:05 · 204 阅读 · 5 评论 -
linux就该这么学【基础IO】
IO基础操作:在我们学习C语言的时候唯一对IO流有过的接触的就是c语言的文件操作了,回顾一下c语言对文件的操作练习1:向一个文本文件写入5个hello word#include <stdio.h>#include <string.h>int main(){ FILE *fp = fopen("word.txt", "w"); if(!fp) printf("文件打开失败\n"); int count = 5; const.原创 2022-02-17 16:16:25 · 733 阅读 · 2 评论 -
linux就该这么学【进程控制】
目录进程创建fork函数初识fork函数返回值进程创建fork函数初识在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程#include <unistd.h> //fork所在头文件pid_t fork(void); //fork函数原型fork创建子进程是以父进程为“模板”的,fork的返回值:给子进程中返回0,给父进程返回子进程id,创建子进程失败出错返回-1进程调用fork,当控制转移到内核中的fork代码.原创 2022-02-12 20:29:17 · 870 阅读 · 2 评论 -
linux就该这么学【进程地址空间】
目录进程地址空间进一步理解地址空间进程地址空间我们都知道fork创建进程后,进程的执行是随机的 1 #include <stdio.h> 2 #include <unistd.h> 3 #include <stdlib.h> 4 5.原创 2022-02-07 23:25:55 · 943 阅读 · 1 评论 -
linux就该这么学【进程概念】
目录基本概念系统允许多个进程同时运行起来,OS需要对进程进行管理,如何管理进程?**操作系统管理进程的方式是先描述后组织**描述进程-PCBtask_struct-PCB的一种task_ struct内容分类总结:组织进程基本概念课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体操作系统一般存在在根目录下的boot目录下,而这个boot目录下存放的是一些镜像和压缩包 ,这就是我们操作系统所在的位置 查看指令:sudo ls /boot/而这些原创 2022-01-30 23:17:21 · 3361 阅读 · 2 评论 -
linux就该这么学【冯诺依曼体系结、OS基本理解】
目录冯诺依曼体系结构木桶原理:操作系统(Operator System)进一步理解系统冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器, 大部分都遵守冯诺依曼体系截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘, 鼠标,扫描仪, 写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等简单说说整个体系结构的工作原理:为了保证数据能够刷新到输出设备上,一般会经历如下的步骤,cpu会将输入设备的数据预加载到存储器中,输出的时候原创 2022-01-20 21:49:57 · 1670 阅读 · 4 评论 -
linux安装禅道
安装http服务:1.mkdir /root/centos2.mount -t iso9660 -o loop /dev/cdrom /root/centos3.vi /etc/yum.repos.d/local.repo[centos]name=centosbaseurl=file:///root/centosenabled=1gpgcheck=04.ip addr5.rpm -q httpd6.yum install httpd7.rpm -q httpd8.service原创 2021-12-22 16:11:06 · 1220 阅读 · 3 评论 -
linux就该这么学【yum 、vim、编译器gcc/g++使用、make使用】分享一个好用的vim配置
yum软件包在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora,.原创 2021-11-30 09:17:45 · 840 阅读 · 36 评论 -
linux就该这么学【权限管理】
Linux权限概念Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$命令:su [用户名]功能:切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令Linux权限管理文件和文件目录的所有者:U.原创 2021-11-23 09:51:57 · 5212 阅读 · 22 评论 -
Linux就该这么学【基础指令】
目录linux常用指令ls指令. 和 . .的意思cd的常用方式Linux的目录结构touch指令面试三问:mkdir指令(重要)treermdir指令 && rm 指令(重要)linux常用指令ls指令语法:ls功能:对于目录: 列出该目录下的所有子目录与文件。对于文件: 将列出文件名以及其他信息针对目录显示的效果:针对文件显示的效果:ls常用选项:推荐使用ls - al-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其.原创 2021-11-14 11:50:27 · 9059 阅读 · 34 评论