Ang Monolinux ay isang single-file distribution na nagbo-boot sa isang ARMv7 528 MHz CPU sa loob ng 0.37 segundo

Erik Moqvist, may-akda ng platform Simba at mga kasangkapan cantools, ay bumubuo ng isang bagong pamamahagi Monolinux, na nakatuon sa paglikha ng mga naka-embed na Linux system para sa standalone na pagpapatakbo ng ilang partikular na application na nakasulat sa wikang C. Ang pamamahagi ay kapansin-pansin sa katotohanan na ang software ay nakabalot sa anyo ng isang statically linked executable file, na kinabibilangan ng lahat ng mga sangkap na kinakailangan para gumana ang application (sa pangkalahatan, ang pamamahagi ay binubuo ng Linux kernel at isang RAM disk na may statically assembled init process, na kinabibilangan ng application at mga kinakailangang library) . Code ipinamahagi ni sa ilalim ng lisensya ng MIT.

Ang kapaligiran ay nagbibigay ng lahat ng mga subsystem at system call ng Linux kernel, kasama ang file access, network stack at device drivers. Mga aklatan tulad ng: ml (Monolinux C library na may shell, DHCP at NTP client, Device-mapper, atbp.), async (asynchronous na balangkas), bitstream, kulutan (HTTP, FTP, ...), mga detool (mga patch ng delta), heatshrink (compression algorithm), humanfriendly (mga pantulong na kasangkapan), mbedTLS, xz ΠΈ zlib. Sinusuportahan ang isang mabilis na yugto ng pag-unlad, na nagbibigay-daan sa iyong suriin ang pagpapatakbo ng isang bagong bersyon sa loob ng ilang segundo pagkatapos gumawa ng mga pagbabago sa code.

Ang mga variant ng Monolinux ay inihanda para sa mga board Raspberry Pi 3 ΠΈ Jiffy. Ang huling sukat ng mga asembliya ay humigit-kumulang 800 KB. Magbayad Jiffy nilagyan ng SoC i.MX6UL na may CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM at 4 GB eMMC. Ang oras ng pag-boot sa Jiffy board ay 0.37 segundo lamang - mula sa power on hanggang Ext4 file system handa na. Sa oras na ito, 1 ms ang ginugugol sa pagsisimula ng hardware ng SoC, 184 ms sa pag-execute ng ROM code, 86 ms sa bootloader operation, 62 ms sa pagsisimula ng Linux kernel at 40 ms sa Ext4 activation. Ang oras ng pag-reboot ay 0.26 segundo. Kapag gumagamit ng network stack, dahil sa mga pagkaantala sa pakikipag-ayos sa isang Ethernet channel at pagkuha ng mga parameter ng network, ang system ay magiging handa para sa pakikipag-ugnayan sa network sa loob ng 2.2 segundo.

Ginagamit ng system ang Linux kernel 4.14.78 sa isang minimal na configuration na may karagdagang mga patch, inaalis ang mga hindi kinakailangang pagkaantala sa driver ng MMC (Ang MMC ay konektado ng firmware ng board at na-activate na sa oras na inilunsad ang driver) at simulan ang pagsisimula ng mga driver ng MMC at FEC (Ethernet) sa parallel mode.

Pinagmulan: opennet.ru

Magdagdag ng komento