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

首页 / 操作系统 / Linux

系统学习嵌入式Linux 几点非常实用的建议

系统学习嵌入式Linux 几点非常实用的建议

学习掌握嵌入 Linux 的开发与移植现在非常流行。各种学习文章与培训班,充斥书店街头。笔者也上了路,经历漫长的摸索,终于一日开窍,但的确糟蹋了很多金钱与时间。 作为穷人,现写下自己的感受,供好学寒士参考。 第一要点: 实验重于看书 (多编码,少翻书) 一定首先搭建x86实验环境。 用旧计算机(周末电脑城抛售存货,有新的),搭建一套 实验环境。 host主机: 一台PC机(能够跑RedHat linux,看问档就可以了,配网卡与软驱)。 target目标机...
嵌入式应用Linux裁减的初次尝试

嵌入式应用Linux裁减的初次尝试

前段时间因为嵌入式应用开发的需要,对Linux进行了一次大幅度的裁减。由于是初次接触Linux启动的核心部分,所以基本上还是对网上各种裁减方案的拼凑和整理,包含自己理解的部分实在很少。总的来说效果不算理想,后面还有很长的路要走。这里就大致说说目前这个Linux裁减方案的“雏形”吧。1. 内核裁减对Linux内核部分的裁减主要根据实际需求进行了重编译,去掉了大部分用不上的特性,以及实际硬件环境之外的设备驱动。这一过程没啥技术含量,就不细说了。2. initr...
通过Linux的内核观察/proc/pid/statm

通过Linux的内核观察/proc/pid/statm

输出解释 CPU 以及CPU0。的每行的每个参数意思(以第一行为例)为: 参数 解释 /proc//status Size (total pages) 任务虚拟地址空间的大小 VmSize/4 Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4 Shared(pages) 共享页数 0 Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4 Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib...
浅谈Linux 下的中文程序开发

浅谈Linux 下的中文程序开发

现在越来越多的华人开始用 Linux 了.也越来越多的华人开始写我门自己的 Linux 下面的应用程序了. 开发我门自己的程序,中文当然是一个必不可少的东西了. 这里就来说说 Linux 下面的中文程序的开发. 小弟才疏学浅,只是因为看到网络上面这方面的文章不是很多很全面.所以动手写了这些东西.如果有错误,还望大家多多包含,多多指正. QT QT 现在被越来越多的人所喜爱.也有了越来越多的人选择 QT 作为开发Xwindow 下面 GUI 环境的语言. 在...
用Python来kill掉Linux进程

用Python来kill掉Linux进程

Linux下面按进程的命令名字kill掉进程稍稍有点麻烦,就用python写了一个简单的小工具,不过目前这个工具还有点小问题,就是随便输入一个名字,执行ps aux|grep %name 命令,本身也产生一个进程,但是这个进程随即消失,以后kill的时候就找不到这个进程了。不过运行结果还是满意的。xkill#!/usr/bin/pythonimport os,re,sysdef kill_by_name(name):cmd="ps aux|grep %s"...
教你解读Linux内核源码的入门方法

教你解读Linux内核源码的入门方法

putpmsg 在内的好几个系统调用都是不进行任何操作的,即有待扩充的空调用;但它们却仍然占用着sys_call_table表项,估计这是设计者们为了方便扩充系统调用而安排的;所以只需增加相应服务例程(如增加服务例程getmsg或putpmsg),就可以达到增加系统调用的作用。结语:当然对于庞大复杂的 linux内核而言,一篇文章远远不够,而且与系统调用相关的代码也只是内核中极其微小的一部分;但重要的是方法、掌握好的分析方法;所以上的分析只是起个引导的作用...
aix c/c++ 编译器

aix c/c++ 编译器

一般情况下,我们习惯直接使用cc编译程序,实际上AIX的C/C++编译器还提供了其他的一些使用方法,如后缀为_r就有xlc_r、xlC_r,这里我们做一个完整的介绍。 AIX平台上缺省的C++编译器为xlC,而C的编译器有三个: cc: 这是最习惯用的,扩展模式的C编译器 xlc: ANSI C编译器,使用UNIX的头文件 c89: ANSI C编译器,使用ANSI头文件 具体选择何种编译器,需根据程序的情况来选择,一般我们可以使用cc。另外,还...
Linux信号处理机制

Linux信号处理机制

一、信号及信号来源 信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。 信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。 信号来源 信号事件的发...
Linux调试BUG实例分析

Linux调试BUG实例分析

最近在开发LINUX下的工具,调试一个BUG时遇到很郁闷的情况: 某处有个segmentation fault。懒得用gdb,于是随便加了几条调试信息,编译,运行之。直接显示错误信息。 唔......BUG在最近一条信息之前,再细分,再加调试信息,编译,运行,嗯,还得再分。 3次之后偶郁闷鸟,真正的郁闷鸟......两条消息,一条能正常显示,紧接着的,中间没有任何语句--也不是多线程--的第二条信息就是显示不出来!我靠!我招惹谁了啊?没有任何干扰啊 ...
Ubuntu下练习C

Ubuntu下练习C

Ubuntu版的linux下是没有直接的编译工具的。C,java,c++等都需要自己下载包。虽说像gcc这个命令从头就有,但是真正可以编译还是要 编译工具下下阿安装了才行。 如何编译C 1.写源码,另存为想x.c 2.打开终端,切到文件的目录 3.输入命令 :gcc x.c 4.一般都生成a.out。 这时,输命令:./a.out 即可运行。 遇到的问题 不知怎么的,C语言的很重要的地址符号“&”编译的时候不认识,老报错说此变...
Linux中库认识

Linux中库认识

soname 形式一般为lib.so.,以symbol link的方式存在于文件系统中,version的不同反映了接口的改变,其指向的实际文件的名字通常是在soname后加上..。 ldd/ldconfig 一个程序/shared库一般都要依赖其他的一些库,这可以用ldd来查看,它列出了依赖的库的soname,因为实际依赖是库的接口,而soname正是反映了库的接口信息。linux使用ELF作为可执行程序和库的格式,这些依赖的库的soname保存在E...
Linux内核算法知识点滴

Linux内核算法知识点滴

1.Linux 调度 I/O消耗型和处理器消耗型进程(保证及时的IO响应和高效的CPU利用率)负载平衡:每颗CPU上有一个进程队列,当CPU的负载差大于25%时运行负载平衡程序。(从最忙的CPU上取下一个优先级最高且CPU亲和力最小的进程到负载最轻的CPU进程队列中)。 为什么要取优先级最高的进程呢? 因为把优先级高的进程平均分配到各个CPU上去才能使系统的性能达到最高。CPU的亲和力:主要是高速缓存或是其它原因,如某个进程只能在某个CPU上运行。 ...
Linux初学者Patch程序使用攻略

Linux初学者Patch程序使用攻略

本文的目的是向Linux新手介绍一种无价的资源,Larry Wall的patch程序。patch是用来查找文件之间差异的GNU diff命令的一个接口;diff有很多选项,但是该命令最常用的用途是用来生成一个文件,该文件中列出了内容发生改变的行,显示两个原始文件、修改过的行以及由于内容没有变化而忽略掉的行。patch典型地用于把一个目录下的源代码文件更新到新的版本,从而就避免了下载整个新的源代码档案的必要。下载一个有效的 patch仅仅需要下载发生变化的那...
阅读Linux内核源码从何处着手

阅读Linux内核源码从何处着手

对Linux内核源码的分析,有两个很好的入口点:一个就是系统的引导和初始化,即从机器加电到系统核心的运行;另外一个就是系统调用,系统调用是用户程序或操作调用核心所提供的功能的接口。对于那些对硬件比较熟悉的爱好者,从系统的引导入手进行分析,可能来的容易一些;而从系统调用下口,则可能更合适于那些在dos或Uinx、Linux下有过C编程经验的高手。 下面就以系统的引导和初始化为例,简要描述一下源代码的阅读线索: 1、系统的启动和初始化: 在基于Intel...
在开源世界里我们的软件该如何编译

在开源世界里我们的软件该如何编译

基本上,尤其在Windows 和Mac OS X系统下,已经开发好的软件不需要用户再编译。程序员写好代码并编译后,封装为计算机可执行的二进制形式,用户就可以直接使用了。 然而现在,随着开源软件的增多,每个人都可以读和使用源代码,因而软件编译的最后一步工作已经转移到了用户身上,而且他们得根据自己使用的系统,Windows XP, Windows Vista, Mac OS X Tiger, Panther, Linux x86……来做编译工作。如果你发现自己...
<< 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 >>