云南白药植物长什么样| 萌是什么意思| 淋菌性尿道炎吃什么药| 拔牙需要注意什么| 消炎吃什么药| 看痔疮挂什么科| 一直放屁什么原因| 12.8是什么星座| 一字千金是什么生肖| 脑胀是什么原因| 什么菜不能吃| logo是什么| 夫妇是什么意思| 宠物邮寄用什么快递| 吸水石是什么石头| 什么东西解酒最好最快| 摇头晃脑是什么生肖| 做彩超为什么要憋尿| 指甲开裂是什么原因| 高挑是什么意思| 狂犬疫苗什么时候打有效| 嬗变是什么意思| utc是什么时间| 杏仁是什么树的果实| 第一次查怀孕挂什么科| art什么意思| ft什么单位| 蜂蜜水喝了有什么好处| 胃不舒服吃什么食物好| 窍是什么意思| 镁低了是什么原因| 全身酸痛什么原因| 红血丝用什么护肤品修复比较好| 塞屁股的退烧药叫什么| 乔顿男装属于什么档次| 小便无力是什么原因男| 导诊是干什么的| 湿疹吃什么中成药| mt指什么| 四肢百骸是什么意思| 手代表什么生肖| 火气旺盛有什么症状| 大便出血挂什么科| 打榜是什么意思| 有氧运动什么意思| 干咳是什么原因| 易烊千玺的真名叫什么| 无字五行属什么| 蚊虫叮咬红肿用什么药快速消肿| 567是什么意思| 爱叶有什么作用和功效| 什么啤酒度数高| 妊娠反应什么时候开始| 青霉素主治什么病| 丰富多腔的腔是什么意思| 吃什么可以让阴茎变硬| 4个火念什么| 补是什么偏旁| 老鼠跟什么属相最配| 32岁属什么生肖| 士多啤梨是什么水果| 现在适合做什么生意| 反应性增生是什么意思| 1月25号什么星座| 冬眠的动物有什么| 香蕉对身体有什么好处| 什么样的荷叶| 红豆生南国什么意思| 孺子可教什么意思| 回本是什么意思| kgs是什么单位| 油粘米是什么米| 过期的维生素e有什么用途| 打日本电话前面加什么| 1994属什么生肖| 京剧红色脸谱代表什么| 婴儿半夜哭闹是什么原因| 什么时候跑步最好| 什么节日吃饺子| 谷丙转氨酶是检查什么的| 我是舅舅的什么人| 血压高吃什么食物好| 淋巴细胞偏低是什么原因| 木瓜什么味道| 婴儿吃不饱有什么危害| 血沉高说明什么问题| 胆汁酸高是什么意思| 运动后想吐是什么原因| 芥末配什么好吃| 来月经头晕是什么原因| 胃息肉有什么危害| 什么是木薯粉| 因地制宜是什么意思| 什么嫩芽| 什么其谈| 什么主筋骨| 韭菜籽配什么壮阳最猛| 宝贝是什么意思| 喝断片了是什么意思| 妈妈最大的愿望是什么| 什么的天空填合适的词| 抗炎和消炎有什么区别| 为什么会经常流鼻血| 肚子胀是什么原因引起的| 尿发黄是什么原因男性| 韭菜吃多了有什么坏处| 猫能吃什么人吃的东西| 喜大普奔是什么意思| 氩弧焊对身体有什么危害| 孕妇梦见血是什么预兆| 禾花鱼是什么鱼| 心水是什么意思| 心悸心慌吃什么药| 宫颈囊肿是什么| 攒肚是什么意思| 小便黄是什么原因| 尿频尿急挂什么科| 二胎什么时候放开的| 喉咙发炎吃什么水果好| 宝批龙什么意思| 珍珠婚是什么意思| 前列腺炎中医叫什么病| 师参谋长是什么军衔| 随性是什么意思| 胚芽是什么意思| 孕妇梦见下雪是什么征兆| 梦见和老公结婚是什么意思| 出阁是什么意思| 梦见好多死人是什么征兆| 五蕴指什么| 高血压高血糖能吃什么水果| 有氧运动是指什么| 山东立冬吃什么| 什么叫甲沟炎| 一个黑一个俊的右边念什么| 洋葱不能和什么一起吃| 三宫六院是什么意思| 宫颈炎吃什么药最好| 大手牵小手是什么菜| 中暑什么症状表现| 耳朵堵塞感是什么原因| 绿头牌是什么意思| 天天吹空调有什么危害| 儿女情长是什么意思| 梦见石榴是什么意思| 8月23是什么星座| 聚精会神的看是什么词语| aki医学上是什么意思| 决心是什么意思| 做病理是什么意思| 牙龈一直肿不消什么原因| 头孢不能和什么一起吃| 做亲子鉴定需要什么材料| 扫兴什么意思| 头秃了一块是什么原因| 夏天什么时候最热| 违背是什么意思| 为什么没人穿卡帕| 纤维硬结灶是什么意思| 什么叫前列腺炎| 12月5日什么星座| 头晕想睡觉是什么原因| 白虎关是什么意思| 天时地利人和是什么意思| 它是什么用英语怎么说| 高血压挂什么科室| 臭鱼烂虾什么意思| 怀孕吃什么会流产| 六合是什么意思| 支原体吃什么药好得快| 群星是什么意思| 硬下疳是什么样子| 兰花什么时候开花| 车震是什么意思啊| 山楂片泡水喝有什么好处| 什么是认证| opc是什么意思| 慢性病是什么意思| 什么叫比例| 淮山跟山药有什么区别| 爱戴是什么意思| 运动不出汗是什么原因| 蝶窦炎是什么病| 驻颜是什么意思| 什么叫直系亲属| 尿里带血是什么原因| 灰指甲有什么特效药可以治好| 用盐洗脸有什么好处| 什么是道德绑架| 尿里有结晶是什么原因| 小暑吃什么水果| 肿瘤挂什么科| 五点多是什么时辰| 嗣子是什么意思| 五行缺金是什么命| 乳房硬块疼是什么原因| 医是什么结构| 重症医学科是干什么的| 人为什么要生孩子| 面筋是什么做的| 并驾齐驱什么意思| 什么的武松| 痛经可以吃什么水果| 晚上八点到九点是什么时辰| 石榴石是什么材质| 巾失念什么| 戒的部首是什么| 梦到僵尸是什么预兆| 妯娌是什么意思| b型和o型生的孩子是什么血型| 异常白细胞形态检查是查什么病| 天兵神将是什么动物| 部分是什么意思| 励志是什么意思| 9.15是什么星座| 白带发黄粘稠是什么原因| 小燕子的尾巴像什么| 大什么什么针| 冰释前嫌的释是什么意思| 5月28日什么星座| 世界上最难的数学题是什么| 地指什么生肖| 杨梅不能和什么一起吃| 拔完牙能吃什么| 情人眼里出西施是什么心理效应| 金刚是什么树的种子| 当你从我眼前慢慢走过是什么歌| 1226是什么星座| 胳肢窝痒是什么原因| 挚爱的意思是什么| 磷是什么元素| 长期大便不成形是什么原因造成的| 尿酸偏高是什么病| 白蜜是什么| 为什么青霉素要做皮试| 1975属什么生肖| 六根清净是什么意思| 乳房胀痛挂什么科| 什么人不适合做业务员| 小宝贝是什么意思| 今年30岁属什么生肖| 磕头虫吃什么| 什么油适合油炸| 怀孕喝什么牛奶好| feel是什么意思| 怀孕初期需要注意些什么| 肾积水是什么原因| 霉菌性炎症用什么药效果最好| 孙尚香字什么| 滴虫是什么| 静脉曲张是什么原因| 晚上尿多是什么病| 白塞氏病是什么病| 人为什么有两个鼻孔| 伤官格是什么意思| 廊坊有什么好玩的地方| cba什么时候开始比赛| 凡人修仙传什么时候写的| 旗袍穿什么鞋子好看图| 不寐病是什么意思| 屎是什么味道的| 躁郁症是什么| 江西有什么景点| 维生素e有什么用| 百度
Skip to main content
MSRC

养老频道—新华网江苏教育频道

百度 第76分钟,阿根廷撤下送出助攻的洛赛尔索,换上帕文。

In this series, we have explored the need for proactive measures to eliminate a class of vulnerabilities and walked through some examples of memory safety issues we’ve found in Microsoft code that could have been avoided with a different language. Now we’ll peek at why we think that Rust represents the best alternative to C and C++ currently available.

First, there are plenty of fantastic memory safe languages already available and widely used inside and outside of Microsoft, including .NET languages like C# or F# and other languages like Swift, Go, and Python. We encourage anyone who is currently using C or C++ to consider whether one of these languages would be appropriate to use instead. We, however, are talking about the need for a safe systems programming language (i.e., a language that can build systems other software runs on, like OS kernels). Such workloads need the speed and predictable performance that C, C++, and Rust provide. Languages which achieve memory safety through garbage collection are not ideal choices for systems programming because their runtimes can lead to unpredictable performance and unnecessary overhead.

Performance and control

When thinking about why Rust is a good alternative, it’s good to think about what we can’t afford to give up by switching from C or C++ – namely performance and control. Rust, just like C and C++ has a minimal and optional “runtime”. Rust’s standard library depends on libc for platforms that support it just like C and C++, but the standard library is also optional so running on platforms without an operating system is also possible.

Rust, just like C and C++, also gives the programmer fine-grained control on when and how much memory is allocated allowing the programmer to have a very good idea of exactly how the program will perform every time it is run. What this means for performance in terms of raw speed, control, and predictability, is that Rust, C, and C++ can be thought of in similar terms.

Safety

What separates Rust from C and C++ is its strong safety guarantees. Unless explicitly opted-out of through usage of the “unsafe” keyword, Rust is completely memory safe, meaning that the issues we illustrated in the previous post are impossible to express. In a future post, we’ll revisit those examples to see how Rust prevents those issues usually without adding any runtime overhead. As we’ve seen, roughly 70% of the security issues that the MSRC assigns a CVE to are memory safety issues. This means that if that software had been written in Rust, 70% of these security issues would most likely have been eliminated. And we’re not the only company to have reported such findings.

In systems programming, sometimes the programmer must perform operations that cannot be statically verified as safe. Rust gives the programmer the tools to wrap these operations in safe abstractions, meaning that what was once relegated to code comments or convention can be statically enforced by the Rust compiler. Furthermore, the memory-unsafe operations must be explicitly marked as such, dramatically reducing the surface area security professionals must scrutinize for memory safety vulnerabilities.

It’s not just performance and safety

While Rust initially piqued the interest of the MSRC due to the reasons above, other teams at Microsoft have started adopting Rust for other reasons.

  • According to an internal survey, the top reason for adoption was “correctness” – an extension of Rust’s safety guarantees that work towards making true the adage “if it compiles, then it works”.
  • Rust statically enforces many properties of a program beyond memory safety, including null pointer safety and data race safety (i.e., no unsynchronized access of a piece of memory from two or more threads).
  • Many teams at Microsoft have found that Rust’s rich type system makes writing expressive programs possible. Concepts like enums with associated data and a powerful trait system further enforce Rust’s goal of making programs as bug-free as possible.
  • Rust’s existing community is a huge benefit to the language. Much of the power of a language comes from outside of its core through libraries, tooling, and learning materials. While Rust is still a young language, it boasts a healthy ecosystem with an active and open compiler and language development process, and it shows the ability to both promote a strong open source community and to support production users. This gives us more reason to believe the language has a bright future ahead of it.

All of this explains Rust’s track record of having topped Stack Overflow’s list of most loved languages for the past four years. While it’s too early to say what Rust adoption looks like at a scale as large as Microsoft’s engineering organization, early adoption of Rust has generally been very positive.

A bright future

We believe Rust changes the game when it comes to writing safe systems software. Rust provides the performance and control needed to write low-level systems, while empowering software developers to write robust, secure programs.

While researching Rust, we found some issues that gave and continue to give us pause. Some of these concerns include how to regulate the usage of the “unsafe” superset of Rust at scale, lack of first-class interoperability with C++, and interoperability with existing Microsoft tooling. We’ll be blogging about many of these in the future as they do pose challenges for adoption at the scale of Microsoft, and we want to involve the Rust and wider software communities in helping us find solutions that work for everyone.

But we’re excited about the possibilities. While there are many questions still left to figure out about how Rust fits into the overall Microsoft engineering story, we encourage others to join us in taking a serious look at the language for their systems programming needs.

Ryan Levick, Principal Cloud Developer Advocate

Related posts:


Related Posts

How satisfied are you with the MSRC Blog?

Rating

Feedback * (required)

Your detailed feedback helps us improve your experience. Please enter between 10 and 2,000 characters.

Thank you for your feedback!

We'll review your input and work on improving the site.

护士是干什么的 口水臭什么原因 什么是湿气重 胃下垂有什么症状表现 什么冠禽兽
六月一日什么星座 婴儿哭久了有什么危害 11月9号是什么星座 胃胆汁反流是什么原因引起的 sk是什么
con是什么意思 为什么一同房就有炎症 脚踝扭伤挂什么科 液基薄层细胞检测是什么 闭合性跌打损伤是什么意思
猪儿虫是什么意思 记录是什么意思 增强ct是什么意思 恶病质是什么意思 喉部有异物感是什么病
大佐是什么军衔imcecn.com 什么食物降血压naasee.com 脚趾抽筋是什么原因引起的hcv8jop5ns3r.cn 打封闭针是什么意思hcv8jop4ns5r.cn 129什么星座gysmod.com
shiraz是什么名字红酒gangsutong.com 梦到前女友是什么意思hcv8jop0ns4r.cn 飞黄腾达是什么生肖hcv7jop7ns3r.cn 琼瑶什么意思wzqsfys.com 女人肾虚吃什么补回来hcv8jop5ns8r.cn
十一朵玫瑰花代表什么意思hcv8jop5ns9r.cn 肺炎是什么症状hcv8jop5ns1r.cn 8点是什么时辰hcv7jop9ns3r.cn 气血是什么sscsqa.com 自卑什么意思sscsqa.com
肢体拘挛是什么意思shenchushe.com 为什么总是放屁hcv7jop7ns2r.cn 前置是什么意思96micro.com 五月二十九是什么日子hcv8jop2ns2r.cn 高铁上为什么没有e座jasonfriends.com
百度