Welcome 微信登录

首页 / 操作系统 / Linux

Linux netlink机制-实现系统调用

Linux netlink机制-实现系统调用

《Linux的配置接口-netlink原理和设计》展示了netlink如何完成kill系统调用,然而这个例子不足以说明netlink的强大,如果我不实现一个netlink式的系统调用,很多人是不会信服的,本文就展示一个netlink实现的read调用。在展示代码之前,我还是要不厌其烦的说一下netlink的优点,总的来说,netlink有以下三个优点:1.netlink便于提供统一的入口,它的作用类似于socketcall。2.netlink仅提供链路,和...
Linux etlink机制总结

Linux etlink机制总结

1.为何我认为netlink要比procfs和sysfs更好?答曰:基于文件系统的方案好处在于文件系统是“设置即所见”,缺点也正在于这种所见即所得的特性 ,由于文件系统的管理目前是基于用户的,就算为sysfs/procfs设置了了内核访问策略,这种策略也会复杂的让人望而却步!管理员A希望为内核增加1000个配置,她使用了sysfs,管理员B希望在sysfs中查一个信息,他ls了一下,这要比xxx --help好用很多,然而“我的天啊,1000多个个文件,哪...
详解Linux下auto工具制作Makefile源码包(制作篇)

详解Linux下auto工具制作Makefile源码包(制作篇)

一、 概述为了更好的制作configure与Makefile,我先把制作流程给写在这里,好让大伙都有个心理准备。这里只说流程,不做解释。(附图供参考)1、autosan命令生成configure.scan文件,这只是个模板,我们重新编辑这个文件,并把它保存为configure.in文件。2、aclocal命令生成aclocal.m4文件。3、autoheader命令生成config.h.in。前提是aclocal.m4和configure.in必须生成。4...
详解Linux下auto工具制作Makefile源码包(工具安装篇)

详解Linux下auto工具制作Makefile源码包(工具安装篇)

一、引子最近学习安装源码包,然后公司开发也需要制作源码包,所以就稍微学习了一下automake与autoconf制作configure以及Makefile。感觉作为一个linux开发人员,不知道制作源码包,真是妄为linux人呐!学习的同时,就顺便整理了一下网上的资料,并记录下来,供以后查阅,也为方便初学者。题目说的有点大了,其实只是笔记而已,只供菜鸟使用。咱们都知道make好用,但是大型的软件make是很麻烦的,为了解决这个问题,先人们就发明了autoc...
Android线程模型和AsyncTask

Android线程模型和AsyncTask

Android 的线程模型:当一个 android 的应用运行后, 就会有一个 UI 的 main 线程启动 , 这是一个非常重要的线程,它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与 android 控件 交互的线程。比如,当你在屏幕上的 EditText 上输入文字, UI 线程会把这个事件分发给刚输入文字的 EditText ,紧接会向事件队列发送一个更新 ( invalidate )请求。 UI 线程会把这个请求移出事件队列并...
Android Activity生命周期以及LoCat的使用

Android Activity生命周期以及LoCat的使用

Activity主要有三个状态:当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的Activity。当它失去焦点但仍然对用户可见时,它处于暂停状态。即:在它之上有另外一个Activity。这个Activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的Activity仍对用户可见。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并连接至窗口管理器),但当系统处于极低内存的情况下,仍然可以杀死这个Act...
Java中HashMap的实现原理

Java中HashMap的实现原理

问:Java 的 HashMap是怎么实现的?答:通过键值对的形式保存需要存储的值。很显然这个答案不是面试官要的,这个答案也引起了我的回忆。曾经我在面试时也被几次问道过这个问题,我当时也是类似的回答。所以今天抽空大致研究了下HashMap的源码。HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。1.首先HashMap里面...
Android 面试题分享

Android 面试题分享

DVM 指dalivk 的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例。而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念。1、sim卡的EF 文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本 身可以有自己的操作系统,EF就是作存储并和手机通讯用的嵌入式操作系统内存管理有哪几种, 各有何特性页式,段式,段页,用到了MMU,虚拟空间等技术2、什么是嵌入式实...
Android 中性能测试 Monkey的用法

Android 中性能测试 Monkey的用法

简介Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:· 基本配置选项,如设置尝试的事件数量。· 运行约束选项,如设置只对单独的一个包进行测试。· 事件类型和频率。· 调试选项。在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:· 如果限定了Monkey...
Android 中音频视频开发

Android 中音频视频开发

视频录制功能正在走来。在Android SDK中有与之相关的类:android.media.MediaRecorder当然,因为模拟器上没有提供必要的硬件设施,所以在学习过程中并不能实现。Media能够播放来自任何地方的文件:一个实际的文件资源、系统中的一个文件或者是一个可用的网络链接。下面介绍如何在自己应用程序中播放一个可用的media音频:1、将文件放到你的工程的res/raw文件夹中,在这个文件夹中,Eclipse插件将会找到它,同时,会将这个资源与...
S3C2410的Linux下DMA驱动程序开发

S3C2410的Linux下DMA驱动程序开发

网上介绍Linux下的一般驱动程序开发示例浩如烟海,或是因为简单,关于DMA驱动的介绍却寥寥无几;近期因工作需要,花了几日时间开发了某设备在S3C2410处理器Linux下DMA通信的驱动程序,有感于刚接手时无资料借鉴的茫然,故写点介绍,期待能给有DMA开发任务的网友们一点帮助。本文将包括如下内容:DMA驱动主要函数功能 驱动中关键技术分析 具体的DMA实例分析 申明:本DMA驱动开发介绍仅适合S3C2410处理器类型,分析源码为韩国MIZI研究中心维护的...
G++ 编译 C++ 方法以及 Linux 编程环境

G++ 编译 C++ 方法以及 Linux 编程环境

很是简单,今天用到,暂做标记,以供初学查阅://编译生成可执行文件g++ -o hello hello.cpp//运行./helloGCC编译命令gcc -v 查看版本查找g++的命令帮助 键入 info g++,会显示出gcc的帮助信息,g++大部分参数和gcc命令相同选项 解释-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,例如 asm 或 typeof 关键词。-c -o只编译并生成目标文件。-DMACRO 以...
使用C++实现JNI接口需要注意的事项

使用C++实现JNI接口需要注意的事项

Android NDK带的jni例子都是使用C定义JNI接口,但是在项目中,因为Native代码是用C++编写的,所以我就使用C++定义JNI接口。没有想到,问题来了,现将问题总结如下:1、JNIEnv *env参数的使用所有JNI接口的第一个参数是JNIEnv *env, 在C中,使用方法是(*env)->NewStringUTF(env, "Hello from JNI!");但在C++中,其调用方法是env->NewStringUTF("...
<< 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 >>