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

首页 / 操作系统 / Linux

Linux0.11内核--汇编和C语言混合编程之参数传递

Linux0.11内核--汇编和C语言混合编程之参数传递

汇编语言中也需要通过某些途径来使用操作系统提供的服务,也就是系统调用;系统调用就是通过与操作系统内核通信来完成;系统调用会把用户态程序的调用转换成对系统内核服务的调用;Linux平台下有两种方式来使用系统调用:一种是利用封装后的C库(libc),另一种是通过汇编直接调用;其中,通过汇编语言来直接调用系统调用,是最高效地使用Linux内核服务的方法,因为最终生成的程序不需要与任何库进行连接,而是直接与内核通信;《Linux 0.11内核完全注释(PDF+源码...
Linux0.11内核--内核态与用户态

Linux0.11内核--内核态与用户态

内核态与用户态intel x86 架构的 CPU 分 Ring0-Ring3 三种级别的运行模式,Ring0级别最高,Ring3 最低。针对不同的 级别,有很多的限制,比如说传统的 in ,out 指令,就是端口的输入输出指令,在 Ring0 级下是可以用的,但在 Ring3 级下就不能用,你用就产生陷井,告诉你出错了,当然限制还有很多了,不只是这一点。操作系统下是利用这个特点,当操作系统自己的代码运行时, CPU 就切成 Ring0 级,当用户的程序运行...
Linux设备驱动之内存映射

Linux设备驱动之内存映射

1. 内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。2. 映射的种类把同一个物理地址映射为虚拟地址有两种方法,第一种是mmap()函数将物理地址映射到进程...
Android用MediaRecorder实现MPEG4视频监控

Android用MediaRecorder实现MPEG4视频监控

花了整整一个星期,终于把技术难点给突破了,貌似网上对这个讨论的较少。主要需要实现的功能是在Android手机上实时采集视频,并在远程比如PC机上实时显示出来,也就是以android手机作为监控摄像头。一开始查到的是smartcam的一个开源项目,看了下源代码,发现其实现原理是利用android 的camera图像的预采集,通过实现PreviewCallback类的回调函数onPreviewFrame,获得camera采集的原始图像数据之后,压成jpeg格式...
Android中以JAR形式封装控件 或者类库

Android中以JAR形式封装控件 或者类库

在开发过程中经常需要将代码封装后交付使用,在Android中也是如此下面是封装的步骤创建一个没有Activity的Android的工程 1将res中的资源全部删除 2删除AndroidManifest.xml中资源的引用 类似这样的代码android:icon="@drawable/icon" android:label="@string/app_name" 其实AndroidManifest在我们发布jar的时候并不发布,之所以这样做不过是为了编译时好看...
Android中xml设置Animation动画效果详解

Android中xml设置Animation动画效果详解

在Android中,Animation动画效果的实现可以通过两种方式进行实现,一种是tweened animation渐变动画,另一种是frame by frame animation画面转换动画。tweened animation渐变动画有以下两种类型:1.alpha 渐变透明度动画效果2.scale 渐变尺寸伸缩动画效果frame by frame animation画面转换动画有以下两种类型:1.translate 画面转换位置移动动画效果2.rot...
Android使用socket使底层和framework通信

Android使用socket使底层和framework通信

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层呢?Android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自由通信,具体实现如下:android中使用jni对linux中的socket进行了封装。使用起来十分的方便。 由于android是基于linux的,所以linux的代码会在...
Linux Shell脚本_备份文件的批量删除 2.0

Linux Shell脚本_备份文件的批量删除 2.0

这次是整合了开发时改正的多个版本,比较Linux Shell脚本_备份文件的批量删除 1.0有了很大的改善,不仅可以删除备份文件,还可以更新保存备份文件名的文本文件首先是back.recovery的内容 这是个文本文件,内容是所有备份文件的文件路径以及文件名这是对应的备份文件现在我们就要保存4.1和3.31所有的文件,其余的全部删除,看代码: 首先是删除back.recovery中过期的文本#!/bin/sh BACK="back。recovery"#最后...
Linux Shell脚本_备份文件的批量删除 1.0

Linux Shell脚本_备份文件的批量删除 1.0

最近师傅要求写一个Linux Shell脚本,这个以前从来没接触过,自己就在周末研究了一天,虽然代码现在看起来简单,但是毕竟第一次接触,花了好多时间,好了,开始正题:这个脚本的功能主要是删除没有用的备份文件,条件是保留最新两天的文件,其他的全部删除比如说有1号到10号的文件,那么就保留9号,10号两天的文件,其他的全部删除看代码:#!/bin/sh echo"begindeleting" #进入备份文件夹下 cdback_up/ #取得最新文件及其时...
Linux Shell脚本_文件的批量删除_3.0_最终版

Linux Shell脚本_文件的批量删除_3.0_最终版

接上一版本,其实要删除文件,只需要从文本中提取文件名即可,这样可以省去大量的代码相关阅读在:Linux Shell脚本_备份文件的批量删除1.0Linux Shell脚本_备份文件的批量删除2.0而且现在的要求是把最新两个时间点的最新文件,也就是只有两个文件保存这样,就简单了很多看代码#!/bin/sh #justatest BACK="back.recovery"#最后一行内容 lastline=`tail-n1$BACK` echo"lastestfi...
Linux下indent修改C程序格式

Linux下indent修改C程序格式

好多人在linux下面写C程序的时候,对代码的排版做的很差,如果你确实不想在写程序的时候太注意代码风格,或者你是修改其他人的C程序,而他人的C程序代码风格很差劲,看的头疼,建议你用indent工具,indent主要是用来给C代码进行自动格式转换的,他有好多参数,现在C代码格式用的最广泛的应该是GNU格式和linux内核源代码格式,你写的程序应该遵循这两种代码风范。如果你不想在参数上花太多时间来研究,你也可以在你的linux下的源代码里面,也就是/usr/s...
Linux信号简介和信号处理相关函数

Linux信号简介和信号处理相关函数

1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出 3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错...
<< 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 >>