
Linux
pkufenghao
北京大学通信与信息系统博士在读
展开
-
ubuntu16.04中编译内核时,使用make menuconfig发生错误
问题描述:在ubuntu16.04中编译内核时,使用make menuconfig发生错误,提示没有安装ncurses-devel。分析过程:使用 sudo apt install ncurses-devel命令安装该库,没有,然后又使用sudo apt install ncurses,还是没有该库。说明有可能库名字在新的ubuntu版本中发生改变。可以判定Ubuntu软件管理器服务端有作...转载 2018-11-17 14:34:47 · 910 阅读 · 0 评论 -
【Linux内核分析与驱动编程】观察内存映射
实验环境:ubuntu18.04内核版本:4.19.23实验原理•程序进程中的分区:•BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一...原创 2019-05-06 10:16:34 · 615 阅读 · 0 评论 -
【Linux内核分析与驱动编程】显示进程的相关信息
linux上进程有5种状态:运行(正在运行或在运行队列中等待)中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)可以用下面命令查看...原创 2019-03-20 19:09:06 · 589 阅读 · 0 评论 -
【Linux内核分析与驱动编程】fork、vfork在分配和共享的区别
forkfork创造的子进程是父进程的完整副本,复制了父亲进程的资源,包括内存的内容task_struct内容vforkvfork创建的子进程与父进程共享数据段,而且由vfork()创建的子进程将先于父进程运行用fork、vfork创建进程,设计实验查看二者在分配和共享两方面的区别(1)分别编写fork.c和vfork.c进行验证fork.c#include<sys/types...原创 2019-03-20 18:57:34 · 439 阅读 · 0 评论 -
【Linux内核分析与驱动编程】添加内核补丁
什么是补丁补丁就是存放着不同版本之间差异的文件。通过打补丁的方法升级源代码,可以不用下载整个源代码,在本地的源代码基础上获得代码更新。详细的打补丁的方法可以查看内核/Document/applying-patchs.txt。Linux 下安装高版本补丁到低版本的步骤大体分为以下几步:1 选取补丁(1)补丁出处:理论上讲,各大开源网站(如 github,google 的 andr...原创 2019-03-20 18:30:36 · 1650 阅读 · 0 评论 -
【Linux内核分析与驱动编程】创建显示系统进程信息的 proc 模块
创建显示系统进程信息的 proc 模块Linux遵循现代操作的普遍原则:使程序员和内核、硬件等系统资源隔离开,普通用户无法看到内核空间中发生了什么,系统调用是操作系统提供给应用程序使用操作系统服务的重要接口,但同时也屏蔽了用户直接访问操作系统内核的可能性。Linux 提供了 LKM 机制可以使我们在内核空间工作。Linux 提供的LKM 机制中一个重要的组成部分就是proc 伪文件系统。Pro...原创 2019-03-20 18:07:03 · 2380 阅读 · 0 评论 -
【Linux内核分析与驱动编程】内核编译安装与调试相关问题与解决方法
内核编译安装注意事项源码可以自己从网上下载(www.kernel.org)在ubuntu18.04中,执行make modules_install和安装内核make install时需要提供root权限,需使用sudo命令执行安装如果是多核PC,在编译内核过程中,可以使用#make –jn命令来编译 ,提高编译速度,其中n是要衍生的作业数,例如双核可以 配置为4。• 重启后进入新内核时...原创 2019-03-07 22:56:08 · 863 阅读 · 0 评论 -
【Linux内核分析与驱动编程】如何切换到root用户
(1)sudo 命令xzm@ubuntu:~$ sudo这样输入当前管理员用户密码就可以得到超级用户的权限。但默认的情况下5分钟root权限就失效了。(2)sudo -ixzm@ubuntu:~$ sudo -i通过这种方法输入当前管理员用户的密码就可以进到root用户。(3)如果想一直使用root权限,要通过su切换到root用户。那我们首先要重设置root用户的密码:xzm...原创 2019-03-19 19:56:07 · 407 阅读 · 0 评论 -
【Linux】内核编译与配置(一)
编译步骤A.解压Linux源代码目录B.配置内核C.编译内核和模块D.安装E.配置启动文件F.重启并进入新内核编译环境:Ubuntu18.04 内核版本4.18.0 -&gt;内核版本4.19.23原内核版本1 解压Linux源代码目录1.1 下载安装包wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19....原创 2019-02-27 09:25:49 · 331 阅读 · 0 评论 -
【Linux内核分析与驱动编程】内核调试实验-原理篇
实验原理篇1.1 实验原理kgdb提供了一种使用 gdb调试 Linux 内核的机制。使用KGDB可以象调试普通的应用程序那样,在内核中进行设置断点、检查变量值、单步跟踪程序运行等操作。使用KGDB调试时需要两台机器,一台作为开发机(Development Machine),另一台作为目标机(Target Machine),两台机器之间通过串口或者以太网口相连。串口连接线是一根RS-232接口...原创 2019-03-05 19:53:07 · 1114 阅读 · 0 评论 -
【Linux内核分析与驱动编程】内核调试实验-指定helloworld作为系统init入口
2 指定helloworld作为系统init入口(1)编写一个helloworld.c程序/hello.c/#include <stdio.h>void main(){printf(“Hello World\n”);printf(“This is an entry\n”);printf(“Author:fenghao\n”);fflush(stdout);while...原创 2019-03-05 19:48:03 · 3407 阅读 · 0 评论 -
【Linux内核分析与驱动编程】内核调试实验-环境搭建
环境:虚拟机Ubuntu18.04内核版本4.19.231 实验环境搭建1.1 内核源码编译(1)利用.config进行源码编译make oldconfigmake –j4(2)创建kDebug调试文件夹(3)复制bzImage、vmlinux、initrd.img-4.19.23到实验目录中1.2 安装dddsudo apt-get install ddd1.3 安...原创 2019-03-05 16:39:42 · 1178 阅读 · 1 评论 -
【Linux】内核编译与配置(二)
接上篇安装模块sudo make modules_install4 安装内核sudo make install5 配置启动文件sudo update-grub修改引导时间sudo vi /etc/default/grub6 重启并进入新内核rebootuname -a...原创 2019-02-27 14:23:28 · 289 阅读 · 0 评论 -
ubantu16.04 安装pycharm
PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本。PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、自动完成、单元测试。PyCharm非常好用,而且是跨平台的。PyCharm网址:http://www.jetbrains.com/pycharm/Ubuntu 16.04 ...原创 2018-11-29 19:50:54 · 518 阅读 · 0 评论 -
【Ubuntu18.04】安装Docker教程
Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。环境:虚拟机Ubuntu18.04+内核版本linux-4.19.23安装Docker步骤如下:(1)更新程序sudo apt update(2)安...原创 2019-06-03 10:08:27 · 11694 阅读 · 9 评论