
linux 基础知识
文章平均质量分 81
newnewman80
这个作者很懒,什么都没留下…
展开
-
petalinux 编译,源码编译
1. 测试环境Ubuntu 16.04 PetaLinux 2019.1 PetaLinux 2019.1 ZCU106 BSP ZCU1062. PetaLinux介绍PetaLinux是Xilinx基于Yocto推出的Linux开发工具。Yocto是业界主流的Linux发行版的构建工具,它不仅可以从源代码编译Linux 内核,还可以编译Linux发行版必须的数以千计的的应用程序,功能非常强大。Yocto的出现,大幅度降低了构建嵌入式Linux发行版的难度。万物总有两面性。虽然PetaL转载 2020-05-11 10:27:29 · 5051 阅读 · 1 评论 -
__attribute__机制
原帖:http://blog.chinaunix.net/u2/69947/showart_1102422.html摘要:在学习linux内核代码及一些开源软件的源码,经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。-----------------------------------------转载 2011-11-07 13:05:58 · 540 阅读 · 0 评论 -
使用3CDaemon 进行ftp 传输文件 (linux->开发板) 的方法
1, 下载打开3CDaemon.EXE 该软件可以支持tftp ftp等服务,界面如下: 2 添加新的用户,设置密码和ftp文件夹 3 在板子上设置ip>ipconfig eth0 192.168.1.11 4 确认能够和linux 通信>ping 192.168.1.12 //主机ip 5原创 2011-11-25 09:22:32 · 21820 阅读 · 0 评论 -
SVN使用方法
、将文件checkout到本地目录svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co2、往版本库中添加新的文件 svn addfile 例如:svn add test.php(添加test.php) svn add转载 2011-11-03 14:39:37 · 893 阅读 · 0 评论 -
C 中常用到的宏
C 中常用到的宏有: 01: 防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif02: 重新定义一些类型防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. *转载 2011-11-22 10:24:40 · 940 阅读 · 0 评论 -
kobject与sysfs
2.6内核增加了一个引人注目的新特性----统一设备模型。 设备模型提供了一个独立的机制专门来表示设备,并描述其在系统中的拓补结构。 1,kobject 设备模型的核心部分就是kobject, 它由struct kobject结构体表示,定义于中。kobject提供了诸如引用计数、名称和父指针等字段。具体结构如下: struct kobject { const char原创 2010-11-25 14:04:00 · 701 阅读 · 0 评论 -
open和fopen的区别:
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则转载 2011-11-02 14:17:05 · 646 阅读 · 0 评论 -
Linux下Socket编程
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传转载 2011-11-01 09:24:12 · 474 阅读 · 0 评论 -
Linux find 命令
Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用find 命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行操作。本文的目的是,通过概述 find 命令的用途和潜能,简化该命令的学习和使用。同时转载 2011-11-16 13:13:54 · 802 阅读 · 0 评论 -
MIPS 地址空间
MIPS处理器对地址空间的使用和处理与传统的CISC CPU有着微妙的不同。先看一些基本的原则。在MIPS CPU里,你写在程序中的地址绝不会和芯片的物理地址相同(有时变化很小,但并不相同),我们分别称之为程序地址和物理地址。一个MIPS CPU可以运行在两种特权级之一上转载 2011-10-13 09:58:19 · 2004 阅读 · 0 评论 -
mkimage制作linux内核映像----uImage是怎么制作的
bootm命令是用来引导经过u-boot的工具mkimage打包后的kernel image的,什么叫做经过u-boot的工具mkimage打包后的kernel image,这个就要看mkimage的代码,看看它做了些什么,虽然我很希望大家不要偷懒,认真地去看看,但是我知道还是有转载 2011-08-03 16:29:21 · 900 阅读 · 0 评论 -
linux终端设置
在本文中我以 Bash shell 为例。因为在不同的终端里的转义序列不完全相同, 所以在本文中我使用的是 ANSI 终端。 shell 彩色配置出现在 bash 的个人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通过bashrc 里面的 PS1 变量来设置提示符的外观。一般默认的情况下.bashrc里面应该是:转载 2011-06-29 15:43:00 · 2459 阅读 · 0 评论 -
多线程编程
前言<br />线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:<br />是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:<br />1)有一int型全局变量g_Flag初始值为0;<br />2) 在主线称中起动线程1,打印“this is thread1”,并将g_Flag设置为1<br />3) 在主线称中启动线程2,打印“this is thre转载 2011-04-15 22:00:00 · 948 阅读 · 0 评论 -
VI详细命令
光标控制命令命令 光标移动h或^h 向左移一个字符j或^j或^n 向下移一行k或^p 向上移一行l或空格 向右移一个字符G 移到文件的最后一行nG 移到文件的第n行w 移到下一个字转载 2011-12-21 09:03:55 · 740 阅读 · 0 评论 -
Linux中/proc目录下文件详解(一)
Linux中/proc目录下文件详解(一)声明:可以自由转载本文,但请务必保留本文的完整性。作者:张子坚email:zhangzijian@163.com说明:本文所涉及示例均在fedora core3下得到。 --------------------------------------------------------------------------------转载 2012-02-14 15:59:09 · 590 阅读 · 0 评论 -
RZ,SZ命令的安装配置
RZ,SZ命令的安装配置参考:http://hi.baidu.com/dkf198314/blog/item/d76e9e3b2bb9a6f83b87cee1.htmlhttp://bbs.phphubei.com/thread-5466-1-1.htmlhttp://hi.baidu.com/shineastdh/blog/ite ... 3ab6d.html1,搭建环境转载 2012-09-12 09:21:54 · 5115 阅读 · 1 评论 -
ubuntu18.04 nfs server
mount.nfs: requested NFS version or transport protocol is not supportedsudo apt updatesudo apt install nfs-kernel-serverOnce the installation is completed, the NFS services will start automat...转载 2019-09-25 15:41:44 · 487 阅读 · 0 评论 -
tmpfs在嵌入式linux中的使用
tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储 暂存的文件。用一个简单的 mount 命令就可以创建 tmpfs 文件系统了。# mount tmpfs /mnt/tmpfs -t tmpfs执行这个命令之后,一个新的 tmpfs 文件系统就安装在 /mnt/tmpfs转载 2017-06-02 08:51:28 · 1397 阅读 · 0 评论 -
ubuntu 建立本地svn
目的: 建立本地个人使用svn平台: ubuntu12.04步骤: 1) sudo apt-get install subversion 2) 创建代码库 (建议进入root权限操作)# mkdir /home/svn# cd /home/svn# mkdir myProject# chown -R root:subversion myProjec原创 2013-08-15 13:16:06 · 2913 阅读 · 0 评论 -
strincmp
static INLINE int strincmp(const char *p1, const char *p2, int n){ int c1 = 0, c2; while ( n && *p1 && *p2 ) { c1 = *p1 >= 'A' && *p1 c2 = *p2 >= 'A' && *p2转载 2013-07-03 13:52:49 · 1118 阅读 · 0 评论 -
printf printk 颜色设置
有时候为了实现在终端输出的时候字体能够带颜色,并且可以产生简单的闪烁的功能,特写了下列的代码实现hello world的带颜色的输出,并且每过一秒产生一个闪烁的功能.(注:具体还得判断终端类型)CODE:#include#include#include#includeint flag = 0;void sig_int(int signum)转载 2013-06-07 09:40:51 · 2643 阅读 · 0 评论 -
arm移植samba
一、编译 1、从http://www.samba.org/samba/ftp/old-versions/上下载Samba 3.0.23.tar.gz的软码包,解压; 2、环境 1)在fedora 9的 vi /root/.bash_profile 中加:PATH=$PATH:/usr/local/arm/4.4.3/bin:$HOME/bin2)运行configure:转载 2012-11-27 11:56:35 · 2926 阅读 · 0 评论 -
字符串分割 strsep 函数
原型:char *strsep(char **stringp, const char *delim); 功能:分解字符串为一组字符串。从stringp指向的位置起向后扫描,遇到delim指向的字符串中的字符后,将此字符替换为NULL,返回stringp指向的地址。它适用于分割“关键字”在两个字符串之间只“严格出现一次”的情况。[1]如果“关键字”在字符串之间连续出现,可使用如下技巧解决:转载 2012-11-09 10:50:50 · 2696 阅读 · 1 评论 -
read()函数简介
read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位置向后移转载 2012-11-09 09:52:00 · 1838 阅读 · 0 评论 -
linux下svn命令大全
linux下svn命令大全.svnadmin create path 创建一个新的版本库,(path为你想创建版本库的目录路径,如创建版本库目录为cellsms:svnadmin create/home/c7mon/svn/cellsms)。 2.svn mkdir URL 创建目录,向版本库新添加一个目录,(立即提交,所以需要日志信息):如新增trunk目录:svn mkdi转载 2012-10-25 10:14:06 · 7893 阅读 · 0 评论 -
busybox 交叉编译
1, 下载busybox,http://www.busybox.net/ 2, 下载arm-linux 交叉编译工具链arm-linux-gcc-3.4.53,进入busybox文件夹,makemenuconfigBusybox Settings ---> Build Options --->原创 2012-09-10 15:44:32 · 7110 阅读 · 0 评论 -
vivi 命令详细
<br />vivi就象DOS一样可以配置板子的硬件资源,DOS有命令行,vivi也有,接下来我们就熟悉一下这些命令,感觉命令有一些多,不过经常用到的不是很多,大家只要多操作几次就会非常上手拉.<br />4.1 part命令<br />·part show 显示分区信息<br />·part add partname part_start_addr part_leng 0 添加分区<br />·part del partname 删除分区<br />·part save 保存part 分区信息<br />转载 2011-03-29 10:37:00 · 1182 阅读 · 0 评论 -
qtopia文件系统 nfs 挂载启动出错 unable to mount root fs on unknown-block
mini2440 nfs 挂载文件系统 unable to mount root fs on unknown-block(2,0)原创 2011-03-29 14:17:00 · 1482 阅读 · 0 评论 -
tcp协议 编程实例
<br />====================server.c===================<br />#include<stdio.h><br />#include<stdlib.h><br />#include<string.h><br />#include<unistd.h><br />#include<sys/types.h><br />#include<sys/socket.h><br />#include<netinet/in.h><br />#include<arpa/inet.原创 2010-10-22 16:07:00 · 615 阅读 · 0 评论 -
静态库 动态库创建和链接
<br />=======================库=========================<br /> <br />静态链接库:<br />1、编译生成目标文件<br />gcc -c struct.c <br />2、创建静态库<br />ar cqs libstruct.a struct.o (顺序不能乱) <br />3、链接静态链接库,生成可执行文件<br />gcc main.c -static -L. -ltest -o main <br />动态链接库:<br />1、编译转载 2010-10-15 09:01:00 · 803 阅读 · 0 评论 -
makefile 自动生成makefile 步骤
<br />====================MAKE FILE ======================<br />1)变量定义: obj=a.o b.o c.o 应用时$obj<br />2)格式:<br /> 目标:依赖<br /> 命令<br /> main.o : main.c<br /> gcc –c main.c<br />3)$^ 所原创 2010-09-20 18:18:00 · 642 阅读 · 0 评论 -
管道和重定向
<br />=========================管道和重定向==================<br />‘ | ’管道: 管道前的输出作为管道后的输入<br /> 如: ls –l|grep test.c //显示test.c 的信息<br /> <br />2, “ > ” 重定向: :<br />输出重定向 输出的位置定位于指定文件<br />如: ls > abc.c 显示位置到abc.c<原创 2010-09-16 16:16:00 · 483 阅读 · 0 评论 -
tftp/nfs /samba / ssh / http 服务设置
==================tftp======================tftp 文件只能下载指定目录下的文件指定目录下的目录不能下载配置文件目录: /etc/xinetd/d/tftpsocket_type = dgram protocol = udp wait = yes user = root s原创 2010-09-16 15:47:00 · 823 阅读 · 0 评论 -
linux vsftp 设置
<br />首先 设置ip地址:<br /> <br />vim /etc/sysconfig/network-scripts/ifcfg-eth()<br /> <br /><br /> BOOTPROTO=static // 静态获得ip<br /> IPADDR=192.168.0.199 //设置ip地址<br /> GATEWAY=192.168.0.1 //设置网关<br /> NETMASK=255原创 2010-09-15 18:04:00 · 616 阅读 · 0 评论 -
linux 学习- 编程基础之多线程编程(创建多线程)
#includeint pthread_create (*tidp,const pthread_attr_t*attr,void*(*start_rtn)(void),void *arg)tidp: 线程IDattr: 线程属性,通常为空start_rtn: 要执行的函数arg: start_rtn 的参数编译: -lpthread#gcc filename -lpthread#include #include void *myThread1(void) { int i; for (i原创 2010-06-23 16:42:00 · 740 阅读 · 0 评论 -
linux 学习- 编程基础之时间编程
头文件: time.h#include #include int main(void){ struct tm *local; time_t t; /* 获取日历时间 */ t=time(NULL); /* 将日历时间转化为本地时间 */ local=localtime(&t); /*打印当前的小时值*/ printf("Local hour is: %d/n",local->tm_hour); /* 将日历时间转化为格林威治时间 */ lo原创 2010-06-22 10:24:00 · 521 阅读 · 0 评论 -
linux 学习- 编程基础之makefile
Makefile 文件描述整个工程的编译,连接格式:目标 : 依赖 命令eg:main.o:main.c gcc -c main.c所谓目标就是最终想要得到的目标依赖相当于原材料命令就是得到材料的方法-f 指令系统默认makefile文件名为 Makefile 或者makefile 要自定义Makefile名字时mv Makefile Makefile1make -f Makefile1同样执行了自定义的Makefile1.PHONY : cleanclean: rm -f h原创 2010-06-18 14:41:00 · 582 阅读 · 0 评论 -
linux 学习- 编程基础之uboot移植
<br />uboot.bin 生成:<br />1. 对board配置<br /> $make smdk2410_config<br />2, 进行编译生成u-boot.bin:<br /> $make CROSS_COMPILE=arm-linux- //完整的arm-liunx的目录<br /><br />Uboot命令<br />1,help<br /> 查看所有命令<br />2,printenv<br /> 查看环境变量<br />3, setenv<br /> 修改增加环境变量<转载 2010-07-15 15:48:00 · 997 阅读 · 0 评论 -
linux 学习- 编程基础之内核模块开发
内核模块程序:#include#includestatic int hello_init(void){ printk(KERN_WARNING"HELLO,WORLD/n"); return 0;}static int hello_exit(void){ printk(KERN_INFO"GOODBYE,WORLD/n");}module_init(hello_init); //装载模块函数module_exit(hello_exit); //卸载模块函数编译模块函数:makefile可以作原创 2010-06-30 16:36:00 · 579 阅读 · 0 评论 -
UDP服务器程序实现echo功能
<br />//服务器:<br />#include<stdio.h><br />#include<stdlib.h><br />#include<string.h><br />#include<unistd.h><br />#include<sys/types.h><br />#include<netinet/in.h><br />#include<arpa/inet.h><br />#define N 100<br />typedef struct sockaddr SA;<br />int main(原创 2010-10-27 11:15:00 · 2977 阅读 · 0 评论