Linux
文章平均质量分 71
向浅
这个作者很懒,什么都没留下…
展开
-
Linux 线程间关系
先说结论再做论证: All of the threads in a process are peers: any thread can join with any other thread in the process. --- POSIX文档(man pthread_join NOTES) 也就是说,在linux中所有线程都是并列的关系,一个线程的结束&退出不原创 2015-04-16 19:30:01 · 1217 阅读 · 0 评论 -
Linux内核驱动(四):1、进程地址空间
一、内核内存分配 1、与应用程序中的malloc函数相对,在Linux内核中,通常使用kmalloc来动态分配内存 (1)原型: void * kmalloc(size_t size,int flags); (2)参数: i、si原创 2013-05-10 14:40:18 · 1045 阅读 · 0 评论 -
Linux基础(二):计算机启动流程
讲到计算机的启动流程,我们要先明白这么一件事,内存是挥发性存储器件,所以在计算机上电之前内存中是什么都不存在的,所以从内存中的程序和数据从无到有,这需要一个过程,就是我们要讲的计算机启动流程。知识预热:(以下数据来自于百度百科)1、BIOS、CMOS (1)BIOS是一个写入到硬件上的一个软件程序,BIOS的功能主要分为3部分:自检和初始化、程序服务处理、硬件中断处理原创 2013-04-04 10:25:35 · 900 阅读 · 0 评论 -
Linux内核驱动(一):1、Linux体系结构和Linux源代码的目录结构
一、Linux体系结构 1、 当被问到Linux体系结构(就是Linux系统是怎么构成的)时,我们可以参照上图这么回答: 从大的方面讲,Linux体系结构可以分为两块:(1)用户空间(2)内核空间原创 2013-05-08 10:18:16 · 1457 阅读 · 0 评论 -
Linux内核代码架构图
转载 2013-05-08 08:57:13 · 1417 阅读 · 0 评论 -
Shell 基础学习
1、单引号、双引号、反引号(1)双引号,引号内的内容部分“转义”,如:$VAR,会先转义替换后再执行(2)单引号,屏蔽所有符号的“转义”,(3)反引号,将引号中的内容作为命令来执行例子:#!/bin/bash#单引号,双引号,反引号num=3#(1) 单引号echo 'this is single quote'echo '$num'#(2)原创 2013-12-26 18:57:18 · 808 阅读 · 0 评论 -
opendir
dr-x------ 2 root root 0 11月 6 17:10 .dr-xr-xr-x 9 root root 0 11月 6 17:10 ..lrwx------ 1 root root 64 11月 6 17:11 0 -> /dev/pts/5lrwx------ 1 root root 64 11月 6 17:11 1 -> /dev/pts/5lrw原创 2013-11-06 17:12:15 · 838 阅读 · 0 评论 -
Linux 动态库剖析
原文地址:https://www.ibm.com/developerworks/cn/linux/l-dynamic-libraries/库用于将相似函数打包在一个单元中。然后这些单元就可为其他开发人员所共享,并因此有了模块化编程这种说法 — 即,从模块中构建程序。Linux 支持两种类型的库,每一种库都有各自的优缺点。静态库包含在编译时静态绑定到一个程序的函数。动态库则不同,它是在加转载 2013-10-22 10:25:04 · 744 阅读 · 0 评论 -
Linux多线程开发(二):使用C++封装线程同步操作
互斥量的作用是用来多线程之间互斥排它的访问共享资源(比如一个读一个写等等)多线程操作还有一个重要问题,不用说你也猜的到了:就是线程同步问题线程同步的概念就是:多个线程之间相互协作完成某项任务就是说线程A需要先执行某项操作,执行完后,线程B才能执行。在window中,有个叫做“内核事件”的对象,线程B可以通过调用 WaitForSIngleObject 等函数,使自己进入阻塞状态以等原创 2013-10-18 22:54:26 · 1973 阅读 · 0 评论 -
Linux多线程开发(一):用C++封装线程的互斥操作
学过操作系统的人,估计都知道互斥量是个何方神圣,我这里也就不再狗尾续貂再做解释了好,先看Linux下关于互斥量的一些API(所谓封装,说白了也就是封装这些API,让这些API更简单好用罢了)一、Linux下互斥量的使用1、定义一个互斥量pthread_mutex_t myMutex;2、初始化互斥量pthread_mutex_init( &myMutex, 0); //原创 2013-10-18 22:06:33 · 1441 阅读 · 0 评论 -
Linux API -- open 设置操作属性O_APPEND时的那点小事
一、openint open (const char * pathname , int flags, ..../* 只有当你要创建文件时,才需要填写这第3个参数,用来指定文件权限 */) ;问题1、我们都知道,open 的flags参数 有个文件操作属性叫 : O_APPEND;现在提出问题: 如果我指定了O_APPEND属性, 那么我第一次读文件读写位置时,读写位置的值是多少?原创 2013-10-04 15:59:07 · 5270 阅读 · 1 评论 -
Linux中的虚拟地址、物理地址和内存管理方式(二)
我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存。C 编译出来的可执行文件几乎都会用到libc的库,假如没有这个共享的技术,每个可执行文件都要占一份libc库的内存,这将是极大的内存浪费。 可是一直没搞明白,怎么样才能证明共享库里面函数的地址在物理内存层面是同一份。其实,这个问题的本质是程序里面的逻辑地址和物理内存地址之间是怎样映射的,说的再赤裸裸一点,就是我给你个逻转载 2013-05-18 15:12:44 · 2707 阅读 · 0 评论 -
Linux内核驱动(四):2、内核地址空间
一、内核空间 内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。二、高端内存:物理内存地址超过896M以上的内存,我们就称之为高端内存三、内核空间分布图(1)内核空间的地址范围位于虚拟地址的 3G-4G位置处,大小为1G。(2)直接映射区(Direc Memory Regiont):之所以称之为直接映射区是因为,该区域的线性地址和物理地原创 2013-05-10 15:36:55 · 1651 阅读 · 0 评论 -
Linux基础(四):硬盘分区编号规则
在MBR(主引导记录)的第446bytes~509bytes处存储的是DPT(硬盘分区表,Disk partition table),这个分区表中只能记录4个表项,且 (1)它能记录的只能是主分区和扩展分区两种类型的表项。 (2)这4个记录可以是4个主分区,0个扩展分区;也可以是3个主分区,1个扩展分区;我想说的是,在MBR中的DPT中,主分区可以有1~4个,而扩展原创 2013-04-05 10:46:46 · 3419 阅读 · 0 评论 -
Linux基础(三):多重引导
知识预热:(知识参考鸟哥的私房菜) 先来回顾下MBR的作用:MBR中内含主引导程序,他可以根据分区表把操作系统的内核镜像从硬盘的指定位置加载到内存中来,总结,主引导程序提供的功能有: (1)提供菜单,为用户提供不同的启动项目 (2)加载核心文件,根据选中的启动项目,进入指定的程序区,启动操作系统 (3)把控制权转移给其他的loader==========原创 2013-04-04 16:23:08 · 1467 阅读 · 0 评论 -
V4L2 的API
这段时间在忙毕业设计,正好需要用到v4l2,就整理了下它的API,希望对大家有些帮助。小弟不才,但希望能够把这篇文章作为一篇十分好用的v4l2基础教程,留给以后学习v4l2的朋友。能力有限,错误的地方还希望大家及时留言更正,我会第一时间更新。先感谢所有认识的和不认识的朋友的支持!PS. 不建议从头来看这篇文章,打开它放到一边,用到某个结构体时就回来用ctrl+f 来找。这篇文章主要是介绍V原创 2013-05-17 23:05:30 · 2063 阅读 · 0 评论 -
Linux中的虚拟地址、物理地址和内存管理方式(一)
一、简单介绍下早期的内存实现:(可略过) 1、在早期的计算机中,运行一个程序的特点是: (1)会把这些程序全都装入内存, (2)程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。 2、在早起的内存实现方式中出现的问题: (1)当计算 机同时运行多个程序时,原创 2013-05-18 15:06:13 · 7052 阅读 · 0 评论