- Бесплатные аналоги Microsoft Visual Studio для Windows
- Сохранить ссылку
- Смотрите также
- Code::Blocks
- CodeLobster PHP Edition
- Lazarus
- PyCharm
- CodeLobster IDE
- Visual Studio Express
- Geany
- Что такое IDE? Обзор 10 лучших IDE
- Что такое IDE (интегрированная среда разработки) и чем она отличается от текстового редактора?
- Microsoft Visual Studio
- Интегрированная среда программирования NetBeans
- PyCharm — лучшая среда разработки для Python
- IntelliJ IDEA
- Eclipse
- Code::Blocks
- Aptana Studio 3
- Komodo
- RubyMine
- Xcode
- Выбор подходящей IDE
- Интерфейс IDE
Бесплатные аналоги Microsoft Visual Studio для Windows
Сохранить ссылку
Смотрите также
Ниже вы найдёте бесплатные программы, распространяющеся под лицензиями
Code::Blocks
Code::Blocks — бесплатная C++ интегрированная среда разработки. Она поддерживает плагины, дебаггер, интегрируется с компиляторами GCC и Visual C++. Кроме работы с C/C++, Code::Blocks вы можете использовать для программирования на ARM, AVR, D, DirectX, FLTK, Fortran, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, OGRE, OpenGL, Qt, SDL, SFML, STL. Интерфейс очень похож на Visual Studio. подробнее.
CodeLobster PHP Edition
CodeLobster PHP Edition — бесплатная IDE для Web разработчиков, которая поддерживает работу с PHP/HTML/CSS/JavaScript. Кроме подсветки синтаксиса IDE поддерживает автодополнение, проверку синтаксиса, сворачивание кода. Для PHP CodeLobster PHP Edition включает дебаггер, а для HTML/CSS инспектор по типу Firebug. Для бесплатного использования необходима обязательная регистрация. подробнее.
Lazarus
Lazarus — это Delphi совместимая кросс-платформенная IDE для создания приложений. IDE очень похожа на среду разработки Delphi: редактор формы, панель свойств, редактор кода. Для работы с Lazarus необходимо установить компилятор Free Pascal. В состав IDE входит большое количество стандартных компонентов, это даёт возможность разрабатывать несложные приложения быстро. Значительным преимуществом IDE является кроссплатформенность, включающая Windows, Mac, Linux. подробнее.
PyCharm
PyCharm — среда разработки для языка Python, которая имеет бесплатную Community Edition лицензию. Среда подключается к интерпретатору и готова к использованию. PyCharm имеет встроенный дебагер, удобный редактор кода, инструменты для рефакторинга. подробнее.
CodeLobster IDE
Codelobster IDE это удобный бесплатный PHP, HTML, CSS, JavaScript редактор (IDE) с поддержкой Drupal CMS, Joomla CMS, Magento CMS, Smarty, Twig, WordPress, библиотеки JQuery и фреймворков: CodeIgniter, CakePHP, Symfony, Yii, AngularJS, BackboneJS, MeteorJS, Laravel, Phalcon. Он включает в себя полноценный РНР дебаггер, динамическую справку, продвинутый автокомплит для всех языков, а также FTP/SFTP клиент. подробнее.
Visual Studio Express
Visual Studio Express — бесплатный аналог Visual Studio, правда имеет ряд ограничений. Например, программа не включает в себя MFC и ATL, отсутствуют профайлер и настройки для создания 64-битных проектов. Стоит отметь, что как и платная Visual Studio, существует Visual Studio Express для разных языков программирования, в том числе для Windows Phone. подробнее.
Geany
Кросплатформенная IDE для многих языков. Geany не включает в свой состав компилятор. Для создания исполняемого кода используется GNU Compiler Collection или, при необходимости, любой другой компилятор. IDE поддерживает большое число языков программирования и подсветки синтаксиса: C, C++, C#, Java, JavaScript, PHP, HTML, LaTeX, CSS, Python, Perl, Ruby, Pascal и т.д. Также стоит отметить такие функции как авто-дополнение, поддержку плагинов, поддержку сниппетов. подробнее.
Что такое IDE? Обзор 10 лучших IDE
Независимо от того, являетесь ли вы опытным разработчиком или только учитесь программировать, важно знать обо всех новых и уже существующих интегрированных средах разработки . Ниже приведен список 10 наиболее популярных IDE .
Что такое IDE (интегрированная среда разработки) и чем она отличается от текстового редактора?
IDE (интегрированная среда разработки) — это не просто текстовый редактор. В то время как текстовые редакторы для кода, такие как Sublime или Atom , предлагают множество удобных функций, таких как подсветка синтаксиса, настраиваемый интерфейс и расширенные средства навигации, они позволяют только писать код. Для создания функционирующих приложений как минимум нужен компилятор и отладчик.
IDE (integrated development environment) включает в себя эти компоненты, как и ряд других. Некоторые из них поставляются с дополнительными инструментами для автоматизации, тестирования и визуализации процесса разработки. Термин «интегрированная среда разработки» означает, что предоставляется все необходимое для превращения кода в функционирующие приложения.
Ознакомьтесь с приведенным ниже списком функций и недостатков каждой из 10 лучших IDE .
Microsoft Visual Studio
Поддерживаемые языки: Ajax, ASP.NET, DHTML, JavaScript, JScript, Visual Basic, Visual C#, Visual C++, Visual F#, XAML и другие .
- Огромная библиотека расширений, которая постоянно увеличивается;
- IntelliSense ;
- Настраиваемая панель и закрепляемые окна;
- Простой рабочий процесс и файловая иерархия;
- Статистика мониторинга производительности в режиме реального времени;
- Инструменты автоматизации;
- Легкий рефакторинг и вставка фрагментов кода;
- Поддержка разделенного экрана;
- Список ошибок, который упрощает отладку;
- Проверка утверждения при развертывании приложений с помощью ClickOnce , Windows Installer или Publish Wizard.
Недостатки : поскольку Visual Studio IDE является супертяжелой , для открытия и запуска приложений требуются значительные ресурсы. Поэтому на некоторых устройствах внесение простых изменений может занять много времени. Для простых задач целесообразно использовать компактный редактор или средство разработки PHP .
Интегрированная среда программирования NetBeans
Поддерживаемые языки программирования: C, C++, C++ 11, Fortan, HTML 5, Java, PHP и другие .
- Интуитивный drag-and-drop интерфейс;
- Динамические и статические библиотеки;
- Интеграция нескольких сессий GNU-отладчика с поддержкой кода;
- Возможность осуществлять удаленное развертывание;
- Совместимость с платформами Windows, Linux, OS X и Solaris;
- Поддержка Qt Toolkit;
- Поддержка Fortan и Assembler;
- Поддержка целого ряда компиляторов, включая CLang / LLVM, Cygwin, GNU, MinGW и Oracle Solaris Studio.
Недостатки: эта бесплатная среда разработки потребляет много памяти, поэтому может работать медленно на некоторых ПК.
PyCharm — лучшая среда разработки для Python
Поддерживаемые языки: AngularJS, Coffee Script, CSS, Cython, HTML, JavaScript, Node.js, Python, TypeScript.
- Совместимость с операционными системами Windows, Linux и Mac OS;
- Поставляется с Django IDE;
- Легко интегрируется с Git, Mercurial и SVN;
- Настраиваемый интерфейс с эмуляцией VIM;
- Отладчики JavaScript, Python и Django;
- Поддержка Google App Engine.
Недостатки: пользователи жалуются, что эта среда разработки Python содержит некоторые ошибки, такие как периодически не работающая функция автоматического заполнения, что может доставить определенные неудобства.
IntelliJ IDEA
Поддерживаемые языки программирования: AngularJS, CoffeeScript, HTML, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass, TypeScript и другие.
- Расширенный редактор баз данных и дизайнер UML ;
- Поддержка нескольких систем сборки;
- Пользовательский интерфейс тестового запуска приложений;
- Интеграция с Git ;
- Поддержка Google App Engine , Grails , GWT , Hibernate , Java EE , OSGi , Play , Spring , Struts и других;
- Встроенные средства развертывания и отладки для большинства серверов приложений;
- Интеллектуальные текстовые редакторы для HTML , CSS и Java ;
- Интегрированный контроль версий;
- AIR Mobile с поддержкой Android и iOS .
Недостатки: эта среда разработки JavaScript требует времени и усилий на изучение, поэтому может оказаться не лучшим вариантом для начинающих. В ней есть много сочетаний горячих клавиш, которые нужно просто запомнить. Некоторые пользователи жалуются на неуклюжий интерфейс.
Eclipse
Поддерживаемые языки: C, C++, Java, Perl, PHP, Python, Ruby и другие.
- Множество пакетных решений, обеспечивающих многоязычную поддержку;
- Улучшения Java IDE , такие как иерархические представления вложенных проектов;
- Интерфейс, ориентированный на задачи, включая уведомления в системном трее;
- Автоматическое создание отчетов об ошибках;
- Параметры инструментария для проектов JEE ;
- Интеграция с JUnit .
Недостатки: многие параметры этой среды разработки могут запугать новичков. Eclipse не обладает всеми теми функциями, что и IntelliJ IDEA , но является IDE с открытым исходным кодом.
Code::Blocks
Поддерживаемые языки: C, C++, Fortran .
- Простой интерфейс с вкладками открытых файлов;
- Совместимость с Linux , Mac и Windows ;
- Написана на C++ ;
- Не требует интерпретируемых или проприетарных языков программирования;
- Множество встроенных и настраиваемых плагинов;
- Поддерживает несколько компиляторов, включая GCC, MSVC ++ , clang и другие;
- Отладчик с поддержкой контрольных точек;
- Текстовый редактор с подсветкой синтаксиса и функцией автоматического заполнения;
- Настраиваемые внешние инструменты;
- Простые средства управления задачами, идеально подходящие для совместной работы.
Недостатки: относительно компактная IDE для СИ, поэтому она не подходит для крупных проектов. Это отличный инструмент для новичков, но продвинутые программисты могут быть разочарованы ее ограничениями.
Aptana Studio 3
Поддерживаемые языки: HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python .
- Подсказки для CSS , HTML , JavaScript , PHP и Ruby ;
- Мастер развертывания с простой настройкой и несколькими протоколами, включая Capistrano , FTP , FTPS и SFTP ;
- Возможность автоматической установки созданных приложений Ruby и Rails на серверы хостинга;
- Интегрированные отладчики для Ruby и Rails и JavaScript ;
- Интеграция с Git ;
- Простой доступ к терминалу командной строки с сотнями команд;
- Строковые пользовательские команды для расширения возможностей.
Недостатки: есть проблемы со стабильностью, и она работает медленно. Поэтому профессиональные разработчики могут предпочесть более мощную HTML среду разработки.
Komodo
Поддерживаемые языки: CSS, Go, JavaScript, HTML, NodeJS, Perl, PHP, Python, Ruby, Tcl и другие.
- Настраиваемый многооконный интерфейс;
- Интеграция контроля версий для Bazaar , CVS , Git , Mercurial , Perforce и Subversion ;
- Профилирование кода Python и PHP ;
- Возможность развертывания в облаке благодаря Stackato PaaS ;
- Графическая отладка для NodeJS , Perl , PHP , Python , Ruby и Tcl ;
- Автоматическое заполнение и рефакторинг;
- Стабильная производительность на платформах Mac , Linux и Windows
Недостатки: бесплатная версия среды разработки программного обеспечения не включает в себя все функции. В то же время премиум версия явно стоит своих денег.
RubyMine
Поддерживаемые языки: CoffeeScript, CSS, HAML, HTML, JavaScript, LESS, Ruby и Rails, Ruby и SASS.
- Сниппеты кода, автоматическое заполнение и автоматический рефакторинг;
- Дерево проектов, которое позволяет быстро анализировать код;
- Схема модели Rails ;
- Просмотр проекта Rails ;
- RubyMotion поддерживает разработку под iOS ;
- Поддержка стека включает в себя Bundler , pik , rbenv , RVM и другие;
- Отладчики JavaScript , CoffeeScript и Ruby ;
- Интеграция с CVS , Git , Mercurial , Perforce и Subversion .
Недостатки среды разработки: чтобы RubyMine работала бесперебойно, компьютеру требуется не менее 4 ГБ оперативной памяти. Некоторые пользователи также жалуются на отсутствие опций настройки GUI .
Xcode
Поддерживаемые языки: AppleScript, C, C++, Java, Objective-C.
- Элементы пользовательского интерфейса можно легко связать с кодом реализации;
- Компилятор Apple LLVM сканирует код и предоставляет рекомендации по решению проблем производительности;
- Панель навигации обеспечивает быстрое перемещение между разделами;
- Interface Builder позволяет создавать прототипы без написания кода;
- Пользовательский интерфейс и исходный код можно подключить к сложным прототипам интерфейсов всего за несколько минут;
- Редактор версий включает в себя файлы журнала и хронологии;
- Распределение и объединение процессов удобно при командной работе;
- Test Navigator позволяет быстро тестировать приложения в любой момент разработки;
- Автоматически создает, анализирует, тестирует и архивирует проекты благодаря интеграции с сервером OX X ;
- Рабочий процесс настраивается с помощью вкладок, поведения и фрагментов;
- Библиотека инструментов и каталог ресурсов.
Недостатки инструментальной среды разработки: для запуска Xcode нужен компьютер от компании Apple . А для загрузки создаваемых приложений в Apple Store — лицензия разработчика.
Выбор подходящей IDE
Какая IDE окажется лучшей именно для вас зависит от используемой операционной системы, языка программирования и тех платформ, которые вы хотите развивать.
Пропустили ли мы какие-нибудь важные IDE ? Напишите об этом в комментариях.
Интерфейс IDE
Что бы ни говорили сторонники SCSI, широкое распространение IDE-устройств на сегодняшний день — свершившийся факт. Как посчитали умные люди из компании Quantum, свыше 90% РС-совместимых персональных компьютеров оснащены жесткими дисками с интерфейсом IDE. Беда, однако, в том, что IDE или Integrated Device Electronic — понятие слишком общее и относится, вообще говоря, к любому устройству с интегрированным контроллером вплоть до электрического чайника с автоматическим отключением при закипании. В попытках как-то конкретизировать, какой именно интерфейс имеется в виду, было изобретено столько различных названий, что при выборе жесткого диска с интерфейсом IDE у неподготовленного человека может закружиться голова. Посудите сами: есть интерфейсы АТА с различными номерами, Fast ATA (тоже с номерами), Ultra ATA (тоже несколько), и, наконец, EIDE! Действительно ли все эти интерфейсы разные, какие из них совместимы и какой лучше? Попробуем разобраться.
Для начала немного истории. После того, как компания IBM выпустила модель АТ (Advanced Technology), в 1984 году у компаний Compaq и Western Digital возникла идея встроить AT-совместимый контроллер, использующий 16-разрядную шину ISA, непосредственно в электронику жесткого диска. Сказано — сделано. Получилось удачно: цена жесткого диска увеличилась несущественно, зато стоимость всей дисковой подсистемы заметно снизилась. Так и родился на свет интерфейс ATA (AT Attachment — в дословном переводе — «прикрепление к АТ»), который стал широко известен под названием IDE. Так как шина ISA в модели АТ была 16-битной, интерфейс, естественно, получился тоже 16-битным, причем эта разрядность сохранилась до настоящего времени, невзирая на последующие улучшения и добавления. В скором времени, однако, выяснилось, что разные производители умудрялись делать несовместимые между собой диски с интерфейсом ATA. Если такие диски устанавливались в паре master/slave на один канал IDE, то дисковая подсистема просто не работала. Для устранения этих неприятных явлений был принят стандарт ANSI спецификации АТА. «Оригинальный» интерфейс АТА имел следующие возможности:
- Поддержка двух жестких дисков. Один канал делится между двумя устройствами, сконфигурированными как master и slave;
- PIO Modes. ATA включает поддержку PIO modes 0,1 и 2;
- DMA Modes. ATA включает поддержку single word DMA modes 0, 1 и 2 и multiword DMA mode 0.
«Оригинальный» интерфейс АТА предназначен только для подключения жестких дисков и не поддерживает такие возможности, как ATAPI — интерфейс для подключения IDE-устройств, отличных от жестких дисков, режим передачи block mode и LBA (logical block addressing).
В скором времени стандарт АТА перестал удовлетворять возросшим потребностям, поскольку вновь выпускаемые жесткие диски требовали большей скорости передачи данных и наличия новых возможностей. Так родился на свет интерфейс АТА-2, который вскоре был также стандартизирован ANSI. Сохраняя обратную совместимость со стандартом ATA, ATA-2 содержал несколько новых возможностей:
- Более скоростные PIO Modes. В АТА-2 добавлена поддержка PIO modes 3 и 4;
- Более скоростные DMA Modes. АТА-2 поддерживает multiword DMA modes 1 и 2;
- Block Transfer. ATA-2 включает команды, позволяющие осуществлять обмен в режиме block transfer для повышения производительности;
- Logical Block Addressing (LBA). АТА-2 требует поддержки жестким диском протокола передачи LBA. Разумеется, для использования этого протокола необходимо, чтобы его поддерживал также и BIOS;
- Усовершенствованная команда Identify Drive. Увеличен объем информации о характеристиках, которую жесткий диск выдает по системным запросам.
И все было бы хорошо, но фирмы-производители в стремлении заполучить еще кусочек рынка начали придумывать красивые названия и обзывать ими интерфейсы своих жестких дисков. На самом деле интерфейсы Fast ATA, Fast ATA-2 и Enhanced IDE базируются на стандарте АТА-2 и являются не более, чем маркетинговыми терминами. Все различие между ними состоит в том, какую часть стандарта и как они поддерживают.
Наибольшую путаницу вызывают названия Fast ATA и Fast ATA-2, принадлежащие перу соответственно Seagate и Quantum. Создается вполне естественное впечатление, что Fast ATA является некоторым улучшением стандарта АТА, тогда как Fast ATA-2 базируется на стандарте АТА-2. Но все, увы, не так просто. На самом деле Fast ATA-2 есть просто другое название стандарта АТА-2, а Fast ATA отличается от него лишь тем, что не поддерживает самые быстрые режимы — PIO mode 4 и DMA mode 2. При этом обе компании нападают на компанию Western Digital и ее стандарт EIDE за то, что он вносит еще большую путаницу. У EIDE есть свои недостатки, но об этом чуть позже.
Попыткой дальнейшего развития интерфейса АТА был проект стандарта АТА-3, в котором основное внимание уделялось повышению надежности:
- AТА-3 содержит средства, повышающие надежность передачи данных с использованием высокоскоростных режимов, что действительно является проблемой, поскольку кабель IDE/ATA остался тем же, что и при рождении стандарта;
- АТА-3 включает Self-Monitoring Analysis and Reporting Technology (SMART).
АТА-3 не был утвержден в качестве стандарта ANSI в основном потому, что не вводил новых режимов передачи данных, хотя технология SMART в настоящее время широко используется производителями жестких дисков.
Следующим шагом в развитии интерфейса IDE/ATA явился стандарт Ultra ATA (он же Ultra DMA, он же ATA-33, он же DMA-33, его же иногда называют АТА-3(!)). Ultra ATA является стандартом де-факто использования самого быстрого режима DMA — mode 3, обеспечивающего скорость передачи данных 33,3 МВ/сек. Для обеспечения надежной передачи данных по все тому же кабелю используются специальные схемы контроля и коррекции ошибок, при этом сохраняется обратная совместимость с предыдущими стандартами — АТА и АТА-2. То есть если вы, купив жесткий диск с интерфейсом Ultra АТА, вдруг обнаружили, что ваша системная плата его не поддерживает, не огорчайтесь — диск все равно будет работать, хотя и медленнее 🙂
И, наконец, последнее достижение в этой области — интерфейс Ultra ATA/66, разработанный компанией Quantum, позволяющий осуществлять передачу данных со скоростью 66МВ/сек.
В то время, когда разрабатывался интерфейс IDE/ATA, единственным устройством, которое нуждалось в этом интерфейсе, был жесткий диск, поскольку стриммеры и зарождающиеся драйвы CD-ROM имели собственный интерфейс (многие помнят времена, когда CD-ROM подключался через интерфейс на звуковой карте). Однако вскоре стало ясно, что использование для подключения всех устройств быстрого и относительно простого интерфейса IDE/ATA сулит значительные выгоды, в том числе и за счет своей универсальности. Однако система команд интерфейса IDE/ATA была рассчитана только на жесткие диски, поэтому просто подключить, например, CD-ROM к IDE-каналу нельзя — работать не будет (проверялось мною лично при попытке подключить CD-ROM вместо загрузочного IDE-диска на 486 сервере Hewlett-Packard). Поначалу, по молодости лет пребывал в недоумении: как так — шлейф подходит, а не работает?). Пришлось разработать новый протокол — ATA Packet Interface или ATAPI. Этот протокол позволяет другим устройствам подключаться с помощью стандартного шлейфа IDE и «вести себя» как IDE/ATA жесткий диск. На самом деле протокол ATAPI намного сложнее, чем ATA, поскольку передача данных идет с использованием стандартных режимов PIO и DMA, а реализация поддержки этих режимов существенно зависит от типа подключенного устройства. Название packet (пакетный) этот протокол получил по той причине, что команды устройству действительно приходится передавать группами или пакетами. Тем не менее, с точки зрения пользователя, что, согласитесь, важнее всего, нет разницы между IDE/ATA жестким диском, ATAPI CD-ROMом или ZIP-драйвом. Современные BIOSы даже поддерживают загрузку с ATAPI-устройств.
Теперь, как и было обещано, поговорим немного о EIDE. Этот термин, введенный компанией Western Digital, достаточно широко употребляется в компьютерной индустрии и почти так же широко критикуется, причем справедливо. Одной из причин для критики является тот факт, что EIDE не является стандартом, а лишь маркетинговым термином, причем его содержание меняется с течением времени. Так, изначально EIDE включал поддержку режимов PIO до mode 3, потом была добавлена поддержка mode 4. Еще одним существенным недостатком EIDE как стандарта является тот факт, что его спецификация включает в себя совершенно разноплановые вещи. Судите сами, EIDE на данный момент включает в себя:
- ATA-2. Целиком, включая самые быстрые режимы;
- ATAPI. Целиком;
- Dual IDE/ATA Host Adapters. Стандарт EIDE включает поддержку двух IDE/ATA хостов, что позволяет использовать одновременно до 4 IDE/ATA/ATAPI устройств.
Теперь посмотрим, что означает фраза «жесткий диск с интерфейсом EIDE». Поскольку поддерживать ATAPI ему абсолютно незачем, а два канала IDE он поддержать не в состоянии, то все это сводится к гораздо более скромному: «жесткий диск с интерфейсом АТА-2». В принципе идея была хорошая — создать стандарт, охватывающий BIOS, чипсет и жесткий диск. Но поскольку большая часть EIDE как стандарта относится именно к BIOS и чипсету, то получилась еще и путаница между Enhanced IDE и возникшим приблизительно в это же время Enhanced BIOS (BIOS, поддерживающий IDE/ATA диски емкостью больше 504MB). Сложилось вполне естественное мнение, что для использования дисков объемом больше 504МВ нужен интерфейс EIDE (тогда как на самом деле нужен был только Enhanced BIOS), тем более, что производители карт с Enhanced BIOS рекламировали их как «enhanced IDE cards». Сейчас, к счастью, эти проблемы позади (как и барьер 540 МВ).
Итак, основные (как официальные, так и неофициальные) стандарты интерфейса IDE приведены в следующей таблице.
Интерфейс | Стандарт | PIO modes | DMA modes | Отличия от IDE/ATA |
---|---|---|---|---|
IDE/ATA | ANSI | 0, 1, 2 | Single word 0, 1, 2; multiword 0 | |
ATA-2 | ANSI | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2 | Режим block transfer, поддержка LBA, Усовершенствованная команда identify drive |
Fast ATA | Маркетинговый термин | 0, 1, 2, 3 | Single word 0, 1, 2; multiword 0, 1 | Аналогично АТА-2 |
Fast ATA-2 | Маркетинговый термин | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2 | Аналогично АТА-2 |
ATA-3 | Неофициальный | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2 | Аналогично АТА-2, добавлена поддержка надежности передачи на высоких скоростях и SMART |
Ultra ATA | Неофициальный | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2, 3 (DMA-33/66) | Аналогично АТА-3 |
ATAPI | ANSI | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2 | Аналогично АТА-2, добавлена поддержка устройств, отличных от жестких дисков |
EIDE | Маркетинговый термин | 0, 1, 2, 3, 4 | Single word 0, 1, 2; multiword 0, 1, 2 | ATA-2 + ATAPI и поддержка двух хост-адаптеров |
Теперь перейдем к теме, не менее интересной. Существуют два параметра, характеризующих скорость передачи данных при использовании IDE/ATA-жесткого диска. Внутренняя скорость передачи (internal transfer rate) характеризует скорость передачи непосредственно между магнитным носителем и внутренним буфером жесткого диска и определяется плотностью записи, скоростью вращения и т.д. Эти параметры зависят от конструкции диска, а не от типа интерфейса. С другой стороны, внешняя скорость передачи данных, то есть скорость передачи по каналу IDE, полностью зависит от используемого режима передачи данных. На заре использования дисков IDE/ATA скорость работы дисковой подсистемы определялась внутренней скоростью передачи данных, которая была заведомо меньше внешней. В настоящее время в связи с увеличением плотности записи (что позволяет снимать больше информации за один оборот диска) и частоты вращения на первый план выходит именно внешняя скорость передачи. Что же все-таки означают номера режимов и чем PIO отличается от DMA?
Изначально общеупотребительным способом передачи данных через интерфейс IDE/ATA был протокол, называемый Programmed I/O или PIO. Существует пять режимов PIO, различающихся максимальными скоростями пакетной передачи данных (burst transfer rates). Общеупотребительное английское название — PIO modes.
PIO mode | Максимальная скорость передачи (МВ/сек) | Поддерживается стандартами |
---|---|---|
0 | 3.3 | Всеми |
1 | 5.2 | Всеми |
2 | 8.3 | Всеми |
3 | 11.1 | ATA-2, Fast ATA, Fast ATA-2, ATA-3, ATAPI, Ultra ATA, EIDE |
4 | 16.6 | ATA-2, Fast ATA-2, ATA-3, ATAPI?, Ultra ATA, EIDE |
Естественно, речь идет о внешней скорости передачи данных и определяет скорость интерфейса, а не диска. Необходимо также учитывать (хотя сейчас это уже вряд ли актуально), что PIO mode 3 и 4 требуют использования шины VLB или PCI, так как шина ISA не может обеспечить скорость передачи данных больше 10 МВ/сек. До появления режима DMA-33 максимальная скорость передачи данных у режимов PIO и DMA была одинаковой. Главным недостатком режимов PIO является то, что передачей данных управляет процессор, что существенно увеличивает его загрузку. Зато эти режимы не требуют специальных драйверов и идеально подходят для однозадачных операционных систем. Похоже, однако, что это вымирающий вид…
Direct Memory Access (DMA) — прямой доступ к памяти — собирательное название протоколов, позволяющих периферийному устройству передавать информацию непосредственно в системную память без участия центрального процессора. Современные жесткие диски используют эту возможность в сочетании с возможностью перехватывать управление шиной и самостоятельно управлять передачей информации (bus mastering подробно обсуждался в серии статей по шинам). Существует несколько режимов DMA (DMA modes), которые приведены в таблице. Стоит отметить, что так называемые single word режимы в настоящее время не используются и приведены только для сравнения.
DMA mode | Максимальная скорость передачи (МВ/сек) | Поддерживается стандартами |
---|---|---|
Single word 0 | 2.1 | Всеми |
Single word 1 | 4.2 | Всеми |
Single word 2 | 8.3 | Всеми |
Multiword 0 | 4.2 | Всеми |
Multiword 1 | 13.3 | ATA-2, Fast ATA, Fast ATA-2, ATA-3, Ultra ATA, EIDE |
Multiword 2 | 16.6 | ATA-2, Fast ATA-2, ATA-3, Ultra ATA, EIDE |
Multiword 3 (DMA-33) | 33.3 (66) | Ultra ATA(АТА/66) |
Еще одной забавной вещью, связанной с интерфейсом IDE/ATA, является 32-разрядный доступ к диску. Как уже отмечалось выше, интерфейс IDE/ATA был и остается 16-битным. Резонный вопрос: А почему тогда при отключении драйверов 32-разрядного доступа к диску в Windows скорость работы оного диска падает? Не менее резонный ответ: Во-первых, как работает Windows — отдельный разговор. А во-вторых, шина PCI, на которой в настоящий момент располагаются IDE host-контроллеры, 32-разрядная. Поэтому 16-битная передача по этой шине есть зряшнее расходование пропускной способности. В нормальных условиях host-контроллер формирует из двух 16-битных пакетов один 32-битный и пересылает его дальше по шине PCI (повторяю, я не берусь объяснять, как с диском работает Windows).
Выше встречался термин — режим block transfer. На самом деле это всего-навсего режим, позволяющий передавать несколько команд чтения/записи за одно прерывание. Современные IDE/ATA диски позволяют передавать 16->32 сектора за «одно прерывание». Поскольку прерывания генерируются реже, снижается загрузка процессора и уменьшается доля команд в общем объеме передаваемых данных.
К каждому каналу IDE может быть подключено одно или два устройства. В современных компьютерах, как правило, устанавливается два канала IDE (что соответствует спецификации EIDE), хотя теоретически возможно установить до 4-х (!), что позволяет подключать 8 IDE устройств. Все каналы IDE являются равноправными. Использование системных ресурсов каналами приведено в таблице.
Канал | IRQ | I/O Addresses | Поддержка и возможные проблемы при использовании |
---|---|---|---|
Primary | 14 | 1F0-1F7h и 3F6-3F7h | Используется во всех компьютерах с интерфейсом IDE/ATA |
Secondary | 15 (10) | 170-177h и 376-377h | Широко распространен, присутствует практически во всех современных компьютерах. |
Tertiary | 11(12) | 1E8-1Efh и 3EE-3Efh | Используется редко. Возможны проблемы с софтом |
Quaternary | 10(11) | 168-16Fh и 36E-36Fh | Крайне редко используется. Весьма вероятны проблемы с софтом |
Ресурсы, используемые 3-м и 4-м каналами , могут конфликтовать с другими устройствами (так, IRQ 12 используется мышью PS/2, IRQ 10 — обычно занят сетевой картой).
Как было сказано выше, каждый канал IDE/AТА интерфейса поддерживает подключение двух устройств — master и slave. Конфигурация обычно задается перемычкой на задней стенке устройства. Кроме этих двух позиций там обычно присутствует и третья — cable select. Что же будет, если установить перемычку в это положение? Оказывается, для работы устройств в положении перемычки cable select требуется специальный Y-образный шлейф, центральный разъем которого подключается к системной плате. Крайние разъемы такого кабеля неравноправны — устройство, подключенное к одному разъему, автоматически становится master, к другому — slave (аналогично флопам А и В). При этом перемычки на обоих устройствах должны стоять в положении cable select. Основная проблема такой конфигурации в том, что она экзотична, хотя и является стандартной, и не всеми поддерживается, поэтому и Y-образный шлейф найти достаточно трудно (я, например, его не видел, да и вообще не совсем понятно, зачем это нужно).
Если не принимать во внимание эту экзотику, при конфигурировании IDE/ATA устройств необходимо помнить следующее:
- Каждый канал в каждый момент времени может обрабатывать только один запрос к одному устройству. Следующий запрос, пусть даже к другому устройству, будет ожидать завершения текущего. Разные каналы при этом могут работать независимо. Поэтому не стоит подключать два активно используемых устройства (например, два жестких диска), к одному каналу. В идеале каждое IDE-устройство стоит подключать к отдельному каналу (в этом, пожалуй, заключается основное преимущество SCSI).
- Практически все современные чипсеты поддерживают возможность использования различных режимов передачи данных для устройств, подключенных к одному каналу. Однако злоупотреблять этим все-таки не стоит. Два устройства, существенно различающихся по скорости, лучше все-таки разнести по разным каналам.
- Не рекомендуется подключать к одному каналу жесткий диск и ATAPI-устройство (например, CD-ROM). Как было сказано выше, протокол ATAPI использует другую систему команд, и, кроме того, даже самые быстрые ATAPI-устройства много медленнее жесткого диска, что может замедлить работу последнего.
Все вышесказанное, естественно, не является аксиомой, а лишь рекомендациями, основанными на здравом смысле и собственном опыте. Более того, тот же здравый смысл и опыт подсказывают, что если взять 4 IDE-устройства, то они на исправной плате будут работать всегда в любых сочетаниях и при минимуме усилий со стороны пользователя (см. выше, главное, чтобы они попарно были совместимы). И это одно из главных преимуществ IDE перед SCSI.