Sgaoileadh seata minimalistic de ghoireasan siostam BusyBox 1.35

Tha sgaoileadh a’ phacaid BusyBox 1.35 air a thaisbeanadh le buileachadh seata de ghoireasan àbhaisteach UNIX, air an dealbhadh mar aon fhaidhle so-ghnìomhaichte agus air a bharrrachadh airson glè bheag de chaitheamh de ghoireasan siostam le meud suidhichte nas lugha na 1 MB. Tha a’ chiad fhoillseachadh den mheur 1.35 ùr air a shuidheachadh mar neo-sheasmhach; thèid làn sheasmhachd a thoirt seachad ann an dreach 1.35.1, ris a bheil dùil ann an timcheall air mìos. Tha còd a’ phròiseict air a sgaoileadh fo chead GPLv2.

Tha nàdar modular BusyBox ga dhèanamh comasach aon fhaidhle so-ghnìomhaichte aonaichte a chruthachadh anns a bheil seata neo-riaghailteach de ghoireasan air an cur an gnìomh sa phacaid (tha gach goireas ri fhaighinn ann an cruth ceangal samhlachail ris an fhaidhle seo). Faodar meud, co-dhèanamh agus gnìomhachd a’ chruinneachaidh de ghoireasan atharrachadh a rèir feumalachdan agus comasan an àrd-ùrlar freumhaichte airson a bheil an co-chruinneachadh ga dhèanamh. Tha am pasgan fèin-chumanta; nuair a thèid a thogail gu statach le uclibc, gus siostam obrach a chruthachadh a bharrachd air an kernel Linux, cha leig thu leas ach grunn fhaidhlichean inneal a chruthachadh anns an eòlaire / dev agus faidhlichean rèiteachaidh ullachadh. An coimeas ris an fhoillseachadh roimhe 1.34, mheudaich caitheamh RAM a’ cho-chruinneachadh àbhaisteach BusyBox 1.35 bytes 1726 (bho 1042344 gu 1044070 bytes).

Is e BusyBox am prìomh inneal anns an t-sabaid an aghaidh brisidhean GPL ann am firmware. Tha an Glèidhteachas Saorsa Bathar-bog (SFC) agus Ionad Lagh Saorsa Bathar-bog (SFLC), às leth luchd-leasachaidh BusyBox, air buaidh shoirbheachail a thoirt a-rithist air companaidhean nach eil a’ toirt cothrom air còd stòr phrògraman GPL, an dà chuid tro na cùirtean agus tro taobh a-muigh. - cùmhnantan cùirte. Aig an aon àm, tha ùghdar BusyBox gu mòr an aghaidh a leithid de dhìon - a 'creidsinn gu bheil e a' sgrios a ghnìomhachas.

Tha na h-atharrachaidhean a leanas air an comharrachadh ann am BusyBox 1.35:

  • Bidh an goireas lorg a’ cur an gnìomh an roghainn “-samefile name” gus dèanamh cinnteach a bheil faidhle a’ cleachdadh an aon inode ris an fhaidhle leis an ainm ainmichte. Còd aonaichte airson coimeas ùine agus roghainnean a bharrachd "-amin", "-atime", "-cmin" agus "-ctime" gus sùil a thoirt air ùine ruigsinneachd agus cruthachadh faidhle.
  • Tha an goireas mktemp air roghainn “--tmpdir” a chuir ris gus an eòlaire bunaiteach a shònrachadh an coimeas ris na slighean co-cheangailte ri faidhlichean sealach air an tomhas.
  • Chaidh na roghainnean “-ignore-devno” a chur ris a ’ghoireas cpio gus an fhìor àireamh inneal a leigeil seachad (tha 0 an-còmhnaidh sgrìobhte) agus“ -renumber-inodes” gus an inode ath-àireamhachadh mus tèid a stòradh san tasglann.
  • Anns a’ ghoireas awk, chaidh an abairt “printf%%” atharrachadh.
  • Chaidh mu dhusan atharrachadh a chur ris an leabharlann libbb. Co-fhreagarrachd nas fheàrr de realpath leis an fhear eile bhon t-seata coreutils.
  • Chaidh àireamh mhòr de dh’ fhuasglaidhean a mholadh airson sligean àithne luaithre is hush, ag amas air co-chòrdalachd le sligean eile a leasachadh. Tha Ash air taic a chuir ris airson ribeachan ERR coltach ri bash, seata -E agus $FUNCNAME, agus lorg sreang nas luaithe leis an abairt “${s:}”. Ann an luaithre is tais, chaidh cur an gnìomh "${x//\*/|}" a luathachadh.
  • Bidh an goireas bun-ainm a’ cur an gnìomh na roghainnean “-a” gus grunn ainmean a chuir seachad ann an aon ghairm agus “-s SUFFIX” gus caractaran “SUFFIX” a thoirt air falbh.
  • Chaidh roghainn “-f” (force) a chur ris gus goireas blkdiscard.
  • Sguir httpd a bhith a’ cur bann-cinn Last-Modified/ETag/Content-Length airson duilleagan le mearachdan.
  • Bheir httpd agus telnetd comas dhut am port lìonra bunaiteach atharrachadh.
  • Chàirich sinn so-leòntachd ann an teàrr a thug air a h-uile cuimhne a bha ri fhaighinn a bhith air a chaitheamh nuair a bha e a’ giullachd thasglannan le ainmean faidhle glè fhada.
  • Chaidh buileachadh P256 agus x25519 ath-obrachadh ann an còd TLS.
  • Bidh an goireas wget a’ cur an gnìomh an roghainn “--post-file” airson faidhlichean a chuir agus a’ leigeil leat susbaint a’ bhann-cinn Content-Type a ghnàthachadh airson na roghainnean “--post-data” agus “--post-file”.
  • Tha an goireas timeout a-nis a’ toirt taic don roghainn “-k KILL_SECS” gus comharra SIGKILL a chuir mura crìochnaich an àithne taobh a-staigh na diogan KILL_SECS a bharrachd.
  • Chaidh taic airson paramadair netns a shuidheachadh airson innealan a chuir ris a’ ghoireas ip.
  • Bidh an goireas cal a’ buileachadh an roghainn “-m” gus am mìos ainmichte a thaisbeanadh.
  • Tha an ceann-latha agus goireasan suathaidh a’ ceadachadh sòn ùine air a chothromachadh ann an cinn-latha.
  • Anns an deasaiche vi, chaidh taic airson am faidhle ~/.exrc a chur ris, agus chaidh làimhseachadh “-c” agus EXINIT atharrachadh.
  • Anns a’ ghoireas deasaichte, tha toradh coileanadh òrdughan leughaidh / sgrìobhaidh air a thoirt a rèir an t-sònrachadh POSIX-1.2008. Taic a bharrachd airson an roghainn “-p”.
  • Chaidh roghainn “-n N” a chur ris ri goireas cmp gus coimeas ri N bytes a chuingealachadh.

A bharrachd air an sin, beagan làithean air ais, chaidh Toybox 0.8.6 a leigeil ma sgaoil, analog de BusyBox, air a leasachadh le seann neach-gleidhidh BusyBox agus air a sgaoileadh fo chead 0BSD. Is e prìomh adhbhar Toybox comas a thoirt do luchd-saothrachaidh seata minimalistic de ghoireasan àbhaisteach a chleachdadh gun a bhith a’ fosgladh còd stòr nam pàirtean atharraichte. A thaobh comasan, tha Toybox fhathast air dheireadh air BusyBox, ach chaidh òrdughan bunaiteach 296 a chuir an gnìomh mar-thà (217 gu tur agus 83 gu ìre) a-mach à 374 san amharc.

Am measg nan innleachdan aig Toybox 0.8.6 is urrainn dhuinn toirt fa-near leasachadh sgriobtaichean airson cruthachadh ìomhaighean siostam, cuir a-steach òrdughan sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace agus hexdump. Roghainnean gnìomhaichte “ceann-latha -s”, “pmap -p”, “tail -F -s”, “marbhadh -0″, ath-thòiseachadh / stad / poweroff -d”, “tail -bytes -lines”, “i2cdetect -q” , "lorg -quit -lname -ilname -d", "gearradh -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep -L".

Source: fosgailtenet.ru

Cuir beachd ann