`
Joard
  • 浏览: 29001 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

FreeBSD学习随记之一 内核基本结构

    博客分类:
  • OS
阅读更多

一,内核基本结构

 

Run-time structure of the kernel.

 

1. 内核上半部

    内核的“上半部”向进程提供服务,对系统调用和陷阱作出响应。

    这部分软件可以当作是所有进程共享的库函数。内核上半部在特权执行模式下运行,在该模式下,它既可以访问内核数据结构,也可以访问用户级进程的上下文。

 

2. 内核下半部

    下半部内核由负责处理硬件中断的例程组成。

    下半部内核中执行的中断操作与中断来源是同步的,但是与上半部内核是异步的。因此,对下半部内核来说,它没有引发中断操作的那个进程的状态信息。

 

3. 两部分相互通信

    内核的上半部和下半部一般围绕工作队列 (work queue) 中的数据结构来相互通信。

 

    在上半部的时候,它绝对不会被其他用户进程抢先,但当它必须等待某个事件或者某个共享资源的时候,它会主动放弃 CPU 。不过它的执行可能被内核下半部的中断所打断。

 

4. 为什么要降低一部分中断的优先级别

    系统为了关键性的操作不会因为执行时间过长而阻塞,把尽可能多的工作从高优先级的中断推迟到低优先级的软件中断进程。

 

5. 系统的节拍 (tick) 决定了用户进程在设置定时器时所能申请到的最短 ( 非零 ) 时间。

 

6. 就如其他 unix 系统一样, FreeBSD 也是通过系统调用中断向量来判断出要它执行那个系统调用。

 

7.FreeBSD 将动态共享库直接映射到进程的地址空间中,一般位于用户栈和堆的中间。

 

8.FreeBSD 进程结构

Layout of a FreeBSD process in memory and on disk.

 

9. 定时器时间队列

分享到:
评论

相关推荐

    freebsd.tar.gz_BSD_FreeBSD内核源码_freebsd source_freebsd.tar_linux

    虽然这个压缩包的标题中提到了`linux`,但请注意,FreeBSD和Linux在内核设计上有许多不同之处。Linux采用微内核架构,而FreeBSD采用单内核设计。此外,它们的许可证也不同,Linux遵循GPL,而FreeBSD遵循BSD许可证。...

    freebsd 内核编译

    总结,FreeBSD内核编译是一个涉及多个步骤的过程,包括获取源代码、配置内核、编译、安装以及测试。通过精简内核,可以提高系统的运行效率,但务必谨慎操作,以免因去除关键模块导致系统无法正常工作。对于不熟悉...

    教你定制自己的压缩的FreeBSD内核

    在FreeBSD操作系统中,用户可以定制并压缩内核以适应特定需求,这在创建启动盘、应急盘或者优化系统资源占用时尤其有用。虽然FreeBSD的默认安装过程并不涉及手动压缩内核,但通过一些简单步骤,我们可以使用内置工具...

    FreeBSD411新功能及内核配置文件样本

    FreeBSD 4.11 是该操作系统的一个版本,它包含了多个重要的更新和修复,主要集中在安全、核心功能、硬件支持、网络协议、磁盘与存储以及用户空间应用程序的改进上。以下是对这些方面进行详细说明: 一、安全问题 ...

    如何定制自己的压缩的FreeBSD内核

    首先,你需要了解FreeBSD内核编译的基本流程。在FreeBSD中,内核可以被定制以满足特定的硬件需求和功能要求。这通常涉及以下几个步骤: 1. **获取源代码**:FreeBSD的源代码可以从官方Git仓库或者ISO镜像的`/usr/...

    FreeBSD-8.0 内核源码

    FreeBSD是一种自由类Unix操作系统,是由经过BSD、386BSD和4.4BSD发展而来的类Unix的一个重要分支。FreeBSD拥有超过200名活跃开发者和上千名贡献者。

    FreeBSD 5.4 网络通信过程中内核例程调用流程

    FreeBSD 5.4操作系统在处理网络通信时,其内核例程的调用流程是一个复杂而精细的过程,涉及到多个层次的数据传输和处理。在这个过程中,主要的数据结构包括套接字(socket)、协议层(protosw、domain、pr_usrreqs)...

    FreeBSD 7.0 内核源代码2(共两部分)

    通过学习这些源代码,开发者不仅可以了解FreeBSD内核的工作原理,还能学习如何定制内核以适应特定场景,甚至参与开源社区的开发工作。不过,要深入理解这部分源代码,需要具备C语言编程基础、操作系统原理和网络协议...

    FreeBSD-9.0内核源码

    FreeBSD是一种UNIX操作系统,是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支。FreeBSD 为不同架构的计算机系统提供了不同程度的支持。

    freebsd 内核代码

    freebsd 内核代码

    FreeBSD学习笔记整理

    ### FreeBSD学习笔记整理 #### 一、系统基本信息查询 **1. 查看CPU信息** - 使用`sysctl hw.model hw.ncpu`命令可以查看到CPU的型号和核心数量。 - `dmesg | grep "CPU:"`命令也可以用来获取CPU的相关信息。 **2...

    freebSD学习手册 关于学习freebSD的应用

    学习如何安装FreeBSD是入门的第一步,包括选择合适的安装介质、进行基本的分区和文件系统配置。安装完成后,了解如何配置网络、添加软件包或端口、设置用户账户和权限,以及基本的安全措施,都是必不可少的技能。 #...

    初级Freebsd命令学习

    初级Freebsd命令学习和使用方法让菜鸟们更加了解Freebsd命令.

    freebsd学习资料

    FreeBSD是一种开源的类UNIX操作系统...通过系统性地学习和实践,不仅可以掌握FreeBSD的基本技能,还能提升对操作系统底层原理的理解,这对于职业发展特别是系统管理员、运维工程师或者开发者角色来说,都是极为有益的。

    FreeBSD完全学习

    《FreeBSD完全学习》一书提供了详尽的指南,涵盖了FreeBSD操作系统的各个方面,包括安装、配置、开发等,旨在帮助读者全面掌握FreeBSD的使用与管理。以下是从标题、描述、标签及部分内容中提取的关键知识点: ### 1...

    FreeBSD系统结构官方简体中文手册txt

    - **UFS (Unix File System)**:FreeBSD默认使用的文件系统之一,具有良好的性能和稳定性。 - **ZFS (Zettabyte File System)**:一种高级文件系统,提供了数据校验、快照、克隆等高级特性,非常适合存储大量数据。 ...

    FreeBSD 7.0 内核源代码1 (共两部分)

    FreeBSD 7.0 是一个历史悠久的开源操作系统版本,它基于UNIX系统,以其稳定性和安全性在服务器领域受到广泛赞誉。其内核源代码是整个操作系统的心脏,包含了系统启动、设备驱动、内存管理、进程调度、网络协议栈等多...

    FreeBSD10.0内核源码

    FreeBSD 10.0 NET 源码 ,可以直接查看里面的相关函数

Global site tag (gtag.js) - Google Analytics