full screen background image
Не пропусти
Каким будет конец света по мнению ИИ? — Hi-News.ru»>/**/ article{display:block}body{font-size:14px;line-height:1}ol,ul{list-style:none;padding:0;margin:0}html,body{font:400 -apple-system,BlinkMacSystemFont,sans-serif}html,body,div,span,iframe,h1,p,a,img,ins,strong,b,form,article,time{margin:0;padding:0;border:0;font-size:100%;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,sans-serif;vertical-align:baseline;-webkit-font-smoothing:antialiased}body{font-size:14px;line-height:1;min-width:1124px}ol,ul{list-style:none;padding:0;margin:0}b,strong{font-weight:700}img{overflow:hidden;height:auto;max-width:100%;font:400 10px -apple-system,BlinkMacSystemFont,sans-serif}p{color:#000;margin-bottom:15px;font:400 20px/1.5 -apple-system,BlinkMacSystemFont,sans-serif}h1{color:#000;margin:0 0 28px 0;font:700 54px/1 -apple-system,BlinkMacSystemFont,sans-serif}.clearfix:before{content:»»;display:table}.clearfix:after{content:»»;display:table;clear:both}#page{position:relative;width:1090px;margin:0 auto;padding:0 20px}#header{margin:20px auto 0}#header .logo{display:flex;margin-bottom:22px;position:relative;width:560px}.logo-icon{margin-right:11px}.logo .icon_logo{font-size:28px;height:1.18em}.logo-link{display:inherit}.logo-name{display:flex;font:32px/1 -apple-system,BlinkMacSystemFont,sans-serif;margin:0}.logo-name-green{color:#48d900;font-weight:600}.logo-name-black{color:#000;font-weight:300}.logo-name-dash{color:#000;margin:0 1px;font-weight:300}a{color:#F50;text-decoration:none;font-weight:500}#header .user{position:absolute;top:6px;right:20px}#header .user.anonymous-user .icon-lock{background:url(/wp-content/themes/101media/img/login.svg) no-repeat;width:18px;height:21px;display:block}#header form{position:absolute;right:60px;top:-2px}#header form input{border:1px solid #eef1f5;border-radius:63px;outline:none;padding:8px 35px 9px 20px;width:216px;-webkit-appearance:none;font:400 16px/19px -apple-system,BlinkMacSystemFont,sans-serif}#header form #searchsubmit{background-image:url(/wp-content/themes/101media/img/search_.svg);background-size:cover;opacity:0.15;border:none;height:15px;padding:0;position:absolute;right:16px;text-indent:-9999px;top:13px;width:15px}.trand{background-color:#000}.menu-trends-container{background-color:#000;padding:20px 35px 18px;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;margin-bottom:10px}.menu-trends-container .trand{height:auto;overflow:hidden;background-color:transparent;background-position:14px center;padding-right:0;width:auto}.menu-trends-container .trand li{display:inline-block;padding:0;height:auto}.menu-trends-container .trand li a{color:#fff;text-decoration:none;display:inline-block;padding-right:20px;font:700 18px/23px -apple-system,BlinkMacSystemFont,sans-serif}#content{width:calc(100% — 340px);float:left;margin-top:5px}#i10foreign{width:calc(100% — 340px)}.item .info{color:#000;margin-top:5px;font:400 15px/24px -apple-system,BlinkMacSystemFont,sans-serif;margin-bottom:10px}.info{position:relative}.breadcrumbs{white-space:nowrap;margin-bottom:10px}.breadcrumbs li{display:inline}.breadcrumbs li+li:before{content:»;position:relative;display:inline-block;border-top:1px solid #CAD1D9;border-right:1px solid #CAD1D9;width:6px;height:6px;top:-1px;right:2px;margin:0 4px;transform:rotate(55deg) skew(20deg)}.breadcrumbs li a{color:#CAD1D9;font:400 15px/24px -apple-system,BlinkMacSystemFont,sans-serif}.breadcrumbs__logo span{font-size:0}.breadcrumbs__logo img{margin-bottom:-2px}.item .info .author{margin-left:0;font-weight:600;display:inline-block;margin-bottom:0}.item .info .prop-comments{font-size:14px;color:#000;font-weight:400;margin-left:6px;padding-right:20px;position:relative;display:inline-block}.item .info .prop-comments::before{content:»;background-color:rgba(172,182,191,0.2);position:absolute;top:0;bottom:0;margin:auto;right:7px;width:5px;height:5px;border-radius:50%}.item .info .prop-comments svg{vertical-align:middle;margin-right:4px}.item .info .post__date-inner{display:inline-flex}.item .info .post__date-update{display:inline-block;color:#959EA6;margin-left:5px}.text{color:#000;font:400 16px/22px -apple-system,BlinkMacSystemFont,sans-serif}#sidebar{width:300px;float:left;margin-left:40px}.banners-center{text-align:center}.banner-sidebar{margin:20px 0 20px}.sidebar-banner-telegram{display:block;border:1px solid #eee;border-radius:3px;padding:14px 24px;font-size:14px;line-height:normal;background:none;position:relative;overflow:hidden}.sidebar-banner-telegram strong{margin-bottom:6px;color:#151515;text-transform:uppercase;letter-spacing:.08em;word-wrap:break-word;font:700 16px -apple-system,BlinkMacSystemFont,sans-serif}.sidebar-banner-telegram span{display:block;color:#aaa;font:300 14px/20px -apple-system,BlinkMacSystemFont,sans-serif}.sidebar-banner-telegram svg{position:absolute;bottom:-20px;right:-20px}.single-title{margin-bottom:15px}#post{margin-top:-4px}.single .item .info{margin-top:0;font-size:19px}.single .item .breadcrumbs li a{font-size:19px}.single .item .breadcrumbs__logo img{width:20px;height:20px;margin-bottom:-4px}.single .item .breadcrumbs li+li:before{width:8px;height:8px}.single .item .info .prop-comments{font-size:18px}.searchform input{border:1px solid #f2f2f2;outline:none;padding:10px 0 10px 12px;width:180px;margin-bottom:7px;font:400 12px/15px -apple-system,BlinkMacSystemFont,sans-serif}.icon{display:inline-block;vertical-align:middle;size:1em;width:1em;height:1em;fill:currentColor}#main.main-section{display:flex;flex-wrap:wrap;margin-bottom:60px}.adsense{position:relative}.adsense{margin:40px 0}#toc_container{background:none;width:100%;border:none;font-size:22px;padding:0;margin-bottom:1em;font-weight:400}#toc_container p.toc_title{font-size:38px;line-height:1.2;text-align:left;margin:0;padding:0;font-weight:700}#toc_container p.toc_title+ul.toc_list{margin-top:23px}#toc_container ul,#toc_container li{margin:0;padding:0}#toc_container .toc_list li{font-size:22px;line-height:26px;font-weight:400}#toc_container .toc_list li:not(:last-child){margin-bottom:18px}#toc_container .toc_list a{display:flex;color:#000;font-size:inherit;position:relative;padding-bottom:15px;border-bottom:1px solid rgba(213,221,230,0.5);font-weight:400}#toc_container .toc_list .toc_number{font-size:inherit;color:#cad1d9;margin-right:10px}#toc_container .toc_list .toc_number:after{content:’.’}#sidebar .widget{position:sticky;position:-webkit-sticky;top:25px}.wp-caption{max-width:100%}.wp-caption-text{font-size:18px;line-height:19px;color:#999;margin:15px 0 25px}.single-post .text img{display:block}.single-post .text img{background-color:#f6f6f6}.text a{color:#F50}::-moz-focus-inner{border:0}.text{color:#000;font:400 16px/22px -apple-system,BlinkMacSystemFont,sans-serif}.clearfix:before{content:»»;display:table}.clearfix:after{content:»»;display:table;clear:both}.menu-trends-container .trand{background-position:14px center}.widget{margin-bottom:32px}.text ul{font-size:20px;line-height:1.5;font-weight:400;margin:0 0 30px 0}#comments{font:700 30px -apple-system,BlinkMacSystemFont,sans-serif;color:#0f0f0f;text-transform:uppercase;letter-spacing:0.08em}#comments{margin:0 15px 5px 0}.comment-section-header{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:25px}.comment-section-header .comment-btn{width:100%;display:flex;align-items:center}.comment-section-header #comment-btn-collapse{height:auto;position:relative;color:#cad1d9;font-size:14px;font:400 14px/16px -apple-system,BlinkMacSystemFont,sans-serif;text-align:center;background:none;text-transform:inherit;letter-spacing:inherit;text-shadow:none;padding:0}.comment-section-header #comment-btn-collapse:before{position:absolute;content:»;bottom:-1px;left:0;width:100%;height:6px;right:0;background-image:linear-gradient(to right,rgba(202,209,217,0.5) 58%,rgba(255,255,255,0) 0%);background-position:bottom;background-size:5px 1px;background-repeat:repeat-x}.comment-section-header #comments{display:flex;align-items:center;min-height:44px}.comment-section .scroll-to-new-comment{height:auto;padding:9px 20px;border:1px solid rgba(255,85,0,0.2);color:#f50;font:500 16px/24px -apple-system,BlinkMacSystemFont,sans-serif;text-decoration:none;border-radius:3px;text-align:center;background:none;text-transform:inherit;letter-spacing:inherit;text-shadow:none}button{display:inline-block;height:37px;font:700 14px/40px -apple-system,BlinkMacSystemFont,sans-serif;color:#fff;text-decoration:none;padding:0 40px 0 0;outline:none;text-shadow:0 1px 0 rgba(71,117,0,0.5);background:transparent url(/wp-content/themes/101media/img/button-square-green.png) no-repeat right top;border:none;margin:0;text-transform:uppercase;letter-spacing:0.08em;width:auto;overflow:visible}button::-moz-focus-inner{border:0;padding:0;margin:0}.banners-center{text-align:center}.news-img{position:relative;padding-bottom:60.8%;max-width:100%;display:block}.foreign-posts{clear:both;margin-top:60px;border-top:1px solid #e6e7e3;width:1000px;margin-bottom:50px}.foreign-posts .foreign_post_title{font:700 30px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:2.4px;text-align:left;color:#000;margin-top:33px;text-transform:uppercase}.foreign-posts .foreign-posts-list{min-height:250px}@media (min-width:625px) and (max-width:649px){.item iframe:not(.iframe){height:328px}}@media (min-width:600px) and (max-width:624px){.item iframe:not(.iframe){height:314px}}@media (min-width:575px) and (max-width:599px){.item iframe:not(.iframe){height:300px}}@media (min-width:550px) and (max-width:574px){.item iframe:not(.iframe){height:286px}}@media (min-width:525px) and (max-width:549px){.item iframe:not(.iframe){height:272px}}@media (min-width:500px) and (max-width:524px){.item iframe:not(.iframe){height:258px}}@media (min-width:475px) and (max-width:499px){.item iframe:not(.iframe){height:244px}}@media (min-width:450px) and (max-width:474px){.item iframe:not(.iframe){height:230px}}@media (min-width:425px) and (max-width:449px){.item iframe:not(.iframe){height:216px}}@media (min-width:414px) and (max-width:424px){.item iframe:not(.iframe){height:206px}}@media (min-width:400px) and (max-width:413px){.item iframe:not(.iframe){height:206px}}@media (min-width:375px) and (max-width:399px){.item iframe:not(.iframe){height:198px}}@media (min-width:325px) and (max-width:349px){.item iframe:not(.iframe){height:170px}}@media (max-width:324px){.item iframe:not(.iframe){height:156px}}(function(w){«use strict»;var loadCSS=function(href,before,media,attributes){var doc=w.document;var ss=doc.createElement(«link»);var ref;if(before){ref=before;}else{var refs=(doc.body||doc.getElementsByTagName(«head»)[0]).childNodes;ref=refs[refs.length-1];}var sheets=doc.styleSheets;if(attributes){for(var attributeName in attributes){if(attributes.hasOwnProperty(attributeName)){ss.setAttribute(attributeName,attributes[attributeName]);}}}ss.rel=»stylesheet»;ss.href=href;ss.media=»only x»;function ready(cb){if(doc.body){return cb();}setTimeout(function(){ready(cb);});}ready(function(){ref.parentNode.insertBefore(ss,(before?ref:ref.nextSibling));});var onloadcssdefined=function(cb){var resolvedHref=ss.href;var i=sheets.length;while(i—){if(sheets[i].href===resolvedHref){return cb();}}setTimeout(function(){onloadcssdefined(cb);});};function loadCB(){if(ss.addEventListener){ss.removeEventListener(«load»,loadCB);}ss.media=media||»all»;}if(ss.addEventListener){ss.addEventListener(«load»,loadCB);}ss.onloadcssdefined=onloadcssdefined;onloadcssdefined(loadCB);return ss;};if(typeof exports!==»undefined»){exports.loadCSS=loadCSS;}else{w.loadCSS=loadCSS;}}(typeof global!==»undefined»?global:this));loadCSS(«https://hi-news.ru/wp-content/themes/101media/style.css?1597665258»,document.getElementById(«loadcss»));loadCSS(«https://hi-news.ru/wp-content/themes/101media/app.css?1611331550»,document.getElementById(«loadcss»));loadCSS(«https://hi-news.ru/wp-content/plugins/tag-sticky-post/css/plugin.css?1541770289»,document.getElementById(«loadcss»)); window.yaContextCb=window.yaContextCb||[]
Search

«Rust — будущее системного программирования, С — новый Ассемблер» — выступление одного из ведущих инженеров Intel»

На недавно прошедшем Саммите по технологиям с открытым исходным кодом (Open Source Technology Summi — OSTS) Джош Триплетт (Josh Triplett), ведущий инженер Intel, рассказал о том, что его компания заинтересована в том, чтобы в ближайшем будущем Rust достиг «паритета» со всё ещё доминирующим в области системной и низкоуровневой разработки языком C. В своём выступлении под заголовком «Intel и Rust: будущее системного программирования» он также рассказал об истории системного программирования, о том, как C стал языком системного программирования «по умолчанию», какие возможности Rust дают ему преимущество над C и как в ближайшем будущем он сможет полностью заменить C в данной области программирования.

«Rust — будущее системного программирования, С — новый Ассемблер» — выступление одного из ведущих инженеров Intel"

Системное программирование — это разработка и управление программным обеспечением, которое служит платформой для создания прикладных приложений, обеспечивая взаимодействие последних с процессором, оперативной памятью, устройствами ввода-вывода и сетевым оборудованием. Системное программное обеспечение создаёт специальную абстракцию в виде интерфейсов, которые помогают создавать прикладное ПО, не вникая в детали того, как работает непосредственно «железо».

Сам Триплетт определяет системное программирование как «всё, что не является приложением». Оно включает в себя такие вещи, как BIOS, прошивки, загрузчики и ядра операционных систем, различные виды встроенного низкоуровневого кода, а также реализации виртуальных машин. Интересно, что Триплетт считает, что веб-браузер — это тоже системное программное обеспечение, поскольку браузер давно стал бóльшим, чем «просто программой», превратившись в самостоятельную «платформу для веб-сайтов и веб-приложений».

В прошлом большинство системных программ, в том числе BIOS, загрузчики и прошивки, писались на языке ассемблера. В 1960-х годах начались эксперименты по обеспечению аппаратной поддержки языков высокого уровня, что привело к созданию таких языков, как PL/S, BLISS, BCPL и ALGOL 68.

Затем, в 1970-х годах, Деннис Ритчи (Dennis Ritchie) создал язык программирования C (Си) для операционной системы Unix. Созданный на языке программирования B, не имевшим даже поддержки типизации, C был наполнен мощными высокоуровневыми функциями, которые лучше всего подходили для написания операционных систем и драйверов. Несколько компонентов UNIX, включая его ядро, были в конечном итоге переписаны на C. В дальнейшем многие другие системные программы, включая базу данных Oracle, большую часть исходного кода Windows и операционную систему Linux, были также написаны на C.

C получил огромную поддержку в данном направлении. Но что именно заставило разработчиков перейти на него? Триплетт считает, что для того, чтобы замотивировать разработчиков перейти с одного языка программирования на другой, последний прежде всего должен обеспечить новые функции без потери старых возможностей.

Во-первых, язык должен предлагать «достаточно впечатляющие» новые функции. «Он не может быть немного лучше. Он должен быть значительно лучше, чтобы оправдать усилия и время инженеров, необходимое для перехода», — объясняет он. По сравнению с языком ассемблера у С было много вещей, которые он мог предложить. Он поддерживал в некоторой степени безопасную типизацию, обеспечивал лучшую переносимость и производительность с высокоуровневыми конструкциями, а также генерировал в целом намного более читаемый код.

Во-вторых, язык должен обеспечивать поддержку старых возможностей, а это значит, что в истории с переходом на C разработчики должны были быть уверены, что он не менее функционален, чем язык ассемблера. Триплетт поясняет: «Новый язык не может быть просто лучше, он также должен быть не хуже». Помимо того, что C был быстрее и поддерживал любые типы данных, которые мог использовать язык ассемблера, он также имел то, что Триплетт назвал «аварийным люком», а именно поддерживал внутри себя вставки кода на языке ассемблера.

«Rust — будущее системного программирования, С — новый Ассемблер» — выступление одного из ведущих инженеров Intel"

Триплетт считает, что C сейчас становится тем, чем был язык ассемблера много лет назад. «С — это новый Ассемблер», — заявляет он. Теперь разработчики ищут новый язык высокого уровня, который не только решит накопившиеся в C проблемы, исправить которые уже невозможно, но и также предложит новые впечатляющие возможности. Такой язык должен быть достаточно убедительным, чтобы заставить разработчиков перейти на него, должен быть безопасным, обеспечивать автоматическое управление памятью и многое другое.

«Любой язык, который хочет быть лучше, чем C, должен предлагать гораздо больше, чем просто защиту от переполнения буфера, если он действительно хочет стать убедительной альтернативой. Разработчики заинтересованы в удобстве использования и производительности, в написании кода, который не требует пояснений и выполняет больше работы за меньшее количество строк. Также необходимо решить проблемы безопасности. Простота использования и производительность неразрывно с нею связаны. Чем меньше кода вам нужно написать для достижения чего-либо, тем меньше у вас возможностей, чтобы допустить какие-либо ошибки, связанные с безопасностью или нет», — объясняет Триплетт.

Сравнение Rust и C

Ещё в 2006 году Грейдон Хоар (Graydon Hoare), сотрудник Mozilla, начал писать Rust как личный проект. А в 2009 году Mozilla начала спонсировать разработку Rust для собственных нужд, а также расширила команду для дальнейшего развития языка.

Одна из причин, по которой Mozilla заинтересовалась в новом языке, заключается в том, что Firefox был написан на более чем 4 миллионах строк кода C++ и имел довольно много критических уязвимостей. Rust был создан с учетом требований безопасности и параллелизма, что делает его идеальным выбором для переписывания многих компонентов Firefox в рамках проекта Quantum по полной переработке архитектуры браузера. Также Mozilla использует Rust для разработки Servo, движка рендеринга HTML, который в будущем заменит текущий движок рендеринга Firefox. Многие другие компании начали использовать Rust для своих проектов, включая Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu и многие другие.

Rust решает одну из наиболее важных проблем языка C. Он предлагает автоматическое управление памятью, поэтому разработчикам не нужно вручную выделять, а затем освобождать её для каждого объекта в приложении. Что отличает Rust от других современных языков, так это то, что он не имеет сборщика мусора, который автоматически удаляет из памяти неиспользуемые объекты, а также среды выполнения, необходимой для его работы, как, например, Java Runtime Environment для Java. Вместо этого у Rust есть концепции владения, заимствования, ссылок и времени жизни. «В Rust есть система декларирования вызовов объекта, позволяющая указать, использует ли его владелец или это просто заимствование. Если вы просто заимствуете объект, компилятор будет следить за этим и гарантировать, что оригинал останется на месте, пока вы ссылаетесь на него. А также Rust проследит, что объекта будет удалён из памяти сразу по завершении его использования, вставляя соответствующий вызов в код во время компиляции без дополнительных затрат времени», — рассказывает Триплетт.

Отсутствие собственной среды выполнения также можно считать положительной чертой Rust. Триплетт считает, что языки, которые выполняются с её помощью, сложно использовать в качестве инструмента для системного программирования. Как он поясняет: «Вы должны инициализировать эту среду выполнения, прежде чем сможете вызвать любой код, вы должны использовать эту среду выполнения для вызова функций, и сама среда выполнения может запускать дополнительный код за вашей спиной в неожиданные моменты времени».

Также Rust стремится обеспечить безопасное параллельное программирование. Те же функции, которые делают его безопасным для памяти, отслеживают такие вещи, как то, какому потоку принадлежит какой объект и какие объекты могут передаваться между потоками, а какие нуждаются в блокировке.

Все эти функции делают Rust достаточно убедительным, чтобы разработчики смогли выбрать его как новый инструмент для системного программирования. Однако, с точки зрения параллельных вычислений Rust пока ещё немного отстаёт от C.

Триплетт собирается создать специальную рабочую группу, которая займётся внедрением в Rust необходимых функцией, чтобы он смог полностью сравняться, превзойти и заменить C в области системного программирования. В теме на Reddit, посвящённой его выступлению, он сообщил, что «группа FFI/ C Parity находится в процессе создания и ещё не начала работу», пока что он готов ответить на любые вопросы, а в будущем обязательно опубликует ближайшие планы по развитию Rust в рамках его инициативы для всех заинтересованных лиц.

Можно предположить, что в первую очередь группа FFI/ C Parity займётся улучшением поддержки многопоточности в Rust, внедрением поддержки BFLOAT16, формата представления чисел с плавающей запятой, который появился в новых процессорах Intel Xeon Scalable, а также стабилизацией вставок кода на Ассемблере.


Новости Интернета




Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *