Linux
文章平均质量分 62
shaomingshan_
这个作者很懒,什么都没留下…
展开
-
QEMU模拟vexpress-a9 搭建Linux kernel运行环境
众所周知,QEMU是一个可以模拟ARM架构的虚拟机,拥有高速、开源、跨平台、支持多种架构等优点。接下来,我们将使用QEMU模拟vexpress-a9,并在上面跑一个Linux kernel,为接下来的工作实验做准备。实验环境及软件版本ubuntu 16.04.2 Linux kernel-4.14.7 QEMU-2.11.0 Busybox-1.27.2下载Linux kernelwget h原创 2017-12-23 22:27:51 · 10868 阅读 · 9 评论 -
Real-time Linux
所谓实时操作系统(Real-time Opearting System),是指当外接世界或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。相比于分时操作系统有着响应及时和可靠性高的优点。本文将在QEMU环境下,通过给内核打实时补丁的方式,使Linux原创 2017-12-24 19:25:54 · 4610 阅读 · 1 评论 -
Linux fork()分析
Linux通过clone()系统调用实现fork()。这个系统调用通过一系列的参数标志来指明父、子进程需要共享的资源。fork()、vfork()和__clone()库函数都根据各自需要的参数标志去条用clone(),然后由clone()去调用do_fork()。 do_fork()完成了创建中的大部分工作,他的定义在kernel/fork.c文件中。该函数调用copy_process()函数,...原创 2018-04-10 22:22:17 · 275 阅读 · 0 评论 -
Linux内核实验(一):proc文件系统
一、引言Proc文件系统,以文件系统的形式向用户提供系统当前状态,动态地从同内核中读出所需的信息,只存在内存中,不占用外存空间。二、实验内容问题A: 1、cpu类型 2、内核版本问题B: 1、系统启动以来的时间,以dd:hh:mm:ss报告问题C: 1、cpu执行用户态、系统态、空闲态所用时间 2、多少次磁盘请求 3、多少次上下文切换 4、启动了多少次进程问题D: 1、内存总量 2原创 2018-04-30 10:29:15 · 2938 阅读 · 0 评论 -
Linux内核实验(二):shell命令解释系统
一、引言Shell命令解释程序中元字符的处理是shell中一个强大的功能,利用对各种字符的不同解释可以充分挖掘出内核的各种强大的潜能。例如利用“&”符号启动并发的后台进程,利用“<”、“>”符号启动I/O重定向,利用“|”启动管道读写等。同样也可以实现其他一些元字符的功能,如“*”通配符,“;”连接符等。二、实验内容问题A 实现一个能处理前后台运行命令的shell 问题B 实现原创 2018-04-30 11:39:52 · 1635 阅读 · 1 评论 -
Linux VFS与Read/Write系统调用
一、引言VFS(虚拟文件系统,Virtual File System)是物理文件系统与服务之间的接口层,向下对文件系统提供标准接口,方便其他文件系统移植,向上对应用层提供标准文件操作接口,使open()、read()、write()等系统调用可以跨越各种文件系统和不同介质执行。 二、VFS对象及数据结构超级块对象super_block,对应已装载的文件系统 索引节点对象inode,对应介质上的一原创 2018-05-07 18:55:23 · 3931 阅读 · 0 评论 -
Linux内核实验(三):内核定时机制实验
一、引言练习编写调用内核的时间测量功能为应用程序测量和精确定时。通过这个实验进一步了解Linux内核的定时机制及其数据结构以及怎样从用户空间去访问内核空间的时间数据。二、实验内容问题A:使用ITIMER_REAL型定时器实现一个gettimeofday(),将它设置为每秒产生一个信号,并计算已经经过的秒数。问题B:使用以上实现的gettimeofday()实现一个精确到微秒级的...原创 2018-07-25 13:49:01 · 617 阅读 · 0 评论 -
Linux内核实验(四):动态模块设计实验
一、引言Linux模块是一些可以独立于内核单独编译的内核函数和数据类型集合,是可增删的内核部分。模块在内核启动时装载称为静态装载,在内核已经运行时装载称为动态装载。模块可以扩充内核所期望的任何功能,但通常用于实现设备驱动程序。二、实验内容问题A:分析实验以上模块,编写一个测试该模块的用户程序,比较该模块读取的时间和用gettimeofday()读取的时间的精度。问题B:实现一个模块...原创 2018-07-25 14:01:07 · 649 阅读 · 0 评论 -
Linux内核实验(五):新系统调用设计实验
一、引言系统调用是内核提供给用户应用程序使用的内核函数名,这些函数提供了内核为用户程序所提供的系统服务功能。这些函数在用户应用程序中的书写格式与用户自定义函数形式上没有什么不同,但这些函数的编写和调用过程却与自定义函数有着很大的不同。它们需要事先在内核中安排好入口和函数体,当调用时会引发系统软中断根据对应的存根函数查中断表进入请求的内核函数。二、实验内容问题A分析实现以上系统调用,...原创 2018-07-25 14:12:31 · 447 阅读 · 0 评论