
Linux
"爱"编程的小朋友
未来可期
展开
-
【Linux】静态库和动态库
一、静态库:在编译链接时,将库内容直接合并到最终的可执行文件中;是中间文件的集合;静态库是在程序当中的;静态库最终执行时不依赖与库文件(即就是在加载的时候已经将静态库拷贝到程序中,就算删除静态库后也对程序的执行没有影响)。 二、动态库: 在链接阶段仅仅是将使用哪个共享库设置到最终的可执行文件,在程序运行时,才会加载动态库;是不可执行(不可单独执行)的可执行文件;动态库是不在程序当...原创 2019-03-23 19:51:02 · 243 阅读 · 0 评论 -
【Linux】进程基础——进程的管理方式、状态以及加载等
目录1、进程2、操作系统对于进程的管理方式3、进程的创建和销毁4、五种进程状态5、以“分页”内存管理方案,进程的加载1、进程进程是运行中的程序,是一个动态的过程,是操作系统管理和分配资源的基本单单位;相对于进程我们还要了解线程的概念,线程是一种轻量级的线程等,关于线程后期进一步总结。2、操作系统对于进程的管理方式PCB:存放进程属性信息、程序计数器、程序上下文、...原创 2019-07-26 15:12:57 · 297 阅读 · 0 评论 -
【Linux】高性能服务器编程(二)——I/O复用之select
见上文高性能服务器编程(一)"多进程多线程和进程池线程池“在多进程多线程和进程池和线程池进行多并发操作的时候,进程或线程给一个客户端服务时,大部分是在阻塞等待客户端处理;目标:当客户端发送来数据后,再分配线程或进程为其服务,这一次服务完成则进程或线程进入阻塞态等待下一次数据到达;所分配的进程和线程不仅仅只为一个客户端服务,而是为每一次数据服务。这种方式就称为我们的I/O复用。一、I...原创 2019-07-31 15:30:29 · 346 阅读 · 0 评论 -
【Linux】高性能服务器编程(三)——I/O复用之poll
前篇介绍的是关于I/O复用的方式之一select。见select本文将及诶少第二种方式poll;一、poll1、函数原型Int poll(struct pollfd *fds, int nfds, int timeout);Fds:指定被监听的事件的集合;传的是数组首地址,由用户定义;大小是由nfds来确定;nfds:指定被监听事件集合fds的大小,Timeout:...原创 2019-07-31 17:41:21 · 314 阅读 · 0 评论 -
【Linux】线程基础----概念、区别于进程、线程库的使用等
目录一、了解线程二、线程的实现方式三、线程与进程的区别四、线程库的使用五、多线程的数据共享问题在前面对于进程包括其概念、创建、释放以及进程间通讯的方式等之后,我们再提到比进程还要轻量的一个执行序列就是线程。线程是轻量级的进程,换句话说线程是被进程所包含的,进程里中是存在线程的。一、了解线程 我们从两方面去理解线程:一是线程是轻量级的进...原创 2019-07-26 19:33:54 · 245 阅读 · 0 评论 -
【Linux】高性能服务器编程(四)——I/O复用之epoll
见上文poll一、Epoll——Linux下独有且Epol将用户关注的文件描述符上的事件直接由内核记录一组函数:创建:Int epoll_create(int size);//创建内核事件表; 内核事件表底层是用红黑树构建的; Size只是给内核的一个提示,告诉他需要多大的事件表;操作内核事件表:Int epoll_ctl(int epfd, ...原创 2019-07-31 20:17:07 · 257 阅读 · 0 评论 -
【Linux】地址映射
一、X86体系的发展历史:首先先认识以下的寄存器:DS:数据寄存器CS:代码寄存器SS:栈寄存器IP:偏移寄存器在8086到80186的时候还没有我们的操作系统,他们属于实地址模式: DS <<4 + IP = 物理地址;DS:基地址IP:偏移地址,偏移量也称逻辑地址;16位地址的偏移:2^16=64k; 每个段大小1...原创 2019-08-08 10:05:50 · 469 阅读 · 0 评论 -
【Linux】Linux虚拟地址空间布局以及进程栈和线程栈总结
整篇文章均转自:https://blog.youkuaiyun.com/FreeeLinux/article/details/53782986转载 2019-08-31 11:09:54 · 206 阅读 · 0 评论 -
【Linux】 操作系统的内存管理方案
逻辑地址是在我们编译结束之后就会存在的;逻辑地址是4G虚拟地址空间上的地址;物理地址是真实加载到内存中的地址;一、内存管理的五大需求内存管理是操作系统设计中最难的方面之一。有效的内存管理在多道程序中是至关重要的。那么何为内存管理呢? 我们说细分的任务由操作系统动态完成,这就成为内存管理。简单的来说,就是操作系统为任务来进行内存划分让其执行等。 内...原创 2019-08-03 19:16:36 · 876 阅读 · 0 评论 -
【Linux】简述线程同步以及线程安全
一、线程同步线程之间协同工作,用于多线程访问临界资源,必须按照一定的先后顺序访问执行。线程同步的方式包括线程级的信号量、互斥锁以及条件变量1、线程级的信号量线程级的信号量有两种,一是二进制信号量,二是计数型信号量;当有多个临界资源时,采用计数型信号量。进程间同步的信号量是系统V信号量,线程间同步的信号量是POSIX,这两个信号量不可以交换使用。头文件:#include<sem...原创 2019-07-26 09:49:28 · 281 阅读 · 0 评论 -
【Linux】进程间通讯方式
目录一、了解多进程二、进程间通讯方式1、管道(1)有名管道(也称为命名管道)(2)无名管道2、信号量临界资源、临界区、同步/异步,P/V操作,阻塞/非阻塞,同步/互斥(1)何为信号量?(2)信号量的使用(3)P/V操作:用来操作信号量集3、消息队列(1)消息(2)消息队列(3)消息队列的操作4、共享内存(1)实现机制:内核地址(2...原创 2019-07-24 13:51:51 · 535 阅读 · 0 评论 -
【Linux】主函数和文件操作函数
一、主函数的参数和输出缓冲区1、主函数的原型: Int main(int argc,char *argv[], char *envp[]); argc:参数个数 argv[]:参数列表;argv[0]是启动这个进程的命令; envp[]:环境变量; ...原创 2019-07-24 13:59:27 · 450 阅读 · 0 评论 -
【Linux】文件操作命令
一、Linux操作认知:Linux文件的存储层次结构:倒状树 /bin /proc /usr /home /etcàvimrc bash.bashrc Pas...原创 2019-07-19 20:36:08 · 209 阅读 · 0 评论 -
【Linux】编译器gcc/g++和调试器gdb
一、Linux下的编译器利用gcc或者g++对源码进行编译,这里首先要掌握gcc和g++的基本使用方法。Gcc的基本用法: 预编译:gcc -E *.c -o *.i 生成.i文件 编译: gcc -S *.i 生成.s文件 汇编:gcc -C *.s 生成.o文件即就是中间文件,可重定位的二进制目标文...原创 2019-07-20 11:43:56 · 874 阅读 · 0 评论 -
【Linux】Linux下的进程管理、用户管理以及权限管理命令
目录一、了解进程二、进程管理三、用户管理四、权限管理一、了解进程进程:运行中的程序;执行时,将程序加载到内存上;程序:存储在磁盘上可执行的二进制文件正在运行的程序或进程由程序代码、数据、变量(占着系统内存)、打开的文件(文件描述符)和环境组成。进程是动态的概念:二、进程管理操作系统会为每个进程分配一个唯一的数字编号,称之为进程标识符或PID。它通常是...原创 2019-07-20 21:00:25 · 513 阅读 · 0 评论 -
【Linux】高性能服务器编程(一)——多进程/多线程和进程池/线程池
如何实现同一时刻能与多个客户端同时交互?我们希望是服务器与多个客户端交互以并发进行处理。在我们高性能服务器编程下有这样几种方法,一是多进程/多线程,二是进程池/线程池,三是I/O复用。目录一、多进程/多线程(一)多进程(二)多线程:启动多个线程,每个线程执行和一个客户端交互的程序;(三)两者的选择和比较1、多进程和多线程的选择2、多进程/多线程实现并发的缺陷:二、进...原创 2019-07-29 20:21:54 · 1231 阅读 · 0 评论 -
【Linux】多进程编程——fork、僵死进程、孤儿进程、信号和进程替换
目录一、进程创建(1)fork函数(2)写时拷贝技术(3)frok之后谁先运行?(4)fork创建进程的流程,其内核实现原理(5)fork和vfork的区别(6)进程调度(后期会有一篇来详细介绍)二、僵死进程、孤儿进程和守护进程(1)僵死进程(2)孤儿进程(3)守护进程三、信号 在进程PCB中记录(1)信号概念(2)信号的响应方式(3...原创 2019-07-31 08:56:43 · 693 阅读 · 0 评论 -
【Linux】fork函数详解以及与vfork的区别
fork()函数是用来通过一个现有的进程创建一个新进程。一、简述fork()函数1、函数原型:pid_t fork(void);2、返回值:0 返回到子进程中 >0 给父进程返回新子进程的进程ID; -1 出错3、两个问题:为什么子进程中返回0?为什么要向父进程中返回新子进程的进程ID?...原创 2019-08-31 19:02:56 · 490 阅读 · 0 评论