T-Kernel 中提供了 Vmalloc / Kmalloc API 用于分配内存。原以为和Linux内核里的 vmalloc / kmalloc 类似 ,结果不是这么一回事。Vmalloc : 非常驻内存分配Kmalloc:  常驻内存分配,类似于 Linux 里的 mlockall()至于如何分配物理地址连续的内存空间,还不确定。可能可以用以下方式:调用 Ma            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-04 16:02:52
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录内存映射实现进程间通信1. 内存映射相关系统函数2. 内存映射使用示例3. 内存映射函数使用注意事项4. 匿名映射 内存映射实现进程间通信内存映射,Memory-mapped I/O,是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。内存映射对应的虚拟地址空间是动态库/共享库所在的区域;映射的内存数据修改,文件数据也会对应修改,如果文件也映射到另一个进程,那么另一个进程就可            
                
         
            
            
            
            前面简单地介绍了三种不同的地址空间,接下来重点讲述线性地址空间到物理地址空间的映射。我们先从32位系统开始。在32位系统中,线性地址空间的大小为 2^32,即4GB。Kernel一般会按照 3:1 的比例,把线性地址空间分为两部分:0~3GB 用户地址空间3GB~4GB 内核地址空间。用户地址空间的管理和映射是个大的topic。我们后面再详细讲述。内核地址空间只有1GB大小,最多只能映射1GB的物            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2015-08-06 18:15:05
                            
                                4212阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            前面讲过,针对于内核地址空间中后面的128MB空间,Kernel提供了三种机制来映射物理内存。之前讲过了两种,即持久内核映射和临时内核映射。这两种机制的目的都是一样的:使Kernel能够访问到高端内存。今天讲一下第三种机制:非连续内存分配,也就是vmalloc。这个机制同样可以使Kernel能够访问到高端内存,不过这不是该机制的主要目的。该机制的主要目的是:把物理上不连续的页面映射到连续的内核线性            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2015-08-12 18:25:46
                            
                                6205阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            大家都知道,计算机的硬件设备在与系统进行交互时,需要通过 I/O 接口来实现数据的传输和控制。而内存映射则是将硬件设备的物理地址映射到系统的内存空间,以便操作系统能够直接访问这些设备。早期 I/O 内存映射在这个过程中扮演着重要的角色,它为内核提供了一种高效的方式来管理和访问硬件设备。
想象一下,当我们启动计算机时,系统需要快速地识别和配置各种硬件设备。早期 I/O 内存映射就像是一座桥梁,连接着            
                
         
            
            
            
            内核地址空间中后面这128MB的最后一部分,是固定映射 (fixed mappings)。固定映射是什么意思?为什么要有固定映射?Kernel源代码的注释里有一句话,可谓一语中的:The point is to have a constant address at compile time, but to set the physical address only in the            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2015-08-07 14:29:30
                            
                                3381阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            什么 T-Kernel T-Kernel 实时操作系统是由T-Engine论坛开发的用以满足下一代普适计算环境设备性能要求的OS。“T-Engine” 是一个基于标准规格的硬件系列,用以作为“T-Kernel”的开发环境。 “T-Kernel”追求其自身的可扩展性,用以支持从小型系统到大型系统开发的广泛用途; "μT-Kernel" 支持8位和16位的CPU,并简化 μITRON 的移植            
                
                    
                        
                                                            
                                                                        
                                                                                        翻译
                                                                                    
                            2023-05-04 16:03:18
                            
                                378阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            T-内核是一个实时操作系统,它是T-Engine的心脏。 T-Kernel,通过和称为T-Kerneel扩展的中间件的组合,能够配置适用于各种设备的实时操作系统。T-Kernel为了更容易发布中间件,规定了中间件API的两个标准:子系统和设备驱动程序。T-内核的功能是由三部分组成:T-Kernel/OS (Operating System) 它提供作为一个实时操作系统的基本功能。相当于传统的 μ            
                
                    
                        
                                                            
                                                                        
                                                                                        翻译
                                                                                    
                            2023-05-05 14:38:34
                            
                                263阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            参考:tk/errno.h#define E_OK        0       /* Comp define E_NOSPT               
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-04 16:03:25
                            
                                137阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            uT-Kernel 2.0 Specification3.1.1     General Data Typestypedef   signed char           B;      /*   signed 8- bit integer */
typedef   signed short          H;      /*   signed 16 - bit inte            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-04 16:21:46
                            
                                91阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              NIO里对性能提升最显著的是内存映射(memory mapping),内存访问的速度往往比文件访问的速度快几个数量级。  在内存映射之前,还需要看NIO的一些其他的特性。 缓冲区分片  slice()方法根据现有的缓冲区创建一个子缓冲区。也就是说,它创建一个新的缓冲区,新缓冲区与原来的缓冲区的一部分共享数据。 package nio;
import java.nio.ByteBuffer;            
                
         
            
            
            
            一、背景  项目开发中免不了各模块或系统之间进行消息通信,目前热门的消息中间件有Redis、RabbitMQ、Kafka、RocketMQ等等。以上几种组件中Redis在消息队列方面表现还可以,但是如果涉及发布订阅功能,就不行了,最近项目就使用了redis的发布订阅,每秒只能发出几千条,虽然目前绰绰有余,但是瓶颈可以预期。  其余的几种都是比较重量级的消息中间件,什么跨平台、分布式、集群、支持N种            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-17 02:16:26
                            
                                58阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            T-Kernel 里有类似于 msleep() 的函数。 但是是忙等。参考:http://www.t-eng            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-04 16:21:36
                            
                                86阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型的、面向对象的语言的内存管理方式。对象的内存使用赋值语句是语言最常见的功能了。但即使是最简单的赋值语句,也可以很有内涵。Python的赋值语句就很值得研究。a = 1整数1为一个对象。而a是一个引用。利用赋值语句,            
                
         
            
            
            
            Linux内核是一个开源的操作系统内核,几乎被所有的Linux发行版所采用。在Linux内核中,有一个非常重要的数据结构被称为“slab”。Slab是一种高效的内存分配机制,它可以帮助操作系统更高效地管理内存。在这篇文章中,我将介绍Linux内核中的slab机制,并说明它对系统性能的重要性。
首先,让我们来了解一下什么是slab。在Linux内核中,slab是一种用于管理内存分配和释放的数据结构            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-03 10:47:19
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    映射是个术语,指两个元素的集之间元素相互“对应”的关系,为名词。“映射”或者“投影”,------------       内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-07-14 21:48:03
                            
                                613阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            mmap 的原理 每一个进程都有一个列表 vm_area_struct,指向虚拟地址空间的不同的内存块,这个变量的名字叫 mmap。 其实内存映射不仅仅是物理内存和虚拟内存之间的映射,还包括将文件中的内容映射到虚拟内存空间。 这个时候,访问内存空间就能够访问到文件里面的数据。而仅有物理内存和虚拟内存 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-06-30 23:49:00
                            
                                266阅读
                            
                                                                                    
                                2评论