|
| 1 | +Glossary |
| 2 | +======== |
| 3 | + |
| 4 | +.. glossary:: |
| 5 | + |
| 6 | + baremetal |
| 7 | + A system without (full-fledged) OS, like an :term:`MCU`. When |
| 8 | + running on a baremetal system, MicroPython effectively becomes |
| 9 | + its user-facing OS with a command interpreter (REPL). |
| 10 | + |
| 11 | + board |
| 12 | + A PCB board. Oftentimes, the term is used to denote a particular |
| 13 | + model of an :term:`MCU` system. Sometimes, it is used to actually |
| 14 | + refer to :term:`MicroPython port` to a particular board (and then |
| 15 | + may also refer to "boardless" ports like |
| 16 | + :term:`Unix port <MicroPython Unix port>`). |
| 17 | + |
| 18 | + CPython |
| 19 | + CPython is the reference implementation of Python programming |
| 20 | + language, and the most well-known one, which most of the people |
| 21 | + run. It is however one of many implementations (among which |
| 22 | + Jython, IronPython, PyPy, and many more, including MicroPython). |
| 23 | + As there is no formal specification of the Python language, only |
| 24 | + CPython documentation, it is not always easy to draw a line |
| 25 | + between Python the language and CPython its particular |
| 26 | + implementation. This however leaves more freedom for other |
| 27 | + implementations. For example, MicroPython does a lot of things |
| 28 | + differently than CPython, while still aspiring to be a Python |
| 29 | + language implementation. |
| 30 | + |
| 31 | + GPIO |
| 32 | + General-purpose input/output. The simplest means to control |
| 33 | + electrical signals. With GPIO, user can configure hardware |
| 34 | + signal pin to be either input or output, and set or get |
| 35 | + its digital signal value (logical "0" or "1"). MicroPython |
| 36 | + abstracts GPIO access using :class:`machine.Pin` and :class:`machine.Signal` |
| 37 | + classes. |
| 38 | + |
| 39 | + GPIO port |
| 40 | + A group of :term:`GPIO` pins, usually based on hardware |
| 41 | + properties of these pins (e.g. controllable by the same |
| 42 | + register). |
| 43 | + |
| 44 | + MCU |
| 45 | + Microcontroller. Microcontrollers usually have much less resources |
| 46 | + than a full-fledged computing system, but smaller, cheaper and |
| 47 | + require much less power. MicroPython is designed to be small and |
| 48 | + optimized enough to run on an average modern microcontroller. |
| 49 | + |
| 50 | + micropython-lib |
| 51 | + MicroPython is (usually) distributed as a single executable/binary |
| 52 | + file with just few builtin modules. There is no extensive standard |
| 53 | + library comparable with :term:`CPython`. Instead, there is a related, but |
| 54 | + separate project |
| 55 | + `micropython-lib <https://github.com/micropython/micropython-lib>`_ |
| 56 | + which provides implementations for many modules from CPython's |
| 57 | + standard library. However, large subset of these modules required |
| 58 | + POSIX-like environment (Linux, MacOS, Windows may be partially |
| 59 | + supported), and thus would work or make sense only with MicroPython |
| 60 | + Unix port. Some subset of modules however usable for baremetal ports |
| 61 | + too. |
| 62 | + |
| 63 | + Unlike monolithic :term:`CPython` stdlib, micropython-lib modules |
| 64 | + are intended to be installed individually - either using manual |
| 65 | + copying or using :term:`upip`. |
| 66 | + |
| 67 | + MicroPython port |
| 68 | + MicroPython supports different :term:`boards <board>`, RTOSes, |
| 69 | + and OSes, and can be relatively easily adapted to new systems. |
| 70 | + MicroPython with support for a particular system is called a |
| 71 | + "port" to that system. |
| 72 | + |
| 73 | + MicroPython Unix port |
| 74 | + Unix port is one of the major :term:`MicroPython ports <MicroPython port>`. |
| 75 | + It is intended to run on POSIX-compatible operating systems, like |
| 76 | + Linux, MacOS, FreeBSD, Solaris, etc. It also serves as the basis |
| 77 | + of Windows port. The importance of Unix port lies in the fact |
| 78 | + that while there are many different :term:`boards <board>`, so |
| 79 | + two random users unlikely have the same board, almost all modern |
| 80 | + OSes have some level of POSIX compatibility, so Unix port serves |
| 81 | + as a kind of "common ground" to which any user can have access. |
| 82 | + So, Unix port is used for initial prototyping, different kinds |
| 83 | + of testing, development of machine-independent features, etc. |
| 84 | + All users of MicroPython, even those which are interested only |
| 85 | + in running MicroPython on :term:`MCU` systems, are recommended |
| 86 | + to be familiar with Unix (or Windows) port, as it is important |
| 87 | + productivity helper and a part of normal MicroPython workflow. |
| 88 | + |
| 89 | + port |
| 90 | + Either :term:`MicroPython port` or :term:`GPIO port`. If not clear |
| 91 | + from context, it's recommended to use full specification like one |
| 92 | + of the above. |
| 93 | + |
| 94 | + upip |
| 95 | + (Literally, "micro pip"). A package manage for MicroPython, inspired |
| 96 | + by :term:`CPython`'s pip, but much smaller and with reduced functionality. |
| 97 | + upip runs both on :term:`Unix port <MicroPython Unix port>` and on |
| 98 | + :term:`baremetal` ports (those which offer filesystem and networking |
| 99 | + support). |
0 commit comments