Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux内核学习笔记:进程

Linux内核学习笔记:进程

进程是多道程序设计的操作系统的基本概念。进程是程序运行的实体。他是描述程序已经执行到了何种程度的数据结构的汇集,也是操作系统分配系统资源(cpu时间,内存,磁盘)的实例。一. 进程描述符进程是比较抽象的概念,linux下描述进程的数据结构为进程描述符。进程描述符代表了一个进程所有的数据结构,文件,以及运行上下文。进程描述符是这么的复杂,在linux中大约占用1.7K个字节,完全读懂他还是有一定难度的。但是总的划分为几部分:(1)thread_info 指针...
Linux内核学习笔记:中断与异常

Linux内核学习笔记:中断与异常

中断分为同步中断与异步中断。同步中断也叫异常是CPU执行特定的指令产生的事件,他打断CPU正常执行的指令而执行设定好的指令。异步中断也叫中断是由CPU外部中断信号产生的,每个CPU都有一个或多个中断引脚,当引脚上出现中断中断信号的时候,CPU就会停止执行当前的指令而去执行特定的代码。在linux中,中断处理至关重要,它影响着整个系统的性能。中断程序运行时,当前进程Current宏无效,所以中断程序是一个单独的内核控制路径,不能够进行进程切换。相关阅读:Li...
Linux内核学习笔记:中断的下半部分

Linux内核学习笔记:中断的下半部分

因为中断的处理过程中,同种类型的中断是被禁止的。并且中断处理应该越短越好,这样才能减少丢失的中断。所以linux将中断处理分为两部分。关键紧急的事情在中断上下文处理,不紧急或者花费时间较多的事情在所谓的下半部分中执行。中断的下半部分是一种内核机制,它运行的时候允许中断的产生,可以分为软中断与工作队列。软中断又包含:tasklet 与内核定时器。软中断是一种特殊的内核控制路径,它不属于任何进程,所以不能被抢占,不可以睡眠。而工作队列是一种内核线程,有工作的时...
Android实现控件拖动【源码】

Android实现控件拖动【源码】

这个也是从网上得到的代码,例子比较简单,但是如果有需要此功能的,这个例子可以提供很多提示,首先,给个截图这个是拖动以后的效果,一个imageview和一个button控件,提供两份代码下载吧,一份是只有一个Button的,另一份就是像上图,就是多了一个imagview!先看下代码吧,比较简单:publicclassDraftTestextendsActivityimplementsOnTouchListener{/**Calledwhentheactivi...
Linux 下使用命令行开发 Android 应用程序

Linux 下使用命令行开发 Android 应用程序

本文将讲述如何在Linux平台下使用命令行开发Android应用程序,以及如何创建PhoneGap的android项目,如果你对这此感兴趣,请就继续阅读本文。首先,让我们安装Android SDK(我假设你已经安装了JDK和Ant)。你可以从在这里安装SDK到你的开发平台上。由于我使用的是Ubuntu,所以我下载Linux平台下的SDK到我的主目录。解压缩下载文件,并设置加载可执行文件的路径:1$ tar xvf android-sdk_r16-linux...
Java并行编程–从并行任务集获取反馈

Java并行编程–从并行任务集获取反馈

在并行任务启动后,强制性地从并行任务得到反馈。假想有一个程序,可以发送批邮件,还使用了多线程机制。你想知道有多少邮件成功发送吗?你想知道在实际发送过程期间,这个批处理工作的实时进展吗?要实现多线程的这种反馈,我们可以使用Callable接口。此接口的工作方式基本上与Runnable相同,但是执行方法(call())会返回一个值,该值反映了执行计算的结果。packagecom.ricardozuasti;importjava.util.concurrent....
C语言中的信号处理

C语言中的信号处理

程序经常会异常终止(比如段错误),或者认为终止(比如按下了CTRL+C),这时可能一些动态申请的资源就得不到释放,或者程序有些其他需要处理的操作(如保存)。C语言的标准库<signal.h>中提供了一些用于处理处理程序运行期间的异常的功能,如处理来源于外部的中断信号或程序执行期间出现的错误等事件。#include<signal.h>void(*signal(intsig,void(*handler)(int)))(int);sign...
C++ - 网络编程模型 - Linux EPOLL

C++ - 网络编程模型 - Linux EPOLL

1.简介 Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。epoll是什么?按照man手册的说法是为处理大批量句柄而作了改进的poll。要使用epoll只需要以下的三个系统函数调用: epoll_create(2),epoll_ctl(2),epoll_wait(2)。2.select模型的缺陷 (1)在Linux内核中,select所用...
Android中的Audio播放:控制Audio输出通道切换

Android中的Audio播放:控制Audio输出通道切换

Audio 输出通道有很多,Speaker、headset、bluetooth A2DP等。通话或播放音乐等使用Audio输出过程中,可能发生Audio输出通道的切换。比如,插入有线耳机播放音乐时,声音是从耳机发出的;而此时拔出耳机,Audio输出通道会发生切换。如果音乐播放器不做处理,Audio输出是被切换到扬声器的,声音直接从Speaker发出。我们在编写程序时,要捕获并按照需求来处理这样的事,本文就是讲解如何处理的。Android中可以通过andro...
Android中的Audio播放:竞争Audio之Audio Focus的应用

Android中的Audio播放:竞争Audio之Audio Focus的应用

Android是多任务系统,Audio系统是竞争资源。Android2.2之前,没有内建的机制来解决多个程序竞争Audio的问题,2.2引入了称作AudioFocus的机制来管理对Audio资源的竞争的管理与协调。本文主要讲解AudioFocus的使用。按照AudioFocus的机制,在使用AudioStream之前,需要申请AudioFocus,在获得AudioFocus之后才可以使用相应的AudioStream;如果有别的程序竞争你正在使用的Audio...
iOS中正确处理dealloc方法

iOS中正确处理dealloc方法

当我们继承类的时候,子类实例在构造的时候顺序是先高用父类的构造方法,再调用子类的构造方法。在c/c++是如此,在objc中也是如此,在iOS开发中,我们会看到这样的代码:-(void)init{self=[superinit];if(self){//init }returnself;}看到没,初始化的时候都是先调用父类的初始化方法,为什么呢,因为父类更老,当然是先出生了。,同样的情况可以在viewDidLoad中看到。 而销毁的时候则是相反的顺序,先销毁子...
iOS自定义Status Bar

iOS自定义Status Bar

关注自定义status bar已有一段时间了,apple文档HUM却说不能自定义,而我在appstore上却看到了一些应用,却自定义了。不知道是否会被拒。网上有一个开源的做得比较好了。地址:https://github.com/myell0w/MTStatusBarOverlay它的说明文档也比较清楚,用法也简单。它有两种detailView模式,一种是textDetail,一种是historyDetail,比如我设置的history detail mod...
Java中的字符串(String)的秘密

Java中的字符串(String)的秘密

Java中的"=="的作用是用来判断两个数据是否相等,无论是8种原生数据类型还是引用类型,引用类型相等也就是指两个引用指向同一个对象,Object类中的equals()方法仅仅是反回(this == Object),所以Object的equals()方法仅仅是判断对象是不是同一个对象,而对于那些继承了Object类而又重写了equals()方法的类,比如说String类,那就要依据具体的equals()方法的实现来判断了.String类特性与创建过程1 S...
一步一步走进Linux HOOK API

一步一步走进Linux HOOK API

最近我查阅很多参考资料.发现对于讲述Linux HOOK API的资料是很少,让我们这些新人难以去走进Linux HOOK大门.在这里我将全面的讲述Linux HOOK API的全部实现过程,这个过程中我也遇到很多坎坷,所以在这么写下这份教程.让大家都来进入HOOK的神秘世界.不要认为HOOK API是windows的专利(PS.其实我以前就是这么认为的.哈哈....),其实在Linux中也有HOOK API这样的技术,只是实现起来相对比较麻烦,首先今天主...
<< 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 >>