Operating system related
文章平均质量分 96
学习system
zhanghuaichao
这个作者很懒,什么都没留下…
展开
-
CPU指令集是什么东西,以及指令集的架构有哪些(有哪些大类),以及具体的指令集都有哪些
这篇文章来自于农夫山泉,我们是大自然的搬运工,哈哈,文章来源于网络https://blog.csdn.net/yu132563/article/details/55251534这个问题包括CPU的硬件结构和汇编语言的范畴. 这里梳理一下.首先, 题主"李建国"自问自答的部分说的是正确的,CPU的指令集是软件与CPU这两个层级之间的接口, 而CPU自己, 就是对于这一套CPU指令集的"...转载 2019-04-08 11:31:54 · 10559 阅读 · 2 评论 -
单片机和cpu的区别
很多人都认为,单机片和CPU不是属于两种不同的东西吗?他们怎么可以拿来比较,其实有专业人士就知道单机片和CPU 的关系可以说是十分的密切。本文来分享一下,他们到底隐藏着什么秘密。 什么是单片机,相信很多人都还不知道。也不知道单片机的作用是什么。单片机简称为单片微控制器(Microcontroler),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计...转载 2019-04-08 10:09:09 · 19621 阅读 · 1 评论 -
CPU架构体系的区别
//最近想总结下计算机cpu的体系架构,最近看到了网上的文章写的比较清楚,现在转载过来。https://www.cnblogs.com/crazyValen/archive/2016/04/13/5389316.html现代的CPU基本上归为冯洛伊曼结构(也成普林斯顿结构)和哈佛结构。冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务...转载 2019-04-08 09:24:02 · 11601 阅读 · 1 评论 -
IP地址,同一网段,子网掩码,默认网关,添加路由
自己在学习网络通信的这个过程中,渐渐的对网络的一些基本知识,有了一种了解,突然想把这里的一些基本的问题,进行下总结,也给自己留个笔记。(1)IP首先来说说ip地址吧,IP地址是指互联网协议地址(Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址的作用很简单,就像是我们每个人的家庭住址都有个门牌号码一样,你在整个的互联网环境下,...原创 2017-09-24 08:09:14 · 14287 阅读 · 1 评论 -
GetCurrentDirectory、SetCurrentDirectory和GetModuleFileName
一.学习 GetModuleFileName:想要访问执行程序(.exe)路径下的文件,有以下几个步骤: 1.先通过函数GetModuleFileName获取执行程序的绝对路径。 TCHAR szPath[ MAX_PATH ] = {0}; GetModuleFileName( NULL, szPath, MAX_PATH ); 其中GetModule转载 2017-11-16 14:23:28 · 1055 阅读 · 0 评论 -
关于VS2013中的生成,重新生成,仅用于项目生成,重新生成
最近在编写代码中遇到了一个非常奇葩的问题,就是我再头文件中添加了一个锁的定义,就导致程序编译后必现崩溃,而且崩溃点和我的代码没有啥关系,后来花了将近一天的时间,定位出原因是我没有重新生成,而只是生成。下面说说下面四个的区别1.生成2.重新生成3.仅用于项目生成4.仅用于项目重新生成当一个解决方案中的项目没有依赖项目时,1.3相同,2.4相同。生成的意思是,如果你之前已经编译过了,那生成只是进行编译你改变的文件,不改变的文件就不再重新编译,直接进行连接了,这个在项目工程文件比较大的原创 2020-06-05 22:13:11 · 1731 阅读 · 0 评论 -
线程,进程,程序,服务,看门狗,之间的关系和区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.线程的引入原创 2017-11-13 11:01:27 · 8044 阅读 · 2 评论 -
windows下线程同步的常见方法:CreateEvent和SetEvent及WaitForSingleObject windows下常见锁的实现 EnterCriticalSection
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。 WaitForSingleObject()等待,直到参数所指定原创 2016-12-03 14:26:58 · 652 阅读 · 0 评论 -
WaitForSingleObject()
原文来自:http://blog.csdn.net/xiaobai1593/article/details/6672193在多线程下面,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled转载 2016-12-03 15:04:42 · 15444 阅读 · 0 评论 -
Windows下的防火墙出入站规则以及远程桌面的防火墙应用总结
1.入站规则和出站规则最近在搞windows下的打包程序,然后将自己包中的所有的exe都添加到了入站规则和出站规则,然后对入站规则和出战规则有了进一步的理解。之前写了一个小demo,就是一个tcp的客户端和服务器端。当然完全可以拿socket tools 来进行演示。我只是说下原理,就是服务器绑定115端口,然后客户端和服务器建立连接,然后发送一个数据,客户端连接来了,服务器收到数...原创 2020-03-16 18:00:37 · 5554 阅读 · 0 评论 -
如何判断一个exe是32位还是64位
转载自:https://blog.csdn.net/qq_23308823/article/details/54898119转载 2020-02-27 19:34:41 · 764 阅读 · 0 评论 -
Linux下静态库与动态库的引用关系深入分析
很久就想写一篇关于动态库和静态库互相引用的一篇文章,但是总感觉准备不充分,而一直没有勇气下笔,最近在和同事的讨论中,似乎有了一些新的认识,想把这些记录下来,和大家进行一次分享,同时也是做一次记录。这篇文章将从以下几个方面进行分析讲解1.程序的编译过程2.什么是静态编译,动态编译3.如何生成静态库,如何生成动态库4.动态库和静态库相互引用后,应用程序是否可以只使用一个库(例如:应用用到了静态库a,而静态库a里使用了库b,那么应用程序是不是只要链接a就可以了呢)5.动态库的两种加载方原创 2022-04-24 16:20:09 · 5254 阅读 · 0 评论 -
标准输入、标准输出、标准错误(以及前后台启动程序)
之前一直想写一篇文章总结下,标准输入、标准输出、标准错误,首先这三个对应的是三个文件描述符,这三个对应的文件描述符数值是 0,1,2,而这三个文件描述符是共享的,也就是每一个打开的终端都共享这三个文件描述符,看下下面的表格:当执行shell命令时,会默认打开3个文件,每个文件有对应的文件描述符来方便我们使用:类型 文件描述符 默认情况 对应文件句柄位置 标准输入(standard input) 0 从键盘获得输入 /proc/self/fd/0 标准输出(原创 2022-02-17 15:05:30 · 3380 阅读 · 0 评论 -
linux下调试程序学习笔记二
在上节的内容中简单的描述了下如果用gdb来看崩溃的程序,这一节进行动态库相关崩溃问题的定位以一个软件为例子,已经设置了生成core文件。在软件运行中形成了 一个core文件1.到core文件目录,然后执行 对应的core文件分析指令如下[root@localhost Core]# gdb /home/root/puc/Server/Business core-Business-11-4786-1601178659具体的格式就是 gdb 加上可执行文件 dump文件输出如下:GNU g.原创 2020-09-27 17:24:46 · 499 阅读 · 0 评论 -
linux下调试程序学习笔记
今天学习了linux下程序的编译以及运行,看崩溃文件,以及用gdb调试程序1.gcc安装完虚拟机默认携带,需要安装g++ yum gcc_g++编写一个cpp文件,内容如下: 1 #include<iostream> 2 using namespace std; 3 int main() 4 5 { 6 int *p=NULL; 7 int a=3; 8 p=&a; 9 de...原创 2020-09-25 16:47:24 · 206 阅读 · 0 评论 -
linux下find与grep的区别
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。...原创 2020-04-02 18:25:52 · 804 阅读 · 0 评论 -
sh文件、shell、shell脚本、bat文件、batch、bat脚本
1.shell(壳)shell是一个shell脚本解释器,是一个运行在Linux系统下的批处理脚本解释器,通过这个窗口建立用户和Linux系统底层提供的一系列方法的交互;.sh就是一种运行在Linux系统下的文件,文件中存储的shell脚本;2.batch(批处理)个人理解,batch和shell类似,只不过其运行在windows环境下;.bat文件就是运行在windows环境下的...原创 2019-12-12 14:01:26 · 2112 阅读 · 0 评论 -
linux下安装软件的几种方式
linux下的软件包主要分为以下几种主要是分为三种。一种是Linux系统各种发行版自己开发的软件包,例如后缀是rpm 的一种是dep的。但是不同的Linux它的软件包后缀跟格式是不一样的。反正可以这么理解,不同的Linux它的软件管理方式不一样。并且安装的命令不一样。不是像Windows系统一样都是exe。大多是。Linux系统什么样都有。并且安装方法不一样。有些是输入命令,有些是直接点击就...转载 2019-11-04 14:46:59 · 2017 阅读 · 0 评论 -
linux中vim永久显示行号、开启语法高亮
步骤1:cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc步骤2:vi ~/.vimrc 进入insert模式,在最后加二行 syntax on set nu!保存收工。最后附上其它选项(从网上淘来的)set ...转载 2019-10-29 14:44:11 · 149 阅读 · 0 评论 -
我在~目录下面没有.vimrc和.vim目录是为什么?
我安装的debian我的根用户和普通用户的目录里面~/ 都没有.vimrc和 .vim目录,请问我在哪里修改我的vim的配置。我可以在/etc/vim/里面找到vimrc等东西。也可以在/usr/share/vim/里面找到vimrc但就是不能在用户目录里面找到--------------------------------------------------------------...原创 2019-10-29 14:39:45 · 13490 阅读 · 1 评论 -
进程与任务的区别
进程(Process):是一个程序在其自身的虚拟地址空间中的一次执行活动。 之所以要创建进程,就是为了使多个程序可以并发的执行,从而提高系统的资源利用率和吞吐量。任务:包括用户对计算机操作时的各个动作及所对应的响应事件(如鼠标单击、右击、打开一个对话框、关闭一个文件、启动一个程序等)总之任务是一个很宽泛的概念,它是由很多个进程相互作用,才能完成。一、一个进程转载 2015-09-22 08:57:31 · 3820 阅读 · 0 评论 -
可重入和不可重入
重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存转载 2015-09-21 22:04:41 · 356 阅读 · 0 评论 -
可重入函数与不可重入函数(推荐)
转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如转载 2015-09-22 08:26:07 · 426 阅读 · 0 评论 -
字符设备和块设备的区别
Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上转载 2015-09-20 20:44:10 · 409 阅读 · 0 评论 -
linux内核之 V4L2框架分析
1、概述Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接找底层的员工谈话,而是找部门经理了解情况,一个是因为底层屌丝人数多,意见各有不同,措辞也不准,部门经理会把情况汇总后再向上汇报;二个是老板时间宝转载 2015-09-06 08:26:46 · 4397 阅读 · 1 评论 -
点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]如何在嵌入式系统中使用大量的汉字和字符呢? DOS前辈们经过艰辛的努力,将制作好的字模放到了一个个标准的库中以免去后辈的麻烦,这就是点阵字库文件。 一般我们使用16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。不转载 2015-09-03 21:53:06 · 8302 阅读 · 0 评论 -
linux C信号量编程
信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源。信号量有一个复杂的编程接口。幸运的是,我们可以很容易的为自己提供一个对于大多数的信号量编程问题足够高效的简化接口。为了阻止多个程序同时访问一个共享资源所引起的问题,我们需要一种方法生成并且使用一个标转载 2015-09-22 09:29:49 · 816 阅读 · 0 评论 -
windows 下环境变量 path 详解
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量,是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这些概念没有理解,知其然但不知其所以然。下面的内容,就是帮助大家知其所以然。一、基本原理 首先看PATH环境转载 2016-10-14 09:06:22 · 40004 阅读 · 3 评论 -
Linux间进程通信-----之使用命名管道
原文地址:http://blog.csdn.net/ljianhui/article/details/10202699本人转载,感谢原文作者在前一篇文章——Linux进程间通信——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介转载 2016-11-19 15:35:34 · 385 阅读 · 0 评论 -
linux进程间通信----之使用匿名管道
在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值。这里将介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据。一、什么是管道如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另转载 2016-11-19 15:42:40 · 640 阅读 · 0 评论 -
linux进程间通信------使用信号量
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码转载 2016-11-20 15:10:21 · 427 阅读 · 0 评论 -
进程间通信-----共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一转载 2016-11-20 16:57:34 · 385 阅读 · 0 评论 -
进程间通信----使用消息队列
面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息转载 2016-11-20 17:07:16 · 5148 阅读 · 0 评论 -
linux 线程同步
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。一、互斥锁(mutex)通过锁机制实现线程间的同步。初始化锁。在Linux下,线程的互斥量数据类型是pthread_mutex_t。在使用前,要对它进行初始化。静态分配:pthread_mutex_t mutex =转载 2016-11-22 17:11:25 · 341 阅读 · 0 评论 -
linux下的find和grep指令的区别
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。 一.find命令 基...转载 2018-12-07 09:36:00 · 478 阅读 · 0 评论 -
linux 下的cat 命令
简略版:cat主要有三大功能:1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $cat file1 file2 > file转载 2015-09-02 14:53:17 · 265 阅读 · 0 评论