linux文件系统
a1232345
这个作者很懒,什么都没留下…
展开
-
ARM Linux从Bootloader、kernel到filesystem启动流程
ARM Linux启动流程大致为:bootloader ---->kernel---->root filesystem。bootloader 是一上电就拿到cpu 的控制权的,而bootloader实现了硬件的初始化。bootloader俨然就成了Power on 之后”第一个吃螃蟹”的代码。谈到这就得想到硬件机制是如何满足这个功能的了。CPU内部一般都集成小容量的SRAM (又叫stappi转载 2016-03-03 13:36:00 · 1989 阅读 · 0 评论 -
write的奥秘
在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一个简简单单的write函数能够完成向设备里面写数据的复杂过程。这里的源代码主要来自两个地方。第转载 2015-04-15 13:50:59 · 1259 阅读 · 0 评论 -
linux驱动程序ioctl函数用法
一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,转载 2015-04-14 17:58:27 · 11746 阅读 · 3 评论 -
打patch失败:Hunk #1 FAILED at 1. What's that mean?
6down votefavorite1I get the following error when running make, and I have no idea what it means or what to do about it. Can anyone illuminate me or point me in the right directi转载 2015-03-18 18:06:02 · 23620 阅读 · 0 评论 -
GDB动态库搜索路径
笔记:当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。1. set sysroot 与 set solib-absolute-prefix 是同一条命令,实际上,set sysroot是set solib-abso转载 2015-03-12 20:27:47 · 524 阅读 · 0 评论 -
solib-absolute-prefix 和solib-search-path的区别
solib-absolute-prefix 和solib-search-path是 gdb比较常用的选项,用来设置符号文件的位置。那么,它们有什么区别呢?solib-absolute-prefix设置的是被搜索文件路径的前缀,solib-search-path设置的是被搜索文件的路径。solib-search-path可以有多个路径,中间按用:隔开, solib-absolute-pr转载 2015-03-12 20:19:26 · 1773 阅读 · 0 评论 -
mips交叉环境下gdb的建立与使用
条件:主机 192.168.1.102 开发板:192.168.1.103 nfs目录:/opt/work/nfs1.编译gdb6.8下载解压,这不用说了吧:)#cd gdb-6.8配置#./configure --target=mipsel-linux --prefix=/usr/local/mipsel-gdb-6.8有文章介绍在后面加上 -v转载 2015-03-11 15:44:35 · 3366 阅读 · 0 评论 -
Linux(centos)系统各个目录的作用详解 推荐
文件系统的类型 LINUX有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别。 普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名。 目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件。 连转载 2015-03-19 15:09:03 · 487 阅读 · 0 评论 -
diff和patch十分钟指南
情景一:你正尝试从代码编译一个软件包,发现有人已经对代码进行了小小的修改以便在你的系统上编译。他们通过补丁的方式发布自己的成果,但是你却不知道该如何使用它。答案是你使用一个叫做patch(很贴切)的命令行工具将补丁应用到原始代码上。 情景二:你下载了一个开源软件包的代码,花了一个小时左右稍作修改,成功的让它在你的系统上编译通过。你想把自己的成果分享给其他程序员,或者给软件包的作者。现在你就转载 2015-02-26 18:21:16 · 644 阅读 · 0 评论 -
使用 watchdog 构建高可用性的 Linux 系统及应用
Linux 在不同领域如电信、终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求。Carrier Grade Linux 是 OSDL(Open Source Development Lab)发布的电信级 Linux 的标准,在系统可用性这部分指出 Linux 必须支持 watchdog 机制。Linux 内核从 1.3.51 版本开使提供硬件、软件 watchdog 驱转载 2015-01-05 11:20:02 · 579 阅读 · 0 评论 -
认识romfs文件系统
1.1 什么是romfs romfs是一个只读文件系统,主要用在 mainly for initial RAM disks of installation disks.使用romfs文件系统可以构造出一个最小的内核,并且很节省内存。相比而言,早期的minix和xiafs(现在已经过时)文件系统如果编译为模块的形式则大小超过20000字节(在x86机器上大小为38502字节)转载 2014-12-23 18:12:38 · 2497 阅读 · 0 评论 -
Linux watchdog
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备,就会导致在内核中启动一个 1分钟的定时器,此后,用户空间程序需要保证在 1分钟之内向这个转载 2015-01-05 11:01:47 · 539 阅读 · 0 评论 -
Linux内核与根文件系统的关系
开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件。”一.什么是文件系统文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统转载 2015-01-20 17:10:12 · 838 阅读 · 0 评论 -
Linux根文件系统
首先要明白的是“什么是文件系统”,文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在一篇oracle的技术文章中看到这样一句话“尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件”,这句话我是这样理解的,在Linux转载 2015-01-20 16:57:42 · 439 阅读 · 0 评论 -
POSIX定时器:timer_settime()
最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。创建一个定时器int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *tim转载 2015-04-27 11:15:38 · 11376 阅读 · 0 评论 -
linux下定时器的使用--timer_create等系列
程序1:采用新线程派驻的通知方式#include #include #include #include #include #include #define CLOCKID CLOCK_REALTIMEvoid timer_thread(union sigval v){ printf("timer_thread function! %d\n", v.sival_int);转载 2015-05-14 11:41:13 · 1342 阅读 · 0 评论 -
Flash设备驱动
在linux系统中,提供了MTD(内存技术设备)系统来建立Flash针对linux的统一,抽象接口,MTD将文件系统与底层的Flash存取器进行了隔离,使得Flash驱动工程师无需关心Flash作为字符设备和块设备与Linux内核接口(由MTD层完成)在引入MTD后,Linux系统中Flash设备驱动及接口可分四层(1)硬件驱动层,Flash硬件驱动层负责Flash硬件设备读,写,擦除 L转载 2015-06-25 00:04:04 · 795 阅读 · 0 评论 -
文件结构体struct file(Linux 2.6.23内核) (转)
struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU转载 2016-01-13 18:04:48 · 864 阅读 · 0 评论 -
系统调用、POSIX、C库、系统命令和内核函数
第5章 系统调用大部分介绍Linux内核的书籍都没有仔细说明系统调用,这应该算是一个失误。内核发展到现在,我们实际需要的系统调用现在已经十分完美,从这个意义上来说,再耗费宝贵的时间去研究系统调用的实现是毫无意义的事情。然而,对于希望能够对内核有更深理解的我们来说,仔细研究少量系统调用仍是十分值得的。这样就有机会初步了解一些概念,并可以趁机详细了解一下内核编程的特点,就像系统调用本身在应用程转载 2016-01-12 23:32:42 · 3532 阅读 · 0 评论 -
linux系统调用和库函数调用的区别
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底转载 2016-01-12 23:30:54 · 514 阅读 · 0 评论 -
Windows 下用 SourceInsight 与 Linux 协作编码利用Samba的共享
习惯了用SourceInsight 读写代码,在Linux下一时没找到类似的工具,vi的操作也不熟,偶尔看看或小改动代码还行,项目一大就感觉就力不从心了;所以还是准备采用Windows下进行代码的阅读和编写,Linux 下编译运行。下文是该环境的安装和配置过程,记录备忘。环境说明: Windows 7 + SourceInsight 3.5 Ubuntu 11.04 (这里是基转载 2015-10-28 20:43:49 · 3945 阅读 · 0 评论 -
How do I install and use fonts in Linux?
If you are a graphic artist, writer, designer, or desktop publisher, then you are likely to need specific fonts installed on your computer. For Linux users this used to be a more difficult task. The g转载 2015-09-13 16:51:09 · 604 阅读 · 0 评论 -
简述configure、pkg-config、pkg_config_path三者的关系
一、什么是configure 源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目。 configure程序它会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make读入使用进而调用相关编译程式(通常调用编译程序都是gcc)来编译转载 2015-09-10 16:06:01 · 455 阅读 · 0 评论 -
Virtualbox中的Ubuntu虚拟机,安装增强功能时出错:未能加载
今天自由草在使用Virtualbox中的Ubuntu虚拟机,打算作为微丫头本地测试,结果屏幕分辨率比较低,不方便使用,就想安装增强功能来实现更改分辨率,但是在安装时出错:未能加载虚拟光驱 VBoxsGuestAdditions.iso到虚拟电脑经过折腾,最后通过互联网找到了解决方法:进入系统在侧边找到如图加载的虚拟光驱,右击,点击弹出,然后就可正常安装增转载 2015-07-06 15:50:32 · 3952 阅读 · 0 评论 -
Ubuntu中root用户和user用户的相互切换
Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法。(1)从user用户切换到root用户不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要用sudo授权,感觉很麻烦此时我们可以切换到root用户,只转载 2015-07-06 17:39:25 · 575 阅读 · 0 评论 -
/dev/console,/dev/tty和/dev/null
/dev/console这个设备代表的是系统控制台,错误信息和诊断信息通常会被发送到这个设备。每个UNIX系统都会有一个指定的终端或显示屏用来接收控制台信息。1/dev/tty如果一个进程有控制终端的话,那么/dev/tty就是这个控制终端的别名。像cron这样的进程是没有控制终端的,因此它也就无法打开/dev/tty。tty这个词源转载 2015-07-03 15:52:56 · 1264 阅读 · 0 评论 -
Linux 环境变量PATH设置
首先是设置全局环境变量,对所有用户都会生效:etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。/et转载 2015-07-10 16:14:48 · 553 阅读 · 0 评论 -
Linux中tty、pty、pts的概念区别
基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。2> pty(虚拟终端):但是如果我们远程telnet转载 2015-06-30 17:43:17 · 752 阅读 · 0 评论 -
Linux移植添加norflash MTD分区
开发板上只有Nor Flash,所以为了实现层次文件系统,需要为Linux2.6.20增加Nor Flash MTD驱动支持。其实工作量并不大,因为已经有现成的程序可供参考。 MTD的驱动程序都集中在drivers/mtd里面。我们需要做的,仅仅是在drivers/mtd/maps下增加自己的分区表。因为有参考的代码,所以比较容易。 我不知道友善linux2.6.32的内核是原创 2015-06-25 17:51:14 · 2115 阅读 · 0 评论 -
【驱动】MTD子系统分析
MTD介绍 MTD,Memory Technology Device即内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数据的基本单元不同。 字符设备,以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系转载 2015-06-24 23:49:29 · 592 阅读 · 0 评论 -
Linux 编程中的API函数和系统调用的关系
API:(Application Programming Interface,应用程序编程接口) 指的是我们用户程序编程调用的如read(),write(),malloc(),free()之类的调用的是glibc库提供的库函数。API直接提供给用户编程使用,运行在用户态。 我们经常说到的POSIX(Portable Operating System Interface of Unix)转载 2015-02-03 18:16:16 · 1315 阅读 · 0 评论 -
Linux内核学习之系统调用
文章参考Linux内核修炼之道。1. 系统调用概念大家都知道操作系统的作用是管理计算机的软硬件资源,但是操作系统要向用户提供各种各样的服务,而用户应用程序访问这些服务的方式就是通过系统调用。但是一般来说,我们都是通过操作系统封装好的API(应用编程接口)来间接使用系统调用的。比如在Windows编程中,你可以调用WinAPI,他以C库的形式给出。比如在Linux当中,我们调用的re转载 2015-02-03 13:57:52 · 485 阅读 · 0 评论 -
什么是根文件系统(rootfs=Root Fils System)
Linux系统中的根文件系统,Root FileSystem,简称为rootfs; 关于rootfs,之前一直很迷惑,不知道所要表达的真正的含义;即便是通过buildroot自己建立了相关的rootfs之后,还是没能很明白的理解,到底rootfs是啥。 现在,突然,有那么一点明白了。rootfs,其实就是,针对特定的操作系统的架构,一种实现的形式;转载 2014-10-09 21:02:06 · 3779 阅读 · 0 评论 -
进程与线程的区别 进程的通信方式 线程的通信方式
进程与线程的区别: 通俗的解释一个系统运行着很多进程,可以比喻为一条马路上有很多马车不同的进程可以理解为不同的马车而同一辆马车可以有很多匹马来拉----这些马就是线程假设道路的宽度恰好可以通过一辆马车道路可以认为是临界资源那么马车成为分配资源的最小单位(进程)而同一个马车被很多匹马驱动(线程)----即最小的运行单位每转载 2014-10-09 10:05:02 · 561 阅读 · 0 评论 -
理解Linux系统/etc/init.d目录和/etc/rc.local脚本
本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接。 一、关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录。这个目录到底是干嘛的转载 2014-11-07 18:28:33 · 555 阅读 · 0 评论 -
Makefile生成动态库
## Simple .so Makefile#CC := gccLD := ldCFLAGS :=LDFLAGS := -shared -fpicSOURCE := $(wildcard *.c)OBJS := $(patsubst %.c,%.o,$(SOURCE))TARGET_LIB := x.soall:$(OBJS) echo转载 2014-09-25 21:48:48 · 805 阅读 · 0 评论 -
Makefile 中的.PHONY
Makefile 中的.PHONY 一直不知道Makefile中.PHONY是什么意思,查了查便记下来。所谓的PHONY这个单词就是伪造的意思,makefile中将.PHONY放在一个目标前就是指明这个目标是伪文件目标,如下:.PHONY:clean这里clean目标没有依赖文件,如果执行make命令的目录中出现了clean文件,由于其没有依赖文件,所以它永远转载 2014-09-26 00:12:40 · 6210 阅读 · 0 评论 -
Makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符转载 2014-09-25 21:59:16 · 490 阅读 · 0 评论 -
git简介
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库 中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。原创 2014-08-31 20:39:56 · 615 阅读 · 0 评论 -
理解 Linux 的硬链接与软链接(三)
当然软链接的用户数据也可以是另一个软链接的路径,其解析过程是递归的。但需注意:软链接创建时原文件的路径指向使用绝对路径较好。使用相对路径创建的软链接被移动后该软链接文件将成为一个死链接(如下所示的软链接 a 使用了相对路径,因此不宜被移动),因为链接数据块中记录的亦是相对路径指向。转载 2014-08-23 21:05:23 · 687 阅读 · 0 评论