• linux1.0内核代码学习(五) 之保护模式编程

    时间:2024-04-08 21:42:57

    linux1.0内核是压缩的zImage映像文件,其内部格式组织如下: 其启动各个阶段在内存中的位置如下: 下图是指zboot/zSystem中程序调用自带的解压缩程序,将tools/zSystem解压到0x100000的内存地址处,并跳转到0x100000处执行boot/head.s程序。这个阶段...

  • Linux Kernel Driver 之 mmap 机制 Linux 内核编程的分离思想

    时间:2024-04-08 18:19:17

    前言Linux 编程中,大多数的场景,数据的交换,不论读还是写都要经过两次数据拷贝过程:用户和内核,内核和硬件物理内存如果数据的访问量比较小,两次的数据拷贝对系统性能影响几乎可以忽略不计如果数据的访问比较大,两次的数据拷贝势必影响系统性能数据的操作的规律是源要不是用户或者硬件,目的要不是硬件或者用户...

  • Linux内核追踪[4.14] X86的5级页表管理

    时间:2024-04-07 14:22:56

            X86的4级页表已经能够管理48bit(256TB)的VA,以及64TB的PA。不过由于某些供应商发布了超过64T的超大物理内存,因此需要实现了一个5级页表特性来进行支持。       下面是原来4级页表的48bitVA地址空间,原先的X64芯片规定,高8位永远与第48bit(从0开...

  • Linux内核虚拟内存之页表管理

    时间:2024-04-06 22:45:31

    linux采用了一种同时适用于32位和64位系统的普通分页模型。对于像32位arm系统来说两级页表已经足够,但64位系统需要更多数量的分页级别。2.6.10版本以前,linux采用三级分页的模型,从2.6.11版本开始采用4级分页模型。4种页表如下:页全局目录(pgd)页上级目录(pud)页中间目录...

  • 移动操作系统内核分析--Linux系统调用

    时间:2024-04-06 16:37:24

        一 、实验目的了解Linux系统调用的工作机制掌握Linux系统调用的实现方法二、 实验内容实现一个新的“Hello World”系统调用。验证系统调用创建一个用户程序来调用“Hello World”系统调用:将用户程序编译后,放入rootfs.img根文件系统中。启动qemu虚拟机,在虚拟...

  • ZYNQ-Linux学习笔记(8)- Petalinux .2 编译移植Marvell8801wifi内核模块

    时间:2024-04-05 18:28:33

    前言petalinux2018.2用的内核版本是4.14.0marvell8801给的驱动所依赖的内核版本是3.10.11由于内核的API在这两个版本上是有区别的,所以需要修改,其次还需要修改makefile。目录结构sd8801的驱动目录如下D:\DOWNLOADS\SD-UAPSTA-8801-...

  • 如何在Linux应用层和内核层获取时间

    时间:2024-04-05 12:33:30

    【1】应用层gettimeofday函数头文件:#include <sys/time.h>int gettimeofday(struct timeval*tv, struct timezone *tz);其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果:struct tim...

  • linux内核库aio调研

    时间:2024-04-05 09:18:29

    linux内核库aio调研背景介绍两种头文件:5 个系统调用:(man手册)echo > /proc/sys/fs/aio-max-nr 1048576背景介绍图 1. 基本 Linux I/O 模型的简单矩阵两种头文件:原生的AIO_ABI方法 /usr/include/linux/aio_...

  • 如何将自己写的驱动编译进linux内核镜像中

    时间:2024-04-04 15:46:31

        大家在做驱动开发时,通常都是将驱动源码编译为.ok文件,然后通过insmod 加载进系统中,那么如何能够实现在编译linux内核源码时,同时将驱动源码一同编译进镜像中呢?下面给出具体的方法和步骤1,在Linux内核源码的drivers目录下创建自己的驱动源码目录,这里我同时加入两个驱动,分别...

  • 树莓派3b——linux内核更新

    时间:2024-04-01 15:15:32

    树莓派3b——linux内核更新闲来无事,试水写个博客,各位大神看看就好也希望能帮助到别人呗由于学习驱动编译需要,驱动模块所依赖的系统版本必须跟内核相同,然后更换内核得把驱动更新一遍所以,现在先编译一遍树莓派的内核吧平台版本ubuntu16.04、树莓派3b、4.4.21内核的jessie系统、4....

  • ZYNQ7000(AX7020)移植Linux操作系统(三):内核的编译

    时间:2024-04-01 10:06:02

    一、Linux内核介绍Linux是一个自由的、免费的,源码开放的操作系统。一些厂商将Linux系统内核与应用程序个文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合,例如RedHat,Debian、Ubuntu、Novell/SuSE等。Ubuntu版本号由该次发布的年份和月份组成...

  • Linux 内核工具 iptables 配置TCP/UDP端口转发(命令参考)

    时间:2024-03-31 15:31:14

    1、配置TCP端口转发 把本机20000/TCP端口转发到7.7.7.7:20000 iptables -t nat -A PREROUTING -p tcp --dport 20000 -j DNAT --to-destination 7.7.7.7:20000 iptables -t nat -...

  • 精通linux内核网络———第二章Netlink套接字之通用Netlink协议

    时间:2024-03-31 15:01:59

    ## 通用Netlink协议要添加Netlink协议簇,需要在include/linux/netlink.h中添加协议簇定义。但通用Netlink协议不要求这样做。Netlink协议的一个缺点是,协议不能超过32(MAX_LINKS)个。通用Netlink协议以Netlink协议为基础,并使用其AP...

  • linux内核编译步骤(详细全过程)

    时间:2024-03-31 08:21:39

    本人新学,因此将每一步详细记录如下,望能够对大家有所帮助。环境: 电脑操作系统:ubuntu10.04 。 linux内核版本:linux-3.12.6内核源码下载地址:www.kernel.org我就按照步骤来,都是按照细小步骤来。1、打开终端,更改为root用户。输入命令su,再输入密码即可。2...

  • 如何在Linux内核中设置打印日志时间戳

    时间:2024-03-30 18:12:44

    在编译Linux内核:make menuconfig ---> Kernel hacking -->printk and dmesg options--> show timing information on printks选上show timing information on ...

  • 在Linux内核中打印日志时间戳

    时间:2024-03-30 18:08:13

    今天在和FPGA,联调过程中,需要测试脉冲信号。目的是为了测试两个中断之间的时间间隔。开启内核的打印时间在编译Linux内核:make menuconfig ---> Kernel hacking -->printk and dmesg options--> show timing...

  • VPP和Linux内核协议栈通信的方法

    时间:2024-03-30 10:43:08

    背景介绍    基于VPP开发一款网络设备,除使用VPP框架实现端口数据报文转发外,还需要对设备进行配置和管理,比较常用的是要实现ssh、web等相关服务,另外,由于VPP并未实现dhcp server的功能,控制面可能还需移植isc-dhcp类似的dhcp server。相关的用户态程序是基于Li...

  • AM3358内核移植与根文件系统的制作

    时间:2024-03-30 10:42:44

    唉....当了太久的咸鱼了...遇到各种坑,翻了好多资料....杂七杂八的乱成一团。。现在抽空整理一下,以便日后可以参考。这段时间,零零碎碎地做了不少东西,先是移植了2440的uboot,内核以及根文件系统的制作,这部分有一些参考的视频,2440板子玩的人也比较多,所以参考资料相对较多。。对这一部分...

  • linux 0.11 内核完全注释V3.0学习笔记(一)

    时间:2024-03-29 22:56:57

    linux 0.11 内核完全注释V3.0学习笔记(一)第1章 概述1.1 Linux的诞生和发展Linux操作系统是UNIX操作系统的一种克隆系统,诞生于1991年10月5日(第一次对外公布时间),Linux操作系统的诞生、发展和成长过程依赖以下5大支柱:UNIX操作系统、MINIX操作系统、GN...

  • Linux内核Power_Management之suspend详解(一)

    时间:2024-03-28 19:53:02

    1.Linux内核的suspend状态Linux内核支持多种类型睡眠状态,目前存在四种模式:suspend to idle(freeze)、power-on standby(standb)、suspend to ram(memory;STR)和suspend to disk(hibernate),分...