Welcome 微信登录

首页 / 操作系统 / Linux

Linux内核开发心得体会

Linux内核开发心得体会

刚解决目前开发的新文件系统的NFS下的问题(ls, cp, read, write), 真是高兴, 有几个心得体会: 1>. 学习内核开发的最好实例还是来源于内核本身. 2>. 当你遇到你从没有见过, 用过的东西时一定要先想办法自己试用一下, 在使用中力争多了解些他的工作原理, 工作细节.自己再去作相似的东西时一定要多思考, 从机器运行本身的角度考虑问题. 3>. E文一定要好!...
Linux下声音设备编程实例讲解

Linux下声音设备编程实例讲解

Linux下的声音设备编程比大多数人想象的要简单得多。一般说来,我们常用的声音设备是内部扬声器和声卡,它们都对应/dev目录下的一个或多个设备文件,我们象打开普通文件一样打开它们,用ioctl()函数设置一些参数,然后对这些打开的特殊文件进写操作。 由于这些文件不是普通的文件,所以我们不能用ANSI C(标准C)的fopen、fclose等来操作文件,而应该使用系统文件I/O处理函数(open、read、write、lseek和close)来处理这些设备文...
Windows与Linux编译器的区别

Windows与Linux编译器的区别

移植工作开始后的第一步就是在目标平台Linux上进行编译,并链接源代码。由于需要移植的软件通常并未在Linux平台上编译过,编译的过程可能会遇到很大的困难。一般情况下,由类型声明引起的编译错误是比较容易修复的。比如Microsoft C/C++的头文件使用__declspec( dllimport/dllexport )来输入和输出DLL函数,在Linux上,把函数声明成extern “C”,或者再结合使用DEF文件,使用相应的链接命令就可以解决这些问题。...
在嵌入式设备中不创建swap分区的原因何在

在嵌入式设备中不创建swap分区的原因何在

我们知道,在linux中有一个很重要的概念,虚拟内存,当物理内存不够时,可以将内存中一些数据存储到硬盘上,而让出物理内存。我们一般在PC上安装linux时,会创建一个swap分区,其大小一般设置为内存的2倍。 而我们在嵌入式设备中,却看不到该分区,为什么呢? 我们知道在嵌入式设备中,一般使用flash卡作为存储设备,该存储设备一般每个点的写次数是有限制的,大概在几十万次。所以一般嵌入式设备,将文件系统设备为只读,并且会采用一些平均分配写操作的方式,来延...
在Ubuntu上建立Arm Linux开发环境小结

在Ubuntu上建立Arm Linux开发环境小结

我使用的是友善2410的板子,以前都是用Fedora,现在家里的电脑被我转为Linux专用的了,装的是Ubuntu。但是嵌入式还是要玩的,在装载过程中也遇到一些小麻烦。在此记录一下,一来自己比较健忘,二来也希望能给一些没弄过的人一点启示。 目的: 把ARM linux的交叉开发环境,kernel, filesystem, bootloder安装,并配置,使其可以编译bootloder, kernel, 可以nfs更新文件系统; 资源: 代码: arm-li...
学习Linux中inode值

学习Linux中inode值

关于inode; inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 ... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。 做...
Linux Kernel学习指南

Linux Kernel学习指南

Linux系统的基础是内核、C库、编译器、工具集和系统的基本工具如登录程序和shell。Linux系统也支持现在的X Windows系统,可以使用完整的图形用户桌面系统。 通常,一个内核由负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序、负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。 C库函数与系统调用的关系:1、系统调用仅占库函数执行的一小部分;2、库函数=系统调用;3、库函数不需要系统调用。 ...
五步学会在红旗Linux5.0下安装与配置java

五步学会在红旗Linux5.0下安装与配置java

本来红旗5。0号称是有java的,可一看,只带了一个jre,没有办法只有自己装,必定先要去网上看看,有是有,但是我还是装了好长时间,人家都是在RedHat上装,也不知道红旗是怎么了,不过我有心理准备,为了让大家少走弯路,写下来给大家。如果有不同意见或者有不明白的地方可以在本页留言,或者qq249537688,认证信息:草不枯。 第一步:下linux下的jdk。这个好办,去sun的网站就 可以了。http://java.sun.com/j2se/1.5.0...
说说linux0.11的bootsect.s

说说linux0.11的bootsect.s

bootsect.s 是linux底下第一个程序,也是整个操作系统的入口,可以说主要完成以下几个步骤: 1.将自己从0x7c00处搬到0x90000处 2.将setup模块加载到0x90200处 3.利用13号中断取磁盘参数表中当前引导盘的参数 4.显示"loading system" 5.将system从磁盘加载到0x10000处 6.确定根文件系统的设备号 7.长跳转到setup执行setup程序. 步骤很清晰,具体的东西等我以后再来慢...
升级与编译自己的内核-Debian篇学习

升级与编译自己的内核-Debian篇学习

首先要介绍一下,通常其它操作系统的内核编译是比较繁琐的。然而,由于Debian强大的dpkg软件包管理系统,使得内核的升级、编译也变得容易很多。这篇文章将会一步一步教你如何编译自己的,带有grsecurity的Linux 2.6内核。Grsecurity是一个Linux的内核补丁,针对Linux内核的某些安全漏洞进行修补以及安全性的增强。 首先用 apg-get 自动下载并安装一些必要的软件包,包括编译内核需要的kernel-package和ncurses...
Linux Shell编程实例小结

Linux Shell编程实例小结

前言看书时写笔记是个好习惯.第一天:1.重要的shellbashtcsh2.命令行执行顺序别名关键字函数内建命令可执行程序 //磁盘文件3.进程:在linux中可以由单独的pid标识的程序4.进程查看命令ps patree5.shell系统调用forkwaitexec:复制父进程,得到子进程,以新进程装入子进程exit:在任何情况下退出进程,退出时发出sigchild信号,在0-255之间,0为成功退出,非0则发生了某些错误.$?为最后一个可执行命令退出时...
学习进阶 在Linux中使用C#

学习进阶 在Linux中使用C#

当微软启动它的.NET战略时,其中的一个目标就是让所制作的软件运行在多种不同的平台上。 Mono,一个开源项目,能使.NET能在您的Linux操作系统上运行。 如果你和我一样,既用Microsoft的技术工作,也喜欢用Linux工作,那么这个Mono就能帮助你我,你可以在这两个平台上都可以写C#程序。 到www.go-mono.com 下载Mono的最新安装包。我看了一下,在我写这篇文章时,该官方网上最新的Stable版本时Mono 1.1.13.8...
<< 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 >>