当前位置: 首页 > news >正文

linux的 .so和.ko文件分别是什么?主要区别是什么?

前言:

.so和.ko文件的主要区别在于它们的应用层次和功能不同。‌

应用层次

.so文件‌:这是用户层的动态链接库(Shared Object),主要用于用户态的程序中。
它用于动态链接,多个程序可以共享同一个库文件,从而节省空间并提高效率。用户
态的代码不能直接调用内核态的代码,但可以通过.so文件进行间接调用‌。通常存在于:/lib/  /lib64/。 一些软件也会自带.so文件,避免系统差异导致软件无法
使用。‌.ko文件‌:这是内核态的动态链接库(Kernel Object),主要用于内核模块。.ko文件
是内核模块,可以在Linux内核启动后动态加载和卸载,用于扩展内核的功能。内核
模块可以插入到内核中,实现特定的功能,如USB、显卡、CPU、串口等各种设备驱
动,TCP/IP网络协议等‌。通常存在于 类似于/lib/modules/5.10.0-74.3.uelc20.x86_64/kernel  的内核文件中。
把5.10.0-74.3.uelc20.x86_64  换成执行 uname -a  命令出来的那串内容就可以进来
了。

功能和用途

‌.so文件‌:主要用于用户态的程序中,提供动态链接的功能,使得多个程序可以共享
同一个库文件,减少磁盘空间占用,提高程序运行的效率。用户态的程序通过调
用.so文件来实现功能‌。‌.ko文件‌:用于内核模块,优点是可以缩小内核的大小。可以在系统启动后动态加载
和卸载,不需要每次需要新功能就重新编译内核,只需要加入扩展功能的.ko文件即
可。内核模块可以扩展内核的功能,如添加新的设备驱动、网络协议等。
http://www.lryc.cn/news/503124.html

相关文章:

  • XX服务器上的npm不知道咋突然坏了
  • 数据结构(优先级队列 :Priority Queue)
  • nginx.conf 请求时间部分参数说明新手教程
  • 【Linux-ubuntu通过USB传输程序点亮LED灯】
  • 《开源时间序列数据:探索与应用》
  • 三相异步电动机跳闸的原因是什么?
  • 连续思维链Coconut ,打开LLM推理新范式
  • 阿里云数据库MongoDB版助力极致游戏高效开发
  • ESP32-S3模组上跑通ES8388(29)
  • 使用ElasticSearch实现全文检索
  • 通过k-means对相似度较高的语句进行分类
  • 国信华源科技赋能长江蓄滞洪区水闸管护项目验收成果报道
  • HTML:表格重点
  • wine的使用方法
  • Linux服务器离线安装unzip包
  • Excel拆分脚本
  • Mybatis---事务
  • 企业直播间媒体分发新闻转播拉流推广名单(金融财经科技类)
  • 华为FreeBuds Pro 4丢了如何找回?(附查找功能使用方法)
  • 若依微服务登录密码加密传输解决方案
  • NVR小程序接入平台/设备EasyNVR深度解析H.265与H.264编码视频接入的区别
  • Redisson常用方法
  • html自带的input年月日(date) /时间(datetime-local)/星期(week)/月份(month)/时间(time)控件
  • CSS系列(12)-- 响应式设计详解
  • filecoin boost GraphQL API 查询
  • SAS - Subtractive Port
  • TCP客户端模拟链接websocket服务端
  • TypeScript 的崛起:全面解析与深度洞察
  • c#笔记2024
  • Hadoop一课一得