Hacker News

Zig - io_uring ۋە Grand Central Dispatch std.Io يولغا قويۇلدى

Zig - io_uring ۋە Grand Central Dispatch std.Io يولغا قويۇلدى بۇ ئىزدىنىش io_uring غا چوڭقۇرلاپ ، ئۇنىڭ ئەھمىيىتى ۋە يوشۇرۇن تەسىرىنى تەكشۈردى. يادرولۇق ئۇقۇملار بۇ مەزمۇن ئۈستىدە ئىزدىنىدۇ: ئاساسىي پرىنسىپلار ۋە ...

1 min read Via ziglang.org

Mewayz Team

Editorial Team

Hacker News

Zig نىڭ ئۆلچەملىك كۇتۇپخانىسى مۇھىم باسقۇچقا يەتتى: std.Io نىڭ يەرلىك io_uring ۋە Grand Central Dispatch (GCD) ئارقا سەھنىسى رەسمىي قونۇپ ، يۇقىرى ئىقتىدارلىق ، سۇپا يەرلىك ماس قەدەمسىز I / O نى ئەڭ ئىستىقباللىق زامانىۋى سىستېما پروگرامما تىللىرىنىڭ بىرىگە ئېلىپ كەلدى. كېيىنكى ئەۋلاد سودا سۇپىلىرىغا ھوقۇق بېرىدىغان ئۇل ئەسلىھەلەرنى قۇرغۇچىلار ئۈچۈن Mewayz نىڭ ئارقىسىدىكى 207 مودۇللۇق مەشغۇلات سىستېمىسىغا ئوخشاش - بۇ تەرەققىيات ئارقا كۆرۈنۈش ئۈنۈمى ۋە كېڭەيتىشنىڭ يېڭى دەۋرىنى كۆرسىتىدۇ.

io_uring دېگەن نېمە ۋە زامانىۋى قوللىنىشچان پروگراممىلار ئۈچۈن نېمە ئۈچۈن مۇھىم؟

لىنۇكىس مېغىزى 5.1 دە تونۇشتۇرۇلغان ، io_uring يۇقىرى ئىقتىدارلىق ماس قەدەمسىز I / O كۆرۈنمە يۈزى بولۇپ ، قوللىنىشچان پروگراممىلارنىڭ مەشغۇلات سىستېمىسى بىلەن بولغان ئالاقىسىنى تۈپتىن ئۆزگەرتىدۇ. ئەنئەنىۋى I / O مودېللار پروگراممىلارنى ھەر بىر ئوقۇش ياكى يېزىش مەشغۇلاتىغا ئايرىم سىستېما چاقىرىشقا مەجبۇرلايدۇ - قىممەت باھالىق ئايلىنىش ساياھىتى. io_uring بۇنى ئىشلەتكۈچى بوشلۇقى بىلەن مېغىز ئوتتۇرىسىدىكى ئورتاق ھالقا بۇففېرغا ئالماشتۇرۇپ ، قوللىنىشچان پروگراممىلارنى ئەڭ تۆۋەن چەكتە مىڭلىغان I / O مەشغۇلاتىنى يوللايدۇ ۋە تاماملايدۇ.

ئەمەلىي تەسىرى دراماتىك. تور مۇلازىمېتىرلىرى ، سانلىق مەلۇمات ئامبىرى ۋە SaaS سۇپىسى نەچچە مىڭلىغان ئۇلىنىشنى بىر تەرەپ قىلىدىغان CPU نىڭ ئۈستى قىسمىنىڭ تۆۋەنلىشى ۋە كېچىكىشىدىن دەرھال پايدىلىنىدۇ. 207 خىل ئوخشىمىغان مودۇلدىكى 138،000 ئاكتىپ ئىشلەتكۈچىگە مۇلازىمەت قىلىدىغان سۇپا ئۈچۈن - ھەر بىر قوزغىتىش ھۆججىتى ئوقۇش ، ساندان سوئاللىرى ۋە تور تەلەپلىرى - مىراس I / O بىلەن io_uring نىڭ پەرقى بىۋاسىتە ئىنكاس ۋاقتىنى ياخشىلاش ۋە ئۇل ئەسلىھە تەننەرخىنى تۆۋەنلىتىشكە بىۋاسىتە تەرجىمە قىلالايدۇ.

"io_uring نى ئون يىل ئىچىدە Linux I / O غا قوشۇلغان ئەڭ مۇھىم قوشۇش دېيىشكە بولىدۇ. ئەنئەنىۋى سىستېمىلارنىڭ مەزمۇن ئالماشتۇرۇش ئۈستىنى چىقىرىپ تاشلاش ئارقىلىق ، ئۇ ئىشلەتكۈچى بوشلۇق پروگراممىلىرىنىڭ خام قاتتىق دېتال كىرگۈزۈش ئۇسۇلىنى قوللىنالايدۇ - I / O توسالغۇ بولغان ھەرقانداق پروگراممىنىڭ ئويۇن ئالماشتۇرغۇچىسى."

چوڭ مەركىزى ئەۋەتىش Zig std غا قانداق ماس كېلىدۇ؟ ھېكايە؟

io_uring لىنۇكىسقا خاس بولسىمۇ ، ئالما شىركىتىنىڭ Grand Central Dispatch (GCD) ئۇزۇندىن بۇيان macOS ۋە iOS دىكى ئاساسلىق ماسلىشىش ۋە ۋەزىپە ئەۋەتىش رامكىسى بولۇپ كەلدى. GCD تېما باشقۇرۇشنى ئۆچرەتنى ئاساس قىلغان مودېلغا قىسقارتىپ ، مەشغۇلات سىستېمىسىنىڭ ئىشلەتكۈچىلەر تېما كۆلچىكىنى قولدا باشقۇرماي تۇرۇپ ، مەشغۇلات سىستېمىسىنىڭ ئىشلەتكىلى بولىدىغان مەركىزى بىر تەرەپ قىلغۇچنى ئەڭ ياخشى ئورۇنلاشتۇرۇشىغا يول قويىدۇ.

ھەر ئىككى ئارقا بەلگىنى بىرلىككە كەلگەن std.Io ئابستراكتسىيىسىگە قونۇش ئارقىلىق ، Zig گۇرۇپپىسى ھەقىقىي قىيىن بىر ئىشنى ئەمەلگە ئاشۇردى: لىنۇكىس ۋە ئالما سۇپىسىدىكى يەرلىك ، ئۆزگىچە async ئىپتىدائىيلىرىنى توپلايدىغان يەككە async I / O API يۈزى. بۇ std.Io غا قارشى يېزىلغان Zig پروگراممىلىرىنىڭ لىنۇكىس مۇلازىمېتىرىدا io_uring ۋە macOS ئېچىش ماشىنىلىرىدا GCD نى ئاپتوماتىك ئىشلىتىدىغانلىقىدىن دېرەك بېرىدۇ.

زىگنىڭ Async I / O سەپىرىنىڭ ئارقىسىدىكى تارىخى مەزمۇن نېمە؟

Zig نىڭ مۇقىم بولغان ئاسسىمىلياتسىيە ھېكايىسى كۆرۈنەرلىك بولدى. تىلنىڭ دەسلەپكى نۇسخىلىرى تەجرىبە async / كۈتۈش گرامماتىكىسىنى ئۆز ئىچىگە ئالغان بولۇپ ، گۇرۇپپا لايىھەنى قايتا ئويلاشقاندا كېيىن چىقىرىۋېتىلگەن. Zig يادرولۇق گۇرۇپپىسى تىل گرامماتىكىسىغا پىشۇرۇلغان مۇئەييەن ماسلىشىش ئەندىزىسىگە ۋەدە بېرىشنىڭ ئورنىغا ، ئۆلچەملىك كۇتۇپخانا سەۋىيىسىدىكى I / O ئابستراكت قەۋىتىنى تاللىدى - بۇ ئوخشىمىغان ئىجرا قىلىش ئىستراتېگىيىسى بىلەن ماسلىشالايدۇ.

بۇ پەلسەپە Zig نىڭ تېخىمۇ كەڭ لايىھىلەش ئەخلاقى بىلەن ماسلىشىدۇ: يوشۇرۇن كونترول ئېقىمى ، ئېنىق تەقسىملەش ۋە ئالدىن پەرەز قىلىدىغان مېخانىزم يوق. std.Io كۆرۈنمە يۈزى نەچچە يىللىق مەھەللە مۇنازىرىسى ، تەقلىد قىلىش ۋە رېئال دۇنيانىڭ ئىنكاسىنىڭ يۇقىرى پەللىسىگە ۋەكىللىك قىلىدۇ. Io_uring ۋە GCD ئارقا سەھنىسىگە قونۇش Zig نىڭ async ئېكولوگىيىلىك سىستېمىسى ئۈچۈن سىناقتىن ئىشلەپچىقىرىشقا ئۆتۈشنى كۆرسىتىدۇ.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

SaaS ۋە سودا سۇپىسى ئۇل ئەسلىھەلىرىنىڭ ئەمەلىي تەسىرى نېمە؟

كۆپ ئىجارىگە بېرىلگەن SaaS سۇپىسىنىڭ ئارقا ئۇل ئەسلىھەلىرىنى قۇرۇش ياكى باھالاش گۇرۇپپىلىرىغا نىسبەتەن ، Zig io_uring ھېكايىسى بىر قانچە كونكرېت مەزمۇنلارنى ئۆز ئىچىگە ئالىدۇ:

  • ئۇل ئەسلىھەلەرنىڭ تەننەرخى تۆۋەنلىدى: ھەر بىر مۇلازىمېتىرنىڭ I / O دىن يۇقىرى بولۇشى ئوخشاش يۈكنى بىر تەرەپ قىلىشقا ئېھتىياجلىق ماشىنىلارنىڭ ئاز ئىكەنلىكىنى ، بۇلۇت چىقىمىغا بىۋاسىتە تەسىر كۆرسىتىدۇ.
  • كۆلەمدىكى ئالدىن پەرەز قىلغىلى بولىدىغان كېچىكىش: io_uring نىڭ تۈركۈملەپ يوللاش مودېلى يۇقىرى ماسلىقتا كۆپ ئۇچرايدىغان كەڭلىك سۈرئىتىنى راۋانلاشتۇرۇپ ، سۇپىنىڭ بارلىق مودۇللىرىدا ئابونتلارنىڭ تەجرىبىسىنى ئۆستۈرىدۇ.
  • سۇپا ھالقىغان پروگرامما ئاچقۇچىلار قورالى: GCD نىڭ قوللىشى بىلەن ، macOS دىكى پروگراممېرلار Linux ئىشلەپچىقىرىش مۇلازىمېتىرلىرىغا ئورۇنلاشتۇرۇلغان يەرلىك I / O لوگىكىسىنى ئىجرا قىلالايدۇ - بۇ ساداقەتنى سىناشتىكى ئۇزۇن مۇددەتلىك بوشلۇقنى كىچىكلىتىدۇ.
  • كەلگۈسىگە چىداملىق سىستېما لايىھىسى: io_uring بېقىشنىڭ قوشنا قوراللاردا (سانلىق مەلۇمات ئامبىرى ، ۋاكالەتچى ، ئىجرا ۋاقتى) كۆپىيىشىگە ئەگىشىپ ، Zig نىڭ يەرلىك قوللاش ئورنى تېخىمۇ كەڭ زامانىۋى Linux ئېكولوگىيىلىك سىستېمىسى بىلەن تۈزۈشكە ماس كېلىدۇ.
  • ئەخلەت يىغماي تۇرۇپ ئەستە ساقلاش بىخەتەرلىكى: Zig نىڭ ئىگىدارلىق ئەندىزىسى io_uring نىڭ بۇففېر باشقۇرۇشتىكى نۆل كۆپەيتىش ئىقتىدارى بىلەن جۈپ بولۇپ ، سىستېما دەرىجىلىك تور كودىدا كۆپ ئۇچرايدىغان كەمتۈكلەرنى يوقىتىدۇ.

بۇ ئېكولوگىيىلىك سىستېمىنىڭ تەرەققىي قىلىشىدا پروگراممېرلار قانداق كەلگۈسى يۈزلىنىشلەرگە دىققەت قىلىشى كېرەك؟

بۇ ئارقا سەھنىلەرنىڭ قونۇشى ئاخىرقى نۇقتا ئەمەس ، بەلكى باشلىنىش. بىر قانچە تەرەققىياتنى يېقىندىن كۆزىتىشكە ئەرزىيدۇ. بىرىنچىدىن ، Zig ئېكولوگىيىلىك سىستېمىسى يەنىلا تېخىمۇ يۇقىرى قاتلاملىق ئابستراكتلار - HTTP مۇلازىمېتىرلىرى ، ساندان قوزغاتقۇلىرى ۋە std.Io ئۈستىگە قۇرۇلغان RPC رامكىسى ئەتراپىدا پىشىپ يېتىلىۋاتىدۇ. ئىككىنچىدىن ، io_uring نىڭ ئۆزى داۋاملىق تەرەققىي قىلىدۇ. مۇقىم بۇففېر ، كۆپ ئىقتىدارلىق مەشغۇلات ۋە مېغىزلىق راي سىناش قاتارلىق ئىقتىدارلار Zig نىڭ ئارقا تەرىپى تەدرىجىي ئاشكارىلايدىغان قوشۇمچە ئىقتىدار باش ئۆيى بىلەن تەمىنلەيدۇ. ئۈچىنچىسى ، WebAssemble نىڭ ئىجرا قىلىنىش ۋاقتى WASI I / O كۆرۈنمە يۈزىنىڭ كۈنسېرى ئاشكارىلىنىشىغا ئەگىشىپ ، Zig نىڭ ئابستراكت قەۋىتى ئۇنى شۇ مۇھىتنىمۇ نىشانلاپ ، ھەر قېتىم ئىجرا بولىدىغان سىستېما كودىغا ھەقىقىي يازغىلى بولىدۇ.

مەشغۇلات ئۈنۈمىنى ئالدىنقى ئورۇنغا قويغان سۇپىلار ئۈچۈن - Mewayz غا ئوخشاش ، ئۇ پۈتكۈل سودا مەشغۇلات سىستېمىسىنى 19 ~ 49 دوللار / ئايلىق مۇشتەرىلىككە قىستايدۇ - بۇ ئۇل ئەسلىھە سەۋىيىسىنى ياخشىلاش بىرىكمىسى. سىستېما قاتلىمىدىكى ھەر بىر ئۈنۈمنىڭ ئۆسۈشى تېخىمۇ كۆپ ئىقتىدارلار ، تېخىمۇ كۆپ ئىشلەتكۈچىلەر ۋە تېخىمۇ ياخشى پەرقى ئۈچۈن باش ئۆيگە تەرجىمە قىلىنىدۇ.

دائىم سورايدىغان سوئاللار

بۈگۈن ئىشلەپچىقىرىش مۇھىتىدا io_uring بىخەتەرمۇ؟

ھەئە. io_uring لىنۇكىس يادروسى 5.1 (2019) دىن باشلاپ ئىشلىتىلگەن بولۇپ ، ھازىر ئىشلەپچىقىرىشتا مۇقىم دەپ قارالدى. Redis ، RocksDB ۋە نۇرغۇنلىغان يۇقىرى ئىقتىدارلىق تور مۇلازىمېتىرلىرىنى ئۆز ئىچىگە ئالغان ئاساسلىق تۈرلەر ئۇنى قوبۇل قىلدى. Zig نىڭ ئەمەلگە ئاشۇرۇلۇشى ئوخشاش مېغىزلىق كۆرۈنمە يۈزىگە ئەگىشىدۇ ھەمدە مېغىز 5.6 ياكى ئۇنىڭدىن يۇقىرى نەشرىدىكى زامانىۋى Linux تارقىتىش پروگراممىلىرىنىڭ ئىشلەپچىقىرىش يۈكىگە ماس كېلىدۇ.

يېڭى std نى ئىشلىتىش ئۈچۈن ھازىرقى Zig كودىنى قايتا يېزىشىم كېرەكمۇ؟ ئارقا سەھنىمۇ؟

كۆرۈنەرلىك قايتا يېزىش تەلەپ قىلىنمايدۇ. std.Io كۆرۈنمە يۈزى مۇقىم ئابستراكت قەۋىتى قىلىپ لايىھەلەنگەن - ئۇنىڭغا قارشى يېزىلغان پروگرامما كودى توپلاش نىشانىغا ئاساسەن io_uring ياكى GCD ئارقا سەھنىسىدىن ئاپتوماتىك پايدىلىنىدۇ. دەسلەپكى كۆچۈش تىرىشچانلىقى بۇ ئارقا كۆرۈنۈشلەرنى ئۆز ئىچىگە ئالغان نۆۋەتتىكى Zig قورال قوراللىرى نەشرىگە يېڭىلاش ۋە ئىلگىرى سۇپا مەخسۇس I / O syscalls نى ئىشلەتكەن ھەر قانداق كودنى تەڭشەشنى ئۆز ئىچىگە ئالىدۇ.

بۇ رۇسنىڭ توكيودىكى ياكى Go نىڭ ئىجرا قىلىنىش ۋاقتىدىكى async I / O بىلەن قانداق سېلىشتۇرما؟

لىنۇكىسدىكى

توكيو يەنە ئېپول ئىشلىتىدىغان سۈكۈتتىكى توكيو ئىجرا ۋاقتىدىن ئايرىم ھالەتتە تۇرسىمۇ ، tokio-uring ساندۇق ئارقىلىق io_uring نى ئىشلىتىدۇ. Go نىڭ ئىجرا ۋاقتى epoll نى ئاساس قىلغان I / O ئارقىلىق ئۆزىنىڭ ئورۇنلاشتۇرغۇچىسىنى ئىشلىتىدۇ. Zig نىڭ ئۇسۇلى ئوخشىمايدۇ: std.Io API سەۋىيىسىدە ماس قەدەملىك ھېسسىيات - async / كۈتۈش گرامماتىكىسى يوق - يەنىلا ماتورنىڭ ئاستىدىكى يەرلىك async ئىپتىدائىيلىرىغا ئەۋەتىلىدۇ. بۇ ئوقۇشچانلىقىنى ساقلاپ ، async Rust كود يەشكۈچلىرىنى مۇرەككەپلەشتۈرۈۋېتىدىغان «رەڭلىك ئىقتىدار» مەسىلىسىدىن ساقلىنىدۇ.


مەيلى سىز كېيىنكى ئۇل ئەسلىھە تۈرىڭىزنىڭ سىستېما پروگرامما تىلىنى باھالايدىغان پروگرامما ئاچقۇچى ياكى ئۈنۈملۈك ، كېڭەيتىشچان تېخنىكا ئۈستىگە قۇرۇلغان سۇپا ئىزدەۋاتقان كارخانا خوجايىنى بولۇڭ ، Zig غا ئوخشاش قوراللارنىڭ مۇساپىسى ئىقتىدار بىرىنچى يۇمشاق دېتال لايىھىلەشكە تېخىمۇ كەڭ بۇرۇلۇشنى ئەكىس ئەتتۈرىدۇ. Mewayz دەل مۇشۇ پرىنسىپ ئۈستىگە قۇرۇلغان - ئوخشاش قوراللارنى ئايرىم قۇراشتۇرۇش تەننەرخىنىڭ بىر قىسمىدا 137،000 دىن ئارتۇق ئىشلەتكۈچىگە 207 توپلاشتۇرۇلغان سودا مودۇلى يەتكۈزۈش. CRM ۋە ئانالىزدىن ئۇلىنىش-بىيو ۋە دەرس يەتكۈزۈشكىچە ، پۈتكۈل سودا مەشغۇلات سىستېمىسىنىڭ ئايلىق باھاسى 19 دوللار. ھەقسىز سىناقنى app.mewayz.com دىن باشلاڭ ۋە زامانىۋى ، ئۈنۈملۈك سۇپا لايىھىسىنىڭ ئەمەلىيەتتە قانداق بولىدىغانلىقىنى ھېس قىلىڭ.