自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 Buffer Overflow

Buffer Overflow 会引起一些安全问题,一些attacker会利用这些漏洞对系统进行攻击。主要方式是将Return address修改;现在有三种方法来尽量避免因为Buffer Overflow而导致的安全问题;1. Stack Randomization;    The idea of stack randomizatin is to make the p

2014-03-28 17:49:27 716

原创 Linux 内核剖析

Linux 的简短历史 尽管 Linux 绝对是最流行的开源操作系统,但是相对于其他操作系统的漫长历史来说,Linux 的历史非常短暂。在计算机出现早期,程序员是使用硬件语言在裸硬件上进行开发的。缺少操作系统就意味着在某个时间只有一个应用程序(和一个用户)可以使用这些庞大而又昂贵的设备。早期的操作系统是在 20 世纪 50 年代开发的,用来提供简单的开发体验。包括为 IBM

2014-03-28 17:49:23 507

原创 Linux系统调用

目录: 1. Linux系统调用原理 2. 系统调用的实现 3. Linux系统调用分类及列表 4.系统调用、用户编程接口(API)、系统命令和内核函数的关系 5. Linux系统调用实例 6. Linux自定义系统调用 1.系统调用原理系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口

2014-03-28 17:49:21 748

原创 Linux 系统调用

Linux 2.6内核标准教程  第7章 系统调用使用 Linux 系统调用的内核命令深入理解Linux的系统调用 Linux系统调用接口、系统调用例程和内核服务例程之间的关系向linux内核中添加三个系统调用(Ubuntu9.10)++++++++++++++++++++++++++++++++++使用 Linux 系统调用的内核命令 作者:

2014-03-28 17:49:18 771

原创 linux进程调度浅析

操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行(正在睡眠或

2014-03-28 17:49:16 549

原创 Linux 调度器发展简述

引言 进程调度是操作系统的核心功能。调度器只是是调度过程中的一部分,进程调度是非常复杂的过程,需要多个系统协同工作完成。本文所关注的仅为调度器,它的主要工作是在所有 RUNNING 进程中选择最合适的一个。作为一个通用操作系统,Linux 调度器将进程分为三类: 交互式进程 此类进程有大量的人机交互,因此进程不断地处于睡眠状态

2014-03-28 17:49:14 494

原创 Linux内核编译与安装

Linux内核编译与安装 Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,有很多过程组成,每个过程都可以独立编译,其模块机制又湿得内核保持独立而又易于扩充。Linux发行版实在Linux内核的基础之上,

2014-03-28 17:49:12 526

原创 内核编译

编译步骤1、make menuconfig     对内核进行配置,选择需要的功能。2、make    编译3、make modules_install    安装模块4、make install     安装内核 5、ok ,完成 ,重启进入新内核 管理员在2009年8月13日编辑了该文章文章。

2014-03-28 17:49:10 490

原创 APUE 学习(四) 守护进程

写守护进程(daemon)的编程规则一、umask(0)二、fork一个子进程,然后将父进程exit这样子进程就成为孤儿进程,父进程成为init进程。三、setsid;调用setsid函数,设置会话首进程。四、将当前工作目录改为根目录五、关闭不再需要的文件描述符未完待续。。。。 管理员在20

2014-03-28 17:49:08 525

原创 APUE 学习(二) 信号

信号是 软件中断 , 对信号的处理有三种方式,忽略、捕捉、执行默认操作。信号的相关函数(1)#include void   (*signal ( int signo , void (*func) ( int )) (int) ;(2)#include int kill (pid_t pid , int signo);int raise(int sig

2014-03-28 17:49:06 460

原创 APUE 学习(一)

1、如果一个进程fork一个子进程,但不要等待子进程终止,也不希望子进程处于僵死状态,直到父进程终止,实现这一技巧是fork两次(子进程fork一次,然后exit)2、fork和vfork之间的区别vfork用于创建一个新进程,而该新进程的目的是exec一个新程序;vfork和fork一样都创建一个子进程,当时它不将父进程的地址空间完全复制到子进程中,因为子进程会立

2014-03-28 17:49:03 524

原创 vim 小技巧

vim使用的小技巧,不断更新

2014-03-28 17:49:01 527

原创 Linux内核源码分析方法

一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多接触其他人编写的代码,尤其是水平比我

2014-03-28 17:48:59 630

原创 Linux之PC与Linux虚拟机之间的文件传输

在开始阅读这篇文章前,你也可以参看我之前的一篇拙文《iOS之PC与MAC虚拟机之间的文件传输》。        一、VM Tools安装            选择vmware workstation的菜单VM-->install VMWare tools,执行如下命令:        #mkdir /mnt/cdrom        #mount -o ro /dev/cdr

2014-03-28 17:48:57 753

原创 Mutt邮件处理系统框图

前段时间向内核提交了几份文档翻译补丁,由于使用了gmail的web GUI,出现了一些问题:1、在复制到gmail时,出现了自动换行。(感谢Greg Kroah-Hartman大神的提醒和修复,对于他手动修复这个问题补丁表示感谢和愧疚)2、在发送补丁后,有的订阅者由于邮件客户端的不同可能会出现乱码,这是因为gmail的web GUI会将邮件的中文编码转换为base64。在出现了这些问题之后,我不得

2014-03-28 17:48:55 565

原创 一些C语言题目

丢手帕问题: //筛选法解决 #includestdio.h> #define n 10 #define m 3 void main() {     int a[n+1]={

2014-03-28 17:48:53 641

原创 linux下vi命令大全

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi

2014-03-28 17:48:50 421

原创 ubuntu 下 用C语言连接mysql

1:先安装MySQL:sudo apt-get install mysql-server mysql-client2:再装开发包:sudo apt-get install libmysqlclient15-dev此时头文件会出现在/usr/include/mysql/里3:安装完以后,C代码里添加头文件#include 4:编译方法:方法1:gcc $(mysql_config --cflags)

2014-03-28 17:48:44 665

原创 socket通信

linux课上了网络编程,我小小的总结了下.socket通信是通信机制的一种,分两块实现,服务器端和客户端。1、服务器端使用的函数socket  bind  listen   accept1.1创建一个套接字#include#includeint socket(int domain,int type,int protocol);domain:AF_UNIX:主要用于本地AF_INET:主要用于网络

2014-03-28 17:48:41 530

原创 ubuntu乱码解决方案

管理员在2009年8月13日编辑了该文章文章。 --> --> 阅读(238) | 评论(0) | 转发(0) |

2014-03-28 17:48:39 444

原创 初始MySQL账户安全

MySQL安装过程包括设置含有授权表的MySQL数据库:·         Windows分发版包含预初始化的授权表,可以自动安装。·         在Unix中,用mysql_install_db程序来安装 授权表。可以通过一些安装方法来运行该程序。否则你需要手动执行。详细信息参见2.9.2节,“Unix下安装后的过程”。授权表定义了初始MySQL用户账户和访问权限。按照以下步骤对

2014-03-28 17:48:37 510

原创 马云的懒人哲学

——世界靠懒人支撑马云收购YAHOO后,给员工上的第一堂课 今天是我第一次和雅虎的朋友们面对面交流。我希望把我成功的经验和大家分享, 尽管我认为你们其中的绝大多数勤劳聪明的人都无法从中获益,但我坚信,一定有个别 懒的去判断我讲的是否正确就效仿的人,可以获益匪浅。 让我们开启今天的话题吧! 世界上很多非常聪明并且受过高等教育的人,无法成功。就是因为他们从小就受到了错误 的教育,他

2014-03-28 17:48:33 604

原创 Linux常见命令的列表

那些有· 标记的条目,可以直接拷贝到终端上而不需要任何修改。所有的命令已在Fedora和Ubuntu下做了测试! 管理员在2009年8月13日编辑了该文章文章。 --> -->

2014-03-28 17:48:31 508

原创 linux多文件编译方法

一. 常用编译命令选项  假设源程序文件名为test.c。  1. 无选项编译链接  用法:#gcc test.c  作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。       2. 选项 -o  用法:#gcc test.c -o test  作用:将test.c预处理、汇编、编译并链接形成可执行文件

2014-03-28 17:48:29 442

原创 IPC 三种通信机制

最近看了,IPC三种通信机制,OK,小写自己的收获吧。IPC三种通信机制是指:信号量、共享内存、消息队列,一开始看得时候感觉有点吃力,当我模仿书上的程序写了写代码之后,就慢慢的理解了。信号量:通过操作系统中的PV操作来实现;共享内存:申请一块内存,进程A往共享内存中写,其他的进程就可以通过读出共享内存中的内容来获取进程A所传送的信息;消息队列:创建一个消息队列,进程A往队列里面写,那么进程B通过读

2014-03-28 17:48:27 1311 1

原创 QT

安装QT: http://www.cnblogs.com/aleny-liu/archive/2011/12/16/aleny-Qtnote1.html 安装Qt库: http://my.oschina.net/rockbaby/blog/33505 http://www.ylmf.net/ubuntu/tips/201012

2014-03-28 17:48:24 449

原创 Linux系统核心源程序的文件组织结构

Linux核心源程序的文件按树形结构进行组织,在源程序树的最上层,即目录/usr/src/linux下有这样一些目录和文件。 ◆ COPYING: GPL版权申明。对具有GPL版权的源代码改动而形成的程序,或使用GPL工具产生的程序,具有使用GPL发表的义务,如公开源代码。 ◆ CREDITS: 光荣榜。对Linux做出过很大贡献的一些人的信息。 ◆ MAINTAINERS: 维护人员

2014-03-28 17:48:22 480

原创 我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)

本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量

2014-03-28 17:48:20 429

原创 学习单片机技术五周年

我原来在03年就开始接触单片机了,光阴飞逝,不知不觉已经过了五年了。回头看看自己走过了路,有感慨、有遗憾、有憧憬、有幻想。最开始接触的是89C51单片机,但是在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他公司的存在。而且那时候老师只会教我们汇编,根本不知道用C语言也可以进行开发的。很幸运的是,但是被老师看中,做了几个实验,有基于18B20的温度采集系统,有基于164的移位寄存器的灯

2014-03-28 17:48:18 545

原创 GTK(三) 菜单

昨天考软件工程,OMG,老师给的简答题一个都没考,哇靠,一个都没有,害我把那么多英文句子背的那么熟还不考!很纠结,方总,您怎么不走寻常路呀……-_-||,回到寝室,看了下GTK关于菜单的应用,好吧,写下来。先附上一段简单的代码,代码中有比较详细的解释,然后再说说关于menu的一些入门的函数吧。 点击(此处)折叠或打开#includegtk/gtk.h>#includestdio.h>void cl

2014-03-28 17:48:16 651

原创 vim 配置

好吧,今天突发的想把vim配置下,网上搜了下,OK,小说一下。vim的配置文件:/etc/vim/vimrc在命令行中输入:sudo -svim /etc/vim/vimrc在插入模式下,可以选择性的加需要的选项,以下是我网上搜到的:set nocompatible " 关闭 vi 兼容模式syntax on " 自动语法高亮colorsc

2014-03-28 17:48:14 516

原创 shell实现了一个进度条

#!/bin/bashCOUNTER=0_R=0_C=`tput cols`_PROCEC=`tput cols`tput cup $_C $_Rprintf "["while [ $COUNTER -lt 100 ]do    COUNTER=`expr $COUNTER + 1`    sleep 0.1    printf "=>"

2014-03-28 17:48:12 703

原创 GUI 主循环设计及其在 MiniGUI, GTK, QT 的实现

作者: 刘鹏日期: 2009-05-22介绍了 GUI 主循环的设计思路,并分析了 MiniGUI, GTK, QT 的主循环。简介我们知道GUI应用程序都是事件驱动的。这些事件大部分都来自于用户,比如键盘事件、鼠标事件或笔点事件。还有一些事件来自于系统内部,比如定时事件、socket事件和其它文件事件等等。在没有任何事件的情况下,应用程序处于睡眠状态。1因为这种事件驱动机制,GUI应用程序都毫无

2014-03-28 17:48:09 527

原创 判断是不是LL1文法

编最近上的编译原理课呢做实验,输入一个文法,然后判断是不是LL1文法,根据清华大学张素琴老师主编的《编译原理》第二版80页的算法,写了短程序://compile.c#includestdio.h>#includestdlib.h>#includestring.h>#define length 100typedef struct {    char T

2014-03-28 17:48:07 5968

原创 GTK(二)

放假回来后,现在在准备考试,本来Linux课是不想来上的,听说要点名,就来了,NND,竟然没有点,好吧,找点事情做吧,就继续写写GTK吧。首先附上一段代码#includegtk/gtk.h>#includestring.h>void closeApp(GtkWidget *window,gpointer data){    gtk_main_quit();

2014-03-28 17:48:05 594

原创 GTK(一)

这是本人的第一个博客,因为看到同学写博客,而且写了好多,觉得挺有意思的,所以开始写博客。 没有什么经验,清大家多多指教了,呵呵……本来计划早上看英语的,很意外的看上了Linux课本,看到GTK,感觉挺有意思的,就看了一天。一、什么是GNOME和GTK?GNOME 最初代表的是GNU Network Object Model Environment.GTK+是一个函数库,它提

2014-03-28 17:48:03 527

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除