Linux系统
梦想与坚持
勤能补拙是良训,每个人生来都不是优秀的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux下/proc文件夹内容详解
Linux下/proc目录简介1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所转载 2014-06-16 09:35:53 · 3190 阅读 · 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 · 803 阅读 · 0 评论 -
第十章 POSIX线程
1.线程的定义在一个程序中的多个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的一个控制序列。当进程执行fork调用时,将创建出该进程的一份新副本。这个进程拥有自己的变量和自己的PID,它的时间调度也是独立的,它的执行(通常)几乎完全独立与父进程。当在进程中创建一个新线程时,新的执行线程将拥有自己的栈(因此也有自己的局部变量),但与它的创建者共享全局变量、文件描述符、原创 2014-01-03 21:49:53 · 721 阅读 · 0 评论 -
第一章 嵌入式操作系统_基础知识
1.自从清华大学邵贝贝教授将Jean J.Labrosse的“µC/OS-II:the RealTime Kernel”翻译后,在国内掀起了µC/OS-II的热潮。2.其他的嵌入式操作系统VxWorksVxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源及实时的任务间通信。QNXQNX是一款实时操原创 2014-01-03 21:50:01 · 998 阅读 · 0 评论 -
volatile关键字
就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如转载 2014-01-24 08:59:37 · 726 阅读 · 0 评论 -
makefile中的三种变量
1.递归展开式变量第一种风格的变量是递归方式扩展的变量。这一类型变量的定义是通过“=”或者使用指示符“define”定义的。这种变量的引用,在引用的地方是严格的文本替换过程,此变量值的字符串原模原样的出现在引用它的地方。如果此变量定义中存在对其他变量的引用,这些被引用的变量会在它被展开的同时被展开。就是说在变量定义时,变量值中对其他变量的引用不会被替换展开;而是变量在引用它的地方替换展开的同时转载 2014-02-26 20:13:52 · 4203 阅读 · 1 评论 -
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 · 1082 阅读 · 0 评论 -
gstreamer的gst-launch常用插件
gstreamer很牛逼,让多媒体应用程序的开发变的更加简单,但是,也正是由于gstreamer对很多细节的隐藏,使得我们很容易把多媒体编程想得过于简单。关于gst-launch的使用,这里不做教学,初次接触者可以自行google。然后,请准备一个摄像头,下面我举的例子,都会用到。先罗列出一堆例子--gst-launch-0.10 v4l2src ! ximagesink转载 2014-03-03 17:10:29 · 4207 阅读 · 0 评论 -
gstreamer的gst-inspect 和gst-launch
用gstreamer架构做对媒体开发时,gst-inspect 和gst-launch是两个非常使用的小工具,前者是用于查询库中已经包含的所有element以及他们的详细信息,后者用于快速构建一条pipeline,这个命令最爽,因为只要一句话,你就可以感受到播放的快感。废话不多说,直接看示例:1 gst-inspect用法:首先进入命令行下,然后键入:gst-inspect转载 2014-03-03 17:12:02 · 2557 阅读 · 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 · 3960 阅读 · 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 · 856 阅读 · 0 评论 -
鸟哥的linux私房菜整理(一)
1.磁盘第一个扂区主要记录了两个重要的信息,分别是:主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 bytes分割表(partition table):记录整颗硬盘分割的状态,有64 bytesMBR是很重要的,因为当系统在开机的时候会主劢去读取这个区块内容,这样系统才会知道你程序放在哪里且该如何进行开机。分割表就叧有64原创 2014-04-19 21:59:39 · 1391 阅读 · 0 评论 -
samba服务器实现ubuntu和windows之间共享
安装Ubuntu samba服务器:sudo apt-get install sambasudo apt-get install smbfs原创 2014-06-04 23:10:25 · 934 阅读 · 0 评论 -
vmtools的安装
第一步:进入系统后,点击虚拟机上的安装vmware tools,回到桌面回看到一个vmware tools的cdrom图标。第二步:打开它,复制“vmwaretools....tar.gz”,打开文件系统,打开home文件夹,打开当前用户为名的文件夹,粘贴vmwaretools....tar.gz,同时解压此文件“到此处”。第三步:在此文件夹空白处点击右键,点击属性,在点击窗口中的“权限”,把转载 2014-06-04 23:58:17 · 812 阅读 · 0 评论 -
linux下ARM交叉编译器的安装
1.下载arm-linux-gcc编译器。2.将下载好的编译器压缩文件拷贝到linux中,注意不要在windows中解压,因为RAR解压工具解压gzip压缩工具压缩的文件可能会出问题。尽量将编译器的压缩文件放置到根目录下(其实也不一定是要根目录,但是我自己使用过程中发现有一个厂家提供的编译器没有安装在指定的位置,编译器提示库找不到),这样做的目的是为了尽量减少麻烦。拷贝好之后,在终端使用:原创 2014-06-14 17:07:44 · 1650 阅读 · 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 · 1700 阅读 · 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 · 945 阅读 · 0 评论 -
优先级翻转
uCos是一个典型的按照优先级调度的操作系统,优先级高的任务先运行,优先级低的任务后运行,然而在任务的调度过程中可能会出现优先级翻转的情况。在嵌入式系统的应用中,实时性是一个重要的指标,而优先级翻转是影响系统实时性的重要问题。例如:有优先级为A、B和C三个任务,优先级A>B>C,任务A,B处于挂起状态,等待某一事件发生,任务C正在运行,此时任务C开始使用某一共享资源S。在使用中,任务A等待事件原创 2014-09-05 12:12:39 · 969 阅读 · 0 评论 -
死锁
死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。” 上面是比较学术的解释,通俗一点的理解可以这原创 2014-09-05 11:25:26 · 869 阅读 · 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 · 3489 阅读 · 0 评论 -
如何减少缺页异常
如何减少换页错误?()1. 进程倾向于占用CPU2. 访问局部性(localilty of reference)满足进程要求3. 进程倾向于占用I/O4. 使用基于最短剩余时间(shortest remaining time)的调度机制5. 减少页大小 换页错误,一般称为缺页异常。每个进程都有一段自己的独立的虚拟内存空间(在32位的linux系统中为3G),但原创 2014-09-07 15:09:42 · 4739 阅读 · 0 评论 -
自旋锁
自旋锁 自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,即在标志寄存器中关闭/打开中断标志位,不需要自旋锁)。 何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只转载 2014-09-06 17:16:44 · 797 阅读 · 0 评论 -
arm-linux内核配置文件Kconfig语法
当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig。Kconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置件.config。转载 2014-06-10 16:29:13 · 1200 阅读 · 0 评论 -
Linux内核态与用户态数据交换方式(一)
在Linux下用户空间与内核空间数据交换的方式一 本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。 本文是该系列文章的第一篇,它介绍了内核启动转载 2014-09-22 09:27:43 · 5495 阅读 · 0 评论 -
Linux内核态与用户态数据交换方式(二)
本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、 sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使 用。本文是该系列文章的第二篇,它介绍了procfs、seq_file、debugfs和relayfs,并结合给出的例子转载 2014-09-22 09:55:49 · 1424 阅读 · 0 评论 -
第三章 裸机_第一个裸机程序(下)
1.在上一讲中,已经可以用make生成我们自己的二进制文件,现在需要将二进制文件下载到S3C2440中去运行。首先需要做的就是连接J-link,然后配置AXD。2.首先启动AXD Debugger:在XP的开始菜单中选择 程序->ARM Developer Suite ->AXD Debugger. 第一个裸机程序(下)" TITLE="第三章 第一个裸机程序(下)" />启动AXD原创 2014-01-03 21:50:14 · 1114 阅读 · 0 评论 -
linux进程调度方法简述
在 Linux2.6 中,仍有三种调度策略: SCHED_OTHER、SCHED_FIFO 和 SCHED_RR。 SCHED_ORHER:普通进程,基于优先级进行调度。 SCHED_FIFO:实时进程,实现一种简单的先进先出的调度算法。 SCHED_RR:实时进程,基于时间片的SCHED_FIFO,实时轮流调度算法。 前者是普通进程调度策略,后两者都是实时进程调度策略转载 2014-09-22 11:10:55 · 1329 阅读 · 0 评论 -
Linux软件系列之六——链接文件
1.linux看起来像是一个分区,实际上不是。2.向一个单元中存入数据的时候,如果存入的数据溢出的话,那么单元里存储的是这个数据的低几位。例如:char test= 10000;那么存入的值是16。因为10000的十六进制值为0x2710,取最低的一个字节,存入a单元中的就是0x10,即16。3.针对溢出的问题,赋值的时候最好采用十六进制形式,这样可以保证赋的值不会超过单元能够存储的值的范原创 2014-01-03 21:48:33 · 762 阅读 · 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 · 1717 阅读 · 0 评论 -
Linux 软件系列之十三——网络基础
1.网络体系结构:网络采用分而治之的方法设计的,将网络根据功能划分成不同的模块,以分层的形式有机组合在一起。每一层可以向上一层提供服务,也可以向下一层提供服务。网络体系结构就是指网络的层次结构和每层所使用的协议的集合。两类非常重要的体系结构:OSI与TCP/IP,也称为参考模型。2.OSI参考模型:(Open System Interconnection ReferenceModel,OSI/原创 2014-01-03 21:48:48 · 718 阅读 · 0 评论 -
Linux 软件系列之十四——网络编程
1.什么是socket:套接字是网络通信中应用程序对应的进程和网络协议之间的接口。是属于传输层的部分。套接字在所有的网络操作系统中都是必不可少的。软件系列之十四鈥斺斖绫喑" TITLE="Linux 软件系列之十四鈥斺斖绫喑" />2.socket的类型流式套接字(SOCK_STREAM) 流式套接字可以提供可靠的,面向连接的通信。流式套接字对应的是TCP协议,TCP协原创 2014-01-03 21:48:51 · 834 阅读 · 0 评论 -
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 · 2022 阅读 · 0 评论 -
第二章 shell程序设计(2)
1.函数形式function_name (){ statements}示例:#!/bin/shfoo(){ echo“Function foo is executing”}echo “script starting”fooecho “script ended”exit 0注意:(1)函数先定义后使用(放在最前面即可)。(2)调用函数时,脚本程序原创 2014-01-03 21:49:28 · 802 阅读 · 0 评论 -
linux常用的几个命令讲解
1.ubuntu中,有些命令前面会加sudo,这是因为大多数情况下用户都是以访客的形式登陆到linux服务器,当执行某些操作的时候需要具备root用户权限才可以执行,所以出现了加sudo这种机制,使得普通登陆用户也可以执行需要root权限的命令。2.当在linux终端中设置了新的IP之后,可能会出现开发板ping不通linux主机了,这个时候需要使用ifconfig命令来先关闭网卡,再打开网卡原创 2013-12-06 20:32:13 · 796 阅读 · 0 评论 -
vi常用命令整总结
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filena转载 2013-12-06 10:14:26 · 678 阅读 · 0 评论 -
通过SecureCRT远程登录虚拟Linux主机的实现方法
1.安装SecureCRT,这个不用多说了。2.确保linux系统打开了SSH服务,我使用的是ubuntu10.4的系统,安装方法是下面的,其他的类似:SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openss原创 2013-12-06 10:10:32 · 4641 阅读 · 1 评论 -
Linux 软件系列之一——分区类型和文件类型
1.Linux下的分区类型(1)/boot:包含了操作系统的内核和在启动系统过程中所要用到的文件。在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面——即1024柱面之前。事实上,那是Lilo(LILO是一个在系统启动时运行的程序,它允许选择用于引导计算机的操作系统,可以用LILO引导几个不同的操作系统,如Linux和M原创 2014-01-03 21:48:22 · 1835 阅读 · 0 评论 -
Linux 软件系列之三——简单命令和inode
1.[root@test root]#:最左边的root显示的是目前使用者的账号,而@之后接的test则是主机名称,至于最右边的root则指的是目前所在的目录,#就是通常所说的提示字符。2.在linux上面实际记录使用者身份的是UID与GID,分别是使用者的号码与群组的号码。举例来说,系统管理员(root)的号码即是0,所以你只要进入/etc/passwd这个档案中,即可看到root有两个原创 2014-01-03 21:48:24 · 955 阅读 · 0 评论 -
Linux 软件系列之二——swap分区
1.查看swap分区的信息可以使用free命令:# free也可以使用cat命令:# cat /proc/swaps也可以使用swapon命令:# swapon -s2.新建/调整swap分区的大小# mkdir swap(不是必须的)# cd swap(不是必须的)dd if=/dev/zero of=swapfile bs=1024 count=1000000//设置swap分原创 2014-01-03 21:48:26 · 784 阅读 · 0 评论 -
Linux 软件系列之十——特殊进程
1.僵尸进程僵尸进程就是指已经终止运行,但还没有被清除的进程。此时,僵尸进程放弃了所有的内存空间,没有任何可执行的代码,也不能被调用,仅仅在进程列表中保留一个位置,记录该进程的退出状态等信息。exit系统调用,它的作用是使进程终止,但也仅仅限于将一个正常的进程变成僵尸进程,并不能将其销毁。执行一个程序的时候:./test &如上输入的话,这个程序会到后台运行,可以用kill杀掉进程,原创 2014-01-03 21:48:42 · 711 阅读 · 0 评论
分享