버스드마

busdma

컴퓨팅에서 busdma, bus_dmabus_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)로 전환시키고 있다.

참조

  1. ^ 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.
  2. ^ a b David Chisnall (2006-10-06). "NetBSD: Not Just for Toasters". InformIT. Prentice Hall Professional. Retrieved 2019-07-25.
  3. ^ 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.
  4. ^ Christopher G. Demetriou (1997). "bus_space, … — bus space manipulation functions". BSD Cross Reference. NetBSD, FreeBSD, OpenBSD, DragonFly BSD.

외부 링크