linux内核编译生成makefile文件实验报告
操作系统实验报告
姓名: 学号:
一、实验题目
1.编译linux内核
2.使用autoconf和automake工具为project工程自动生成Makefile,并测试
3.在内核中添加一个模块
二、实验目的
1.了解一些命令提示符,也里了解一些linux系统的操作。
2.练习使用autoconf和automake工具自动生成Makefile,使同学们了解Makefile的生成原理,熟悉linux编程开发环境
三、实验要求
1使用静态库编译链接swap.c,同时使用动态库编译链接myadd.c。可运行程序生成在src/main目录下。
2要求独立完成,按时提交
四、设计思路和流程图(如:包括主要数据结构及其说明、测试数据的设计及测试结果分析)
1.Makefile的流程图:
2.内核的编译基本操作
1.在ubuntu环境下获取内核源码
2.解压内核源码用命令符:tar xvf linux-3.18.12.tar.xz
3.配置内核特性:make allnoconfig
4.编译内核:make
5.安装内核:make install
6.测试:cat/boot/grub/grub.conf
7.重启系统:sudo reboot,看是否成功的安装上了内核
8.详情及结构见附录
3.生成makefile文件:
1.用老师给的projec里的main.c函数。
2.需要使用automake和autoconf两个工具,所以用命令符:sudo apt-get install autoconf进行安装。?autoscan.log和configure.scan,将configure.Scan改名为configure.ac,同时用gedit打开,打开后文件修改后的如下:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(main,1.0)
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT(Makefile)
4.新建Makefile文件,如下:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main
first_SOURCES=main.c
5.运行命令aclocal命令成功之后,在目录下会产生aclocal.m4和autom4te.cache两个文件。6.运行命令autoheader命令成功之后,会在目录下产生config.h.in这个新文件。7.运行命令autoconf命令成功之后,会在目录下产生configure这个新文件。8.运行命令automake --add-missingConfigure.ac:11:installing./compile’
Configure.ac:8:installing ‘.install-sh’
Configure.ac:8:installing ‘./missing’
Makefile.am:installing ‘./decomp’9. 命令成功之后,会在目录下产生depcomp,install-sh和missing这三个新文件和执行下一步的Makefile.in文件。运行命令./configure就可以自动生成Makefile。#include
#include
MODULE_LICENSE("GPL");
int __init hello_init (void)
{
printk("Hello xuxuemei\n");
printk("Hello xuxuemei\n");
printk("Hello xuxuemei\n");
return 0;
}
void __exit hello_exit (void)
{
printk("H