Linux系统
梦想与坚持
勤能补拙是良训,每个人生来都不是优秀的。
展开
-
ubuntu常用命令总结
1.df命令# df -ha显示所有的档案以及分区的使用情况# df -h /dev/sda1显示sda1的磁盘使用情况# df -T显示每个分区的所属的档案系统名称,也会显示分区的格式类型(比如ext3)注:h参数表示转换为M,G等人们常用的磁盘空间单位显示2.du命令# du -h src显示src目录中各个文件(或者文件)所占用的磁盘空间# du原创 2014-06-10 14:01:30 · 1709 阅读 · 0 评论 -
linux下ARM交叉编译器的安装
1.下载arm-linux-gcc编译器。2.将下载好的编译器压缩文件拷贝到linux中,注意不要在windows中解压,因为RAR解压工具解压gzip压缩工具压缩的文件可能会出问题。尽量将编译器的压缩文件放置到根目录下(其实也不一定是要根目录,但是我自己使用过程中发现有一个厂家提供的编译器没有安装在指定的位置,编译器提示库找不到),这样做的目的是为了尽量减少麻烦。拷贝好之后,在终端使用:原创 2014-06-14 17:07:44 · 1532 阅读 · 0 评论 -
vmtools的安装
第一步:进入系统后,点击虚拟机上的安装vmware tools,回到桌面回看到一个vmware tools的cdrom图标。第二步:打开它,复制“vmwaretools....tar.gz”,打开文件系统,打开home文件夹,打开当前用户为名的文件夹,粘贴vmwaretools....tar.gz,同时解压此文件“到此处”。第三步:在此文件夹空白处点击右键,点击属性,在点击窗口中的“权限”,把转载 2014-06-04 23:58:17 · 743 阅读 · 0 评论 -
samba服务器实现ubuntu和windows之间共享
安装Ubuntu samba服务器:sudo apt-get install sambasudo apt-get install smbfs原创 2014-06-04 23:10:25 · 829 阅读 · 0 评论 -
鸟哥的linux私房菜整理(一)
1.磁盘第一个扂区主要记录了两个重要的信息,分别是:主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 bytes分割表(partition table):记录整颗硬盘分割的状态,有64 bytesMBR是很重要的,因为当系统在开机的时候会主劢去读取这个区块内容,这样系统才会知道你程序放在哪里且该如何进行开机。分割表就叧有64原创 2014-04-19 21:59:39 · 1221 阅读 · 0 评论 -
linux的dd命令使用
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 1. 命令简介 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名,缺省为标准输入。 of=file转载 2014-03-03 15:50:25 · 746 阅读 · 0 评论 -
gst-launch-0.10的man手册说明
Namegst-launch - build and run a GStreamer pipeline Synopsisgst-launch [OPTION...] PIPELINE-DESCRIPTION Descriptiongst-launch is a tool that builds and runs basic GStreamer pipelines.转载 2014-03-03 17:26:12 · 3741 阅读 · 0 评论 -
gstreamer的gst-inspect 和gst-launch
用gstreamer架构做对媒体开发时,gst-inspect 和gst-launch是两个非常使用的小工具,前者是用于查询库中已经包含的所有element以及他们的详细信息,后者用于快速构建一条pipeline,这个命令最爽,因为只要一句话,你就可以感受到播放的快感。废话不多说,直接看示例:1 gst-inspect用法:首先进入命令行下,然后键入:gst-inspect转载 2014-03-03 17:12:02 · 1882 阅读 · 0 评论 -
gstreamer的gst-launch常用插件
gstreamer很牛逼,让多媒体应用程序的开发变的更加简单,但是,也正是由于gstreamer对很多细节的隐藏,使得我们很容易把多媒体编程想得过于简单。关于gst-launch的使用,这里不做教学,初次接触者可以自行google。然后,请准备一个摄像头,下面我举的例子,都会用到。先罗列出一堆例子--gst-launch-0.10 v4l2src ! ximagesink转载 2014-03-03 17:10:29 · 4025 阅读 · 0 评论 -
VMware的四种网络连接方式
1.名词解释FTP(File Transfer Protocol):文件传输协议使得主机间可以共享文件。SSH:Secure Shell(缩写为SSH),由IETF的网络工作小组(Network Working Group)所制定;SSH为一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。NFS:是Network File System的转载 2014-02-26 15:27:36 · 963 阅读 · 0 评论 -
makefile中的三种变量
1.递归展开式变量第一种风格的变量是递归方式扩展的变量。这一类型变量的定义是通过“=”或者使用指示符“define”定义的。这种变量的引用,在引用的地方是严格的文本替换过程,此变量值的字符串原模原样的出现在引用它的地方。如果此变量定义中存在对其他变量的引用,这些被引用的变量会在它被展开的同时被展开。就是说在变量定义时,变量值中对其他变量的引用不会被替换展开;而是变量在引用它的地方替换展开的同时转载 2014-02-26 20:13:52 · 3979 阅读 · 1 评论 -
volatile关键字
就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如转载 2014-01-24 08:59:37 · 659 阅读 · 0 评论 -
第一章 嵌入式操作系统_基础知识
1.自从清华大学邵贝贝教授将Jean J.Labrosse的“µC/OS-II:the RealTime Kernel”翻译后,在国内掀起了µC/OS-II的热潮。2.其他的嵌入式操作系统VxWorksVxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源及实时的任务间通信。QNXQNX是一款实时操原创 2014-01-03 21:50:01 · 879 阅读 · 0 评论 -
第十章 POSIX线程
1.线程的定义在一个程序中的多个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的一个控制序列。当进程执行fork调用时,将创建出该进程的一份新副本。这个进程拥有自己的变量和自己的PID,它的时间调度也是独立的,它的执行(通常)几乎完全独立与父进程。当在进程中创建一个新线程时,新的执行线程将拥有自己的栈(因此也有自己的局部变量),但与它的创建者共享全局变量、文件描述符、原创 2014-01-03 21:49:53 · 629 阅读 · 0 评论 -
ubuntu常用命令
查看软件xxx安装内容#dpkg -L xxx查询软件xxx依赖哪些包#apt-cache depends xxx查询软件xxx依赖哪些包#apt-cache depends xxx查看内核#uname -a查看Ubuntu版本#cat /etc/issue查看内核加载的模块#lsmod查看PCI设备#lspci查看USB设备#lsusb转载 2014-01-08 09:32:22 · 676 阅读 · 0 评论 -
linux下的/etc目录详解
Linux /etc目录详解/etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc or/etc/rc.d or/etc/rc*.d 启动、或改变运行级时运行的scripts或scripts的目录. /etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.转载 2014-05-30 13:56:54 · 1511 阅读 · 0 评论 -
linux下/proc文件夹内容详解
Linux下/proc目录简介1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所转载 2014-06-16 09:35:53 · 3028 阅读 · 0 评论 -
Linux 软件系列之十四——网络编程
1.什么是socket:套接字是网络通信中应用程序对应的进程和网络协议之间的接口。是属于传输层的部分。套接字在所有的网络操作系统中都是必不可少的。软件系列之十四鈥斺斖绫喑" TITLE="Linux 软件系列之十四鈥斺斖绫喑" />2.socket的类型流式套接字(SOCK_STREAM) 流式套接字可以提供可靠的,面向连接的通信。流式套接字对应的是TCP协议,TCP协原创 2014-01-03 21:48:51 · 718 阅读 · 0 评论 -
Linux 软件系列之十三——网络基础
1.网络体系结构:网络采用分而治之的方法设计的,将网络根据功能划分成不同的模块,以分层的形式有机组合在一起。每一层可以向上一层提供服务,也可以向下一层提供服务。网络体系结构就是指网络的层次结构和每层所使用的协议的集合。两类非常重要的体系结构:OSI与TCP/IP,也称为参考模型。2.OSI参考模型:(Open System Interconnection ReferenceModel,OSI/原创 2014-01-03 21:48:48 · 627 阅读 · 0 评论 -
make规则(整理)
1.linux下的.a库就是很多.o文件的集合,这些.o文件通过ar命令打包进去。2.Makefile/makefile的作用是告诉以make命令需要怎么样的去编译和链接程序。3.在Makefile中如果语句太长可以用\来换行,换行后的下一行正文开始前可以加空格补齐。例如: rm edit main.o kbd.o command.o display.o \原创 2014-05-09 16:12:39 · 1561 阅读 · 0 评论 -
Linux软件系列之六——链接文件
1.linux看起来像是一个分区,实际上不是。2.向一个单元中存入数据的时候,如果存入的数据溢出的话,那么单元里存储的是这个数据的低几位。例如:char test= 10000;那么存入的值是16。因为10000的十六进制值为0x2710,取最低的一个字节,存入a单元中的就是0x10,即16。3.针对溢出的问题,赋值的时候最好采用十六进制形式,这样可以保证赋的值不会超过单元能够存储的值的范原创 2014-01-03 21:48:33 · 679 阅读 · 0 评论 -
linux进程调度方法简述
在 Linux2.6 中,仍有三种调度策略: SCHED_OTHER、SCHED_FIFO 和 SCHED_RR。 SCHED_ORHER:普通进程,基于优先级进行调度。 SCHED_FIFO:实时进程,实现一种简单的先进先出的调度算法。 SCHED_RR:实时进程,基于时间片的SCHED_FIFO,实时轮流调度算法。 前者是普通进程调度策略,后两者都是实时进程调度策略转载 2014-09-22 11:10:55 · 1218 阅读 · 0 评论 -
第三章 裸机_第一个裸机程序(下)
1.在上一讲中,已经可以用make生成我们自己的二进制文件,现在需要将二进制文件下载到S3C2440中去运行。首先需要做的就是连接J-link,然后配置AXD。2.首先启动AXD Debugger:在XP的开始菜单中选择 程序->ARM Developer Suite ->AXD Debugger. 第一个裸机程序(下)" TITLE="第三章 第一个裸机程序(下)" />启动AXD原创 2014-01-03 21:50:14 · 973 阅读 · 0 评论 -
Linux内核态与用户态数据交换方式(二)
本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、 sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使 用。本文是该系列文章的第二篇,它介绍了procfs、seq_file、debugfs和relayfs,并结合给出的例子转载 2014-09-22 09:55:49 · 1216 阅读 · 0 评论 -
Linux内核态与用户态数据交换方式(一)
在Linux下用户空间与内核空间数据交换的方式一 本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。 本文是该系列文章的第一篇,它介绍了内核启动转载 2014-09-22 09:27:43 · 5025 阅读 · 0 评论 -
arm-linux内核配置文件Kconfig语法
当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig。Kconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置件.config。转载 2014-06-10 16:29:13 · 1082 阅读 · 0 评论 -
自旋锁
自旋锁 自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,即在标志寄存器中关闭/打开中断标志位,不需要自旋锁)。 何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只转载 2014-09-06 17:16:44 · 706 阅读 · 0 评论 -
如何减少缺页异常
如何减少换页错误?()1. 进程倾向于占用CPU2. 访问局部性(localilty of reference)满足进程要求3. 进程倾向于占用I/O4. 使用基于最短剩余时间(shortest remaining time)的调度机制5. 减少页大小 换页错误,一般称为缺页异常。每个进程都有一段自己的独立的虚拟内存空间(在32位的linux系统中为3G),但原创 2014-09-07 15:09:42 · 4367 阅读 · 0 评论 -
Linux空间划分 & MMU
Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。32位的Linux系统中从0x00000000到0xFFFFFFFF整个4GB虚拟存储空间。 内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisor mode)下的代码或数据,内核空间占原创 2014-09-06 21:13:52 · 3357 阅读 · 0 评论 -
死锁
死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。” 上面是比较学术的解释,通俗一点的理解可以这原创 2014-09-05 11:25:26 · 774 阅读 · 0 评论 -
优先级翻转
uCos是一个典型的按照优先级调度的操作系统,优先级高的任务先运行,优先级低的任务后运行,然而在任务的调度过程中可能会出现优先级翻转的情况。在嵌入式系统的应用中,实时性是一个重要的指标,而优先级翻转是影响系统实时性的重要问题。例如:有优先级为A、B和C三个任务,优先级A>B>C,任务A,B处于挂起状态,等待某一事件发生,任务C正在运行,此时任务C开始使用某一共享资源S。在使用中,任务A等待事件原创 2014-09-05 12:12:39 · 841 阅读 · 0 评论 -
环境变量和防火墙
1.修改系统环境变量(1)把编译器路径加入系统环境变量,运行命令#gedit /root/.bashrc编辑/root/.bashrc 文件,在最后一行添加:export PATH=$PATH:/usr/local/arm/4.3.2/bin重新登录系统(不必重启机器,开始->logout 即可),使以上设置生效,在命令行输入arm-linux-gcc –v,会出现如下信息,这转载 2014-01-08 09:31:04 · 824 阅读 · 0 评论 -
第一章 UNIX、Linux和GNU简介
1.Linux社区支持自由软件的概念,即软件本身不应受限,它们应遵守GNU(GNU是GNU’s notUNIX的递归缩写)通用公共许可证(GPL)。2.Linux应用程序表现为两种特殊类型的文件:可执行文件(类windows下的.exe文件)和脚本文件(类似于windows下的.dat批处理文件)。3.Linux和UNIX一样,使用冒号分隔PATH变量里的条目,而不是像MS-DOS和Wi原创 2014-01-03 21:49:24 · 670 阅读 · 0 评论 -
Linux 软件系列之七——标准IO操作
1.标准的I/O库实际上是带有缓存的I/O;标准I/O库及其头文件stdio.h为底层I/O 系统调用提供了一个通用的接口;在标准I/O库中,与底层文件描述符对应的是指向数据结构FILE的指针。2.不带缓存IO和带缓存IO的区别linix对IO文件的操作分为不带缓存的IO操作和标准IO操作(即带缓存)。1)标准IO库的主要目的是提供高效的、扩展的和快捷的文件访问方式。2原创 2014-01-03 21:48:35 · 875 阅读 · 0 评论 -
Linux 软件系列之八——父子进程
1.ps –e:查看当前在执行的进程。例如:1505 tty1 00:00:00 getty。1505:进程号;tty1:运行于tty1终端上;00:00:00:运行时间;getty:进程名字。2.进程定义:进程就是一个程序执行的过程,它是一个动态的概念。进程和程序的区别:程序是指一段完成一定功能的代码,程序作为一个系统资源是永久存在的。它是静态的概念。进程是程序从代码的原创 2014-01-03 21:48:38 · 768 阅读 · 0 评论 -
Linux 软件系列之九——exec函数族和system函数调用
1.exec函数族可以实现在一个进程中启动另一个程序的功能。系统内核会使用新的程序替换原有进程中使用的程序。开始新程序的执行。新进程和原有的进程号相同。调用exec函数后,代码段中的内容被新进程的代码替换,接着更新堆栈段和数据段。2.exec函数族说明:为什么一直说exec函数族呢?因为,在Linux中,并不存在exec这个函数,而是一组以exec开头的函数。软件系列之九鈥斺攅xec函数族原创 2014-01-03 21:48:40 · 2433 阅读 · 0 评论 -
Linux 软件系列之十一——进程间通信
1.管道的定义:管道就是把一个进程的输出连接到另一个进程的输入。管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是单独构成一种文件系统,并且只存在于内存中。注意:如果A端向管道写入数据,然后关闭管道,B端打开管道,那么数据已经不存在。管道分为两种:有名管道和无名管道无名管道适用于父子进程或兄弟进程之间的通信(具有亲缘关系的进程之间通信)。有名管原创 2014-01-03 21:48:44 · 638 阅读 · 0 评论 -
Linux 软件系列之十二——线程编程
1.线程是进程中程序执行的最小单位。是并发执行的多道执行路径,他们共享一个进程的资源。线程通常都是在一个进程中创建的。线程不能独立于进程单独存在。进程是系统中程序执行和资源分配的基本单位。每个进程都有自己的数据段、代码段和堆栈段。2.在Linux中,一般采用pthread线程库实现线程的创建、访问和控制。软件系列之十二鈥斺斚叱瘫喑" TITLE="Linux 软件系列之十二鈥斺斚叱瘫原创 2014-01-03 21:48:46 · 693 阅读 · 0 评论 -
Linux 软件系列之十六——makefile
1.Makefile简介一般来说,无论是C、C++、首先要把源文件编译成中间目标文件。在Windows下也就是.obj 文件,UNIX下是.o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。通过链接生成最终可执行文件。Makefile带来的好处就是——“自动化编译”。一旦写好,只需要原创 2014-01-03 21:48:55 · 737 阅读 · 0 评论 -
Linux 软件系列之十五——C++基础
1.作用域和可见性作用域:作用域是标示符在程序中有效的范围。可以引用的范围。作用域分为:局部作用域(块作用域),函数作用域,函数原型作用域,文件作用域和类作用域。局部作用域:当标识符的声明出现在由一对花括号所括起来的一段程序(块)内时,该标示符的作用域从声明点开始,到块结束为止,该作用域的范围具有局部性。{inta;a++;}特例:for(int i=0;i函数作用域:标号是唯原创 2014-01-03 21:48:53 · 595 阅读 · 0 评论