嵌入式Linux中文站

最新发布

文件系统

解析linux根文件系统的挂载过程

阅读(115)

st1\:*{behavior:url(#ieooui) } 一:前言 前段时间在编译kernel的时候发现rootfs挂载不上。相同的root选项设置旧版的image却可以。为了彻底解决这个问题。研究了一下rootfs的挂载过程。特总结如下,希望能给这部份知识点比较迷茫的朋友一点帮助。 二:rootfs的种类 总的...

线程进程

linux socket进程通信

阅读(139)

socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。 一。创建socket服务端的流程如下: (1)创建socket,类型为AF_LOCAL或AF_UNIX,表示用于进程通信: [cpp] view plain copy int server_fd; int client_fd; //clientfiledescriptor struct s...

内核驱动

Linux内核源码分析方法

阅读(143)

一、内核源码之我见 Linux内核代码的庞大令不少人望而生畏,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但...

内核驱动

Linux inotify功能及实现原理

阅读(129)

1. inotify主要功能 它是一个内核用于通知用户空间程序 文件系统变化 的机制。 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什...

内核驱动

linux内核空间和用户空间详解

阅读(162)

linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部...

内核驱动

Linux内核定时器的使用

阅读(131)

LINUX内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于linux/timer.h和kernel/timer.c文件中。 被调度的函数肯定是异步执行的,它类似于一种软件中断,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则: 1)...

新手入门

如何编译Linux内核

阅读(154)

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性...

线程进程

Linux查看进程和终止进程的技巧

阅读(110)

1. 在LINUX命令平台输入1-2个字符后按Tab键会自动补全后面的部分(前提是要有这个东西,例如在装了tomcat的前提下,输入tomcat的to按tab)。 2. ps 命令用于查看当前正在运行的进程。 grep 是搜索 例如: ps -ef | grep java 表示查看所有进程里CMD是java的进程信息 ps -au...

文件系统

嵌入式使用udev高效、动态地管理Linux设备文件

阅读(122)

本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Linux 最终用户、设备驱动...

线程进程

Linux下Signal信号

阅读(159)

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实...

新手入门

嵌入式linux对shell脚本的基本掌握

阅读(85)

对于嵌入式linux开发者而言,shell脚本的要求基本上能看懂就可以。不用像运维人员那样写出非常强悍的shell脚本 shell: 在计算机科学中,Shell俗称壳(用来区别于核) 是指提供使用者使用界面的软件(命令解析器) 它类似于DOS下的command和后来的cmd.exe 它接收用户命...

线程进程

Linux进程间通信方式

阅读(197)

进程间通信概述 进程通信的目的 数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进...

内核驱动

linux字符设备驱动:自动创建设备及其节点

阅读(137)

大概步骤: 一、 注册设备号 注册函数: regsiter_chrdev_region() alloc_chrdev_region() 或 查看#cat /proc/devices register_chrdev() 注销函数: unregist_chrdev_region() 或 unregister_chrdev() 二、初始化cdev并添加到系统 初始化cdev 静态初始化 cdev_init()...

系统开发

bss,data,text,rodata,堆,栈,常量段

阅读(142)

//红色部分为问题部分 section 结构 SECTIONS { ... secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } region :phdr =fill ... } secname:段名 contents:决定哪些内容存放在此段 start:本段的连接地址(实际运行地址) AT(ldadr):存储地址(加载的地址...

系统开发

Linux系统调用及用户编程接口(API)学习

阅读(198)

Linux系统调用 系统调用 指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组特殊接口来获得操作系统内核提供的服务。 为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为用户空间和内...

内核驱动

Linux内核启动及文件系统加载过程

阅读(104)

一、 Linux 内核自解压过程 在 linux 内核启动过程中一般能看到图1内核自解压界面,本小节本文重点讨论内核的自解压过程。 图1 解压内核 内核压缩和解压缩代码都在目录 kernel/arch/arm/boot/compressed ,编译完成后将产生 head.o、misc.o、piggy.gzip.o、vmlinux、dec...