FreeBSD Q2019 XNUMX పురోగతి నివేదిక

ప్రచురించబడింది ఏప్రిల్ నుండి జూన్ 2019 వరకు FreeBSD ప్రాజెక్ట్ అభివృద్ధిపై నివేదిక. మార్పులలో మనం గమనించవచ్చు:

  • సాధారణ మరియు దైహిక సమస్యలు
    • కేంద్రీకృత సబ్‌వర్షన్ సోర్స్ కంట్రోల్ సిస్టమ్ నుండి వికేంద్రీకృత Git సిస్టమ్‌కు సోర్స్ కోడ్‌ను తరలించే అవకాశాన్ని అన్వేషించడానికి ఒక వర్కింగ్ గ్రూప్‌ను ఏర్పాటు చేయాలని కోర్ బృందం నిర్ణయించింది.
    • సిస్టమ్‌ను ఉపయోగించి FreeBSD కెర్నల్ యొక్క ఫజ్ టెస్టింగ్ నిర్వహించబడింది syzkaller మరియు గుర్తించబడిన అనేక లోపాలు సరిదిద్దబడ్డాయి. 32-బిట్ కెర్నల్‌తో సిస్టమ్‌లలో 64-బిట్ ఎన్విరాన్‌మెంట్‌తో అనుకూలత కోసం లైబ్రరీల అస్పష్ట పరీక్ష కోసం ఒక లేయర్ జోడించబడింది. bhyve-ఆధారిత వర్చువల్ మెషీన్‌లలో syzkallerని అమలు చేయగల సామర్థ్యం అమలు చేయబడింది. తదుపరి దశలో, సిస్టమ్ కాల్ టెస్టింగ్ యొక్క కవరేజీని విస్తరించేందుకు, కెర్నల్‌ను తనిఖీ చేయడానికి LLVM శానిటైజర్‌ని ఉపయోగించాలని, ఫజింగ్ టెస్టింగ్ సమయంలో క్రాష్‌ల సమయంలో కెర్నల్ డంప్‌లను సేవ్ చేయడానికి నెట్‌డంప్‌ని ఉపయోగించడం మొదలైనవి ప్లాన్ చేయబడింది.
    • కెర్నల్ స్థాయిలో zlib అమలును నవీకరించే పని ప్రారంభమైంది. zlib కోడ్‌కు కెర్నల్ యాక్సెస్ కోసం, contrib/zlib డైరెక్టరీ పేరు sys/contrib/zlibగా మార్చబడింది మరియు zlib/crc.hతో వైరుధ్యాన్ని నివారించడానికి crc.h హెడర్ ఫైల్ కూడా పేరు మార్చబడింది. zlib మరియు పెంపుపై ఆధారపడిన లెగసీ కోడ్‌ని క్లీన్ అప్ చేసారు. తరువాత, కంప్రెషన్‌ను ఉపయోగించే ఫంక్షన్‌ల యొక్క కొత్త వెర్షన్‌కు క్రమంగా బదిలీ చేయడానికి పాత మరియు కొత్త zlibతో కెర్నల్‌ను ఏకకాలంలో నిర్మించగల సామర్థ్యాన్ని అందించడానికి ప్రణాళిక చేయబడింది;
    • Linux ఎన్విరాన్మెంట్ ఎమ్యులేషన్ ఇన్‌ఫ్రాస్ట్రక్చర్ (Linuxulator) నవీకరించబడింది. స్ట్రేస్ యుటిలిటీ వంటి Linux డీబగ్గింగ్ సాధనాలకు మద్దతు పెరిగింది. linux-c7-strace ప్యాకేజీ పోర్ట్‌లకు జోడించబడింది, ఇది ఇప్పటికీ కొన్ని Linux-నిర్దిష్ట ఫ్లాగ్‌లు మరియు నిర్మాణాలను డీకోడ్ చేయలేని ప్రామాణిక ట్రస్ మరియు ktrace యుటిలిటీలకు బదులుగా Linux ఎక్జిక్యూటబుల్ ఫైల్‌లను ట్రేస్ చేయడానికి ఉపయోగించవచ్చు. అదనంగా, Linux టెస్ట్ ప్రాజెక్ట్ ఎక్జిక్యూటబుల్స్‌తో linux-ltp ప్యాకేజీ జోడించబడింది మరియు glibc యొక్క కొత్త వెర్షన్‌లతో లింక్ చేయబడిన ఎక్జిక్యూటబుల్స్‌తో అనుకూలత సమస్యలు పరిష్కరించబడ్డాయి;
    • pmap మెకానిజంలో ఆలస్యమైన చెల్లని ఆపరేషన్ల అమలు లాక్‌లు లేకుండా పనిచేసే క్యూ ప్రాసెసింగ్ అల్గోరిథం యొక్క ఉపయోగానికి బదిలీ చేయబడింది, ఇది పెద్ద సంఖ్యలో సమాంతర అన్‌మ్యాప్ కార్యకలాపాలను నిర్వహించేటప్పుడు స్కేలబిలిటీ సమస్యలను పరిష్కరించడం సాధ్యం చేసింది;
    • execve() కుటుంబం యొక్క సిస్టమ్ కాల్‌ల అమలు సమయంలో vnodeని నిరోధించే విధానం మార్చబడింది, ఇది ఒకే ఫైల్‌కు ఏకకాలంలో execve()ని అమలు చేసినప్పుడు (ఉదాహరణకు, సమాంతరీకరణతో అసెంబ్లీ కార్యకలాపాలను నిర్వహిస్తున్నప్పుడు) పెరిగిన సామర్థ్యాన్ని సాధించడం సాధ్యపడింది. కంపైలర్ లాంచ్ యొక్క);
  • భద్రత
    • bhyve హైపర్‌వైజర్ అతిథి పరిసరాలను ఒక హోస్ట్ నుండి మరొక హోస్ట్‌కి లైవ్ మైగ్రేషన్ మరియు సేవ్/పునరుద్ధరణ ఫంక్షనాలిటీకి మద్దతును మెరుగుపరుస్తుంది, ఇది గెస్ట్ సిస్టమ్‌ను స్తంభింపజేయడానికి, స్టేట్‌ను ఫైల్‌కి సేవ్ చేయడానికి మరియు ఆపై అమలును పునఃప్రారంభించడానికి మిమ్మల్ని అనుమతిస్తుంది.
    • libvdsk లైబ్రరీని ఉపయోగించడం ద్వారా, bhyve QCOW2 ఫార్మాట్‌లో డిస్క్ ఇమేజ్‌లకు మద్దతును జోడించింది. పని చేయడానికి సంస్థాపన అవసరం
      ప్రత్యేకంగా సవరించబడింది bhyve వెర్షన్, ఇది libvdsk ఆధారంగా ఫైల్ ఆపరేషన్ హ్యాండ్లర్‌లను ఉపయోగించడానికి మార్చబడింది. రిపోర్టింగ్ వ్యవధిలో, libvdsk కొత్త ఫార్మాట్‌ల కోసం మద్దతు యొక్క ఏకీకరణను సులభతరం చేయడం, చదవడం మరియు వ్రాయడం పనితీరును మెరుగుపరచడం మరియు కాపీ-ఆన్-రైట్ కోసం మద్దతును జోడించడం వంటి పనిని కూడా నిర్వహించింది. మిగిలిన పనులలో, bhyve యొక్క ప్రధాన నిర్మాణంలో libvdsk యొక్క ఏకీకరణ గుర్తించబడింది;

    • ఓడరేవులకు ట్రాఫిక్ సమాచారాన్ని సేకరించే వ్యవస్థ జోడించబడింది
      మాల్ట్రైల్, ఇది హానికరమైన నెట్‌వర్క్ అభ్యర్థనల కోసం ట్రాప్‌లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది (బ్లాక్‌లిస్ట్‌ల నుండి IPలు మరియు డొమైన్‌లు తనిఖీ చేయబడతాయి) మరియు దాడి ప్రయత్నాల తదుపరి నిరోధించడం లేదా విశ్లేషణ కోసం గుర్తించబడిన కార్యాచరణ గురించి సమాచారాన్ని కేంద్రీకృత సర్వర్‌కు పంపుతుంది;

    • దాడులను గుర్తించడం, లాగ్‌లను విశ్లేషించడం మరియు ఫైల్ సమగ్రతను పర్యవేక్షించడం కోసం ప్లాట్‌ఫారమ్‌లు పోర్టులకు జోడించబడ్డాయి వజుహ్ (తో ఏకీకరణకు మద్దతుతో ఓస్సెక్ ఫోర్క్ ELK-స్టాక్);
  • నెట్‌వర్క్ సబ్‌సిస్టమ్
    • 2 Gb/s వేగంతో EC2 నోడ్‌ల మధ్య కమ్యూనికేషన్‌ని నిర్వహించడానికి ఎలాస్టిక్ కంప్యూట్ క్లౌడ్ (EC2) ఇన్‌ఫ్రాస్ట్రక్చర్‌లో ఉపయోగించిన రెండవ తరం ENAv25 (ఎలాస్టిక్ నెట్‌వర్క్ అడాప్టర్) నెట్‌వర్క్ అడాప్టర్‌లకు మద్దతు ఇవ్వడానికి ena డ్రైవర్ నవీకరించబడింది. NETMAP మద్దతు ena డ్రైవర్‌కు జోడించబడింది.
    • FreeBSD HEAD CAM ఫ్రేమ్‌వర్క్ ఆధారంగా కొత్త MMC/SD స్టాక్‌ను స్వీకరిస్తుంది మరియు SDIO (సెక్యూర్ డిజిటల్ I/O) ఇంటర్‌ఫేస్‌తో పరికరాలను కనెక్ట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, రాస్ప్బెర్రీ పై 3 వంటి అనేక బోర్డుల కోసం WiFi మరియు బ్లూటూత్ మాడ్యూల్స్‌లో SDIO ఉపయోగించబడుతుంది. కొత్త స్టాక్ కూడా CAM ఇంటర్‌ఫేస్‌ని వినియోగదారు స్థలంలోని అప్లికేషన్‌ల నుండి SD ఆదేశాలను పంపడానికి అనుమతిస్తుంది, ఇది పరికరాన్ని సృష్టించడం సాధ్యం చేస్తుంది. వినియోగదారు స్థాయిలో పనిచేసే డ్రైవర్లు. ఫుల్‌మ్యాక్ మోడ్‌లో పనిచేసే బ్రాడ్‌కామ్ వైర్‌లెస్ చిప్‌ల కోసం డ్రైవర్‌లను సృష్టించే పని ప్రారంభమైంది (చిప్ వైపు దాని 802.11 వైర్‌లెస్ స్టాక్ అమలుతో దాని స్వంత ఆపరేటింగ్ సిస్టమ్ యొక్క పోలికను నడుపుతుంది);
    • FreeBSD కోసం NFSv4.2 (RFC-7862)ని అమలు చేయడానికి పని జరుగుతోంది. NFS యొక్క కొత్త వెర్షన్ posix_fadvise, posix_fallocate ఫంక్షన్‌లు, lseekలో SEEKHOLE/SEEKDATA మోడ్‌లు మరియు సర్వర్‌లోని ఫైల్ భాగాలను స్థానికంగా కాపీ చేయడం (క్లయింట్‌కు బదిలీ లేకుండా) కోసం మద్దతును జోడిస్తుంది.

      FreeBSD ప్రస్తుతం లేఅవుట్ ఎర్రర్, IOAdvise, కేటాయించడం మరియు కాపీ కార్యకలాపాలకు ప్రాథమిక మద్దతును అందిస్తుంది. NFSతో lseek (SEEKHOLE/SEEKDATA) ఉపయోగించడానికి అవసరమైన సీక్ ఆపరేషన్‌ను అమలు చేయడం మాత్రమే మిగిలి ఉంది. NFSv4.2 మద్దతు FreeBSD 13 కోసం ప్రణాళిక చేయబడింది;

  • నిల్వ మరియు ఫైల్ సిస్టమ్స్
    • యూజర్ స్పేస్‌లో ఫైల్ సిస్టమ్‌ల అమలును సృష్టించడానికి అనుమతించే FUSE (USErspaceలోని ఫైల్ సిస్టమ్) సబ్‌సిస్టమ్ కోసం డ్రైవర్‌ను మళ్లీ పని చేసే ప్రాజెక్ట్ పూర్తి కావస్తోంది. వాస్తవానికి సరఫరా చేయబడిన డ్రైవర్ పాతది మరియు అనేక బగ్‌లను కలిగి ఉంది. డ్రైవర్ ఆధునీకరణ ప్రాజెక్ట్‌లో భాగంగా, FUSE 7.23 ప్రోటోకాల్‌కు మద్దతు అమలు చేయబడింది (గతంలో 7.8 సంవత్సరాల క్రితం విడుదలైన వెర్షన్ 11కి మద్దతు ఉంది), కెర్నల్ వైపు యాక్సెస్ హక్కులను తనిఖీ చేయడానికి కోడ్ జోడించబడింది (“-o default_permissions”), కాల్‌లు VOP_MKNOD, VOP_BMAP మరియు VOP_ADVLOCK జోడించబడ్డాయి, FUSE కార్యకలాపాలకు అంతరాయం కలిగించే సామర్థ్యం, ​​పేరులేని పైపులు మరియు ఫ్యూసెఫ్‌లలో unix సాకెట్‌లకు మద్దతు జోడించబడింది, /dev/ఫ్యూజ్ కోసం kqueueని ఉపయోగించగల సామర్థ్యం, ​​“mount -u” ద్వారా మౌంట్ పారామితులను నవీకరించడానికి అనుమతించబడింది, మద్దతు జోడించబడింది. NFS ద్వారా ఫ్యూసెఫ్‌లను ఎగుమతి చేయడం కోసం, RLIMIT_FSIZE అకౌంటింగ్‌ని అమలు చేయడం, FOPEN_KEEP_CACHE ఫ్లాగ్‌లు మరియు FUSE_ASYNC_READ జోడించడం కోసం, గణనీయమైన పనితీరు అనుకూలతలు చేయబడ్డాయి మరియు కాషింగ్ ఆర్గనైజేషన్ మెరుగుపరచబడింది;
    • BIO_DELETE ఆపరేషన్‌కు మద్దతు స్వాప్ పేజర్ కోడ్‌కు జోడించబడింది, ఇది SSD డ్రైవ్‌ల నుండి బ్లాక్‌లను తొలగించేటప్పుడు వాటి సేవా జీవితాన్ని పెంచడానికి TRIM ఆదేశాన్ని ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • హార్డ్వేర్ మద్దతు
    • ARM64 SoC బ్రాడ్‌కామ్ BCM5871X కోసం ARMv8 కార్టెక్స్-A57 ప్రాసెసర్‌లతో మద్దతును అమలు చేయడంలో పని కొనసాగుతోంది, ఇది రూటర్‌లు, గేట్‌వేలు మరియు నెట్‌వర్క్ నిల్వలో వినియోగాన్ని లక్ష్యంగా చేసుకుంది. రిపోర్టింగ్ వ్యవధిలో, అంతర్గత మరియు బాహ్య iProc PCIe బస్సులకు మద్దతు మెరుగుపరచబడింది, BNXT ఈథర్‌నెట్‌కు మద్దతు జోడించబడింది మరియు IPsecని వేగవంతం చేయడానికి అంతర్నిర్మిత క్రిప్టో ఇంజిన్‌ను ఉపయోగించడానికి పని జరుగుతోంది. HEAD బ్రాంచ్‌లో కోడ్ యొక్క ఏకీకరణ సంవత్సరం రెండవ సగంలో అంచనా వేయబడుతుంది;
    • ఇంటిగ్రేటెడ్ నెట్‌వర్క్ ప్యాకెట్ ప్రాసెసింగ్ యాక్సిలరేషన్ ఇంజిన్, 64 Gb ఈథర్‌నెట్, PCIe 1046, SATA 8 మరియు USB 72తో కూడిన ARMv10 కార్టెక్స్-A3.0 ప్రాసెసర్ ఆధారంగా 3.0-బిట్ SoC NXP LS3.0A కోసం మద్దతుపై పని ప్రారంభమైంది. బేస్ ప్లాట్‌ఫారమ్ (మల్టీ-యూజర్ SMP) మరియు SATA 3.0 కోసం మద్దతు ఇప్పటికే అమలు చేయబడింది. USB 3.0, SD/MMC మరియు I2C కోసం మద్దతు అభివృద్ధిలో ఉంది. ప్లాన్‌లలో ఈథర్‌నెట్, GPIO మరియు QSPIకి మద్దతు ఉంది. 4 2019వ త్రైమాసికంలో పనిని పూర్తి చేయడం మరియు HEAD బ్రాంచ్‌లో చేర్చడం జరుగుతుంది.
    • Mellanox ConnectX-5 [Lx], ConnectX-5 [Ex], మరియు ConnectX-4 [Dx] ఈథర్నెట్ మరియు ఇన్ఫినిబ్యాండ్ అడాప్టర్‌ల కోసం mlx5en మరియు mlx6ib డ్రైవర్‌లు నవీకరించబడ్డాయి. మెల్లనాక్స్ సాకెట్ డైరెక్ట్ (కనెక్ట్‌ఎక్స్-6) ఎడాప్టర్‌లకు మద్దతు జోడించబడింది, ఇది PCIe Gen 200 బస్‌లో గరిష్టంగా 3.0Gb/s వరకు త్రోపుట్‌ని అనుమతిస్తుంది. మల్టీ-కోర్ బ్లూఫీల్డ్ చిప్‌ల కోసం, RShim డ్రైవర్‌కు మద్దతు జోడించబడింది. Mellanox ఎడాప్టర్‌ల కోసం డయాగ్నస్టిక్ యుటిలిటీల సెట్‌తో mstflint ప్యాకేజీ పోర్ట్‌లకు జోడించబడింది;
  • అప్లికేషన్లు మరియు పోర్ట్ సిస్టమ్
    • గ్రాఫిక్స్ స్టాక్ భాగాలు నవీకరించబడ్డాయి. drm.ko (డైరెక్ట్ రెండరింగ్ మేనేజర్) డ్రైవర్ Linux 5.0 కెర్నల్ నుండి పోర్ట్ చేయబడింది. ఈ డ్రైవర్ ప్రయోగాత్మకంగా పరిగణించబడుతుంది మరియు పోర్ట్స్ ట్రీకి గ్రాఫిక్స్/drm-devel-kmodగా జోడించబడింది. డ్రైవర్ నవీకరించబడిన Linux KPI ఫ్రేమ్‌వర్క్‌ని Linux కెర్నల్ DRM APIకి అనుకూలంగా వుపయోగిస్తున్నందున, అమలు చేయడానికి FreeBSD CURRENT అవసరం. VirtualBox వర్చువల్ GPU కోసం vboxvideo.ko drm డ్రైవర్ కూడా Linux నుండి పోర్ట్ చేయబడింది. Mesa ప్యాకేజీ 18.3.2ని విడుదల చేయడానికి నవీకరించబడింది మరియు devel/llvm80కి బదులుగా devel/llvm60 పోర్ట్ నుండి LLVMని ఉపయోగించడానికి మార్చబడింది.
    • FreeBSD పోర్ట్‌ల ట్రీ 37000 పోర్ట్‌లను అధిగమించింది, మూసివేయబడని PRల సంఖ్య 2146 వద్ద ఉంది. రిపోర్టింగ్ వ్యవధిలో, 7837 డెవలపర్‌ల నుండి 172 మార్పులు చేయబడ్డాయి. ముగ్గురు కొత్త పార్టిసిపెంట్‌లు కమిటర్ హక్కులను పొందారు. పోర్ట్‌లలోని ముఖ్యమైన సంస్కరణ నవీకరణలలో: MySQL 5.7, పైథాన్ 3.6, రూబీ 2.5, సాంబా 4.8, జూలియా 1.0, ఫైర్‌ఫాక్స్ 68.0, క్రోమియం 75.0.3770.100. అన్ని Go పోర్ట్‌లు "USES=go" ఫ్లాగ్‌ని ఉపయోగించడానికి మార్చబడ్డాయి. Haskell కోడ్ కోసం ఉపయోగించే Cabal ప్యాకేజీ మేనేజర్‌కి "USES=cabal" ఫ్లాగ్ జోడించబడింది. కఠినమైన స్టాక్ రక్షణ మోడ్ ప్రారంభించబడింది. పైథాన్ యొక్క డిఫాల్ట్ వెర్షన్ 3.6కి బదులుగా 2.7.
    • యుటిలిటీ విడుదల సిద్ధం చేయబడింది nsysctl 1.0, ఇది ఉపయోగించే /sbin/sysctlకు అనలాగ్‌ను అందిస్తుంది libxo అవుట్‌పుట్ కోసం మరియు విస్తరించిన ఎంపికల సెట్‌ను అందించడం కోసం. Nsysctl sysctl విలువల స్థితిని దృశ్యమానంగా పర్యవేక్షించడానికి మరియు నిర్మాణాత్మక రూపంలో వస్తువులపై సమాచారాన్ని అందించడానికి ఉపయోగించవచ్చు. XML, JSON మరియు HTML ఫార్మాట్‌లలో అవుట్‌పుట్ సాధ్యమవుతుంది;

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి