
操作系统
文章平均质量分 54
Kaiwii
单调,简单
展开
-
socket中read、write、send、recv函数的比较
建立好了TCP连接之后,我们就可以把得到的套接字当做文件描述符来使用,由此,想到了网络程序里面的基本的读写函数read和write函数。Write函数Ssize_t write(int fd,const void *buf,size_t nbytes);Write函数将buf中的nbytes字节内容写入到文件描述符中,成功返回写的字节数,失败返回-1.并设置errno变量。在网络程序中转载 2013-01-25 14:20:12 · 1321 阅读 · 0 评论 -
set $(wc -l $title_file)
These days.i'm learning the shell script for fun.When i read the manual's example like:set $(wc -l $title_file) num_titles=$1 set $(wc -l $tracks_file) num_tracks=$1 And i have the brief转载 2012-03-08 14:21:17 · 1518 阅读 · 0 评论 -
Patch Tips
1. 给源码树加 patch进入源码树的根目录下:cd SRC_DIRpatch -p 1 -p 1 指定忽略的目录个数,如你的patch头为 diff -urN orig/include/linux/module.h tgt/include/linux/module.h,则是对 $SRC_DIR/ 下的 include/linux/modue.h 应用该patch转载 2012-03-07 10:59:13 · 1224 阅读 · 0 评论 -
linux下查看apt-get install命令的默认路径
首先,需要安装一个软件(gdebi),使用以下命令:sudo apt-get install gdebi然后,查看目录(/var/cache/apt/archives),查看你需要弄清楚安装路径情况的软件包:比如我要弄清楚bashdb的具体安装路径:我查看/var/cache/apt/archives后知道,这个安装包的具体名称是:bashdb_4.2.0.6-3_all.de原创 2012-03-07 10:44:08 · 8882 阅读 · 0 评论 -
seq 使用
seq 使用: seq [OPTION]... LASTseq [OPTION]... FIRST LASTseq [OPTION]... FIRST INCREMENT LAST[chengmo@centos5 ~]$ seq 1000 ‘起始默认是 1,间隔默认也是1 [chengmo@centos5 ~]$seq 2 1000 ‘间隔默认是1 [ch转载 2012-03-06 15:04:49 · 1276 阅读 · 0 评论 -
重装Win7sp1后轻松恢复Ubuntu双系统引导
昨天晚上下载Windows7 Sp1 给台式机重装了下Win7系统,我台式机也是Win7+ubuntu双系统模式,重装win7后导致ubuntu引导丢失,所以利用EasyBCD 2.0.2这个软件来恢复,EasyBCD 2.0.2的使用方法很简单,就像上面图片标注的一样添加一个启动项就OK了,如果这种方法对你系统无效你可以换换其他模式,多测试几次肯定有效的。添加后默认的会先启动Win7后启转载 2012-03-06 09:47:53 · 1189 阅读 · 0 评论 -
${parameter:?word} 用法
${parameter:?word} 当parameter指示的参数没有被设值的时候,将会通过标准错误的方式显示word中的语句。参考资料:http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02原创 2012-03-06 15:42:25 · 2667 阅读 · 0 评论 -
exec与文件描述符
在*nux系统中,一般在操作文件时会直接使用文件名,在支持POSIX的各种环境中,提供了一系列用于操作文件的工具,短小精悍却又强大得变态。在shell环境下,还经常文件描述符(正整数)来操作文件。系统默认打开的描述符有3个: 0 - 标准输入 1 - 标准输出 2 - 标准出错所以,只要够斯文(别整太大的数,它不仅难记,而且你不需要),几乎所有的正转载 2012-03-05 10:43:51 · 1495 阅读 · 0 评论 -
linux中shell变量$#,$@,$0,$1,$2的含义解释
增加by Kaiwii:变量说明::表示逻辑的真。比如说在shell中,使用while : do 就相当于JAVA中的while(true)或者while(1)linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID转载 2012-03-05 11:11:11 · 1371 阅读 · 0 评论 -
关于/dev/null及用途
把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而,/dev/null对命令行和脚本都非常的有用.禁止标准输出.1 cat $filename >/dev/null 2 # 文件内容丢失,而不会输出到标准输出.禁止标准错误 1 rm $转载 2012-03-01 10:08:22 · 64101 阅读 · 0 评论 -
初始化0号进程
arch/x86/kernel/head_32.S的336行,进入分页后的内核代码段,执行lss stack_start,%esp指令,立即为进程0建立内核态堆栈。stack_start定义在657行:657 ENTRY(stack_start)658 .long init_thread_union+THREAD_SIZE659 .long __BOOT_D转载 2012-02-29 15:31:53 · 1785 阅读 · 0 评论 -
git
Git 中文教程介绍Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Li转载 2012-02-28 16:12:59 · 838 阅读 · 0 评论 -
SHELL心得-神马的0与1
正如linux中的“/”与wins中的“\”,又如为什么红灯就要停车,绿灯就要要开车。这个问题,没有为什么,只有怎么做。所以,shell中为什么0是真的,又为什么1是假的。就随他去吧原创 2012-03-09 11:41:44 · 852 阅读 · 0 评论 -
SHELL心得-关于变量的使用
1、关于变量的次序问题在脚本中,对于同一个进程来说,没有全局或者局部变量之分。就是説,假如你在一个函数内使用了一个变量,而且在函数以外根本没有这个变量的半点踪迹。但是,只要你曾经调用这个函数,那么在脚本接着的地方,你都可以使用这个变量。具体例子如下:大概描述如上:1、调用了函数#!/bin/shtest(){a="1"return}testecho $a显原创 2012-03-09 11:34:13 · 931 阅读 · 0 评论 -
Debug your shell scripts with bashdb
The Bash Debugger Project (bashdb) lets you set breakpoints, inspect variables, perform a backtrace, and step through a bash script line by line. In other words, it provides the features you expect转载 2012-03-09 11:20:22 · 1302 阅读 · 0 评论 -
linux中fork()函数详解(原创!!实例讲解)
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来转载 2012-09-24 09:53:00 · 1176 阅读 · 0 评论 -
深入理解linux下用户态与核心态切换
Linux将内核程序和基于之上的用户程序分开处理,分别运行在用户态和核心态。以32位x86架构为例,虚拟空间共4G,高地址的1G为系统程序运行的核心栈,低地址的3G空间为用户程序运行的用户栈。如果一个用户程序需要调用底层的系统接口,比如printf, malloc等等诸如libc里面的系统调用函数,那么就需要牵涉到用户态与核心态的两个栈切换问题。所有的系统调用函数都是运行在核心态。在系统调转载 2012-10-06 12:18:58 · 2653 阅读 · 0 评论 -
PV原语小结
PV原语通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。信号量的概念1965年由著名的荷兰计算机科学家Dijkstra提出,其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。有两种实现方式:1)semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;2)semaphore的取值可正可负,负转载 2012-10-06 09:31:59 · 2214 阅读 · 0 评论 -
临界区(Critical section)与互斥体(Mutex)的区别
1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同转载 2012-10-06 08:54:46 · 2304 阅读 · 0 评论 -
从劫匪的行动来看同步、异步、阻塞、非阻塞
劫匪冲进某花园小别墅,端着AK47,向某衰男甩过去一个袋子:说,快,把现金拿出来给我放进去,这个时候劫匪一直跟着衰男去装钱,看钱装满了他就拿走,此时劫匪是阻塞 的,因为劫匪不能干其他的,得看着这个衰男,免得他搞鬼。想象下,如果劫匪等衰男自己去装钱,在钱装满之前,他自己可以到处翻箱倒柜,找点值钱的首饰黄金之类的,那么这个时候劫匪就是非阻塞 的,因为劫匪并没有阻塞在衰男去装钱这个环节上,劫匪可转载 2012-09-28 11:33:12 · 1747 阅读 · 1 评论 -
ANDROID Bionic C DOCS
Bionic C 库一览:介绍:核心体系:Bionic设计的核心思想是:尽量简单。这意味这这个C库只围绕着内核提供轻量级的包装,我们让它尽量小,不去处理一些细枝末页的事情。 取Bionic这个名字,是因为它由部分BSD和部分linux组成: 它的代码由BSD C库和自定义的linux代码(用于处理线程,进程,信号,和其他事情)混合而转载 2012-09-11 10:54:37 · 1856 阅读 · 0 评论 -
linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
原文链接:http://blog.youkuaiyun.com/xdw1985829/article/details/6833319 前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? 在我们实际内核的移植配置过程中经常听说的内转载 2012-05-08 11:25:56 · 1045 阅读 · 0 评论 -
关于dword ptr 指令的意思
dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax赞同.5 指令要处理的数据有多长?CPU的指令,可以处理两种尺寸的数据,byte(8位)和w转载 2012-03-23 09:54:08 · 37502 阅读 · 2 评论 -
system idle process
我的大概理解是:Idle的中文意思是空闲的意思。这个是一个虚拟的进程。这个进程显示出来占用的资源其实是系统的空闲资源。原创 2012-03-23 09:18:38 · 1320 阅读 · 0 评论 -
配置和使用linux内核调试环境(基于虚拟机)
内核调试环境(Linux)本章主要介绍如何配置和使用内核调试环境。首先介绍如何配置内核环境,这是内核调试环境的基础,接着介绍如何安装配置和使用Samba 来实现Windows 和Linux 之间的网络共享,最后介绍一种调试 Linux 内核的机制——KGDB,包括它的安装、配置和使用。一、 配置内核环境实验中采用的Linux 发行版是CRUX,内核版本为2.6.15.6。C转载 2012-02-13 15:48:25 · 5664 阅读 · 0 评论 -
虚拟化分类
虚拟化的方式多种多样,耳朵很熟悉的一些名字有:全虚拟化,类虚拟化,硬件虚拟化,混合虚拟化等等。这些不同的虚拟化方式,并不是根据同一个标准来分类的,以下介绍三种主要的分类方法,并相应介绍一些目前主流的虚拟化实现方式,以及对应的产品。从虚拟平台的角度来划分的话,主要分为全虚拟化和类虚拟化:全虚拟化是指VMM虚拟出来的平台是现实中存在的平台,因此对于客户机来说,并不知道自己是运行在虚拟的平台转载 2012-02-22 10:30:20 · 4831 阅读 · 0 评论 -
Linux下/etc/fstab文件详解
有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。 /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /et转载 2011-11-09 09:42:49 · 842 阅读 · 0 评论 -
使用 KGDB 调试 Linux 内核
原文位置 http://blog.chinaunix.net/space.php?uid=600330&do=blog&id=2088774转载 2011-11-08 15:57:59 · 673 阅读 · 0 评论 -
堆栈中的EIP EBP ESP
测试空间旗下大头针出品 EIP,EBP,ESP都是系统的寄存器,里面存的都是些地址。 为什么要说这三个指针,是因为我们系统中栈的实现上离不开他们三个。 我们DC上讲过栈的数据结构,主要有以下特点: 后进先处。(这个强调过多)其实它还有以下两个作用: 1.栈是用来存储临时变量,函数传递的中间结果。 2.操作系统维护的,对于程序员是透明的。我们可能只强调了它的后进先转载 2011-11-08 10:38:41 · 835 阅读 · 0 评论 -
Source Insight3.0: Linux源代码阅读的利器
原文地址:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip17/ 破解版本下载:http://ishare.iask.sina.com.cn/f/19690094.html转载 2011-11-08 15:35:54 · 677 阅读 · 0 评论 -
why is /etc/fstab?(我们为什么要使用 /etc/fstab)-ps:觉得还是用那个E文题目最能够概括
背景知识文件系统的分类文件系统指的是以文件的方式管理储存设备的系统。对于文件系统的分类方式有很多。围绕本文主题,根据文件系统是否涉及到具体的实现来分类,文件系统可以分成两大类:第一类:虚拟文件系统(VFS)第二类:物理文件系统,诸如EXT,FAT,NTFS等。这类文件系统有一个最大的特点是,每个文件系统都对应一种特有实现方式。例如,FAT会使用一个表格来记录存储设备的使用现况的,原创 2011-11-27 10:11:10 · 1246 阅读 · 0 评论 -
通过chroot 构建Linux操作系统概要
作者:北南南北来自:LinuxSir.Org提要:在已有的Linux操作系统中,安装另一个开源操作系统,我们一般是先构建新操作系统的chroot基础环境,然后chroot进入新构建的操作系统环境来安装和配置。这种构建和安装操作系统的方法,对于我们学习和研究操作系统结构和原理应该说比较重要。本文举了简单的例子,以Fedora Core 5.0 为基础,通过chroot来构建Slackware转载 2011-11-18 10:56:43 · 1074 阅读 · 0 评论 -
linux下mnt目录的作用
linux下mnt目录的作用: mount 英文解释: 登上; 爬上; 攀登; 骑上; 乘上; 跨上 可直接理解为“挂载”挂接光驱、USB设备的目录,加载后,会在mnt里多出相应设备的目录。mnt是mount的缩写。 Mount命令: 需要注意的: 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操转载 2011-11-18 10:24:33 · 2990 阅读 · 0 评论 -
crux系列写作-通过SSH实现虚拟机下的crux 2.6与win7主机互传文件
csdn,什么都好!就是博客的编辑器不好。其他博客,把word编写的内容复制过来,什么图片,什么格式都可以直接装载过来!但是,亲爱的csdn就……为了不影响大家阅读的效果,我将这篇文章打包成pdf。想阅读全部内容的网友,还请大家到下面的页面下载这个pdf吧……文档下载地址:http://download.youkuaiyun.com/detail/kaiwii/3797261 ----原创 2011-11-15 11:45:44 · 1651 阅读 · 0 评论 -
linux下vi命令大全
kaiwii总结一下我自己使用vi或者vim的心得吧:首先,上下左右移动光标:当然使用键盘上的方向键啦修改:(ps:什么r等等都是扯淡,使用vi本来就是痛苦了,还要记住这么多命令干嘛?)索性就记住一条,按“i”键进入修改,想删除字符就用退格键,想新建一行就回车,想输入字符当然就直接输入罗。想退出修改,就按“ESC”键保存:按“:w”键退出不保存:“:q!”保存后退出:“原创 2011-11-09 09:51:22 · 4904 阅读 · 1 评论 -
Error with pscp on Windows: "Cannot create file"
I encountered the same problem this morning.I was trying to copy the contents of a remote directory to a local directorywith pscp.exe, with all the options specified on the command line (i.e.,username转载 2011-11-14 17:23:42 · 5575 阅读 · 1 评论 -
对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的理解和图解
1. 文中符号的说明:: 可以理解成A,也可以理解成B。2. 术语调制解调器(Modem): 实现模拟信号与数字信号间的相互转换,可以忽略成一条网线。路由器: 提供路由、DHCP、NAT等的专门设备,连接不同的网络(包括局域网与WAN之间的连接,提供互联网连接)。: 交换机和网桥的功能类似,基本上可以认为是一样的。如果真要说差异在哪里:两点,一是接口数量不同,交换机比网桥的转载 2011-11-15 08:50:25 · 5089 阅读 · 0 评论 -
linux_2.6内核内存缓冲与I/O调度机制:到底是BIO还是BH?答案是BIO与BH
kaiwii出品,欢迎斧正!背景知识块设备与字符串设备块设备与字符串设备的最大区别是,块设备里面的数据支持随机读取,而字符串设备必须要按照顺序连续读取。以字符串设备-键盘为例。输入字符串-”Kaiwii”。在读取设备中的内容的时候,如果不按照顺序,读取为“iiwiaK”,这个数据就没意义了。同样的,如果不连续读取数据,比如先读“Kai”,读取出来的内容就与真实的数据大相径庭。但原创 2011-12-01 11:25:51 · 3201 阅读 · 1 评论 -
/proc目录详解
内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统。Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/转载 2011-11-10 09:19:33 · 870 阅读 · 0 评论 -
uImage,zImage,bzImage小解 (System.map、vmlinuz、initrd-2.4.7-10.img理解)
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。 编译过RedHat Linux内核的人对其中的System.map、vmlinu转载 2011-11-10 11:13:44 · 1310 阅读 · 0 评论