버스드마
busdma컴퓨팅에서 busdma, bus_dma 및 bus_space는 장치 드라이버가 플랫폼별 코드에 덜 의존하도록 설계되어 호스트 운영 체제가 새로운 컴퓨터 하드웨어에 보다 쉽게 포팅될 수 있도록 고안된 응용 프로그램 프로그래밍 인터페이스의 집합이다.[1][2]이는 IA-32(NetBSD/i386)에서 DEC Alpha(NetBSD/alpha)까지의 구별되는 아키텍처에 사용되는 PCI와 같은 인기 있는 기계 독립 컴퓨터 버스 간에 DMA(Direct Memory Access) 매핑을 위한 추상화를 통해 달성된다.[1]또한, 일부 장치는 ISA, EISA, VESA 로컬 버스 및 PCI와 같이 둘 이상의 버스를 지원하는 여러 가지 향기로 제공될 수 있으며, 버스에 관계 없이 동일한 핵심 논리를 공유하며, 그러한 장치 드라이버도 이와 같은 추상화의 이점을 누릴 수 있다.[1]: §1.2 그러므로 busdma의 근거는 넓은 범위의 플랫폼에서 코드를 최대한 재사용하는 것이다.[1]: §5
2006년경, 버스와 DMA 추상화는 Linux 포트에서 사용되는 포킹 모델과 비교하여 NetBSD가 단일 소스 트리에서 50개의 하드웨어 플랫폼과 14개의 CPU 아키텍처를 지원하는 것을 가능하게 했다.[2]
원래 NetBSD 운영 체제의 개발자들에 의해 "bus_dma" API로 구현된 [1][3]busdma는 OpenBSD, FreeBSD 및 그 파생상품에 의해 채택되었다. FreeB그것을 (밑줄 없이) 버스드마 우산 아래에 포함하는 SD.NetBSD 및 OpenB 모두SD에는 FreeBSD에 통합된 busdma 버전에 통합한 "bus_space" API가[4] 추가로 있다.DragonFly BSD 개발자들 또한 천천히 운전자들을 버스드마(busdma)로 전환시키고 있다.
참조
- ^ a b c d e Jason R Thorpe; NASA Ames Research Center (1998). A Machine-Independent DMA Framework for NetBSD (PDF). Proceedings of the FREENIX Track: 1998 USENIX Annual Technical Conference. USENIX.
- ^ a b David Chisnall (2006-10-06). "NetBSD: Not Just for Toasters". InformIT. Prentice Hall Professional. Retrieved 2019-07-25.
- ^ Jason R Thorpe; NASA Ames Research Center (1997). "bus_dma, … — Bus and Machine Independent DMA Mapping Interface". BSD Cross Reference. NetBSD, FreeBSD, OpenBSD, DragonFly BSD.
- "BUS_DMA(9)". FreeBSD Manual Pages.
- "BUS_DMAMAP_CREATE(9)". OpenBSD manual page server.
- "BUS_DMA(9)". DragonFly On-Line Manual Pages.
- ^ Christopher G. Demetriou (1997). "bus_space, … — bus space manipulation functions". BSD Cross Reference. NetBSD, FreeBSD, OpenBSD, DragonFly BSD.
- "BUS_SPACE(9)". FreeBSD Manual Pages.
- "BUS_SPACE(9)". OpenBSD manual page server.
- "BUS_SPACE(9)". DragonFly On-Line Manual Pages.
외부 링크
bus_dma(9)
— NetBSD, FreeBSD, OpenBSD 및 DragonFly BSD 커널 개발자 설명서bus_space(9)
— NetBSD, FreeBSD, OpenBSD 및 DragonFly BSD 커널 개발자 설명서- FreeBSD busdma 및 SMPng 드라이버 변환 프로젝트 페이지 Wayback Machine에 2010-07-29 보관
- wiki
.freebsd .org /UnifiedBusDma