ఒక సంవత్సరం మరియు ఒక సగం అభివృద్ధి తర్వాత, MirageOS 4.0 ప్రాజెక్ట్ విడుదల ప్రచురించబడింది, ఇది ఒక అప్లికేషన్ కోసం ఆపరేటింగ్ సిస్టమ్లను రూపొందించడానికి అనుమతిస్తుంది, దీనిలో అప్లికేషన్ స్వీయ-నియంత్రణ "యూనికెర్నల్" వలె పంపిణీ చేయబడుతుంది, ఇది లేకుండా అమలు చేయగల సామర్థ్యాన్ని కలిగి ఉంటుంది. ఆపరేటింగ్ సిస్టమ్ల ఉపయోగం, ప్రత్యేక OS కెర్నల్ మరియు ఏదైనా లేయర్లు. అప్లికేషన్లను అభివృద్ధి చేయడానికి OCaml భాష ఉపయోగించబడుతుంది. ప్రాజెక్ట్ కోడ్ ఉచిత ISC లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
ఆపరేటింగ్ సిస్టమ్కు అంతర్లీనంగా ఉన్న అన్ని తక్కువ-స్థాయి కార్యాచరణలు అప్లికేషన్కు జోడించబడిన లైబ్రరీ రూపంలో అమలు చేయబడతాయి. అప్లికేషన్ను ఏదైనా OSలో అభివృద్ధి చేయవచ్చు, దాని తర్వాత ఇది ఒక ప్రత్యేక కెర్నల్ (యూనికెర్నల్ కాన్సెప్ట్)గా సంకలనం చేయబడుతుంది, ఇది నేరుగా Xen, KVM, BHyve మరియు VMM (OpenBSD) హైపర్వైజర్ల పైన, మొబైల్ ప్లాట్ఫారమ్ల పైన, POSIX-కంప్లైంట్ వాతావరణంలో లేదా క్లౌడ్ పరిసరాలలో అమెజాన్ సాగే కంప్యూట్ క్లౌడ్ మరియు Google కంప్యూట్ ఇంజిన్లో ప్రక్రియ యొక్క రూపం.
ఉత్పత్తి చేయబడిన వాతావరణంలో నిరుపయోగంగా ఏమీ ఉండదు మరియు డ్రైవర్లు లేదా సిస్టమ్ లేయర్లు లేకుండా హైపర్వైజర్తో నేరుగా సంకర్షణ చెందుతుంది, ఇది ఓవర్హెడ్ ఖర్చులను గణనీయంగా తగ్గించడానికి మరియు భద్రతను పెంచడానికి అనుమతిస్తుంది. MirageOSతో పని చేయడం మూడు దశలకు వస్తుంది: పర్యావరణంలో ఉపయోగించే OPAM ప్యాకేజీలను నిర్వచించడం, పర్యావరణాన్ని సమీకరించడం మరియు పర్యావరణాన్ని ప్రారంభించడం వంటి కాన్ఫిగరేషన్ను సిద్ధం చేయడం. హైపర్వైజర్ల పైన ఆపరేషన్ను నిర్ధారించడానికి, రన్టైమ్ Solo5 కెర్నల్ ఆధారంగా నిర్మించబడింది.
అప్లికేషన్లు మరియు లైబ్రరీలు ఉన్నత-స్థాయి భాష OCamlలో సృష్టించబడినప్పటికీ, ఫలిత పరిసరాలు చాలా మంచి పనితీరును మరియు కనిష్ట పరిమాణాన్ని ప్రదర్శిస్తాయి (ఉదాహరణకు, DNS సర్వర్ 200 KB మాత్రమే తీసుకుంటుంది). పర్యావరణాల నిర్వహణ కూడా సరళీకృతం చేయబడింది, ఎందుకంటే ప్రోగ్రామ్ను నవీకరించడం లేదా కాన్ఫిగరేషన్ను మార్చడం అవసరమైతే, కొత్త వాతావరణాన్ని సృష్టించడం మరియు ప్రారంభించడం సరిపోతుంది. OCaml భాషలోని అనేక వందల లైబ్రరీలు నెట్వర్క్ కార్యకలాపాలను (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, మొదలైనవి) నిర్వహించడానికి మద్దతునిస్తాయి, నిల్వతో పని చేయడం మరియు సమాంతర డేటా ప్రాసెసింగ్ను అందించడం.
ముఖ్య మెరుగుదలలు:
- ప్రాజెక్ట్లు మరియు యూనికెర్నల్ను కంపైల్ చేసే ప్రక్రియ మార్చబడింది. గతంలో ఉపయోగించిన ocamlbuild అసెంబ్లీ సిస్టమ్కు బదులుగా, డూన్ టూల్కిట్ మరియు స్థానిక రిపోజిటరీలు (monorepo) ఉపయోగించబడతాయి. అటువంటి రిపోజిటరీలను సృష్టించడానికి, opam-monorepo అనే కొత్త యుటిలిటీ జోడించబడింది, ఇది సోర్స్ కోడ్ నుండి బిల్డింగ్ నుండి ప్యాకేజీ నిర్వహణను వేరు చేయడం సాధ్యపడుతుంది. opam-monorepo యుటిలిటీ ప్రాజెక్ట్-సంబంధిత డిపెండెన్సీల కోసం లాక్ ఫైల్లను సృష్టించడం, డిపెండెన్సీ కోడ్ను లోడ్ చేయడం మరియు సంగ్రహించడం మరియు డూన్ బిల్డ్ సిస్టమ్ను ఉపయోగించడానికి పర్యావరణాన్ని సెటప్ చేయడం వంటి పని చేస్తుంది. అసలు అసెంబ్లీ డూన్ టూల్కిట్ ద్వారా నిర్వహించబడుతుంది.
- పునరావృతమయ్యే నిర్మాణ ప్రక్రియ అందించబడుతుంది. లాక్ ఫైల్లను ఉపయోగించడం డిపెండెన్సీ వెర్షన్లకు లింక్ను అందిస్తుంది మరియు ఏ సమయంలోనైనా అదే కోడ్తో బిల్డ్ ప్రాసెస్ను పూర్తిగా పునరావృతం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
- ఒక కొత్త క్రాస్-కంపైలేషన్ ప్రక్రియ అమలు చేయబడింది మరియు ఒక సాధారణ బిల్డ్ ఎన్విరాన్మెంట్ నుండి అన్ని మద్దతు ఉన్న టార్గెట్ ప్లాట్ఫారమ్ల కోసం క్రాస్-కంపైల్ చేసే సామర్థ్యం అందించబడింది, ఇది ఈ బైండింగ్లను జోడించాల్సిన అవసరం లేకుండానే C బైండింగ్లను కలిగి ఉన్న డిపెండెన్సీలు మరియు లైబ్రరీలను క్రాస్-కంపైల్ చేస్తుంది. ప్రధాన ప్యాకేజీ. డూన్ బిల్డ్ సిస్టమ్ అందించిన వర్క్స్పేస్లను ఉపయోగించి క్రాస్-కంపైలేషన్ నిర్వహించబడుతుంది.
- కొత్త లక్ష్య ప్లాట్ఫారమ్లకు మద్దతు జోడించబడింది, ఉదాహరణకు, రాస్ప్బెర్రీ పై 4 బోర్డులపై అమలు చేయడానికి స్వీయ-నియంత్రణ అప్లికేషన్లను రూపొందించే ప్రయోగాత్మక సామర్థ్యం అందించబడింది.
- యూనికెర్నల్ రూపంలో అప్లికేషన్ల అసెంబ్లింగ్ను సులభతరం చేయడానికి OCaml భాషలో అభివృద్ధికి సంబంధించిన పర్యావరణ వ్యవస్థలలో MirageOS భాగాలను ఏకీకృతం చేయడానికి పని జరిగింది. అనేక MirageOS ప్యాకేజీలు డూన్ బిల్డ్ సిస్టమ్కు పోర్ట్ చేయబడ్డాయి. opam-monorepo యుటిలిటీ opam ప్యాకేజీ మేనేజర్ని ఉపయోగించి ఇన్స్టాలేషన్ కోసం అందుబాటులో ఉంది మరియు డూన్ బిల్డ్ సిస్టమ్ను ఉపయోగించే ప్రాజెక్ట్లలో ఉపయోగించవచ్చు. డూన్లో డిపెండెన్సీలను నిర్మించడంలో సమస్యలను పరిష్కరించే ప్యాచ్లను నిర్వహించడానికి, రెండు రిపోజిటరీలు సృష్టించబడ్డాయి: dune-universe/opam-overlays మరియు dune-universe/mirage-opam-overlays, ఇవి మిరాజ్ CLI యుటిలిటీని ఉపయోగిస్తున్నప్పుడు డిఫాల్ట్గా ప్రారంభించబడతాయి.
- C మరియు రస్ట్ లైబ్రరీలతో MirageOS ఇంటిగ్రేషన్ సరళీకృతం చేయబడింది.
- కొత్త OCaml రన్టైమ్ ప్రతిపాదించబడింది, అది మిమ్మల్ని libc (libc-free) లేకుండా చేయడానికి అనుమతిస్తుంది.
- స్టాండర్డ్ ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్లతో ఏకీకరణ కోసం మెర్లిన్ సేవను ఉపయోగించడం సాధ్యమవుతుంది.
మూలం: opennet.ru