![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
独角鲸
这个作者很懒,什么都没留下…
展开
-
进程和线程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,转载 2011-05-12 14:24:00 · 800 阅读 · 0 评论 -
从可执行命令 确定 RPM软件包
rpm -qf /sbin/ifconfig net-tools-1.60-110.el6_2.i686确定出ifconfig 来自net-tools-1.60 软件包中。原创 2013-07-11 14:37:25 · 473 阅读 · 0 评论 -
Linux下动态共享库加载时的搜索路径详解
对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似“error while loading shared libraries”这样的错误,这是典型的因为需要的动态库不在动态链接器ld.so的搜索路径设置当中导致的。具体说来,动态链接器ld.so按照下面的顺序来搜索需要的动态共享库: 1.ELF可执行文件中动态段中DT_RPATH所指定的路径。这实际上是通过一种不算很常用,却比较实用的转载 2013-01-29 15:37:12 · 559 阅读 · 0 评论 -
U-boot 启动内核过程
U-Boot的命令为用户提供了交互功能,并且已经实现了几十个常用的命令。如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在头文件中定义#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \cmd_tbl_t __u_boot_cmd_##name Struct_转载 2012-09-10 15:44:35 · 1418 阅读 · 0 评论 -
tcpdump for udp
tcpdump udp and src net 192.168.0.0/24 and dst host 192.168.0.1 -w log.cap此指令用来抓取从192.168.0.0网段到192.168.0.1主机的所有udp包,然后存入log.cap文件中,此包可以用wireshark打开,在windows系统下可以用notepadd++ 或者UltraEdit打开转载 2012-08-29 09:24:02 · 579 阅读 · 0 评论 -
Linux 信号机制分析
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念 本节先介绍信号的一些基本概念,然后给转载 2012-09-05 12:13:03 · 516 阅读 · 0 评论 -
内核中completion的实现
内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束。这个活动可能是,创建一个新的内核线程或者新的用户空间进程、对一个已有进程的某个请求,或者某种类型的硬件动作,等等。在这种情况下,我们可以使用信号量来同步这两个任务。然而,内核中提供了另外一种机制——completion接口。Completion是一种轻量级的机制,他允许一个线程告诉另一个线程某个工作已经完成。转载 2012-08-14 21:21:54 · 650 阅读 · 0 评论 -
put_user和get_user的使用
1. put_userNameput_user -- Write a simple value into user space. Synopsisput_user ( x, ptr);Argumentsx Value to copy to user space. ptr Destination address,转载 2012-08-15 10:57:06 · 6134 阅读 · 0 评论 -
Davinci VFPE的框架分析
dm6446是基于Davinci架构设计的多媒体处理器。在这里我们分析的Linux源码是montavista的2.6.10的版本,该源码中使用的视频驱动架构为V4L2的框架。对这个框架而言,网上已经存在大量的分析,但涉及的内容主要都是框架层的封装以及相关应用层的解析,底层核心的内容很少会涉及。在这里,我将结合DM6446的视频处理前端VPFE中的CCDC模块,完成视频采集的驱动核心内容的解析,核心转载 2012-08-15 09:38:08 · 1649 阅读 · 0 评论 -
dma_alloc_coherent() 的实现
2007-08-21 12:29 dma_alloc_coherent() -- 给DMA池分配物理页poop_alloc_page() --> dma_alloc_coherent()dma_alloc_coherent() -- 获取物理页,并将该物理页的总线地址保存于dma_handle,返回该物理页的虚拟地址void *dma_alloc_coherent(st转载 2012-08-14 21:24:35 · 1995 阅读 · 0 评论 -
valgrind armv4
1. at first, modify configure file. armv7* ---> armv7*|arm原创 2011-10-23 14:27:47 · 668 阅读 · 0 评论 -
关闭selinux 的方法
1. 关闭selinux 的方法 /etc/sysconfig/selinux : selinux =* -- > selinux= disable2.关闭selinux 不需要重启 :setenforce 0原创 2011-10-23 16:54:44 · 652 阅读 · 0 评论 -
vmalloc 和 kmalloc 的详解
琢磨了很久也参考了很多资料,发现很多都说的有点含糊,在这里先介绍一下Linux中对实际内存的一个分配,Linux内核将实际内存(注意是实际内存,这里暂且考虑不大于1G的内存)分为三个区段:可用于DMA的内存、常规内存以及高端内存。这里只介绍一下高端内存与地段内存。翻译 2011-08-16 21:02:50 · 1097 阅读 · 0 评论 -
中断系统简介
中断系统简介 一、什么是中断:当CPU正在执行某程序时,由于外界事件的需要向CPU发出申请,CPU暂停现行的执行而转去处理临时发生的事件,处理完后再返回到被中断程序的断点处,继续往下执行,这个过程称为中断。 打个比方,中断就是处理器的一种工作状态的描述,因为处理器与很多外部电路相连并负责处理外部电路送来的各种信息(处在协同工作状态),如果遇有(外部电路送来)“急件”需要优先处理,处理器则须先停下“自己手头的工作”先去处理“急件”,这种先停下“自己手头的工作”去处理“急件”的过程,即转载 2011-05-12 14:38:00 · 2031 阅读 · 0 评论 -
内核抢占和低延迟
2.8.3 内核抢占和低延迟相关工作(2)如果可以抢占,则需要执行下列步骤:kernel/sched.c do { add_preempt_count(PREEMPT_ACTIVE); schedule(); sub_preempt_count(PREEMPT_ACTIVE); /* * 再转载 2013-11-12 11:29:58 · 2702 阅读 · 1 评论