NIO和IO多路复用
1、IO多路复用和NIO是要配合一起使用才有实际意义。 IO多路复用有select、poll、epoll三种方式。
2、IO多路复用中文比较让人头大,IO多路复用的原文叫 I/O multiplexing,这里的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流. 发明它的目的是尽量多的提高服务器的吞吐能力。
3、Java的NIO提供了Selector类,用于跨平台的实现Socket Polling,即IO多路复用。
linux下的epoll有什么作用?
1、Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。
2、epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
3、epoll是linux IO多路复用的管理机制,现在是linux平台高性能网络io必要的组件。理解内核epoll的运行原理,需要从四方面来理解:epoll的数据结构。epoll的线程安全。epoll的内核回调。epoll的LT与ET。
Linux内核pinctrl
1、作为一个嵌入式Linux系统,肯定存在类似uboot这样的bootloader,也肯定有Linux(废话)。简单的地方就说little kernel中怎么配置(因为uboot我不懂,但原理应该类似—瞎猜的),难的地方就说Linux里面怎么使用pinctrl。
2、GPIO 还有很多接口,就不一一列举了。RK3399 GPIO 控制器驱动实现文件: drivers/pinctrl/pinctrl-rockchip.c ,涉及主要函数:所有 GPIO 子系统的 API 最终都会调到 SOC 的 GPIO 控制器驱动函数。
3、Nouveau, Radeon, Rockchip, I2C, InfiniBand, IOMMU, MD, MFD, iwlwifi, PHY, PINCTRL, SCSI, SPI, TTY, USB和Virtio。此外Linux Kernel 2还改善了Btrfs, CIFS, JBD2, NFS, OverlayFS和XFS文件系统的支持。