• 关于Linux系统调用,内核函数【转】

    时间:2024-04-17 10:41:25

    转自:http://blog.csdn.net/ubuntulover/article/details/5988220早上听人说到某个程序的一部分是内核态,另一部分是用户态,需要怎么怎么。当时突然想知道,用户的程序可以直接调用内核函数吗?(现在突然发觉这问题有点可笑,若是可以随便调,那系统岂不是乱套...

  • Linux内核学习(4) 最小系统制作2 busybox制作initrd.img和根文件系统

    时间:2024-04-16 12:16:33

    busybox制作initrd.img和根文件系统参考书籍:《深度探索Linux操作系统 系统构建和原理解析》参考博客:https://blog.csdn.net/mao0514/article/details/51248738(一)开发环境介绍1.使用win7_64的笔记本安装Virtualbox...

  • Linux系统启动和内核管理

    时间:2024-04-16 08:16:12

    Linux组成由 kernel 和 rootfs 组成单内核:(进程管理,内存管理,网络管理, 驱动程序,文件系统, 安全功能)/boot/vmlinuz-VERSION-release辅助的伪根系统/boot/initramfs-VERSION-release.img            这是一...

  • linux0.11内核源码剖析:第一篇 内存管理、memory.c

    时间:2024-04-15 21:31:47

    linux0.11内核源码剖析第一篇:memory.c July  二零一一年一月六日-----------------------------------------博主声明:1.本系列非linux系统教程,仅仅是针对linux0.11内核源码,所做的剖析,注释。2....

  • Linux内核源代码情景分析系列

    时间:2024-04-15 21:31:25

    http://blog.sina.com.cn/s/blog_6b94d5680101vfqv.htmlLinux内核源代码情景分析---第五章 文件系统...

  • linux内核之设备驱动

    时间:2024-04-14 18:38:49

    一、驱动模块1、设备类型         设备分为三种类型:块设备、字符设备、网络设备。         块设备(blkdev)是可寻址,寻址以块为单位,块大小随设备不同而不同;块设备通常支持重定位操作(即对数据的随机访问),例如:硬盘,光盘,flash等。         字符设备(cdev)是不...

  • Linux内核分析实验二:mykernel实验指导(操作系统是如何工作的)

    时间:2024-04-13 13:20:38

    计算机是如何工作的?(总结)——三个法宝存储程序计算机工作模型,计算机系统最最基础性的逻辑结构;函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能;enterpushl %ebpmovl %esp,%...

  • linux内核中socket的创建过程源码分析(总结性质)

    时间:2024-04-12 17:35:31

    在漫长地分析完socket的创建源码后,发现一片浆糊,所以特此总结,我的博客中同时有另外一篇详细的源码分析,内核版本为3.9,建议在阅读本文后若还有兴趣再去看另外一篇博文。绝对不要单独看另外一篇。一:调用链:二:数据结构一一看一下每个数据结构的意义:1) socket, sock, inet_soc...

  • linux内核虚拟内存之slub分配器

    时间:2024-04-12 15:06:23

    上一章主要讲述以页为最小单位进行内存分配的伙伴管理算法,较大程度上避免了内存碎片问题。而实际上对内存的申请却不是每次都申请一个页面的(比如文件节点,任务描述符等结构体内存),通常是远小于一个内存页面的大小,此外更可能会频繁地申请释放这些内存。对于这种情况,每次分配小于一个页面的都统一分配一个页面的空...

  • 使用VMware Workstation安装(Linux内核)银河麒麟系统

    时间:2024-04-10 16:28:00

    1.下载软件:VMware Workstation Kylin-x86_64.iso(Linux内核)银河麒麟系统镜像包。2.安装完成VMware Workstation并运行。3.创建新的虚拟机。 4.选中“典型”,下一步。 5.安装程序光盘映像文件(浏览——文件存放路径),下一步。 6.虚拟机中...

  • 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....