linux 5.19 删除set_fs后怎么设置内核空间?

内核中对文件读取的vfs_read函数,但查之前的帖子,发现需要通过set_fs()对用户空间进行切换,但版本5.19后没找到这相关的操作,求解答

参考GPT和自己的思路:

在 Linux 5.19 版本中,已经不再使用 set_fs() 函数来切换用户空间和内核空间了。实际上,在早期版本的内核中,set_fs() 函数是被用来设置地址限制的,也就是要求在执行内核代码时仅使用内核空间或者用户空间的地址来进行操作。但是在现代的 Linux 内核中,已经使用了更加灵活的机制去处理地址限制问题,因此 set_fs() 函数被废弃并不再需要使用。

如果你需要在 Linux 内核中执行用户空间和内核空间之间的数据传输,你可以使用一些其他的函数和机制,比如 copy_from_user() 和 copy_to_user() 函数等。这些函数可以帮助你在内核空间和用户空间之间进行数据的读取和写入,同时还能够确保操作的安全性和正确性。

因此,如果你需要在 Linux 5.19 版本的内核中进行文件读取操作,可以直接使用 vfs_read() 函数进行操作,并且不需要再使用 set_fs() 函数了。同时,如果需要进行数据传输操作,可以使用 copy_from_user() 和 copy_to_user() 函数来进行。

参考:https://www.cnblogs.com/arnoldlu/p/8879800.html