Linux
文章平均质量分 55
ChengQianO
这个作者很懒,什么都没留下…
展开
-
git的基本使用总结
Git的基本使用本地仓库环境:Centos (windos下安装git后,打开gitbash类似)1.创建本地仓库。在要创建的目录下git init //此时会多出一个文件夹.git2.把文件添加到版本库中git add .git add 具体文件名3.提交到本地仓库 git commit -m "注释"远程仓库1.github上创建仓库2.将本地的ssh添加到githubssh-keygen -t rsa –C “youremail@example.com“ //创建完成原创 2020-12-30 20:42:54 · 180 阅读 · 1 评论 -
页面置换算法
页表如何将虚拟地址转换为物理地址分页内存管理和分段式内存管理分段内存管理内存地址的构成:段起始地址+段内偏移段表—有很多的段表项(物理段的起始地址)通过地址中的段号去段表中找到段表项,通过段表项中的物理段起始地址加上地址中的段内偏移获取到物理地址分页内存管理分页式内存管理:内存地址的构成:页号+页内偏移页表—有很多页表项通过地址中的页号去页表中找到页表项,通过页表项中的物理页号加上页内偏移获取到物理地段页式内存管理:内存地址:段号+段内页号+页内偏移段表项中又段内页表起始地址原创 2020-07-06 11:32:03 · 1102 阅读 · 0 评论 -
网络套接字编程
/*=============================================================== * Copyright (C) . All rights reserved.")* 文件名称: * 创 建 者:zhang* 创建日期:* 描 述:封装UdpSocket类,实例化对象,向外提供简单的socket接口 * ...原创 2020-05-22 15:32:23 · 1499 阅读 · 0 评论 -
网络协议包格式
ARP协议当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将AR...原创 2020-04-25 12:49:50 · 1409 阅读 · 1 评论 -
多线程
多线程线程概念线程是什么?在一个程序里的一个执行路线就叫做线程(thread)。线程是一个进程内部的控制序列。一切进程至少都有一个执行线程。进程和线程进程是资源竞争的基本单位线程是程序执行的最小单位线程共享进程数据,但也拥有自己的一部分数据:线程ID>一组寄存器>栈>errno>信号屏蔽字>调度优先级进程和线程的关系:线程之间的独有与共享独有:栈,...原创 2020-03-20 21:06:13 · 162 阅读 · 0 评论 -
高级IO
五种典型IO阻塞IO: 在内核将数据准备好之前, 系统调⽤用会⼀直等待. 所有的套接字, 默认都是阻塞⽅方式.阻塞IO是最常见的IO模型非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码.非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为轮询. 这对CPU来说是较⼤大的浪费, 一般只有特定场景下才使用.信号驱动...原创 2020-03-19 13:03:21 · 257 阅读 · 0 评论 -
设计模式
设计模式一部分大佬将自己的编程经验,通过一些常见的问题或者常见的场景,给出一种解决方案或者一种套路。让后续程序员在遇到相似的问题是可以快速设计自己的代码。常见的设计模式1.创建型模式:用于构建对象,将实现从系统当中分离处理。例如:单例模式2.结构性模式:用于许多不同的对象之间形成大型的对象结构。例如:适配器模式3.行为型模式:例如观察者模式单例模式1.特点:提供了一个唯一的实例,具有...原创 2020-03-11 18:14:07 · 175 阅读 · 0 评论 -
Linux进程间通信
进程间通信(IPC)命令 :ipcs 查看系统的进程间通信方式ipcs:-m 查看共享内存 -s 查看 -q 消息队列ipcrm -m 0操作系统为用户提供的几种进程间通信方式的学习操作系统为什么要为用户提供进程间通信方式:因为进程的独立性(都操作的是自己虚拟地址空间中的虚拟地址,无法访问别人的地址)因此无法直接通信因为进程将通信的场景不同因此提供了不同的几种进程间...原创 2019-08-17 15:55:19 · 134 阅读 · 0 评论 -
信号
信号(软中断)概念信号用于通知一个事件的发生,会打断当前操作,去处理这个事件;当然有一个前提:必须识别这个信号信号种类有很多,每个都代表不同事件信号是有生命周期:产生->注册->注销->处理kill -l //查看信号列表信号的分类 信号总共有62种,有两大类型 非可靠信号:1~31号信号 可靠信号:34~64号信号信号的产生 硬...原创 2019-08-18 18:17:26 · 197 阅读 · 0 评论 -
Ubuntu下更改用户名和主机名
Ubuntu下更改用户名和主机名1.更改主机名(1) 修改hostname文件sudo vim /etc/hostname修改里面内容为新的主机名(2) 修改hosts文件sudo vim /etc/hosts修改原来的名字为新的主机名2. 更改用户名(1) 修改sudoer文件(建议在管理员权限下修改,不然无法修改)我们为自己要改的名字提前赋予较高的权限,防止修改下面文...原创 2019-07-08 10:25:26 · 10997 阅读 · 4 评论 -
打包静态库、动态库及其使用
1.编写子函数add.c#include<stdio.h>int add(int left,int right){ return left + right;}sub.c#include<stdio.h>int sub(int left,int right){ return left - right;}mul.c#include<...原创 2019-06-13 17:54:12 · 622 阅读 · 0 评论 -
模拟实现shell
#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include <sys/wait.h>int main(){ while(1) { char *argv[32] = {NULL}; int argc = 0; ch...原创 2019-06-13 16:46:04 · 349 阅读 · 0 评论 -
unbuntu16.04下安装opencv
在配置安装opencv时借鉴这几个大牛的文章,在此非常感谢。https://blog.csdn.net/cocoaqin/article/details/78163171https://blog.csdn.net/liuxiaodong400/article/details/81089058一、下载opencv1.去官网下载opencv,opencv3.4.1。下载链接http://op...原创 2018-10-11 14:44:13 · 1376 阅读 · 1 评论 -
Linux常用工具
Linux常用工具环境:CentOS7工具:yum,vim,GBD,Makefile,yumyum: 软件包管理工具查看软件包 yum list安装软件包 yum install package_name移除软件包 yum remove package_namevim编辑器因为vim中默认不能输用鼠标,因此为了完成能够插入,删除,复制,粘贴各个操作,vim将操作分为了很多模式:...原创 2019-05-27 16:29:30 · 300 阅读 · 0 评论 -
进程概念
进程系统编程阶段:进程概念->进程控制->基础IO->进程间通信->进程信号->多线程1.进程概念:冯诺依曼体系—现代计算机硬件体系结构输入设备:键盘输出设备:显示器存储器:内存运算器:CPU-中央处理器控制器:输入设备—>存储器—>输出设备||CPU所有的硬件都是围绕存储器工作硬件结构决定软件行为:操作系统操作系统的目的:方...原创 2019-05-27 18:54:42 · 164 阅读 · 0 评论 -
僵尸进程与孤儿进程
1、僵尸进程什么是僵尸进程?处于僵死状态的进程-----(危害)会造成资源泄漏僵尸进程的产生原因子进程先于父进程退出,因为要保留退出原因,因此操作系统不能直接释放所有资源,通知父进程获取退出原因,允许操作系统释放资源,但是父进程没有关注这个通知导致子进程退出后无法释放所有资源,处于僵死状态成为僵尸进程。解决方法1.进程等待2.结束父进程模拟实现#include<stdio....原创 2019-06-13 10:57:27 · 149 阅读 · 0 评论 -
进程创建
进程控制1.进程创建fork—通过复制调用进程创建一个新的子进程:复制(pcb—代码共享,数据独有)—程序计数器(运行位置也一样)返回值:父进程返回子进程的pid,子进程返回0写时拷贝技术vfork—创建子进程,共用同一个虚拟地址空间,为了防止调用栈混乱,因此父进程调用vfork会阻塞,阻塞到子进程退出或者子进程程序替换,开辟内存创建自己的地址空间。 //子进程推出后,父进程才...原创 2019-06-13 11:21:50 · 245 阅读 · 0 评论 -
popen与system函数
popen与system在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信。system()、popen()给我们处理了fork、exec、waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可。popen函数函数介绍(1)popen()会调用fork()产生子进程,...原创 2019-06-13 11:53:48 · 382 阅读 · 0 评论 -
文件重定向及shell(重定向)实现
文件重定向定义:将原来从标准输入读取数据的文件操作重新定向为从向其他文件读取数据;将原来要输出到标准输出的内容,从新定向输出到指定的其他文件文件重定向指令< //标准输重定向> //标准输出重定向 清空原先的内容后添加新的内容 >> //标准输出重定向 在原来内容换行下方添加新的内容dup及dup2函数int dup(int o...原创 2019-06-13 16:45:44 · 5503 阅读 · 0 评论 -
Linux基本操作
一、目录操作根目录下 etc 存放系统的配置文件,bin文件存放可执行文件lsls 浏览当前路径下文件 ls -a 浏览当先路径下隐藏的文件(目录) ls -l 显示当前路径下目录文件的详细信息 ls -t 以时间排序浏览当前的目录文件 ls -r 以倒序排列浏览当前的目录文件 ls [相对路径] 直接查看当前目录下相对路径下的目录文件 ls -tlr 可以组合使用 ...原创 2018-08-10 17:16:23 · 384 阅读 · 0 评论