# Gnuradio software architecture

**URL:** <https://www.ruby-forum.com/t/gnuradio-software-architecture/235255>\
**Category:** GNU Radio\
**Created:** [June 10, 2013, 5:35am UTC](https://www.ruby-forum.com/t/gnuradio-software-architecture/235255 "2013-06-10T05:35:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [June 10, 2013, 5:35am UTC](https://www.ruby-forum.com/t/gnuradio-software-architecture/235255/1 "2013-06-10T05:35:24Z")

</div>

Hey is there any documentation explaining the software architecture of  
gnuradio. I means how blocks are connected , scheduled. Basically how  
everything is working behind the scene.

---

<div class="post-metadata">

**Author:** ![Yogesh\_Dahiya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/a698b9/32.png) [@Yogesh\_Dahiya](https://www.ruby-forum.com/u/Yogesh_Dahiya)\
**Post date:** [June 10, 2013, 8:41am UTC](https://www.ruby-forum.com/t/gnuradio-software-architecture/235255/2 "2013-06-10T08:41:44Z")

</div>

On 10.06.2013 05:34, Yogesh Dahiya wrote:

> Hey is there any documentation explaining the software architecture of  
> gnuradio. I means how blocks are connected , scheduled. Basically how  
> everything is working behind the scene

Last year Sumit tried to explain this in his blog…

> **[Gnuradio scheduler : Part-1 How the GNU Radio scheduler is called and what it...](http://sumitgnuradio.blogspot.com/2012/10/gnuradio-scheduler-part-1-how-gnu-radio.html?view=timeslide)**
>
> A blog about GNURADIO, USRP, Universal Software Radio peripheral, Software Defined Radio, Cognitive Radio, Digital Signal Processing

might be helpful!

Ankit

---

<div class="post-metadata">

**Author:** ![Yogesh\_Dahiya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/a698b9/32.png) [@Yogesh\_Dahiya](https://www.ruby-forum.com/u/Yogesh_Dahiya)\
**Post date:** [June 10, 2013, 11:13pm UTC](https://www.ruby-forum.com/t/gnuradio-software-architecture/235255/3 "2013-06-10T23:13:38Z")

</div>

Thanks for the link. I got the idea of gnuradio scheduler.  
top\_block calls start which creates gnuradio\_scheduler which topological  
sort the flowgraph and create threads for each block according to sort.  
But it did’nt explain how blocks are connected .I know that publish and  
subscribe are used to connect blocks but how stream is buffered and  
processed inside block is vague to me. Do you have Zhuo Lu paper  
explaining  
how gnuradio core works. Sumit’s link is not working.  
If you have any more resource do forward.  
Thanks again

On Mon, Jun 10, 2013 at 12:10 PM, Ankit Kaushik \<
