Linux和Android启动过程

X86架构的PC机的启动过程按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。  1、 BIOS加电自检:  加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。  2、 加载主引导加载程序(MBR):  主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。  主引导程序的任务就是查找并且加载

查看更多

Linux下的局域网小工具

1、Sniffer工作原理在本地网卡设置成“混杂”模式时,网卡会接收所有在网络中的所有的帧,这就构成了监听。如果局域网中的某一台主机被设置成了这种监听模式,它就成了一个Sniffer。根据Sniffer的原理,如果一个帧没有被发送到指定的网卡上,那么就无法监听到该帧。所以Sniffer所能监听的信息仅限于同一个物理网络内传输的数据。 2、Sniffit的安装在Debian可以使用软件源安装。命令如

查看更多

第一个Java Google engine程序

1、搭建相应的开发环境,添加Eclipse的google app engine plugin。方法1:在线添加,方法如下。(试了多次不行,自己解决不了)打开Eclipse,选择Help〉Install new software..在work with中添加站点地址是http://dl.google.com/eclipse/plugin/3.6方法2:离线安装,分别下载GAE SDK和Plugin

查看更多

C语言中strcpy和memcpy

strcpy和memcpy都是标准C库函数,且都可用于字符串复制。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。strcpy的复制正是在遇到字符串的结束符时终止的。memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。其结束以参数n的大小为准。 其所包含的头文件,和函数声明如下1#incl

查看更多

使用git上传已有的代码到github上

1、使用已有的github账户,在上面创建一个项目。进入github官网后在右下角,有一个名为New repository的绿色按钮,点击便可创建一个github项目。 2、然后就是填写一些相关的信息了。按照自己的想法填就是了。 3、创建SSH密匙在shell下,输入以下命令。1ssh-keygen -C 'your@email.address' -t rsa 确认使用默认路径,然

查看更多

Debian一些软件的安装

以下是自己的Debian系统在使用时安装一些软件和进行一些配置的过程,以此做个记录,以备将来查用。系统信息是:Debian 7.2 1、sudo的配置,Debian默认sudo是不能使用的,但是已经习惯了使用sudo怎么办呢,可以通过相关的配置文件来启用这个命令。如下所示:编辑/etc/sudoers文件,将username ALL=(ALL) ALL加入其中,其中username时要使用s

查看更多

Unix网络编程unp.h问题以及Linux中的库

Stevens的《UNIX网络编程 卷1:套接字连网API》是一本很著名的UNIX网络编程书籍。其中使用了一个unp.h的引用,如果没有设置相应的库的话,即使引入了头文件也是没用的。所以首先要配置相应的库。基础环境:操作系统 Debian开发环境 GCC,MAKE等,首先要有c编译器,make等基础的工具。如果没有的话,可以通过下面命令安装。这个命令会安装一个工具集,其中包含了很多linux C开

查看更多

C语言中的位域

在内存中存取数据的最小单位一般是字节,但是有时候并不需要一个字节来存储。例如对于只有真假两个值得一个变量来说,就只须一位就可以了。有比如说在某些情况下内存是极其宝贵的资源,比如说一些嵌入式设备,因此要格外的注意节约。C语言可以在一个结构体中以位来存储数据,这种用位为单位的成员称为位域或位段。 12345 struct bit_data { int a:2; char c

查看更多

gcc编译C程序的过程

我们在编译c程序的时候其过程一般点击一个图标,或者执行一个命令就完成了。但实际的过程可不是这么简单的。在使用gcc编译程序时,它就把这个过程分成了四布来完成。实际上gcc是一个编译环境包含这四步的工具,这四步分别是:(1)预处理:(Pre-Processing)(2)编译:(Compiling)(3)汇编:(Assembling)(4)链接:(Linking) 使用gcc,我们可以根据

查看更多

C语言可变参数函数

C语言有一种实现可变参数的函数的方法就是使用占位符,使用的方法就是采用如下的方式定义函数void frees(int size, …)。其余的地方和一般的函数定义是一样的只是第二个参数上使用了三个点,而没用采用一般的变量类型变量名的方式。只要采用这样的定义方式,便可以使用这个函数来处理可变变量。但是光有这个定义还是不够的,还需要借助如下俩个函数一个类型定义,实际上这些函数是通过宏来实现的。 va_

查看更多