LVS/TUNmodewithFreeBSDandSolarisrs
vm_page_startup(), 156行. vm_page module 初始化. 183197行, 计算所有的可用记忆空间, 并挑出最大的 block. phys_avail 在一开始 locore.c 的初始阶段就设定. phys_avail 为可用之 physical memory block list, 由 getmemsize(), i386/i386/machdep.c, 1419行, 计算所得. 206行, vm_page_queue_init(), 104行, 初始 vm_
FreeBSD核心探讨.5.驱动程序篇 2.2 虚拟文件系统和vnode FreeBSD在disk上的除了ffs以外还可以操作各种各样的文件系统。主要的如下: 。cd9660 可以对ISO9660形式的cdrom的目录/文件构造的文件系统进行mount,locate等目录层的操作 。msdos 对msdos文件系统进行目录层次的mount,定位等操作 。mfs 通过使用虚拟内存
测试机IP为211.162.77.73 网卡为:xl0 内核中加了流量管理,你可以根据实际需要增删。 uname a 如果你用的是默认内核GENERIC则如下操作: ============================================= cd /sys/i386/conf cp GENERIC ./GENERIC_IPFW ee GENERIC_IPFW 添加以下内容 options IPFIREWALL options IPDIVERT opt
rwsrxrx = 4755 文件执行的时候,会以owner的身份来执行,就是setuid 。 例如:rwxrxrt 1 root wheel 0 7 9 18:24 test 这个test 是允许同组或其他人运行的,但是他运行的时候去可以控制那些root 属性的文件或设备。 再来一个特殊点点的东西。关于目录安全性的。 #ls la /tmp drwxrwxrwt 12 root wheel 1536 7 9 18:2
freebsd系统日志与备份 由于FreeBSD是一个多用户系统,那么就需要管理员进行日常维护,特别是用做网络服务器的系统,一旦因为 缺乏维护而造成停机故障,就会造成很大损失。即使对于单用户的FreeBSD系统,同样也要执行这些不可缺乏的维护任 务,只是由于系统归个人使用,那么对维护的要求就不必那么高,维护任务就轻松一些
FreeBSD下的内存文件系统 大多数操作系统,包括FreeBSD,通常使用磁盘来保存需要存储的数据。而操作系统采用文件的形式来保存数据,因此操作系统在磁盘上存储数据需要按照一定的格式进行,以便系统能够正确存储和访问文件,数据在磁盘上的组织格式被称为文件系统,不同的操作系统通常使用不同的数据组织格式,就是说使用不
kern/init_main.c mi_startup(), 171行. 由 locore 呼叫, locore 为 kernel binary 最先被执行的程式区段. locore 对机器环境进行初始, 准备一个让 kernel 可以顺利执行的环境, 例如准备一个可以让 gcc compile 的式码执行的环境. 在 locore 的最後会呼叫, mi_startup(). mi_startup() 利用 linker 会主动将同一 section
以前老听说编译内核,觉得特别神气,呵呵,特别是像FreeBSD这样自由开发的操作系统,简直是非常好,能够自己定制内核,想怎么弄就怎么弄,呵呵,能够提升速度,还能够保证安全稳定,所以我就试一试怎么定制内核. (我也是新手,如果文章出现错误,请指正!) 我所用的FreeBSD是5.2.1版,现在是比较新的了,我一看我的内核文件大小: # ls l
这介绍 FreeBSD 的 kernel, 目前暂不包含 SMP 的部分. 我是以我个人的想法去记录下, 当我看到 code 时脑中的想法. 如果你有什麽建议, 能让你更容易看懂, 请 mail 给我. 谢谢! i386/i386/locore.s boot loader 将 kernel binary 读入 memory 後, kernel 的进入点. i386/i386/machdep.c 和机器相关之 function. i386/i38
一、缘起 1960年代初期,美国国会图书馆(Library of Congress, LC)的Henriette Avram等人开始研拟机读编目格式,同时James Agenboard等人也制订了英文的字符集和交换码,以做为美国图书馆界书目交换的共同标准。LC交换码随后发展成为美国的国家标准ASCII(American Standard Codefor Information Interchange),而且还
getmemsize(), 1419行. 找出并计算所有可用之记忆体, 并保留 msgbuf (保留在 avail_end 後面, MSGBUF_SIZE 大小). init386(), 1802行. 参数 first 为未使用的 free mem addr (physfree). 18241825? preload_bootstrap_relocate(), kern/subr_module.c, 234行,relocate 预先载入(preload)的 kernel module. 执行 loader 的
在内核中,用户态和内核态之间的数据拷贝主要通过copyin()和copyout() 两个函数完成。与普通的数据拷贝不同,用户态和内核态之间的数据拷贝必须考虑到用户给出的地址是否有效,即该地址是否有真正的地址映射。同时又要考虑到效率。因此也不可能对用户给出地址的每个字节检查一遍。 FreeBSD和linux一样(linux中是copy_from
vm_mem_init(), 99行. 进行 vm module 的初始化. 107行, vm_set_page_size(), kern/vm_page.c, 137行. 计算一个 page 的大小, 并设定 cnt.v_page_size. 108行, vm_page_startup(), vm/vm_page.c, 156行, 进行 vm_page 的初始化动作. 112行, vm_object_init(), vm/vm_object.c, 189行. vm_object module 初始. 113行, vm
vm_object_init(), 189行. vm_object 初始化. 192行, 初始 vm_object_list_lock simple lock. 195197行, 初始 kernel_object. 199201行, 初始 kmem_object. 203205行, 初始 object zone(obj_zone).
Device Names The following is a list of physical storage devices supported in FreeBSD, and the device names associated with them. Table 161. Physical Disk Naming Conventions Drive type Drive device name IDE hard drives ad IDE CDROM drives acd SCSI hard drives and USB Mass storage devices da SCSI
关于FreeBSD4.4网络源代码接口层数据结构ifnet分析说明 在FreeBSD4.4版的NET/3底部的接口层中包含了一些重要的数据结构,其中ifnet数据结构是有关网络接口设备通用部分的最重要的数据结构,他的源代码部分在文件/usr/src/sys/net/if.h中.要分析链路层(网卡驱动程序)源代码,必须要理解该结构. Ifnet数据结构非常大,但是比较
本文主要讲述FreeBSD 5.0操作系统中新增的重要安全机制,即强制访问控制机制(MAC)的使用与源代码分析,主要包括强制访问控制框架及多级安全(MLS)策略两部分内容。这一部分讲述要将MAC框架与MLS策略用起来,应该做的一些工作,以及如何有效使用它们的问题。 强制访问控制(英文缩写MAC)是实现操作系统安全的一个重要的
注:由于code是BBCode的关键字,在某些地方将程序中的变量code改写为_code 系统调用开始于用户程序,接着到达libc进行参数的包装,然后调用内核提供的机制进入内核。 内核提供的系统调用进入内核的方式有几种,包括lcall $X, y方式和 int 0x80方式。其实现都在sys/i386/i386/exception.s中。 我们看最常见的int 0x80入口
一、 编译内核的必要性 1. 减少启动时间。常规内核的启动要浪费很多时间在检测不必要的硬件上。 2. 减少运行时的内存消耗。不必要的系统支持不用加载。 3. 增加一些缺省不支持的特性(kernel option)。 二、 编译安装新内核 首先,我们必须确认/usr/src/sys存在,也可以通过/sys访问到,接下来所有的操作依赖于该