Linux内核分析与应用

简介: Linux内核分析与应用

1.概述


用到的几个命令:

insmod

dmesglsmod

章节测试:

部分可参考


<1>. Linux得以流行,是因为遵循了GPL协议,并不是因为遵循POSIX标准 (错)

linux操作系统概述

linux概述


<2>. 从Linux操作系统的整体结构来看,分两大部分,用户空间的应用程序和内核空间的os内核,二者之间是一种c/s结构,os是服务者,应用程序是客户,是一种请求和响应的关系。 (对)

Linux用户空间与内核空间

阮一峰-User space 与 Kernel space


<3>.Linux内核提供机制而不是策略,系统调用是一种策略 (错)

微信截图_20230926004252.png

image.png

关于Unix/Linux的设计有一句通用的格言“提供机制而不是策略”。换句话说,系统调用抽象出了用于完成某种确定目的的函数。至干这些函数怎么用完全不需要内核去关心。区别对待机制(mechanism)和策略(policy)是Unix/Linux设计中的一大亮点。大部分的编程问题都可以被切割成两个部分:“需要提供什么功能”(机制)和“怎样实现这些功能”(策略)。

<4>.内核源码中的双向链表和哈希表都相当于内核源码中的基本类型,对其操作只需要调用内核提供的相应API就可以。  (对)

Linux内核中对双向链表的使用,简直和int型一样频繁


<5>.Linux内核把双链表作为基本类型存放于types.h文件中,是为了隐藏双链表的指针特性。 (对)

Linux双向链表的定义主要涉及到两个文件:

Linux内核中双向链表的经典实现


<6>. list.h中的list_entry()宏通过一个结构体中字段的地址可以求出该结构体的地址,从而可以访问结构体的其他成员,是一种逆向思维。 (对)

Linux内核中的list_head结构体以及list_entry宏


<7>.Linux内核是单内核结构,执行效率高,可维护性好 (错)

微内核效率不如单内核,但可维护性要好。minix,qnx,l4,还有谷歌刚推出的fuchsia,均为微内核。linux大多数为单内核


<8>.内核文档中www.kernel.org/doc/html/la… 只包含各个子系统的文档   (错)


<9>.可加装的内核模块在内核运行时候可加载和卸载,是开发一个新的文件系统,驱动程序的基本机制。  (对)

<10>.内核模块的修饰符__init可加可不加,对模块的运行没有什么影响  (错)


linux kernel __init和__exit宏的作用

Linux开发实战指南文档(这篇不错)


<11>.编写Linux内核模块时,不需要单独写一个Makefile文件,直接编译就可以 (错)


<12>.Linux内核模块运行在用户空间  (错)


<13>. 微内核比单内核的效率高 (错)


<14>. Linux内核模块的插入和运行必须用root权限 (对)


<15>. Linux的内核模块不属于Linux的几个子系统  (对)


<16>.Linux在超级计算机,可穿戴设备,嵌入式系统,移动终端,桌面等系统上都可以运行。 (对)


<17>. Linux内核、GNU工具以及其他一些自由软件组成了人们常熟的Linux系统或者Linux发布版。 (对)


<18>. lisit_entry(ptr,type,member)宏返回的是member的地址 (错)

[Linux内核双链表语句list_entry(ptr, type, member)理解](ilinuxkernel.com/?p=1062 "Linux内核双链表语句list_entry(ptr, type, member "Linux内核双链表语句list_entry(ptr, type, member)理解")理解")


<19>.list_for_each_saft()宏和list_for_each()宏功能一样,安全性有差异 (对)


<20>. 与体系结构(如x86,ARM等)相关的代码存放在arch目录下 (对)


<21>. 创建进程属于一种策略而不是机制  (错)


<22>.  ( )不属于Linux的子系统  D

  • A.进程管理
  • B.内存管理
  • C.文件系统
  • D.模块


<23>.Linux操作系统遵循( )标准  C

  • A.GUN
  • B.GPL
  • C.POSIX
  • D.MMU


<24>.触摸屏属于( )管理   B

  • A.应用程序
  • B.操作系统
  • C.硬件厂家
  • D.系统调用


<25>.如果要从磁盘读取一个文件,则主要与( )子系统打交道   C

  • A.内存管理
  • B.进程调度
  • C.文件系统
  • D.网络


<26>. struct list_head 无法表达( )种数据结构    D

  • A.队和栈
  • B.图
  • C.树
  • D.集合

深入理解linux内核list_head的实现


<27>. 谷歌的Fuchsia操作系统属于( )结构    A

  • A.微内核
  • B.单内核
  • C.C/S
  • D.面向对象


目录
相关文章
|
17天前
|
Linux C语言
Linux内核队列queue.h
Linux内核队列queue.h
|
30天前
|
Linux
linux查看应用对应的端口
linux查看应用对应的端口
16 0
|
1月前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
37 0
|
10天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
15天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
22天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
22天前
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
36 6
|
24天前
|
Prometheus 监控 数据可视化
linux分析方法与技巧
【4月更文挑战第3天】在Linux环境中,进行日志分析和系统性能分析的关键方法包括:使用`cat`, `less`, `tail`查看和过滤日志,`logrotate`管理日志文件,`rsyslog`或`syslog-ng`聚合日志,以及通过`top`, `mpstat`, `pidstat`, `free`, `iostat`, `netstat`, `strace`, `sar`, `dstat`等工具监控CPU、内存、磁盘I/O和网络。对于高级分析,可利用Brendan Gregg的性能工具,以及Grafana、Prometheus等可视化工具。
19 2
linux分析方法与技巧
|
25天前
|
Linux 内存技术
Linux内核读取spi-nor flash sn
Linux内核读取spi-nor flash sn
18 1
|
25天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作