侵权投诉

如何去自制文件系统?开发文件系统为什么难?

Linux爱好者 2021-06-11 16:27 次阅读

我们这个自制文件系统,就是想从形意结合,让读者朋友能够跟随着笔者一起经历一次文件系统由 0 到 1 的过程,构建好知识框架,后续的深造将会得心应手。

好,话不多说,我们先从什么是文件系统讲起,简单介绍一些探索文件系统的基础知识。

1 查看现有文件系统实例

Linux 文件系统相比大家都使用过。大家在自己的 Linux 上机器上执行 mount 命令就能看到当前系统上挂载的所有文件系统:

mount

示例如下:

root@localhost:~# mount

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

。。。。

比如通过这一行信息我们能看出来:

sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)

信息拆解分析:

sysfs:文件系统名称;

/sys :文件系统目录挂载点;

sysfs:文件系统类型

(ro,nosuid,nodev,noexec,relatime):挂载参数

这里蕴含的重要信息:

同一个文件系统类型可以创建多个实例,挂载在不同的挂载点,就跟面向对象里的类和实例的关系;

挂载点必须是目录;

其实,mount 这个命令很强大,不仅能 list 所有的文件系统,还能挂载文件系统。如下:

挂载文件系统命令:

# 把已经格式化好的 /dev/sdb1 盘挂到 /mnt 目录上

mount -t ext4 /dev/sdb1 /mnt/

对应卸载文件系统命令:

# 卸载 /mnt 的挂载点

umount /mnt

2 查看目录挂载的文件系统用量

mount 命令能看到所有的挂载列表,但是如果你想要看到所有文件系统的使用情况,则需要另一个命令:df。df 命令用来查看当前操作系统挂载的文件系统和使用情况:

df -Tha

-T 参数能够让你看到所有的文件系统实例的类型;

-h 参数能够以更符合人类的友好的形式展示数据;

-a 参数展示所有的文件系统,包括 0 Blocks 的文件系统(默认是会过滤掉的);

示例如下:

root@localhost:~# df -ahT

Filesystem Type Size Used Avail Use% Mounted on

sysfs sysfs 0 0 0 - /sys

proc proc 0 0 0 - /proc

/dev/mapper/cl-root xfs 17G 11G 7.0G 60% /

。。。

注意,如果 df 没有加 -a 参数,类似于上面 sysfs,proc 这种用量 0 的会被过滤掉。这也是 mount 和 df 两个命令默认显式信息的区别。

3 查看文件系统挂载配置

文件系统挂载可以通过 mount 命令直接挂载,但是 mount 命令挂载并没有持久化,关机重启就没了。所以想要关机重启之后,还能自动挂载到指定目录,那么就要把挂载规则写到 /etc/fstab 文件中,fstab 就是 fs table 的缩写,很容易理解。

操作系统在启动的时候,就会解析这个文件,并按照这个文件里的配置,自动挂载文件系统了。

如下:

root@localhost:~# cat /etc/fstab

/dev/mapper/cl-root / xfs defaults 0 0

UUID=600e3771-af4a-48ca-a557-02204c9a48a5 /boot ext4 defaults 1 2

/dev/mapper/cl-swap swap swap defaults 0 0

fstab 的文件格式:

《设备标识》 《挂载目录》 《文件系统类型》 《挂载参数》 《dump选项》 《fsck选项》

从左到右参数拆解:

设备标识:能够标识到唯一的文件系统所在的设备,这里可以是设备路径,也可以是 LABEL,或者 UUID;

挂载目录:文件系统挂载的目录点;

文件系统类型:比如 ext4,ext2,xfs 之类的;

挂载参数:可以填 defaults,也可以精细化配置,比如只读还是可写(rw/ro),同步刷盘还是异步(async/sync),等等;

dump选项:让你能控制文件系统备份的频率,0 表示不备份;

fsck选项:让你控制是否开机用 fsck 自检,0 表示不要;

4 查看内核支持的文件系统

这个直接去看内核模块即可:

ls /lib/modules/${kernel_version}/kernel/fs/

不同的 Linux 发行版略有不同,比如,centos 一般为:

ls -l /lib/modules/4.18.0-80.el8.x86_64/kernel/fs/

ubuntu 一般为:

ls -l /lib/modules/4.4.0-142-generic/kernel/fs/

在对应的目录找到对应的 .ko 模块,比如 ext4.ko ,如果想看内核已经加载的内核模块,可以调用 lsmod 看到。

简单普及一下 .ko 模块的知识:

ko 其实是 kernel object 的缩写,这类文件存在的意义其实和用户态的 .so 库类似,都是为了模块化的编程实践。内核把核心主干框架之外的功能拆解成模块,需要的时候就加载 ko 模块,不需要的时候卸载即可。这样带来的好处就是方便开发和使用,保持内核的核心代码极度精炼。

类似于文件系统,硬件驱动等等,都是以这种形式来加载使用的。

开发文件系统为什么难?

为什么文件系统的开发大家会觉得非常难?原因其实不在于实现,而在于调试和排障,因为早期文件系统的开发只能在内核之中,这个带来了非常高的门槛。

1 内核文件系统

因为在此之前我们看到了文件系统是位于内核之中, vfs 之下,块存储模块之上的一个位置。对外呈现文件存储实现,对下管理裸块设备。划重点,文件系统是位于内核的一个模块,那就可以理解了,内核模块的开发之所以艰难就是难在调试和排障,用户态的程序你可以随意 debug,出问题最多也就是 panic,coredump,内核态的程序出了文件就是宕机,所有现场都丢失,你只能通过日志,kdump 等手段来排查。并且内核态程序的编写是要注意非常多的规范的,比如内存分配,比用户态的要谨慎的多。

poYBAGDDH2uAPpurAACPSwcAWCA828.jpg

那怎么办?我们本次的目标是要自制实现一个极简的文件系统,但总不能带大家趟一次内核开发的坑吧!那可是要吓退 99% 的小伙伴。

有办法的,内核开发者考虑到了这个问题,又考虑到文件系统的需求是千变万化的,所以提供了一种手段,把 IO 路径导向用户态,由用户态程序捕获到 IO ,从而实现文件的存储,这个机制就叫 FUSE 机制。

2 FUSE 文件系统

作为自制 FS 系列第一篇,我们不讲 FUSE 的实现,而是通过一个动画来演示 IO 的旅途:

pYYBAGDDH3WAGbrnAACf32rrssQ509.jpg

这里的路径做了一些简化,简化了用户态之上的逻辑处理,为什么路径是这样子?什么是 FUSE ?下篇专题解释。

总结

本篇文章是为后续铺垫一些基础知识,从形的方面,系统介绍了一些命令,告诉你文件系统怎么配置,怎么挂载,怎么查看,怎么获取到使用详情。这些基础知识在后面自制文件系统的时候,都要用上。这些 Linux 命令都是帮助我们从文件系统的外围去用,去摸,去嗅,从而再去深入理解。

我们目标不止如此,我们是要亲手做一个文件系统,动手做过一遍的东西,你对它理解也将会突飞猛进,更加深刻。

下面总结一下上面的基础以上的知识:

mount 用来列举查看当前所有文件系统实例,也能支持挂载命令(但 mount 挂载不会持久化,重启就没了),umount 用来卸载;

/etc/fstab 是用来配置文件系统挂载规则的,是持久化的配置,重启不丢;

df -aTh 用来查看每个文件系统挂载目录的详情,包括空间使用量,总量,挂载点等信息;

内核模块的功能以 ko 文件的形式体现,在 /lib/modules/${kernel_version}/kernel/fs/ 目录可以看到支持的内核文件系统模块,lsmod 命令可以看到已经加载的内核模块;

文件系统开发之所以难?是因为之前在内核中开发,内核开发最难的在于调试和排障手段不方便。那文件系统还有出路吗?有,奇伢带你自制一个极简的文件系统,基于 Linux 系统使用纯 Go 语言来做哦,敬请期待后续,自己动手,理解更深。

责任编辑:lq6

原文标题:自制文件系统:文件系统的样子

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

如何操作使用NAND Flash

(1)原理介绍:(2)文件系统(3)坏块管理(4)操作使用...
发表于 08-05 07:58 0次 阅读
如何操作使用NAND Flash

介绍两种Stm32f429移植linux的方法

编写不易,转载请注明出处。 介绍两种移植方法第一种:AFboot + Linux4.13.12 + Stm32_mini_rootfs.cpio.bz2第二种:u-boot...
发表于 08-05 07:42 0次 阅读
介绍两种Stm32f429移植linux的方法

Linux操作系统的CP命令源代码汇总

Linux操作系统的CP命令源代码汇总
发表于 08-04 16:08 11次 阅读
Linux操作系统的CP命令源代码汇总

基于SEP4020和嵌入式Linux的DNC通信及监控平台研究和开发

基于SEP4020和嵌入式Linux的DNC通信及监控平台研究和开发(学嵌入式开发培训机构哪个好)-....
发表于 08-04 14:06 2次 阅读
基于SEP4020和嵌入式Linux的DNC通信及监控平台研究和开发

基于嵌入式Linux的以太网与CAN和MBUS两种现场总线的通信网关设计

基于嵌入式Linux的以太网与CAN和MBUS两种现场总线的通信网关设计(嵌入式开发工作怎么这么难找....
发表于 08-04 13:56 9次 阅读
基于嵌入式Linux的以太网与CAN和MBUS两种现场总线的通信网关设计

基于嵌入式Linux的人机交互接口设备驱动程序的研究和实现

基于嵌入式Linux的人机交互接口设备驱动程序的研究和实现(python嵌入式开发前景)-随着信息技....
发表于 08-04 13:10 9次 阅读
基于嵌入式Linux的人机交互接口设备驱动程序的研究和实现

(网盘)ARM嵌入式Linux系统开发详解

(网盘)ARM嵌入式Linux系统开发详解(python嵌入式开发 - csdn博客)-(网盘)AR....
发表于 08-04 12:35 9次 阅读
(网盘)ARM嵌入式Linux系统开发详解

嵌入式LINUX的Qt开发入门教程

嵌入式LINUX的Qt开发入门教程(最好的嵌入式开发板)-该文档为嵌入式LINUX的Qt开发入门总结....
发表于 08-04 11:01 17次 阅读
嵌入式LINUX的Qt开发入门教程

《嵌入式LINUX基础教程》中文 第2版 (1 of 3)

《嵌入式LINUX基础教程》中文 第2版 (1 of 3)(android嵌入式开发pdf)-嵌入式....
发表于 08-04 10:55 14次 阅读
《嵌入式LINUX基础教程》中文 第2版 (1 of 3)

《嵌入式LINUX基础教程》中文 第2版 (2 of 3)

《嵌入式LINUX基础教程》中文 第2版 (2 of 3)(嵌入式开发 语言选择)-嵌入式Linux....
发表于 08-04 10:52 9次 阅读
《嵌入式LINUX基础教程》中文 第2版 (2 of 3)

《嵌入式LINUX基础教程》中文 第2版 (3of 3)

《嵌入式LINUX基础教程》中文 第2版 (3of 3)(计算机三级嵌入式开发技术)-嵌入式Linu....
发表于 08-04 10:48 5次 阅读
《嵌入式LINUX基础教程》中文 第2版 (3of 3)

基于树莓派的嵌入式Linux开发教学探索

基于树莓派的嵌入式Linux开发教学探索(嵌入式开发零基础能学会吗)-该文档为基于树莓派的嵌入式Li....
发表于 08-04 10:27 6次 阅读
基于树莓派的嵌入式Linux开发教学探索

linux can总线接收数据串口打包上传 | 万众期待的单片机,Linux二合一的STM32MP157开发板亮相 精选资料分享

100ASK_STM32MP157开发板简介100ASK_STM32MP157开发板是由百问网自主研发的STM32MP157底板+米尔核心板组成...
发表于 08-04 08:26 0次 阅读
linux can总线接收数据串口打包上传 | 万众期待的单片机,Linux二合一的STM32MP157开发板亮相  精选资料分享

【招聘】STM32、LINUX、FPGA工程师,硬件设计工程师,待遇7000~15000!精选资料分享

本招聘信息来自野火(火哥)团队。提示:本末有福利。一、STM32 软件工程师,5个(差3个)职位要求:1. 本科及以上学历,电子...
发表于 08-04 08:02 0次 阅读
【招聘】STM32、LINUX、FPGA工程师,硬件设计工程师,待遇7000~15000!精选资料分享

双千兆网口RK3328开发板香橙派r1 plus的13pin GPIO 口测试

wiringOP 已适配 Orange Pi R1 Plus 开发板,使用 wiringOP 可以测试 GPIO的功能 1) 下面以 5 号引脚——对应 ...
发表于 08-03 16:12 0次 阅读
双千兆网口RK3328开发板香橙派r1 plus的13pin GPIO 口测试

开发资料又更新了,嵌入式linux开发指南(RK3399),迅为3399教程1500+

iTOP-3399 开发平台是基于瑞芯微的 RK3399 处理器设计开发的一款产品,Rockchip RK3399 是瑞芯微推出的一款低功耗,高性...
发表于 08-03 10:00 101次 阅读
开发资料又更新了,嵌入式linux开发指南(RK3399),迅为3399教程1500+

基本入门linux

13年本人还是小白,stm32刚刚入门,在本站发的第一个帖子,现在想想当初的自己何其的小白,陆陆续续问了很多可笑的问题。 &...
发表于 08-03 07:56 0次 阅读
基本入门linux

Linux+Eclipse开发STM32教程

以下内容参考自摩尔吧“Linux+Eclipse开发STM32”视频教程。下载gcc-arm-none-eabi-gcc压缩包配置ARM交叉编译链安装ecli...
发表于 08-03 07:39 0次 阅读
Linux+Eclipse开发STM32教程

嵌入式工程师必会的 Linux 进程调度所有知识点

进程的分类在 CPU 的角度看进程行为的话,可以分为两类: CPU 消耗型:此类进程就是一直占用 CPU 计算,CPU 利用率很...
发表于 08-01 07:00 404次 阅读
嵌入式工程师必会的 Linux 进程调度所有知识点

ARM11嵌入式系统Linux下液晶显示的实现

ARM11嵌入式系统Linux下液晶显示的实现(市面流行的嵌入式开发板)-ARM11嵌入式系统Lin....
发表于 07-30 15:08 5次 阅读
ARM11嵌入式系统Linux下液晶显示的实现

ARM11嵌入式系统Linux下LCD的驱动的设计

ARM11嵌入式系统Linux下LCD的驱动的设计(嵌入式开发啥意思)-ARM11嵌入式系统Linu....
发表于 07-30 14:53 12次 阅读
ARM11嵌入式系统Linux下LCD的驱动的设计

基于ARM11的嵌入式LinuxNANDFLASH模拟U盘挂载分析与实现

基于ARM11的嵌入式LinuxNANDFLASH模拟U盘挂载分析与实现(嵌入式开发设计 培训)-基....
发表于 07-30 14:44 8次 阅读
基于ARM11的嵌入式LinuxNANDFLASH模拟U盘挂载分析与实现

基于arm11的嵌入式linux中nrf24l01驱动的实现

基于arm11的嵌入式linux中nrf24l01驱动的实现(嵌入式开发找哪家)-基于arm11的嵌....
发表于 07-30 14:36 11次 阅读
基于arm11的嵌入式linux中nrf24l01驱动的实现

嵌入式Linux应用开发完全手册 594页高清书签版_2

嵌入式Linux应用开发完全手册 594页高清书签版_2(嵌入式开发c语言)-资源较大,分为三个部分....
发表于 07-30 14:07 9次 阅读
嵌入式Linux应用开发完全手册 594页高清书签版_2

嵌入式Linux应用开发完全手册 594页高清书签版_3

嵌入式Linux应用开发完全手册 594页高清书签版_3(嵌入式开发要学单片机吗)-资源较大,分为三....
发表于 07-30 14:06 10次 阅读
嵌入式Linux应用开发完全手册 594页高清书签版_3

嵌入式LINUX系统内核和内核模块调试

嵌入式LINUX系统内核和内核模块调试(嵌入式开发和硬件开发)-嵌入式LINUX系统内核和内核模块调....
发表于 07-30 13:55 9次 阅读
嵌入式LINUX系统内核和内核模块调试

嵌入式Linux内核驱动开发学习路线图

嵌入式Linux内核驱动开发学习路线图(嵌入式开发软件工程师)-嵌入式Linux内核驱动开发学习路线....
发表于 07-30 13:51 9次 阅读
嵌入式Linux内核驱动开发学习路线图

基于嵌入式Linux视频监控系统毕业论文

基于嵌入式Linux视频监控系统毕业论文(培训嵌入式开发软件)-基于嵌入式Linux视频监控系统毕业....
发表于 07-30 13:46 14次 阅读
基于嵌入式Linux视频监控系统毕业论文

Linux+嵌入式实时操作系统开发与应用

Linux+嵌入式实时操作系统开发与应用(嵌入式开发项目实战)-Linux+嵌入式实时操作系统开发与....
发表于 07-30 13:28 13次 阅读
Linux+嵌入式实时操作系统开发与应用

嵌入式Linux应用程序例程

嵌入式Linux应用程序例程(arm嵌入式开发步骤)-嵌入式Linux应用程序例程,有需要的可以参考....
发表于 07-30 13:23 4次 阅读
嵌入式Linux应用程序例程

基于arm的嵌入式linux内核的裁剪移植

基于arm的嵌入式linux内核的裁剪移植(嵌入式开发与实践张勇答案)-随着计算机技术和微电子的迅速....
发表于 07-30 13:01 11次 阅读
基于arm的嵌入式linux内核的裁剪移植

基于ARM和Linux的嵌入式远程视频监控系统的设计

基于ARM和Linux的嵌入式远程视频监控系统的设计(嵌入式开发板如何刷程序)-本文根据大楼电梯视频....
发表于 07-30 12:56 8次 阅读
基于ARM和Linux的嵌入式远程视频监控系统的设计

原创丨Linux系统编程篇丨迅为IMX6ULL-对应视频讲解

本章内容对应视频讲解链接(在线观看): 什么是 Linux 系统编程呢?Linux 系统编程也叫 Linux 下的高级编程。是介于应用层...
发表于 07-30 10:39 101次 阅读
原创丨Linux系统编程篇丨迅为IMX6ULL-对应视频讲解

深度剖析Linux的epoll机制

在 Linux 系统之中有一个核心武器:epoll 池,在高并发的,高吞吐的 IO 系统中常常见到 ....
的头像 Linux爱好者 发表于 07-29 10:52 158次 阅读
深度剖析Linux的epoll机制

Linux系统编程电子版资源下载

Linux系统编程电子版资源下载
发表于 07-29 09:18 42次 阅读
Linux系统编程电子版资源下载

DVG接口操作系统的分类

1.以Linux为操作接口 Linux是一种可多人使用的作业环境,可让多位使用者在同一时间内同时使用....
的头像 汽车玩家 发表于 07-27 17:34 135次 阅读
DVG接口操作系统的分类

鉴释宣布加入RISC-V基金会、Linux基金会、seL4基金会与ioXt联盟,旨在实现静态代码分析服务的全方位赋能

静态代码工具开发商鉴释科技(下文简称:鉴释)宣布其加入RISC-V基金会、Linux基金会、seL4....
的头像 西西 发表于 07-27 14:29 3451次 阅读
鉴释宣布加入RISC-V基金会、Linux基金会、seL4基金会与ioXt联盟,旨在实现静态代码分析服务的全方位赋能

探究Go语言如何实现简易版netstat命令

netstat 使用 go 语言实现是什么操作?本文从 netstat 原理出发详细解读了这一实践。....
的头像 阿铭linux 发表于 07-27 10:35 196次 阅读
探究Go语言如何实现简易版netstat命令

探究Linux GNU C与ANSI C之间的区别

Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,....
的头像 奈因PCB电路板设计 发表于 07-26 16:54 173次 阅读
探究Linux GNU C与ANSI C之间的区别

带大家看看Linux内核如何调度进程的

1.开场白 环境: 处理器架构:arm64 内核源码:linux-5.11 ubuntu版本:20.....
的头像 Linux阅码场 发表于 07-26 15:14 105次 阅读
带大家看看Linux内核如何调度进程的

俄罗斯将目光转向RISC-V,砸300亿卢布打造8核处理器

俄罗斯将目光转向RISC-V ,砸300 亿卢布打造8 核处理器   据俄国媒体爆料,俄罗斯国有企业....
的头像 E4Life 发表于 07-18 11:13 4377次 阅读
俄罗斯将目光转向RISC-V,砸300亿卢布打造8核处理器

Linux用户态开发驱动教程及基础知识

Linux用户态开发驱动教程及基础知识
发表于 07-14 10:06 25次 阅读
Linux用户态开发驱动教程及基础知识

Linux用户态开发驱动方法

用户态的驱动应用场景主要是以下几种,如果有其他的,希望各位朋友拍砖。
发表于 07-14 09:54 47次 阅读
Linux用户态开发驱动方法

liteos与linux区别

Huawei LiteOS自开源社区发布以来,围绕物联网市场从技术、生态、解决方案、商用支持等多维度....
的头像 汽车玩家 发表于 07-12 14:21 271次 阅读
liteos与linux区别

鸿蒙系统是什么语言开发的

华为鸿蒙系统作为华为的备用方案,首先必须要考虑的就是兼容性和开放性,这样更加自由的Linux自然就是....
的头像 汽车玩家 发表于 07-11 10:51 619次 阅读
鸿蒙系统是什么语言开发的

读取文件1个字节是否会导致磁盘IO?

在日常开发中一些看似司空见惯的问题上,我觉得可能大多数人其实并没有真正理解,或者理解的不够透彻。不信....
的头像 开关电源芯片 发表于 07-09 09:42 150次 阅读
读取文件1个字节是否会导致磁盘IO?

教你们C语言打印如何输出红色字体

除了Linux,在VS下也可以实现变色这一效果,先看下面的一段代码: #include 《stdio....
的头像 STM32嵌入式开发 发表于 07-08 12:48 262次 阅读
教你们C语言打印如何输出红色字体

鸿蒙和linux之间的关系是怎样的

在智能手机市场,谷歌的Android系统和苹果的iOS系统已经垄断了全世界99.9%的手机操作系统。
的头像 独爱72H 发表于 07-08 10:45 283次 阅读
鸿蒙和linux之间的关系是怎样的

鸿蒙的底层是安卓吗 鸿蒙是基于安卓吗

华为鸿蒙系统2.0自从上线后颇受国人追捧,作为全球首款主打“面向未来”、“万物互联”的分布式全场景操....
的头像 如意 发表于 07-07 15:08 606次 阅读
鸿蒙的底层是安卓吗 鸿蒙是基于安卓吗

嵌入式图形界面设计工具TD Realizer V2.3.0新版发布

TD Realizer作为TD软件体系中的设计工具,是用户直接体验TD底层图形系统的入门引导,根据用....
发表于 07-06 09:27 256次 阅读
嵌入式图形界面设计工具TD Realizer V2.3.0新版发布

米尔MYS-8MMX单板计算机的应用

MYS-8MMX单板采用NXP最新推出的i.MX8M Mini多核处理器,4XCortex-A53+....
的头像 汽车玩家 发表于 07-05 14:24 215次 阅读
米尔MYS-8MMX单板计算机的应用

Kubernetes容器网络基础

默认情况下,通过 network namespace 限制的容器进程,本质上是通过Veth peer....
的头像 马哥Linux运维 发表于 07-05 14:10 270次 阅读
Kubernetes容器网络基础

轻松高效地掌握Linux操作系统背后的原理

如今的软件开发行业,服务器端市场基本被 Linux 系统占领了。移动端中的 Android 系统是基....
的头像 CAE模拟设计支持平台 发表于 07-05 09:49 236次 阅读
轻松高效地掌握Linux操作系统背后的原理

Deskreen的功能有哪些?如何去使用Deskreen?

其它平台上的屏幕共享或屏幕镜像应用并不那么好。尽管大多数选项仅适用于 Windows/Mac,而你可....
的头像 Linux爱好者 发表于 07-04 14:34 233次 阅读
Deskreen的功能有哪些?如何去使用Deskreen?

Linux内核Page Cache和Buffer Cache两类缓存的作用及关系如何

在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏....
的头像 RTThread物联网操作系统 发表于 07-02 14:25 255次 阅读
Linux内核Page Cache和Buffer Cache两类缓存的作用及关系如何

如何将BusyBox移植到RT-Thread Smart下

BusyBox 是一个集成了数百个常用Linux/Unix命令和工具的软件。BusyBox 包含了一....
的头像 利尔达物联网 发表于 07-02 11:52 349次 阅读
如何将BusyBox移植到RT-Thread Smart下

Linux系统下传输大文件的切割与合并实例分析

往往是因为网络传输的限制,导致很多时候,我们需要在 Linux 系统下进行大文件的切割。这样将一个大....
的头像 马哥Linux运维 发表于 07-02 11:47 256次 阅读
Linux系统下传输大文件的切割与合并实例分析

单靠硬件不够,RISC-V当前的系统支持情况如何

对于一个新生的架构来说,往往系统生态才是最难做好的一块。就拿Arm为例,Arm在成了移动霸主后,在桌....
的头像 E4Life 发表于 07-02 10:14 5742次 阅读
单靠硬件不够,RISC-V当前的系统支持情况如何

把进程绑定到某个 CPU 上运行是怎么实现?

昨天在群里有朋友问:把进程绑定到某个 CPU 上运行是怎么实现的。 首先,我们先来了解下将进程与 C....
的头像 Linux爱好者 发表于 07-02 09:55 304次 阅读
把进程绑定到某个 CPU 上运行是怎么实现?

鸿蒙系统是基于什么开发的

鸿蒙系统作为华为的备用方案,首先必须要考虑的就是兼容性和开放性,这样更加自由的Linux自然就是首选....
的头像 汽车玩家 发表于 07-01 16:43 1011次 阅读
鸿蒙系统是基于什么开发的

AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX™图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...
发表于 09-25 11:51 327次 阅读
AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)