Разница между stdout и /dev/stdout

Рассмотрим пример:

root@debian:~$ echo "Hello, World" > stdout
root@debian:~$ cat stdout
Hello, World

root@debian:~$ echo "Hello, World" > /dev/stdout
Hello, World

В первом случае stdout это обычный файл, созданный в том же каталоге, в котором выполняется команду. Он ничем не отличающийся от любого другого обычного файла, например, ~/anyfile.txt. Он не имеет ничего общего со стандартным выводом, кроме того факта, что в данном примере на него перенаправляется стандартный вывод.

Во втором случае /dev/stdout это файл устройства, который является символической ссылкой (которую можно создать с помощью ln -s) на специальный виртуальный файл /proc/self/fd/1, представляющий файловый дескриптор 1 хранящийся в текущем процессе.

Загрузка потокового видео в Linux при помощи утилиты FFmpeg

Для загрузки потокового видео в терминале необходимо выполнить команду:

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i "<ссылка>" -c copy <файл>.mp4

Здесь:

  • <ссылка> — это ссылка, которая обычно берется из HTML-тега <video>, часто начинается с https
  • <файл> — это имя файла, которое необходимо придумать самостоятельно

Перед тем, как загружать видео в терминале, его необходимо запустить в окне браузера.

Перезапуск MySQL на Debian Linux

Первым шагом необходимо зайти на сервер по SSH, используя правильные учетные данные и IP-адрес:

$ ssh root@localhost

Эта команда должна предоставить вам доступ к терминалу сервера.

Вторым шагом нужно перезапустить сервис MySQL, выполнив команду

$ service mysql restart

или, если ваш сервис MySQL имеет другое имя, например mysqld, вам, возможно, придется соответствующим образом изменить команду или попробовать следующее:

$ /etc/init.d/mysql restart

Как завершить процесс в Linux?

Необходимо запустить терминал и выполнить команду kill:

kill <process_id>

где <process_id> — это номер процесса. Этот номер можно получить с помощью команды ps:

ps

В терминале выполняем команды killall или kill:

sudo killall -9 <process_name>
sudo kill -9 <process_id>

где <process_id> — это номер процесса, а <process_name>  — наименование процесса. Либо устанавливаем и используем htop:

sudo apt-get install htop
htop

Выбираем нужный процесс, и жмем F9

Вообще существует множество вариантов и мануалов на этот счет, здесь приведены наиболее популярные.

А каким способом пользуетесь Вы?

Принципы функционирования вычислительных устройств

Общие принципы были сформулированы знаменитым математиком Джоном Фон Нейманом: (1) Принцип программного управления, (2) принцип хранимой в памяти программы       

Суть этих принципов – алгоритм решения задачи. Алгоритм должен быть записан в специальной кодовой форме и помещён в специальное устройство – память. В память должны быть записаны исходные данные, промежуточные и окончательные результаты. Память должна быть организована таким образом, что информация в ней сохраняется в течении всего времени решения задач. По мере необходимости программа считывается из памяти и выполняется машиной. Для того, чтобы реализовать эти принципы компьютер должен иметь следующие устройства:

  1. Арифметико-логическое устройство (АЛУ) – это выполнение арифметических и логических операций.
  2. Устройство управления (УУ) – организует процесс выполнения программ.
  3. Запоминающее устройство (ЗУ) – память для хранения программ и данных (Оперативная память).
  4. Внешнее устройство (ВУ) – ввод и вывод данных.
Схема работы любого компьютера

Стрелки – это потоки, куда следует информация

Работа компьютера производится следующим образом:

  1. С помощью устройств ввода (УВ) в оперативную память (ОП) вводятся программы и исходные данные.
  2. По сигналу устройства управления (УУ) выбирается очередная команда программы, в которой указано какую операцию нужно выполнить и где взять исходные данные для её управления.
  3. Выбранная команда поступает в устройство управления (УУ), которая её расшифровывает и выдаёт приказ в арифметико-логическое устройство (АЛУ) выполнить операцию.
  4. Результат выполненной операции поступает в оперативную память (ОП), из которой по сигналу устройства управления (УУ) выбирается следующая команда программы.
  5. Цикл обработки программ повторяется до тех пор, пока не будет выполнена последняя команда программы.

Таким образом, работа ПК состоит выполнение процессором заданной последовательности команд программы. Именно программа определяет, какие команды и операции должен выполнить компьютер. В этом состоит программный принцип работы компьютера.

Эволюция операционных систем

Идея компьютера была предложена английским математиком Чарльзом Бэббиджем в середине 19 века. Его механическая аналитическая машина так и не смогла по-настоящему заработать, т. к. технологии того времени не удовлетворяли требованиям необходимым для изготовления нужных деталей точной механики.

Идею этого ученого удалось реализовать в 1943-1945 годах. В это время операционные системы (ОС) ещё не появились. Все задачи решались вручную каждым программистом с пультом управления, который представлял собой примитивное устройство ввода-вывода. Оно состояло из кнопок, переключателей и индикаторов. Предшественников операционных систем являлись системы пакетной обработки. Они стали первыми системными программами для управления вычислительных процессов. В ходе реализации системы пакетной обработки был разработан формализованный язык управлениями заданиями, с помощью которого программист сообщал системе какие действия, и в какой последовательности он хочет выполнить на вычислительной машине. Оператор составлял пакет заданий, которые в дальнейшем без его участия запускались на выполнение. Пакет обычно представлял собой набор перфокарт, но мог переноситься на магнитную ленту или магнитный диск.

Следующий этап развития ОС относится к 1965-1975 годам. Произошёл переход от полупроводниковых элементов к интегральным микросхемам. В этот период были реализованы практически все основные концепции, присущие современным системам: мультипрограммированное программное обеспечение, многотерминальный режим, виртуальная память, файловые системы. Революционное событие данного этапа – мультипрограммирование – это способ организации вычислительного процесса, при котором в памяти находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Мультипрограммирование было реализовано в двух вариантах: системах пакетной обработки и разделение времени. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполнила операцию ввода и вывода, а переключался на другую, готовую к выполнению программу. В результате достигалась загрузка всех устройств компьютера, увеличивалось число задач, решаемых в единицу времени. В данном случае пользователь был лишён возможности интерактивно взаимодействовать со своими программами. Для исправления такой ситуации был разработан другой вариант мультипрограммирования – система разделения времени (каждый пользователь работает со своим терминалом).

Реализация мультипрограммирования потребовала очень важных изменений в аппаратуре ПК. В процессорах появился пользовательский режим работы, специальные регистры для переключения с одной программы на другую.

Ещё одна важная тенденция этого периода – создание семейств программно совместимых машин и операционных систем для них. В начале 1970 года появились сетевые операционные системы, которые позволяли рассредоточить пользователей, организовать распределённое хранение и обработку данных между несколькими ПК, связанными электрическими связями. С середины 1970-х годов началось массовое использование операционных систем UNIX, которая сравнительно легко переносилась на различные типы компьютеров. Программный код UNIX был написан на языке C (Си). 1980-е годы – становление интернета, появление персональных компьютеров и ОС для них. На этот момент самой распространённой системой была ОС MS-DOS. Это однопрограммная, однопользовательская ОС с интерфейсом командной строки. Основными задачами для неё были управление файлами и поочерёдный запуск программ.

Наибольшее влияние на развитие программного обеспечения для ПК оказала ОС Windows, представлявшая собой надстройку над MS-DOS. На её основании была создана операционная система Windows 3.1, 3.11, 95, 98, 2000, ME и т.д.

Сервисы онлайн-обучения для программистов по различным направлениям

Учебный центр «СПЕЦИАЛИСТ» при МГТУ им. Н.Э. Баумана

Учебный центр «Специалист» создан 10 ноября 1991 г. при кафедре «ЭВМ и системы» МГТУ им. Н. Э. Баумана. Центр «Специалист» — некоммерческая организация дополнительного образования, зарегистрированная Правительством Москвы.

В ассортименте Центра более 1000 обучающих курсов для специалистов и начинающих: компьютерные курсы, подготовка старшеклассников к ЕГЭ, популярные курсы 1С, обучение рисунку, обработке цифровых фотографий, курсы дизайна, курсы 3ds max, курсы autocad, курсы windows server, бухгалтерские курсы, занятия по основам программирования и многое другое. В нашем Центре Вы можете пройти подготовительные курсы обучения и курсы повышения квалификации в очных группах (утром, днем, вечером, по выходным), дистанционно, индивидуально, в режиме онлайн. Центр имеет 5 учебных комплексов в Москве.

Хекслет

Хекслет — практические курсы по программированию. Помогает новичкам стать профессиональными программистами, а опытным разработчикам получать новые знания и расти профессионально.

Stepik

Учитесь бесплатно, получайте сертификаты, общайтесь с миллионами русскоговорящих студентов и лидируйте в глобальном рейтинге Stepik.

Яндекс.Практикум

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

GeekBrains

GeekBrains — образовательный портал от Mail.ru Group, который помогает начать карьеру в IT и Digital и получить новые знания для развития.

Udemy

Платформа для онлайн-обучения, с помощью которой более 24 миллионов студентов изучают 100 000 курсов. Изучайте курсы по программированию, маркетингу, естественным наукам, работе с данными и многому другому.

OTUS

Высокотехнологический стартап в области образования. Миссия — делать образование осмысленным, реализуя связь между работодателями, специалистами и преподавателями.

Skillbox

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

Loftschool

Обучение программированию с нуля онлайн с личным наставником. Школа онлайн образования Loftschool обучает: web разработке, php, javascript, seo, интернет маркетингу, android разработке.

Школа Современных Технологий

Главная задача NTSchool — подготовка к трудоустройству IT-специалистов в сфере web-разработки, успешное прохождение ими собеседований и готовность работать на фрилансе.

Прохождение курсов школы даст Вам все необходимые профильные знания и навыки, а стажировка позволит закрепить это всё на практике.

ITVDN

Самые популярные видео курсы онлайн программирования. Вы найдёте курсы по С#/.NET Developer, Frontend Developer, ASP.NET MVC Developer, Python Developer, Unity/Game Developer.

Coursera

Крупный американский провайдер открытых онлайн-курсов, основанный в 2012 году профессорами компьютерных наук Стэнфордского университета Эндрю Нг и Дафной Коллер. Coursera работает с университетами и другими организациями, предлагая онлайн-курсы, сертификаты и степени по различным предметам.

Shultais Education

Онлайн-курсы по программированию и базам данных на Shultais Education. Курсы по Python, основам SQL и баз данных, алгоритмам, верстке на HTML и CSS.

Нетология

Быстрый способ научиться интернет-продвижению и управлению проектами онлайн. Открытые занятия, онлайн-интенсивы и интерактивные курсы для быстрого обучения.

Learn.JavaScript.ru

Здесь находятся «правильные» курсы по профессиональному JavaScript, цель которых — научить думать на JavaScript, писать просто, быстро и красиво.

SkillFactory

С 2016 года разработала и запустила 25 курсов и специализаций, обучение по которым прошли уже более 9000 студентов, и стала лидером на рынке онлайн-образования в сегменте Data Science.

Национальный Открытый Университет «ИНТУИТ»

Бесплатное дистанционное обучение в Национальном Открытом Университете «ИНТУИТ» — это удобный способ получения знаний, которые помогут вам получить новую работу и занять более высокую должность.

Сервисы подготовки к олимпиадам по программированию

Дистанционная подготовка по информатике

Зарегистрировавшись, вы можете решать учебные и олимпиадные задачи по информатике и сдавать их на проверку в автоматическую тестирующую систему.

Олимпиадные курсы Центра педагогического мастерства

Программа дополнительного профессионального образования «Развитие таланта школьников в предметных областях. Организация и проведение этапов всероссийской олимпиады школьников и других интеллектуальных соревнований».

E-Olymp

Сайт предоставляет базу задач, учебные материалы и автоматическую систему проверки решений. Пользователям сайта предлагается решить задачи написав небольшую программу-решение на одном из языков программирования и отправить ее в систему для проверки. Автоматическая система проверит решение, запустив его на нескольких наборах тестов и оценит правильность решения.

Timus Online Judge

Крупнейший в России архив задач по программированию с автоматической проверяющей системой. Основной источник задач для архива — соревнования Уральского федерального университета, Чемпионаты Урала, Уральские четвертьфиналы ICPC, Петрозаводские сборы по программированию.

Алгоритмическое программирование. Очно-заочный курс Петра Калинина

В этом курсе вы научитесь программировать, писать сложные алгоритмы и решать олимпиадные задачи. Вы подготовитесь к олимпиадам по информатике, да и задачи части C ЕГЭ вам покажутся проще. В дальнейшем полученные тут знания и умения вам помогут как в вузе, так и в любой деятельности, хоть как-то связанной с программированием.

Фоксфорд

Онлайн-школа для учеников 1−11 классов, учителей и родителей. На онлайн-курсах и индивидуальных занятиях с репетитором школьники готовятся к ЕГЭ, ОГЭ, олимпиадам, изучают школьные предметы. Занятия ведут преподаватели МГУ, МФТИ, ВШЭ и других ведущих вузов страны.

Яндекс.Лицей

Яндекс.Лицей — это образовательный проект Яндекса по обучению школьников программированию. Учебная программа рассчитана на два года. На занятиях ребята знакомятся с теорией и осваивают технологии на практике. Обучение в Яндекс.Лицее бесплатное.

С программированием школьники знакомятся на примере Python. Этот язык несложно освоить, к тому же он позволяет решать множество задач. Python — один из самых популярных языков в мире, применение ему находится и в YouTube, и в NASA, и у нас в Яндексе. А ещё он назван в честь «Летающего цирка Монти Пайтона». В общем, отличный вариант для начала.