Linux
tiemaxiaosu
这个作者很懒,什么都没留下…
展开
-
哈佛结构和冯·诺依曼结构的区别
一、哈佛结构 哈佛(英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据转载 2016-06-25 17:30:58 · 7847 阅读 · 0 评论 -
Linux 线程
一、线程定义 定义:在一个程序里有多个执行线路,或者“线程是一个进程内部的控制序列”。二、进程和线程区别 (1)、当一个进程执行fork调用时,会创建出进程的新拷贝,新进程将拥有它自己的变量和它自己的进程ID。该新进程是独立于创建它的进程。 (2)、在进程里面创建一个新线程的时候,新的执行线程会拥有自己的堆栈,但要与它创建的进程共享全局变量、文件原创 2016-07-07 15:27:15 · 208 阅读 · 0 评论 -
Makefile (四) 书写规则
规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在 Makefile 中,规则的顺序是很重要的,因为,Makefile 中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make 知道你的最终目标是什么。一般来说,定义在 Makefile 中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最转载 2016-07-20 16:49:03 · 338 阅读 · 0 评论 -
Makefile (五) 书写命令
每条规则中的命令和操作系统 Shell 的命令行是一致的。make 会按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab 键开头的,那么 make 会认为其是一个空命令。 我们在UNIX 下可能会使用不同的Shell,但是make 的命令默认是被“/bin转载 2016-07-21 10:35:51 · 319 阅读 · 0 评论 -
Makefile (六) 使用变量
在Makefile 中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile 中执行的时候其会自动原模原样地展开在所使用的地方。其与 C/C++所不同的是,你可以在 Makefile 中改变其值。在 Makefile 中,变量可以使用在“目标”,“依赖目标”,“命令”或是 Makefile 的其它部分中。 变量的命名字可以包含字符、数字,下划线(转载 2016-07-21 13:36:45 · 335 阅读 · 0 评论 -
Makefile (七) 使用条件判断
使用条件判断,可以让 make 根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。一、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU 函数编译目标。 libs_for_gcc = -lgnu normal_libs = foo: $(obje转载 2016-07-21 14:03:17 · 342 阅读 · 0 评论 -
Makefile (八) 使用函数
在Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make 所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $( ) 或是 ${ }转载 2016-07-21 15:35:11 · 280 阅读 · 0 评论 -
Makefile (九) make 的运行
一般来说,最简单的就是直接在命令行下输入 make 命令,make 命令会找当前目录的makefile 来执行,一切都是自动的。但也有时你也许只想让 make 重编译某些文件,而不是整个工程,而又有的时候我们有几套编译规则,我们想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用 make 命令的。一、make 的退出码 make 命令执行后有三个退出码:转载 2016-07-21 16:13:19 · 612 阅读 · 0 评论 -
Makefile (十) 隐含规则
在我们使用 Makefile 时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译 C/C++的源程序为中间目标文件(Unix 下是[.o]文件,Windows 下是[.obj]文件)。本章讲述的就是一些在 Makefile 中的“隐含的”,早先约定了的,不需要我们再写出来的规则。 “隐含规则”也就是一种惯例,make 会按照这种“惯例”心照不喧地来运行,那怕我们的 M转载 2016-07-22 09:37:03 · 391 阅读 · 0 评论 -
Makefile (十一) 使用make 更新函数库文件
函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件。在 Unix 下,一般是由命令"ar"来完成打包工作。一、函数库文件的成员 一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成: archive(member) 。这个不是一个命令,而一个目标和依赖的定义。一般来说,这种用法基本上就是为了"ar"命令来服务的。如:转载 2016-07-22 09:46:07 · 376 阅读 · 0 评论 -
Makefile (一) 概述及编译链接
一、概述 makefile 带来的好处就是--“自动化编译”,一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件开发效率。make 是一个命令工具,是一个解释makefile 中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi 的make ,Visual C++ 的nmake,Linux 下的GNU的make。转载 2016-07-19 11:55:09 · 344 阅读 · 0 评论 -
Makefile (二) 介绍
一、Makefile 的规则 让我们先来粗略地看一看Makefile 的规则。 target...: prerequisites command ... ... target 也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的转载 2016-07-19 17:51:29 · 866 阅读 · 0 评论 -
Linux 网络基础和Socket
一、TCP/ IP 协议1、TCP/IP 协议是互联网基础2、OSI 参考模型与TCP/IP 参考模型 二、套接字的分类(1)、流式套接字(SOCK_STREAM)流式的套接字可以提供可靠的、面向连接的通讯流。它使用了TCP协议。TCP 保证了数据传输的正确性和顺序性。(2)、数据报套接字(SOCK_DGRAM)数据报套接字定义了一原创 2016-07-07 15:13:50 · 314 阅读 · 0 评论 -
Linux 进程间通信
一、进程间通信目的?进程间的通信方式?目的:数据传输、共享数据、通知事件、资源共享、进程控制。方式:管道和命名管道、信号、消息队列、共享内存、信号量、套接字。管道定义:一个进程连接到另一个进程的数据流,称为管道。消息队列:提供了一个进程向另一个进程发一块数据的方法。共享内存:允许两个不相关的进程去访问同一部分逻辑内存。信号量:P操作—如果信号量大于0,就减1,如果信号量为0原创 2016-07-07 14:16:04 · 217 阅读 · 0 评论 -
Linux 进程
一、进程结构 Linux系统是一个多进程的系统,进程之间具有并行性、互不干扰的特点。linux中进程包含PCB(进程控制块)、程序以及程序所操纵的数据结构集,可分为“代码段”、“数据段”和“堆栈段”。 二、init 进程 进程ID为1通常是init进程,在自举过程结束时由内核调用。init进程绝不会终止。它是一个普通的用户进程(与交原创 2016-07-07 11:01:32 · 351 阅读 · 0 评论 -
Makefile (十二) wildcard 用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...)。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的展开转载 2016-07-22 15:49:31 · 582 阅读 · 0 评论 -
Linux--内核功能及文件系统
一、Linux 架构结构 二、内核功能1、与计算机硬件进行交互,实现对硬件对编程控制和接口操作,调度对硬件资源对访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件对虚拟接口2、按功能模块分为:(1)进程调度; (2)文件管理; (3)内存管理; (4)进程间通信和网络接口 三、文件系统结构原创 2016-06-30 14:46:26 · 347 阅读 · 0 评论 -
Linux 基本命令
一、文件操作命令 二、进程操作命令 三、系统服务命令 四、CUP内存查看 五、其他系统命令原创 2016-06-30 15:02:27 · 240 阅读 · 0 评论 -
Linux 文件权限
一、文件权限•文件权限位的表示:-rwx rwx rwx•第一位表示文件的类型,-表示普通文件,d表示目录文件,l表示符号链接文件;•接下来三位表示owner用户的读,写,执行权限•紧接着三位表示group用户的读,写,执行权限•最后三位表示world用户的读,写,执行权限 二、chmod•chmod命令格式为: chmod [option] mode原创 2016-06-30 15:07:31 · 307 阅读 · 0 评论 -
Linux shell 命令
一、通配符 二、rpm 命令 (1)、安装包:•rpm -ivh glibc-2.3.2-11.9.rpm•如果提示有依赖关系,我们忽略依赖关系强制安装,可以使用rpm -ivh --nodeps glibc-2.3.2-11.9.rpm•如果要安装的软件包中有一个文件已在安装其它软件包时安装,可以使用rpm -ivh --repla原创 2016-06-30 15:28:40 · 224 阅读 · 0 评论 -
Linux 网络及服务
一、ifconfig 命令功能说明: 用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户格式: ifconfig –interface [options] address参数说明: -interface:指定的网络接口名,如eth0和eth1 up:激活指定的网络接口卡。 down:关闭指定的网络接口。原创 2016-06-30 16:07:40 · 290 阅读 · 0 评论 -
Linux vi 编辑器
一、vi 三种工作方式 二、编辑方式(1)、光标定位 –M 移动光标到页面中央 –L移动光标到页面尾处 –H移动光标到页面开始处 –Ctrl+f向后翻页 –Ctrl+b向前翻页 –0移动光标到行首 –$移动光标到行尾(2)、复制 粘贴删除 –nyy 复制光标所在的向下n原创 2016-06-30 16:18:17 · 264 阅读 · 0 评论 -
Linux gcc 编译
一、编译过程(1)、预处理(Pre-Processing)(2)、编译(Compiling)(3)、汇编(Assembling)(4)、链接(Linking) 二、常用选项 例如: •gcc hello.c -o hello(直接编译链接成可执行文件)原创 2016-06-30 16:39:11 · 244 阅读 · 0 评论 -
Linux 静态库与共享库
一、静态库和共享库(1)、静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。(2)、共享库(.so或.sa):程序在运行的时候才去链接共享库的代码,多个程序共享使用库的代码。 二、生成(1)、生成共享库 –编译选项 shared: 表示生成共享库格式 fpic:产生位置无关码(position in原创 2016-06-30 16:43:48 · 296 阅读 · 0 评论 -
Linux Makefile
一、概述make 工具通过一个称为makefile的文件来完成并自动维护编译工作。makefile需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该文件的源文件。 二、自动化变量 三、Makefile 常见的函数(1)原创 2016-06-30 16:59:28 · 319 阅读 · 0 评论 -
Linux 文件描述符和文件锁
一、文件描述符fd(1)、每个进程PCB结构中有文件描述符指针,指向files_struct的文件描述符表,记录每个进程打开的文件列表。(2)、系统内核不允许应用程序访问进程的文件描述符表,只返回这些结构的索引即文件描述符ID(File Description)给应用程序。(3)、Linux系统中,应用程序通过这些文件描述符来实现让内核对文件的访问。(4)、每个进程能够访问的文件描原创 2016-07-06 17:35:31 · 1131 阅读 · 0 评论 -
Makefile (三) 总述
一、Makefile 包含模块 Makefile 里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则 显式规则说明了,如何生成一个或多的的目标文件。这是由 Makefile 的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则 由于我们的make 有自动推导的功能,所以隐晦的规则可以让我们比较转载 2016-07-20 11:02:31 · 239 阅读 · 0 评论