Jupyter architecture and kernel development and extensibility...

62 views
Skip to first unread message

john alexander sanabria ordonez

unread,
Nov 15, 2017, 2:17:12 PM11/15/17
to Project Jupyter
Hello,

I would love to have a more clear idea about Jupyter's architecture because I want to know:
  1. what is the role of kernels in Jupyter (how is the interaction with other components)?
  2. How to develop other kernels to interface with other tools, e.g. network tools (GNS3) and virtualization tools (Docker).
Thanks,

Thomas Kluyver

unread,
Nov 15, 2017, 2:24:55 PM11/15/17
to Project Jupyter
Hi John,

Kernels are the parts that run your code, and handle other things specific to the language, like tab completion. Here's some information about how to make a new kernel:


Thomas

Roland Weber

unread,
Nov 16, 2017, 4:39:03 AM11/16/17
to Project Jupyter
  1. what is the role of kernels in Jupyter (how is the interaction with other components)
The general concept is...

Browser/Client ---\         /---Kernel
Browser/Client ----*Jupyter*----Kernel
Browser/Client ---/         \---Kernel

where "Jupyter" can be a notebook server or kernel gateway. As Thomas explained, the kernels execute code. The browser or other client decides what should be executed, and gets the results.
If you have a Jupyter Notebook server, Jupyter knows about notebooks. Jupyter loads and saves notebooks as instructed by the client, and starts and stops kernels. When a cell is executed, just the code of that cell is sent by the client to the kernel that was started for the notebook. Jupyter serves as a kind of router or bridge that translates websocket connections from the client into ZeroMQ connections to the kernel.
If you have a Jupyter Kernel Gateway server in websocket mode, there are neither notebooks nor code cells. Clients provide code snippets directly. Jupyter still starts and stops kernels, and translates websocket connections into ZeroMQ connections.

hope that helps,
  Roland

john alexander sanabria ordonez

unread,
Nov 16, 2017, 9:40:24 AM11/16/17
to jup...@googlegroups.com
Thanks for both answers, they give me a good starting point for studying/working kernels.

Regards,

--
You received this message because you are subscribed to a topic in the Google Groups "Project Jupyter" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jupyter/uImqT4CXXU4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jupyter+unsubscribe@googlegroups.com.
To post to this group, send email to jup...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/0b57997b-1418-4796-967d-0046cc9392c0%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages