Welcome 微信登录

首页 / 操作系统 / Linux

深入学习Linux系统及内核编程风格

深入学习Linux系统及内核编程风格

这篇文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守的,我也建议其他部分的代码也能遵守它。请至少给这里的观点一些考虑。 首先,我建议你打印一份GNU代码风格,不是去读它,而是把它烧了,这是个很不错的姿态。 下面就是Linux内核编程风格: 第一章:缩进 制表符(tabs)占8个字符,所以缩进也是8个字符。有些异端运动想使用4个字符(甚至是2个字符)的缩...
Linux内核分析方法详解

Linux内核分析方法详解

想入手分析Linux源代码的Linuxer,我想这篇文章可能对你会有些帮助的。我也在分析内存管理部分,欢迎交流,共同进步。[力量虽少,但希望早日实现在Linux内核里有一行代码是我们中国人写的]Linux的最大的好处之一就是它的源码公开。同时,公开的核心源码也吸引着无数的电脑爱好者和程序员;他们把解读和分析Linux的核心源码作为自己的最大兴趣,把修改Linux源码和改造Linux系统作为自己对计算机技术追求的最大目标。 Linux内核源码是很具吸引力的,...
Java脚本语言评测

Java脚本语言评测

Java脚本语言评测一、脚本解释器概述 在一些Java应用的需求中,集成某种脚本语言的支持能够带来很大的方便。例如,用户可能想要编写脚本程序驱动应用、扩展应用,或为了简化操作而编写循环和其他流程控制逻辑。在这些情况下,一种理想的解决方案是在Java应用中提供对脚本语言解释器的支持,让脚本语言解释器读取用户编写的脚本并在应用提供的类上运行这些脚本。为了实现这个目标,你可以在Java应用所运行的JVM中,运行一个基于Java的脚本语言解释器。 一些支持库,例如...
如何用JAVA程序取得IP地址

如何用JAVA程序取得IP地址

在TCP/IP 互联网时,经常会需要查询自己主机的IP地址和www服务器的IP地址。虽然,我们可以使用IPCONFIG 和PING 进行IP地址查询,但是如果在应用程序或APPLET中使用此命令回破坏我们应用程序界面。 为此使用JAVA 做了一个简单的程序可以直接查询自己主机的IP地址和www服务器的IP地址。 // 文件名为 NetTool.java (注意:在JAVA 语言中大小写敏感)import java.net.*;public class Ne...
向linux嵌入式系统移植实时设备驱动程序

向linux嵌入式系统移植实时设备驱动程序

向linux嵌入式系统移植实时设备驱动程序Linux暴风雨般地占领了嵌入式系统市场。根据工业分析家分析,大约1/3到1/2的新的32位和64位嵌入式系统设计采用了Linux。嵌入式 Linux 已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设,并在以下几方面具备巨大的跨越式发展前景:(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB)和手持设备/无线设备,特别是数字移动电话。 新的嵌入式Linux应用不会象掌握在...
利用compiz实现linux桌面环境3D效果

利用compiz实现linux桌面环境3D效果

Compiz是什么?Compiz 使众多视效成为可能,使 Linux 桌面更易用、强大、直观、对有特殊要求的用户更易于操作。Compiz 结合了窗口管理器和复合管理器,使用 OpenGL 进行渲染。一个“窗口管理器”允许对屏幕上显示的多程序和对话窗口的操纵控制。一个“复合管理器”允许窗口和其他图形结合创建复合图像。Compiz 通过这两个功能实现眩目特效。Compiz 目前仅与 Xgl 结合运行。参看一般的安装说明。Compiz 插件像 window-de...
Linux下的下载程序

Linux下的下载程序

有许多网络文件下载工具可以在Windows平台下很好地工作,如NetAnts、“网际快车”、TelePro等,还有像WebZip那样功能强大的离线浏览器。这些工具使我们可以在Windows环境下很轻松地下载网站上的文件、目录、网站的一部分,甚至整个网站。然而在Linux环境下,这类工具却很少。笔者通过自己的摸索,在集成开发环境KDevelop 1.2下实现了一个网站下载程序,它支持文件级的“多线程下载”和“断点续传”。下面本文分3部分介绍实现这一程序的基...
linux 内核编译

linux 内核编译

对于linux新手来说,linux 内核编译相对有一些难度,甚至不知道如何入手,现在归纳了一下,这一篇还算比较详细的步骤,希望能对各位新手有一些帮助。1、安装内核如果内核已经安装(/usr/src/目录有linux子目录),跳过,如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令r...
Qt-embeded的安装

Qt-embeded的安装

Qt-embeded的安装1.Qt-embeded简介随着嵌入式Linux应用的不断发展,嵌入式处理器运算能力的不断增强,越来越多的嵌入式设备开始采用较为复杂的GUI系统,手持设备中的GUI系统发展得非常迅速。传统的GUI系统,如Microwindows等,由于项目规模较小、功能较为薄弱,缺乏等三方软件开发的支持等诸多原因,在比较高级的手持或移动终端设备(如PDA、Smart-Phone、车载导航系统)中应用较少。Qt/Embedded是著名的Qt库开发商...
Java中的多线程的使用方法

Java中的多线程的使用方法

JAVA 的多线程特性是它的一大优点。多线程是相对单线程而言的,单线程是指任何时候只能有一个程序在运行,其他程序必须等待。而有了多线程这个特性后,JAVA 可以支持多个程序并发执行。当你要写一个能同时执行多个功能的程序时,就需要用到JAVA 的多线程功能。JAVA 的多线程功能被封装在线程类中。现在介绍一下线程的使用方法。 一、线程的创建 有两种方法可以创建线程。第一种方法是通过继承类“Thread”来创建线程类。如: class aaa ex...
C 语言常见问题

C 语言常见问题

1 关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。2 关键字co...
linux驱动程序编写

linux驱动程序编写

linux驱动程序编写引 言 linux驱动程序编写无疑是一项复杂的工作。本文将集中介绍非标准硬件的设备驱动程序编写,探讨硬件应用编程接口,并借用 Cirrus Logic EP9312 片上系统嵌入式平台添加设备驱动程序这一案例来进行分析。 如果有些编程内容未能在本文中涉及,那么读者亦可以查阅相似的设备驱动程序编码,以做参考。还有一种方法,就是检索历史档案或者向 Linux 内核问讯中心去函问讯。 Linux 概述 Linux 是 UNI...
构建嵌入式linux平台下的用户应用

构建嵌入式linux平台下的用户应用

1.引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次,如图1-1所示: (1)引导程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 (2)Linux 内核。针对于嵌入式板子的定制内核以及内核的启动参数。 (3)文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用 ram d...
Linux内核如何接收不同类型以太帧

Linux内核如何接收不同类型以太帧

1. 前言以太头中除了6字节目的MAC地址、6字节源MAC地址外,还有两字节的以太帧类型值,如IPv4为0x0800,ARP为0x0806等,网卡驱动收到以太帧后通过接口函数netif_receive_skb()(netif_rx实际最后也是调用netif_receive_skb)交到上层,而这个接口函数就完成对以太帧类型的区分,交到不同的协议处理程序。如果想自己编写某一以太类型帧的处理程序,需要自己添加相应的以下Linux内核代码为2.6.17.11。2...
Java语言与C语言的区别

Java语言与C语言的区别

1. Java没有预处理指令。(如C中的#define , #include , #ifdef等)。C中的常量定义在Java中用static final来取代。2. Java中没有C中的全局变量。3. Java中的主类型的size是确定的,而C中主类型的size跟平台相关。4. Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。5. Java有垃圾收集机制,不需要自己释放空间。6. Java...
怎样提高java程序性能

怎样提高java程序性能

在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从而常常会生成大量的对象(或实例)。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。 例1:关于String ,StringBuffer,+和append JAVA语言提供了对于...
<< 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 >>