Linux
文章平均质量分 61
宛城学子
这个作者很懒,什么都没留下…
展开
-
linux中硬链接和符号链接的区别
在实际应用中硬链接和符号链接(即软链接)很难区分,但它们的确是有区别的:硬链接,只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区);符号链接,可以应用于文件,而且可以应用于目录和可跨文件系统(分区);这是它们在应用上的区别; 底层的区别:当我们创建了一个文件的硬链接时,硬链接会使用和文件相同的inode号,此时我们发现,原来的文件的inode连接数由最初的1变为转载 2013-08-05 12:49:19 · 749 阅读 · 0 评论 -
/dev/tty /dev/ttyS0 /dev/tty0区别
1、串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号转载 2013-11-07 11:32:31 · 1096 阅读 · 0 评论 -
通过VM Workstation内的Linux系统和开发板的串口连接出现的问题
想通过USB转串口设备把虚拟机和开发板连接,出现了错误。在VM虚拟机内Linux系统和开发板连接,在Windows下安装USB转串口驱动,改为COM1,然后在虚拟机设置中添加一个串口设备,检测连接到COM1。启动时出现以下错误:原创 2013-11-07 22:40:46 · 3503 阅读 · 0 评论 -
开发板和Linux系统挂载报错(mount: RPC)
PC OS:fedora 13开发板:Tq2440开发板内核:linux-2.6.36开发板文件系统:yaffs2 PC端设置:重启nfs服务“service nfs restart”挂载命令:mount -t nfs -o nolock 192.168.1.106:/root/tq2440 /mnt/nfs或者:mount -t n原创 2013-11-08 20:18:06 · 1296 阅读 · 0 评论 -
数据段、代码段、堆栈段、BSS段的区别
5个数据段 进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的转载 2013-11-10 08:35:17 · 610 阅读 · 0 评论 -
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
centos 安装mysql出现这个错误,实在困扰人,这两天安装了两个系统的,都不知道什么时候怎么解决的,第二次又重新照解决方法在这里写一下,方便以后用下面是找的别人的解决方式,我是用yum安装的,可能会和大神们的有所不同,后面都有注释,最下面还有我操作的正确的步骤和显示的信息,这个解决方式应该算比较友好了。实在不行的童鞋,教你绝招,先卸载干净再装一次,卸载干净很重要的,具体的问搜索引转载 2013-12-13 23:56:49 · 622 阅读 · 0 评论 -
一个经典的文件拷贝程序
今天用到文件复制,总是想不起来这个代码具体怎么写的了,特此记下来,以后不要忘记。 #include #include #include #include #include #define BUFFER_SIZE 1024 int main(int argc,char **argv) { int from_f转载 2013-12-30 17:26:03 · 1094 阅读 · 0 评论 -
深入理解C/C++混合编程
本次实验是C++和C语言混合编程,但是转载 2014-04-29 15:56:20 · 743 阅读 · 0 评论 -
大端法、小端法、网络字节序
关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endia转载 2014-05-06 06:47:53 · 747 阅读 · 0 评论 -
linux内核之文件系统
本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文章实在太精彩了。最后还是鼓足勇气决定把整理的资料增加了一点自己的理解写下来,主要目的是让各位高手看看我的理解是否正确,另外就是备忘。 1、如转载 2014-06-11 18:18:11 · 486 阅读 · 0 评论 -
解析 Linux 中的 VFS 文件系统机制(根文件系统的由来)
http://os.51cto.com/art/200803/67283_4.htm◆1. 摘要 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统转载 2014-06-11 19:15:56 · 628 阅读 · 0 评论 -
从一个简单的时间片轮转多道程序内核代码看操作系统如何运行
上了网易云课堂MOOC的《Linux内核代码分析》这门课,学到了很多知识,现在做博文记录第二次试验。试验要求:完成一个简单的时间片轮转多道程序内核代码,需要仔细分析进程的启动和进程的切换机制,总结部分需要阐明自己对“操作系统是如何工作的”理解。本次试验使用的工具是QEMU。QEMU是一套由Fabrice Bellard所编写的以GPL许可证分发源码的模拟处理器,在GNU/Lin原创 2015-03-15 20:43:36 · 1373 阅读 · 1 评论 -
通过反汇编代码探究计算机运行过程
在线学习了Mooc的《计算机内核分析》课程,为了探究计算机运行过程,现做博文记录实验过程。首先打开虚拟机中的linux环境,输入C语言代码:int g(int x){ return x + 3;}int f(int x){ return g(x);}int main(void){ return f(8) + 1;}保存为main.c文原创 2015-03-08 12:35:56 · 604 阅读 · 0 评论 -
通过反汇编代码探究计算机运行过程
在线学习了Mooc的《计算机内核分析》课程,为了探究计算机运行过程,现做博文记录实验过程。首先打开虚拟机中的linux环境,输入C语言代码:int g(int x){ return x + 3;}int f(int x){ return g(x);}int main(void){ return f(8) + 1;}保存为main.c文原创 2015-03-08 12:44:45 · 636 阅读 · 0 评论 -
通过反汇编程序观察计算机执行过程
在线学习了Mooc的《计算机内核分析》课程,为了探究计算机运行过程,现做博文记录实验过程。首先打开虚拟机中的linux环境,输入C语言代码:int g(int x){ return x + 3;}int f(int x){ return g(x);}int main(void){ return f(8) + 1;}保存为main.c文原创 2015-03-08 12:41:35 · 530 阅读 · 0 评论 -
Linux多线程,线程的分离与结合
线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用转载 2013-11-19 09:30:38 · 791 阅读 · 0 评论 -
linux 共享内存--System V共享内存
1)用ftok()函数获得一个ID号.应用说明:在IPC中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。这个在IPC的环境中十分的重要,比如说,服务器创建了一个消息队列,等待客户机发送请求。那么如何创建或者打开已有的消息队列呢?一般而言,我们对于服务器使用的路径和项目id(proj_id)是已知的,所以客户机可以获取相同的key来打开 消息队列并进行操作。函数原转载 2013-11-16 21:15:00 · 1067 阅读 · 0 评论 -
linux shell数据重定向(输入重定向与输出重定向)详细分析
在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分转载 2013-08-16 19:06:30 · 861 阅读 · 0 评论 -
关于linux系统bash shell编程中开头#!/bin/bash的理解
在shell编程中,shell脚本开头第一句通常是#!/bin/bash,关于本句的理解,网上存在争论,今天我做了点实验,结果证明本句没有任何意思,只是编程人员的一种规范化的编程格式。"#"这个符号在shell脚本中是注销符号后面语句的意思,我编写了如下一段代码,放在test.sh文件中,如下://*******test.sh******#slz//*******e原创 2013-09-06 23:48:40 · 3580 阅读 · 1 评论 -
系统调用与API的区别
1.为什么用户程序不能直接访问系统内核模式提供的服务? 在linux中,将程序的运行空间分为内核与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程序不能访问内核数据,也无法使用内核函数。 2.什么是系统调用?答:系统调用就是一种特殊的接口。通过这个接口,用户可以访问内核空间。系统调用规定了用户进程进入内核的具体位置。 具体转载 2013-09-07 19:01:01 · 752 阅读 · 0 评论 -
Linux root忘记密码如何登陆-详解
Linux root用户忘记密码如何登陆如果ROOT用户忘记密码如何实现登陆呢?答案就是用单用户模式进入系统后,直接用PASSWD更改密码.如何来实现呢?以下以redhead linux为例子来说明以下有步骤:1、启动后进入GRUB界面,选择REA HAT ENTERPRISE LINUX AS-UP (2.6.9-42.EL),然后按住E键进入编辑界面。转载 2013-09-11 10:51:27 · 3492 阅读 · 0 评论 -
安装了内核模块,但是没有打印信息的解决
今天将编译好的内核模块hello.ko进行安装insmod hello.ko,但是本来应该有的打印信息hello却没有打印。lsmod发现内核模块已经安装了,后来在网上查找,如下解释的很好:执行make 我们可以看到生成了一个hello.o的内核模块,我们想通过这个模块在插入内核的时候输出 "hello.word-th转载 2013-09-11 21:01:18 · 3943 阅读 · 0 评论 -
cannot exec `cpp0': No such file or directory
[转载]arm-linux-g++: installation problem, cannot exec `cpp0': No such file or directory arm-linux-g++: installation problem, cannot exec `cpp0': No such file or directory这是由于没有把arm-linux-gc转载 2013-09-12 14:06:14 · 1608 阅读 · 0 评论 -
Makefile中=与:=的区别
先看下面的Makefile:#exampleB := $(A)A = laterall: @echo $(B) 执行make命令,我们发现什么都没输出,我们将第3行的:=换成=。#exampleB = $(A)A = laterall: @echo $(B)执行make,输出later。转载 2013-09-11 19:46:09 · 884 阅读 · 0 评论 -
u-boot-2010-06在mini2440上的移植
本人最近想移植smdk6410的u-boot,弄了几次不成功,卡住了,网上搜了一些资料,以备不时之需,有会移植的大神还请叫我两招。1.1 移植环境介绍U-boot版本:u-boot 2010-6Linux平台:虚拟机下Fedora 13交叉编译工具:gcc-4.4.3arm开发板:mini2440(CPU:S3C2440 ,SDRAM:64M,Nor Flash:2转载 2013-09-15 20:40:13 · 767 阅读 · 0 评论 -
Fedora 14设置sudo
[linus@beauty ~]$ su root密码:[root@beauty linus]# vim /etc/sudoers 在root 下面添加linus ALL=(ALL) ALL,linus是我的用户名,把它改成你的用户名。## Allow root to run any commands anywhere root ALL=(ALL) ALLlinus转载 2013-09-20 23:50:26 · 621 阅读 · 0 评论 -
Linux Socket编程(不限Linux)
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型转载 2013-09-21 23:52:45 · 493 阅读 · 0 评论 -
Linux的Find使用
在当前目录和子目录下查找文件MyCProgram.c# find . -name "MyCProgram.c" 查找文件且忽略大小写# find . -iname "MyCProgram.c" 查找不包含MyCProgram.c的文件find . -maxdepth 1 -not -iname "MyCProgram.c" 在/下3到5级子目录中转载 2013-09-22 19:59:18 · 663 阅读 · 0 评论 -
关于用户级线程和内核级线程的搜集和理解
1.内核级线程:(1)线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程。(2)这些线程可以在全系统内进行资源的竞争。(3)内核空间内为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。在一定程度上类似于进程,只是创建、调度的开销要比进程小。有的统计是1:102.用户级线程:(1)用户转载 2013-09-26 14:17:56 · 976 阅读 · 0 评论 -
Linux Gcc常用命令
Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年转载 2013-10-12 16:41:31 · 669 阅读 · 0 评论 -
标准Makefile模板
典型的Linux C/C++的makefile写法,其它的应用可根据此template修改(注意每一行的前面若有空格,是tab,不是space) 1#Source file(源文件) 2SRC = ThreadQueue.cpp 3 4#Object file(目标文件) 5OBJ = $(SRC:.cpp=.o) 6 7#Output execution file(输原创 2013-10-26 18:00:17 · 1472 阅读 · 0 评论 -
Linux中的EAGAIN含义
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞起来等待数据准备就绪返回,re转载 2013-11-15 22:06:01 · 770 阅读 · 0 评论 -
通过反汇编程序观察计算机执行过程
在线学习了Mooc的《计算机内核分析》课程,为了探究计算机运行过程,现做博文记录实验过程。首先打开虚拟机中的linux环境,输入C语言代码:int g(int x){ return x + 3;}int f(int x){ return g(x);}int main(void){ return f(8) + 1;}保存为main.c文原创 2015-03-08 13:48:46 · 906 阅读 · 0 评论