По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно. Основы Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры: /home/user1/tmp/test.sh - полный путь; ~/tmp/file1 - относительный путь; Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ. Команды для работы с файлами и директориями Команд довольно много, я перечислю самые, на мой взгляд, часто используемые: cd - смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root; pwd - команда покажет текущий путь к директории, в которой вы находитесь в данный момент; ls - вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax, то команда выведет форматированный список всех файлов и директорий (в том числе скрытые); cat - показывает содержимое файла, к примеру – cat /root/file.txt; tail - например, tail /root/file.txt, выводит только конец файла, удобно при работе с логами; cp - копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию mkdir - создание директории, например, mkdir /root/1; rmdir - удаление директории, синтаксис такой же, как и у команды выше; rm -rf - очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами; mv - переименование файла или директории, сначала указывается целевая директория и затем её новое название; locate - поиск файла с заданным названием; Для наглядности, посмотрите на вывод команды tail # tail install.log Installing dosfstools-3.0.9-4.el6.i686 Installing rfkill-0.3-4.el6.i686 Installing rdate-1.4-16.el6.i686 Installing bridge-utils-1.2-10.el6.i686 Installing eject-2.1.5-17.el6.i686 Installing b43-fwcutter-012-2.2.el6.i686 Installing latrace-0.5.9-2.el6.i686 Installing trace-cmd-2.2.4-3.el6.i686 Installing crash-trace-command-1.0-5.el6.i686 *** FINISHED INSTALLING PACKAGES *** В примере выше, команда tail вывела только последние 11 строк. Работа с архивами Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком :) tar cf example.tar /home/example.txt - создание .tar архива, который будет содержать в себе текстовый файл example.txt; tar cjf example1.tar.codez2 /home/example1.txt - команда с тем же функционалом, только будет использоваться сжатие Bzip2; tar czf example2.tar.gz /home/example2.txt - опять архивация, только на этот раз со сжатием Gzip; tar xf example.tar - распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно); Работа с .rpm пакетами Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution :) Команды требуют наличие прав супер - пользователя. rpm -qa - вывод списка всех установленных RPM пакетов в системе; rpm –i rpmpackage.rpm - установка пакета с именем rpmpackage; rpm –e rpmpackage - удаление пакета с таким именем; dpkg -i *.rpm - установка всех пакетов в директории; Про жёсткие диски Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS - сервер) umask 0077
img
Что такое API? Поскольку мы говорим про REST API, то наше определение API не будет сильно выходить за тематику сетей. Подробнее про API можно прочитать тут. API означает Application Programming Interface. API задает связь между программами для возможности передачи данных. То, что программа имеет API, подразумевает, что она передает часть своих данных для использования клиентом. Клиентом может быть фронтенд часть той же самой программы или другая внешняя программа. Для получения этих данных необходимо отправить структурированный запрос на API. Если запрос удовлетворят желаемым требованиям, то ответ, содержащий данные, будет отправлен туда откуда был сделан запрос. Обычно ответ представлен в формате JSON или XML. В некоторых случаях, для получения доступа к внешнему API, от вас может потребоваться авторизация. Каждый API имеет документацию, в которой говорится какие данные доступны и как структурировать свой запрос для получения правильного ответа. Примеры API Рассмотрим в качестве примера реальную ситуацию. Представьте посещение нового ресторана. Вы пришли, чтобы заказать еду, а поскольку вы здесь впервые, то точно не знаете какие блюда они подают. Официант дает вам меню, в котором можно выбрать, чтобы вы хотели съесть. После того, как выбор сделан, официант отправляется на кухню и приносит вам еду. В данном случае официант - это API, который обеспечивает вашу взаимосвязь с кухней. Документация API - это меню. Запрос выполняется в тот момент, когда вы отмечаете желаемые блюда, а ответ - это блюда, которые вам принесли. Что такое REST? REST означает REpresentational State Transfer (передача состояния представления). Это стандарт, который определяет форму и работу процессов, позволяющих нам взаимодействовать с данными на вебсерверах. Приведенное выше определение может выглядеть не так сложно или «профессионально», как то, что вы могли встретить в интернете, но главное, чтобы вы поняли основную цель REST API. API, который удовлетворяет некоторым или всем шести руководящим ограничениям REST считается RESTful. Мы можем взаимодействовать с серверами при помощи протокола HTTP. Благодаря этим протоколам мы можем Create (создавать), Read (читать), Update (обновлять) and Delete (удалять) данные – также известные как CRUD операции. Но каким образом мы можем выполнять CRUD операции и взаимодействовать с данными на сервере? Мы делаем это, посылая HTTP запросы, и это тот самый момент, когда REST начинает действовать. REST упрощает процесс взаимодействия с сервером, предоставляя различные HTTP методы/операции/команды, с помощью которых можно посылать запросы на сервер. Как взаимодействовать с сервером, используя REST API? Как мы уже обсуждали, REST API облегчает процесс взаимодействия с сервером, предоставляя нам различные методы HTTP запросов. Наиболее распространенные методы: GET: Метод get используется для Чтения данных с сервера. POST: Метод post используется для Создания данных. PATCH/PUT: Метод patch используется для Обновления данных. DELETE: Метод delete используется для Удаления данных. Эти методы предоставлены нам REST, что упрощает выполнение CRUD операций. Таким образом: Создать => POST Прочитать => GET Обновить => PATCH/PUT Удалить => DELETE Если мы хотим сделать запрос на сервер, например, для получения данных, то мы отправляем запрос GET на узел/источник данных на сервере. Узел данных аналогичен URL. Если запрос составлен корректно, то сервер отправит нам в ответ запрашиваемые данные. Также он отправит код состояния, где 200 - это успешное выполнение, а 400 - это ошибка пользователя. Пример запроса на JSONPlaceholder API, используя JavaScript: fetch('https://jsonplaceholder.typicode.com/todos/1') .then(response => response.json()) .then(json => console.log(json)) При выполнении запроса с использованием fetch API по умолчанию используется метод GET, поэтому мы можем не указывать его явно. Но мы должны будем это сделать при использовании других методов. В приведенном выше примере, узел данных - это https://jsonplaceholder.typicode.com, а запрашиваемые нами данные - это один элемент todo. Данные будет получены в JSON формате. Если бы мы использовали запрос POST, тогда бы мы использовали метод POST, а в теле запроса находились бы данные, которые мы создали для отправки на сервер. Для удаления нам потребуется использовать соответствующий запрос, содержащий id элемента todo, который мы хотим удалить. Например: fetch('https://jsonplaceholder.typicode.com/posts/3', { method: 'DELETE', }); Для обновления данных нужно, чтобы запрос содержал id и данные для обновления. Как в этом примере: fetch('https://jsonplaceholder.typicode.com/posts/5', { method: 'PATCH', body: JSON.stringify({ title: 'new todo', }), headers: { 'Content-type': 'application/json; charset=UTF-8', }, }) .then((response) => response.json()) .then((json) => console.log(json)); Заключение В этом руководстве вы узнали, что такое REST и как он помогает нам эффективно взаимодействовать с сервером. Мы дали определение API и рассмотрели пример, который помог объяснить его смысл. Мы также узнали некоторые методы REST для создания, чтения, обновления и удаления данных, хранящихся на сервере.
img
Архитектуры х64 и х86 являются одними из наиболее широко используемых типов архитектур системы команд (АСК или ISA – Instruction Set Architecture), созданными Intel и AMD. ISA определяет поведение машинного кода и то, как программное обеспечение управляет процессором. ISA – это аппаратный и программный интерфейс, определяющий, что и как может делать ЦП. Прочитав эту статью, вы узнаете разницу между архитектурами х64 и х86. Что из себя представляет архитектура х86? х86 – это тип ISA для компьютерных процессоров, разработанный Intel в 1978 году. Архитектура х86 основана на микропроцессоре Intel 8086 (отсюда и название) и его модификации 8088. Изначально это была 16-битная система команд для 16-битных процессоров, а позже она выросла до 32-битной системы команд. Количество битов показывает, сколько информации ЦП может обработать за цикл. Так, например, 32-разрядный ЦП передает 32 бита данных за тактовый цикл. Благодаря своей способности работать практически на любом компьютере, от обычных ноутбуков до домашних ПК и серверов, архитектура х86 стала достаточно популярной среди многих производителей микропроцессоров. Наиболее значительным ограничением архитектуры х86 является то, то она может обрабатывать максимум 4096 Мб ОЗУ. Поскольку общее количество поддерживаемых комбинаций равно 232 (4 294 967 295), то 32-разрядный процессор имеет 4,29 миллиарда ячеек памяти. В каждой ячейке хранится 1 байт данных, а в сумме это примерно 4 Гб доступной памяти. На сегодняшний день термин х86 обозначает любой 32-разрядный процессор, способный выполнять систему команд х86. Что из себя представляет архитектура х64? х64 (сокращение от х86-64) – это архитектура системы команд, расширенная до 64-битного кода. В ее основе лежит архитектура х86. Впервые она была выпущена в 2000 году. Она представляла два режима работы – 64-битный режим и режим совместимости, который позволяет пользователям запускать 16-битные и 32-битные приложения. Поскольку вся система команд х86 остается в х64, то старые исполняемые файлы работают практически без потери производительности. Архитектура х64 поддерживает гораздо больший объем виртуальной и физической памяти, чем архитектура х86. Это позволяет приложениям хранить в памяти большие объемы данных. Кроме того, х64 увеличивает количество регистров общего назначения до 16, обеспечивая тем самым дополнительную оптимизацию использования и функциональность. Архитектура х64 может использовать в общей сложности 264 байта, что соответствует 16 миллиардам гигабайт (16 эксабайт) памяти. Гораздо большее использование ресурсов делает эту архитектуру пригодной для обеспечения работы суперкомпьютеров и машин, которым требуется доступ к огромным ресурсам. Архитектура х64 позволяет ЦР обрабатывать 64 бита данных за тактовый цикл, что намного больше, чем может себе позволить архитектура х86. х86 VS х64 Несмотря на то, что оба эти типа архитектуры основаны на 32-битной системе команд, некоторые ключевые отличия позволяют их использовать для разных целей. Основное различие между ними заключается в количестве данных, которые они могут обрабатывать за каждый тактовый цикл, и в ширине регистра процессора. Процессор сохраняет часто используемые данные в регистре для быстрого доступа. 32-разрядный процессор на архитектуре х86 имеет 32-битные регистры, а 64-разрядный процессор – 64-битные регистры. Таким образом, х64 позволяет ЦП хранить больше данных и быстрее к ним обращаться. Ширина регистра также определяет объем памяти, который может использовать компьютер. В таблице ниже продемонстрированы основные различия между системами команд архитектур х86 и х64. ISA х86 х64 Выпущена Выпущена в 1978 году Выпущена в 2000 году Создатель Intel AMD Основа Основана на процессоре Intel 8086 Создана как расширение архитектуры х86 Количество бит 32-битная архитектура 64-битная архитектура Адресное пространство 4 ГБ 16 ЭБ Лимит ОЗУ 4 ГБ (фактически доступно 3,2 ГБ) 16 миллиардов ГБ Скорость Медленная и менее мощная в сравнении с х64 Позволяет быстро обрабатывать большие наборы целых чисел; быстрее, чем х86 Передача данных Поддерживает параллельную передачу только 32 бит через 32-битную шину за один заход Поддерживает параллельную передачу больших фрагментов данных через 64-битную шину данных Хранилище Использует больше регистров для разделения и хранения данных Хранит большие объемы данных с меньшим количеством регистров Поддержка приложения Нет поддержки 64-битных приложений и программ. Поддерживает как 64-битные, так и 32-битные приложения и программы. Поддержка ОС Windows XP, Vista, 7, 8, Linux Windows XP Professional, Windows Vista, Windows 7, Windows 8, Windows 10, Linux, Mac OS   Функции Каждая архитектура системы команд имеет функции, которые ее определяют и дают некоторые преимущества в тех или иных вариантах использования. Следующие списки иллюстрируют функции х64 и х86: х86 Использует сложную архитектуру со сложным набором команд (CISC-архитектуру). Сложные команды требуют выполнения нескольких циклов. х86 имеет больше доступных регистров, но меньше памяти. Разработана с меньшим количеством конвейеров обработки запросов, но может обрабатывать сложные адреса. Производительность системы оптимизируется с помощью аппаратного подхода – х86 использует физические компоненты памяти для компенсации нехватки памяти. Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода). х64 Имеет возможность обработки 64-битных целых чисел с преемственной совместимость для 32-битных приложений. (Теоретическое) виртуальное адресное пространство составляет 264 (16 эксабайт). Однако на сегодняшний день в реальной практике используется лишь небольшая часть из теоретического диапазона в 16 эксабайт – около 128 ТБ. х64 обрабатывает большие файлы, отображая весь файл в адресное пространство процессора. Быстрее, чем х86, благодаря более быстрой параллельной обработке, 64-битной памяти и шине данных, а также регистрам большего размера. Поддерживает одновременную работу с большими файлами в нескольких адресных пространствах. Кроме того, х64 одновременно эмулирует две задачи х86 и обеспечивает более быструю работу, чем х86. Загружает команды более эффективно. Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода). Применения Из-за того, что эти две архитектуры имеют различные функции и имеют различия в доступе к ресурсам, скорости и вычислительной мощности, каждая архитектура используется для различных целей: х86 Многие компьютеры по всему миру по-прежнему основаны на операционных системах и процессорах х86. Используется для игровых консолей. Подсистемы облачных вычислений по-прежнему используют архитектуру х86. Старые приложения и программы обычно работают на 32-битной архитектуре. Лучше подходит для эмуляции. 32-битный формат по-прежнему более предпочтителен при производстве аудио из-за возможности совмещения со старой аудиотехникой. х64 Все большее число ПК используют 64-разрядные процессоры и операционные системы на основе архитектуры х64. Все современные мобильные процессоры используют архитектуру х64. Используется для обеспечения работы суперкомпьютеров. Используется в игровых консолях. Технологии виртуализации основаны на архитектуре х64. Она лучше подходит для новых игровых движков, так как она быстрее и обеспечивает лучшую производительность. Ограничения И хотя обе ISA имеют какие-то ограничения, х64 – все же более новый и более совершенный тип архитектуры. Ниже приведен список ограничений для обоих типов архитектур: х86 Имеет ограниченный пул адресуемой памяти. Скорость обработки ниже в сравнении с архитектурой х64. Фирмы-поставщики больше не разрабатывают приложения для 32-битных операционных систем. Для современных процессоров требуется 64-битная ОС. Все устройства в системе (видеокарты, BIOS и т.д.) совместно используют доступную оперативную память, оставляя еще меньше памяти для ОС и приложений. х64 Она не работает на устаревших устройствах. Ее высокая производительность и скорость, как правило, потребляют больше энергии. Маловероятно, что 64-разрядные драйверы будут доступны для старых систем и оборудования. Некоторое 32-разрядное программное обеспечения не полностью совместимо с 64-разрядной архитектурой. Как проверить, на какой архитектуре работает ваш компьютер – х64 или х86? Если вы купили ПК в последние 10-15 лет, то он с большой долей вероятности работает на архитектуре х64. Для того, чтобы проверить, является ли ваш компьютер 32-разрядным или 64-разрядным, выполните следующие действия: Шаг 1: Откройте настройки В Windows 10 нажмите на клавишу Windows и щелкните значок «Settings» («Настройки»). Шаг 2: Откройте параметры системы В меню настроек выберите пункт «System» («Система»). Шаг 3: Найдите характеристики устройства Выберите пункт «About» («О программе») на левой панели и в разделе «Device specifications» («Характеристики устройства») найдите тип системы: В приведенном выше примере система представляет собой 64-разрядную операционную систему с процессором на базе архитектуры х64. Через командную строку это можно сделать быстрее: wmic OS get OSArchitecture Ну а для Linux нужно выполнить команду: uname -m Что лучше – х86 или х64? Несмотря на то, что и у х86, и у х64 есть свои преимущества, будущее не терпит ограничений, а это значит, что х86 практически перестанет использоваться или будет полностью выведена из использования. К тому же, х64 намного быстрее, может выделять больше оперативной памяти и имеет возможности параллельной обработки через 64-битную шину данных. Это делает ее лучшим вариантом при выборе между двумя типами архитектуры. Если стоит выбор, какую ОП установить, то всегда лучше отдать предпочтение в пользу 64-разрядной ОС, поскольку она может запустить как 32-разрядное, так и 64-разрядное программное обеспечение. А вот ОС на базе х86 работает только с 32-разрядным программным обеспечением. В общем и целом, х64 гораздо более эффективна, чем х86, поскольку использует всю установленную оперативную память, предоставляет больше места на жестком диске, имеет более высокую скорости шины и общую лучшую производительность. Заключение Данная статья показала различия между архитектурами системы команд х86 и х64, а также описала их функции, возможные применения и ограничения. Примите во внимание все особенности каждой ISA и сделайте выбор в пользу наиболее вам подходящей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59