自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux自旋锁

#include#include#include#include#includestatic int i=0,j=100;struct task_struct *MyThread1=NULL;struct task_struct *MyThread2=NULL;static int myVar = 0;static int count = 0;spinloc

2014-09-30 10:46:20 995

原创 linux读写锁

#include#include#include#include#includestatic int i=0,j=100;//一个线程从0开始加,一个线程从100开始加struct task_struct *MyThread1=NULL;//线程1struct task_struct *MyThread2=NULL;//线程2static int myVar = 0

2014-09-30 10:44:53 1596

原创 linux顺序锁

#include#include#include#include#include#include//顺序锁头文件static int i=0,j=100;//一个线程从0开始加,一个线程从100开始加struct task_struct *MyThread1=NULL;//线程1struct task_struct *MyThread2=NULL;//线程2st

2014-09-30 10:43:37 1361

原创 使用malloc分别分配2KB的空间,然后用realloc调整为6KB、1MB、3MB、10MB空间,并且将这五块内存分别用“A”、“B”、“C”、“D”、“E”填充

#include#include#include #includeint main(void) {     char *str1 = NULL;    char *str2 = NULL;    char *str3 = NULL;    char *str4 = NULL;    char *str5 = NULL;    str1 = (char*)

2014-09-18 13:28:38 1720

原创 使用malloc分别分配2KB,6KB的内存空间,打印指针地址

#include#include#include #includeint main(void) {     int *str1 = NULL;    int *str2 = NULL;    str1 = (int*)malloc(2*1024*sizeof(char));     str2 = (int*)malloc(6*1024*sizeof(char))

2014-09-18 13:26:15 1800

原创 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址

#include#include#include #includeint main(void) {     int *str1 = NULL;    int *str2 = NULL;    str1 = (int*)malloc(2*1024*sizeof(char));     if(str1==NULL)    {        printf("m

2014-09-18 13:25:20 784

原创 用calloc分配10块大小为4字节的内存空间,打印指针地址,并且打印出内存中的内容

#include#include#include int main(void) {     int  i;    int *str = NULL;     str = (int*)calloc(10, sizeof(int));     if(str==NULL)    {        printf("calloc error!\n");      

2014-09-18 13:23:23 1049

原创 内存分配

#include #include #include #include #include using namespace std;#define MAX_ORDER 11map> process_info;struct page{    struct page *lru;};struct list_head{    struct pa

2014-09-17 11:53:49 947

原创 用c语言完成一个双向链表的创建,插入,删除

/*dlist.h*/    #ifndef DList_H      #define DList_H      typedef  int Item;      typedef struct Node * PNode;  //节点指针    typedef PNode Position;  //节点位置    /*定义节点类型*/      typedef struct

2014-09-13 08:38:03 3689 1

原创 理解start_kernel中函数语句的作用

asmlinkage void __init start_kernel(void){    char * command_line;    extern const struct kernel_param __start___param[], __stop___param[];    /*这两个变量为地址指针,指向内核启动参数处理相关结构体段在内存中的位置(虚拟地址)。    

2014-09-12 14:47:38 1415

原创 检查打开的文件是不是ELF格式的文件,提取“特别”的节中的信息

//检查打开的文件是不是ELF格式的文件//检验ELF头//获得节头表的地址//遍历节头表,依次查看一个节的属性,从节头字符串表中找到其名称,如果名称和“特别”的section名匹配,则找到此节的地址//提取“特别”的节中的信息 //显示上面提取的信息#include#include#include#includeint main(int argc,char

2014-09-12 08:47:45 1460 1

原创 检查打开的文件是不是ELF格式的文件,如果是就输出节头字符串表的地址,并依次输出各节的名称,字符串

#include "elf.h"#include int main(int argc, char  *argv[]){    FILE  *fp;    int i = 0;    int fd = 0;    Elf64_Ehdr  ehdr;        if ((fp=fopen(argv[1],"r"))==NULL)    {        

2014-09-12 08:46:31 1005

原创 检查打开的文件是不是ELF格式的文件,如果是就输出节头表表項的数目,各表項指向的节的地址

#include "elf.h"#include int main(int argc, char  *argv[]){    FILE  *fp;    int i = 0;    int fd = 0;    Elf64_Ehdr  ehdr;        if ((fp=fopen(argv[1],"r"))==NULL)    {        

2014-09-12 08:42:18 873

原创 检查打开的文件是不是ELF格式的文件,如果是就输出节头表的文件偏移

#include #include #include #include #include #include #include #include "elf.h" #define FALSE 0#define TURE 1#define MAX_SIZE 52#define Elf_Ehdr  Elf64_Ehdrint OpenElf(char *fi

2014-09-12 08:38:01 970

原创 Multiboot规范

一个启动载入器/OS映像接口主要是三个方面:1          由启动载入器看到的一个OS映像的格式。2          当启动载入器启动一个操作系统时,机器的状态。3          由启动载入器传递给操作系统的信息的格式。3.1.      OS映像的格式一个OS映像可能是一个,对于这个特定的操作系统而言,标准格式的普通32位可执行文件,除了它可能被链到一个非缺省的载

2014-09-10 10:44:32 3297

原创 内核启动过程

具体要求如下:Grub的源码分析:Grub如何支持多个系统和内核的启动选择(MultiBoot机制)。一.GRUB 简介(介绍主流的系统管理程序grub)什么是GRUB;GNU GRUB 是一个多重操作系统启动管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而来。GRUB 最初由Erich Stefan Boleyn 设计和应

2014-09-10 10:42:35 1467

原创 linux内核模块依赖图

Module                  Size  Used bybtrfs                 880032  0 raid6_pq               97812  1 btrfsxor                    21411  1 btrfsufs                    74837  0 qnx4           

2014-09-04 10:44:41 2324

原创 Linux内核编译过程的优化

原始内核编译安装内核模块的编译环境一、 下载新内核的源代码 (负责人:王东升)目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。本人是从站点www.kernel.org上下载了Linux的开发版内核3.14.17的源代码,全部代码被压缩到一个名叫Linux-3.14.17.tar.gz的文件中。二、 释放内核源代码 (负责人:赵培)

2014-09-03 14:38:41 1337

原创 安装内核模块的编译环境

安装内核模块的编译环境一、 下载新内核的源代码 目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。本人是从站点www.kernel.org上下载了Linux的开发版内核3.14.17的源代码,全部代码被压缩到一个名叫Linux-3.14.17.tar.gz的文件中。二、 释放内核源代码 由于源代码放在一个压缩文件中,因此在配置内核之前,

2014-09-03 08:46:54 907

原创 第一章-任务1:Linux内核的重新编译,安装,重启

1.1 相关知识 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,有很多过程组成,每个过程都可以独立编译,其模块机制又湿得内核保持独立而又易于扩充。Linux发行版是在Linux内核的基础之上,与外带的应用软件和工具打包配置之后发行的版本。最初的Li

2014-09-02 13:18:37 910

用c语言完成一个双向链表的创建,插入,删除

这是一个关于双链表的创建,删除,插入操作

2014-09-13

空空如也

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

TA关注的人

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