Что должен уметь компьютер
Насколько пользователь должен быть уверенным в себе? В своих навыках работы на компьютере? Включил и работает? Или больше? И насколько больше?
В современных реалиях владение компьютером для работников, трудящихся в офисе – вроде как обязательный навык. Но непонятно, как его померить. Давайте посмотрим, насколько пользователь уверен в том, что он уверенный пользователь.
Маленькая ремарка – от сотрудников обычной компании не требуется настраивать многоуровневую сеть или проводить замену оборудования при поломках и модернизации оного.
Перечень навыков, которые указываются соискателями в резюме обычно стандартный, но широкий. Тут и владение офисными программами, и навыки работы в интернете, и магия обращения с принтерами, и разные там фотошопы, автокады, коралы. Верхом навыков является уверенное обращение с 1С. Со всеми сразу 1С-ами.
Общаясь с соискателями, будущий руководитель или рекрутёр почти никогда не акцентируют на этих строчках резюме внимания. А зря. Ведь офисный сотрудник большую часть времени проводит за компьютером. И от его реального навыка зависит как быстро он будет взаимодействовать с “инструментом”.
Вот представьте печальный, но далеко не редкий случай: вы взяли такого пользователя, а он:
Набирает текст двумя пальцами, со скоростью близкой к нулю
Пользуется “експлорером”, потому что не умеет скачать “хром”
Не умеет делать закладки в браузере
В почту входит по паролю с листочка, наклеенного на монитор
Не знает ничего кроме флешки. Какие там облачные хранилища…
Не догадывается, что в поисковике можно узнать, как открыть файл с незнакомым расширением
Вообще не в курсе, что есть “горячие клавиши” и все операции делает “мышкой”. Копирование, вставку, изменение масштаба, вывод на печать, сохранение и кучу других операций
Считает, что если воткнуть шнур от принтера в компьютер и нажать мышкой “печать”, то всё напечатает
Требует, чтобы ему поставили программы из прошлого века, потому что не хочет “обновлять себя” до актуальной версии
Принципиально не понимает, что можно позвонить из браузера, потому что “компьютеры не звонят”
Не понимает, что такое стили, разметка, макет, начертание, междустрочный интервал, выравнивание текста в ворде
Не в курсе, что в екселе можно не только вручную заполнять ячейки
Говорит: “Скриншот? Какой такой скриншот?”
При словах “удалённый доступ” начинает поливать компьютер святой водой или что-то подобное.
А также множество других курьёзных и печальных наблюдений прошло через мои глаза.
Тут дело даже не в возрасте сотрудника, как можно подумать сразу. Лично видел и 20-летних уникумов с познаниями аборигенов. Они, конечно, без проблем сидят “вконтосике” и смотрят сериальчики, а дальше всё. Темные века. Вся суть проблемы в том, что нет стандартных требований у современных работодателей к “компьютерным пользователям”.
Проверка навыков работы с основным инструментом обязательна. И верить тут на слово обойдётся вам очень дорого. Я не говорю о специализированном или не распространённом софте. Но вот стандартный, “школьный” набор проверить нужно.
Что нужно сделать, чтобы убедиться что “пользователь” не врёт?
Всё банально и просто. При выходе нового сотрудника в первый рабочий день или даже до, открываете перед “уверенным пользователем” ноутбук или включаете компьютер и даёте список задач:
Подключить вайфай. Логин и пароль тоже даёте
Войти в облачный диск и сделать задание на проверку навыков. Логин и пароль даёте, а вот из какого облака качать не говорите, пусть попытается сообразить по логину
Скачанный файл пусть будет в архиве, а архиватора на компьютере нет. Пусть пользователь решит эту задачу
Файл нужно распечатать. Пусть файл у вас будет не стандартного размера. А2 или А6. А вот распечатать файл нужно на стандартный листок А4. Посмотрите с какой попытки получится. И знает ли пользователь вообще, как работать с макетами документов.
Распечатанный нужно перенабрать. Треть или четверть странички А4 нужно при вас набрать. Проверите, умеет ли пользователь печатать больше, чем двумя пальцами. Поверьте, печатальщиков двумя пальцами очень много, и, поверьте, это тоже самое, что нанимать водителя, который будет ездить только на первой скорости.
Оформить напечатанный только что кусочек текста. Проставить пункты, интервалы, часть выровнять по ширине, часть по краям, сменить шрифт, размер полей и другие стандартные манипуляции. Вы так удивитесь, люди даже не представляют, что так можно. А потом вы получаете такой треш и угар в документах…
Пусть сделает скриншот любого окна и опишет проблему типа “не работает то-то и то-то, почините” и отправит вашему “администратору” (вам)
Для чего вам это делать?
Да очень просто – набирая “пещерных”, вы топите свою фирму. А оно вам надо?
Конечно, есть уникумы, которые на дух не переносят “компьютеры-интернеты” и делают продажи по 175 вагонов в месяц, но эти люди могут получить от вас личную индульгенцию. А остальные – или “пользователь” или обратно на рынок труда.
Уверены, что общаетесь с техникой на «ты»? Если вы не слышали хотя бы об одном из нижеперечисленных пунктов, значит, до "спеца" вы еще не доросли.
Уметь переустанавливать и настраивать операционную систему
Буквально «с закрытыми глазами» и разбираться в файловой системе. Должен уметь свободно работать с BIOS/UEFI для изменения характеристик ПК и с загрузочной областью компьютера. Понимать и уметь ставить сразу несколько операционных систем (в том числе и Linux-подобные) на один компьютер.
Настройка ОС тоже входит в круг обязанностей продвинутого пользователя — он должен не только уметь подбирать драйвера, отключать ненужные компоненты, оптимизировать систему, но и понимать, как это работает. Грамотный «тюнинг» Windows, который ускорит компьютер — важный навык для такого такого пользователя.
Будет интересно:
6. Не торопитесь ставить «галочки» при установке
Многие полезные приложения предлагают нам установить дополнительные панели инструментов и другие "бонусы". Бывает, одни из них «настаивают» на своей полезности (автоматически хотят установиться), поэтому нужно вручную снимать уже поставленную кем-то «галочку». В таких случаях лучше подумать дважды. Особенно, если вы понятия не имеете о том, какую информацию вообще передает или принимает предлагаемый вам «адд-он». Очень часто такие дополнения идут в комплекте с «главной» программой лишь потому, что они приносят дополнительные деньги разработчикам, а не потому, что они супер-полезны. В общем, смотрите, на что «подписываетесь» во время установки.
Принцип работы
При включении питания компьютера, в первую очередь, блок питания подаёт напряжение на материнскую плату, а через неё уже на все прочие устройства компьютера. Следующим этапом происходит чтение информации из постоянного запоминающего устройства BIOS, что позволяет компьютеру обнаружить все внутренние устройства, которые к нему подключены. В соответствии с настройками BIOS производится загрузка с дискеты, компакт-диска, запоминающего устройства подключенного к USB-порту или HDD.
В классической настройке BIOS приоритеты были расставлены следующим образом: В первую очередь производится загрузка с диска "A" или "B" - эти буквы всегда отводились под дискету (флоппи-диск). Если указанные дисководы пусты, осуществить загрузку с диска "C" - Жесткий диск компьютера. Позже, когда дискеты практически вышли из обихода, настройку BIOS изменили. Приоритет загрузки отдали устройству чтения компакт-дисков CD-ROM. Если в этом устройстве нет диска, произвести загрузку, опять же, с диска "C". Подобная настройка BIOS позволяла без лишних хлопот установить операционную систему с загрузочного диска. Достаточно было вставить компакт-диск с установочными файлами операционной системы в дисковод, и компьютер начинал загружаться с компакт-диска, выходил в режим установки операционной системы. Позже, когда компьютеры стали продаваться с уже заранее установленной операционной системой, настройку BIOS поменяли и принудили компьютер в любом случае загружаться с диска "C", игнорируя другие устройства. Итак, загрузив BIOS, определив подключенные устройства, компьютер начинает загрузку операционной системы. В большинстве случаев это происходит с жесткого диска "C" или из раздела "C" находящегося на жестком диске. Помимо загрузки самой операционной системы, производится загрузка всех необходимых драйверов для обнаруженных устройств, подключенных в данный момент к компьютеру. В процессе работы, компьютер четко следует заданному алгоритму.
Говоря простым языком, компьютер четко выполняет инструкции, которые написаны для него человеком (программистом). Компьютер не может ошибаться, это было исключено ещё на заре развития кибернетики. Частично поврежденные элементы исключаются из работы. Либо, если повреждения значительны, компьютер отказывается работать совсем. Таким образом, все ошибки, возникающие в работе компьютера, полностью лежат на совести программиста. Если программа была написана с нарушением компьютерной грамматики, компьютер, обнаружив ошибку, откажется выполнять программу. Однако, чаще бывает, что программа написана безукоризненно, но содержит логическую ошибку, которую компьютер обнаружить не способен. Говоря простым языком, все команды написаны верно, но среди них отсутствует необходимая, либо присутствует команда, которая противоречит другой команде. Тогда компьютер берется выполнять программу, пока не дойдет до ошибки, где и происходит сбой в работе или зависание. Чаще всего, ошибки возникают по той причине, что программы были написаны разными программистами, которые не могли учесть всех тонкостей, не зная заранее — что написано другим.
Алгоритм это четкая, пошаговая инструкция, предусматривающая различные варианты развития событий. Без учета различных вариантов, работа компьютера с пользователем ограничивалась бы только запуском и выполнением программы, следующей одним, заранее написанным сценарием. Возможность менять ход сценария, делает компьютер уникальным и единственным устройством в своем роде.
11. Выключите функцию контроля учетных записей пользователей
И Vista, и Windows 7 предусматривают эту функцию: вам затемняют экран и «выбрасывают» окно при установке приложений или изменении системных настроек. Хотя эта функция и может быть полезной, не позволяя самопроизвольно установиться всяким непонятным приложениям, она может и раздражать. В любом случае, подкорректировать настройки функции можно в панели управления Учетных записей пользователя. Нажмите Учетные записи пользователей -> Изменение параметров контроля и можете сделать так, чтобы вас предупреждали, но не затемняли при этом экран.
1. Незачем везде кликать по два раза
Двойным кликом вы открываете необходимые вещи в «винде». Однако в браузере, например, двойной клик будет уже перебором: можете случайно что-то заархивировать или добавить дважды. Если же это не про вас, то однозначно про кого-то из ваших знакомых.
7. Опасайтесь вирусов, живущих в документах Office
Более опытные пользователи Microsoft Office могут полезно использовать встроенный Visual Basic для поддержки приложений, чтобы автоматически решать все сложные вопросы с макросами. Однако, разработчики вредоносных программ вполне могут использовать те же приемы, чтобы создавать вирусы, мешающие спокойно работать вам или вашим коллегам. По умолчанию, Office отключает все макросы и предупреждает, когда читаемый вами документ их содержит (чтобы активировать эту установку, выберите в Word -> Word Options -> Trust Center -> Trust Center Settings -> Macro Settings), так что в этом плане вы все-таки защищены.
Железячничать
С паяльником ковырять компьютер точно не должен, а вот почистить систему охлаждения и поменять термопасту не поломав даже самый навороченный ноутбук просто обязан! Сюда же можно отнести и аппаратное подключение других устройств: видеокарта, звуковая плата, накопитель. Ну и обжать кабель витой пары, тоже должен уметь.
Для того чтобы понять основные принципы работы компьютера, не помешает ознакомиться с его устройством, хотя бы в общих чертах.
Основой компьютера является материнская плата , к которой подключаются все остальные устройства.
От архитектуры (конфигурации) материнской платы зависит и то, сколько дополнительных устройств может быть подключено к компьютеру. Также, материнская плата является распределителем питания для всех устройств.
BIOS — Basic Input/Output System — (Базовая Система Ввода/Вывода) — первичный программный код, который записан в постоянное запоминающее устройство, находящееся на материнской плате. По своей сути BIOS это первичный язык (азбука) компьютера, который позволяет ему обнаруживать все внутренние подключенные к материнской плате устройства, работать с ними, а также содержит первичные базовые команды, которые позволяют компьютеру осуществлять загрузку более серьезного программного обеспечения.
Если сравнить компьютер с новорожденным ребенком, то BIOS это набор первичных инстинктов, с которыми ребенок рождается на свет. Он ещё ничего не знает, но уже может смотреть, кричать, хаотично двигать ручками и ножками, слышать звуки, ощущать прикосновения, запоминать какую-то незначительную информацию. У новорожденного ребенка уже всё работает, но совершенно хаотично и несистематизировано. Возможности новорожденного ребенка сильно ограничены.
Процессор — мозг компьютера. Процессор совершает все вычислительные операции. Вычислительной операцией называется абсолютно всё. Пользователь может видеть на экране текст, либо цветные картинки, либо слышать музыку из динамиков, для компьютера это всё — вычислительные операции. Компьютер работает с цифровыми значениями. Для него существуют только цифры и сочетания цифр. Все исходные данные, а также результаты вычислений записываются в оперативную память.
Оперативная память сохраняет информацию только при поддержке питания. При обесточивании, вся информация из оперативной памяти безвозвратно исчезает. Оперативная память работает в паре с процессором и от её объема зависит продуктивность процессора. К примеру, если требуется обработать файл, который может быть целиком загружен в оперативную память, он будет обработан в ней процессором, а потом сохранен на жесткий диск.
В этом случае, недостаточный объем оперативной памяти может быть частично компенсирован её быстродействием. Если обмен данными происходит быстро, то пользователь не обнаружит задержки — когда часть обработанного файла была сохранена на жесткий диск, а на освободившееся в оперативной памяти место был загружен следующий фрагмент файла.
Жесткий диск в обиходе имеет несколько названий. Иногда его называют HDD — сокращение от Hard Disk Drive, а также можно услышать: Винчестер, Винт, Хард или Хард-диск . Жесткий диск является постоянным запоминающим устройством, которое способно хранить информацию даже при полном отключении электроэнергии.
Когда возникают сбои в работе компьютера или перепады напряжения в электросети, та информация, которая была сохранена на жестком диске, не утрачивается и не теряется.
Видеокарта служит для просчета изображения и вывода его на экран. По своей сути, видеокарта это мини-компьютер, который находится внутри большого компьютера. Видеокарта имеет свой собственный процессор и свою собственную оперативную память, в которой происходит просчет изображений и виртуальных сцен.
Видеокарта берёт на себя часть задач, связанных с просчетом изображения, чтобы этим не приходилось заниматься основному процессору компьютера.
Файл подкачки это зарезервированная область на жестком диске, которая используется для хранения виртуальных страниц и создаётся операционной системой автоматически. Обычно, система создаёт файл подкачки в полтора раза больше, чем имеется в наличии оперативной памяти, если пользователь не указал иные размеры. Файл подкачки позволяет расширить общий объем виртуальной памяти и обеспечивает быстрый доступ к уже просчитанным виртуальным страницам, чтобы избавить компьютер от необходимости просчитывать страницу каждый раз при обращении к ней.
Звуковая карта это аналог видеокарты, с той разницей, что звуковая карта занимается воспроизведением звука, дабы не отвлекать на эту задачу центральный процессор компьютера. Но поскольку воспроизведение звука не является столь сложной задачей, как воспроизведение видео, в большинстве случаев, звуковая карта интегрирована в материнскую плату и является её неотъемлемой частью.
Дополнительную звуковую карту устанавливают только в тех случаях, когда требуется высококачественный, студийный звук, который будет выводиться не на компьютерные колонки, а на профессиональную аудиоаппаратуру. В других случаях, использование отдельной звуковой карты не имеет смысла.
CD/DVD-ROM это устройство чтения компакт-дисков формата CD или DVD. Устройство используется для воспроизведения (чтения) аудио или видеофайлов, просмотра фотоальбомов, а также — установки операционной системы с загрузочного компакт диска на жесткий диск компьютера. Помимо чтения дисков, такое устройство может производить запись на CD или DVD диск.
Порты USB универсальные порты, которые были разработаны для подключения к компьютеру различных внешних устройств: смартфон, цифровая камера, флеш-накопители, мышь, клавиатура, съемные жесткие диски, устройства беспроводной связи и многое другое. При подключении устройства к порту USB, устройство сообщает компьютеру свою модель и другие исходные данные, которые позволяют компьютеру "найти общий язык" и работать с подключенным устройством.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
14. Очищайте область уведомлений
Очень часто приложения размещаются именно в области уведомлений (ряд иконок в правой нижней части панели задач) и остаются там без вашего ведома. Обратите на них внимание. Откройте Панель управления -> Все элементы -> Значки области уведомлений и определитесь, какие из значков вам необходимо созерцать во время работы, а какие лучше отключить. В последнем случае память вашего ПК может даже сказать вам «Спасибо».
9. Удаляйте «изжившие» себя программы
Если вы постоянно скачиваете и устанавливаете новые программы, вам не стоит заниматься ненужным коллекционированием - подчищайте бесполезные или старые программы. Чтобы это сделать, зайдите в Панель управления и Программы, пройдитесь по огромному списку и деинсталлируйте ненужные вам приложения. Возможно, придется заглянуть по адресу C:/Program Files/, чтобы выследить еще парочку неиспользуемых приложений. Чем меньше всякого «барахла» у вас на ПК, тем надежнее он будет работать.
2. Ставьте «слэши» или «бэкслеши» в нужных ситуациях
4. Верните стертые ранее файлы к «жизни»
При удалении файлов с компьютера или карты памяти, они вообще-то не совсем удаляются с жесткого диска. Вы просто стираете индексовую информацию, которая подсказывает ПК место нахождения файла. После такого «стирания» компьютер, конечно же, рассматривает освободившееся место как новое поле для деятельности. Если же вы стерли что-то нежелательное, такие утилиты как Recuva помогут вам обрести эти файлы снова при условии, что вы не затерли тот файл чем-нибудь новым.Никогда не оставляйте ваши личные данные на жестком диске вашего старого ПК!
1. Незачем везде кликать по два раза
Двойным кликом вы открываете необходимые вещи в «винде». Однако в браузере, например, двойной клик будет уже перебором: можете случайно что-то заархивировать или добавить дважды. Если же это не про вас, то однозначно про кого-то из ваших знакомых.
Основы Операционной Системы
Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.
На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.
Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:
- Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
- Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
- Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
- DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
- Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.
Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.
Двоичный код
Двоичный код, как система сохранения данных, появился очень давно. Известно, что ещё во времена древних инков использовался данный принцип передачи информации. На верёвке завязывались узелки, которые означали единицу, а отсутствие узелка означало ноль. Позже система была забыта, но с появлением электроники, снова возродилась. Чтобы найти золотую середину, необходимо познать обе крайности. Это правило актуально и для электроники.
Учитывая несовершенство первых компьютеров, проще было обозначить само наличие сигнала или его отсутствие, чем пытаться опираться на прочие характеристики электрического тока, которые могли быть сильно искажены помехами, но которые пытались использовать — как альтернативный путь развития кодирования. Одно время, разрабатывались процессоры, которые также реагировали на частоту электрического тока. Каждая частота имела собственное значение.
Слабое место подобного метода заключается в том, что любые помехи могут искажать исходный сигнал, что приведет к искажению данных — ошибке. Защитить устройство от посторонних помех довольно сложно, да и генерация импульсов различной частоты тоже усложняет задачу. Поэтому подобный путь передачи и хранения данных не получил широкого распространения.
Инженеры пошли более простым и безошибочным путем. Наличие сигнала, в определенный промежуток времени, стали рассматривать — как единицу, отсутствие сигнала, за такой же промежуток времени, взяли за ноль. Таким образом, сформировалась основа двоичного кода, которой присвоили обобщенное название бит . Для этого случая вполне справедлива поговорка: Отсутствие результата — тоже результат . И действительно, в двоичном коде, единица это один бит информации. Ноль (отсутствие сигнала) также является одним битом информации.
Один бит (ноль или единица) занимает одну ячейку памяти. Правда, из одного бита информации, даже из двух — много пользы не выжмешь. Можно поиграть с их чередованием. Скажем, выражение 00 имеет одно значение, выражению 01 можно присвоить — другое, следовательно, появляется возможность записать ещё два значения: 10 и 11. Всего четыре комбинации из двух битов.
Этого явно недостаточно для передачи и сохранения сложной информации. Если же использовать не два, а три бита, то возможных вариантов становится уже не четыре, а восемь: 000, 001, 010, 100, 101, 110, 011, 111. Увеличение количества бит всего на один — увеличивает количество возможных вариантов вдвое. Использование восьми бит даёт уже 256 вариантов комбинаций и этого вполне достаточно для того, чтобы присвоить каждому варианту свой собственный символ или определенную команду. Получается, что восемь бит уже могут иметь определенное значение и смысл. По этой причине, запись, состоящая из восьми бит, получила название байт .
Подобная схема и легла в основу BIOS , благодаря чему компьютер способен понимать буквы латинского алфавита, цифровые значения от 0 до 9, а также — специальные символы, использующиеся в программировании.
Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.
Из чего состоит Windows?
Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:
Давайте быстренько пробежимся по её компонентам снизу вверх:
- Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
- HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.
Более подробно о разделении на клиент-сервер
Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.
Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.
Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.
Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:
64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.
Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.
Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.
Новые устройства
Такой пользователь должен иметь опыт работы с самыми различными внешними устройствами — начиная от продвинутой клавиатуры, для которой нужен специальный софт и заканчивая настройкой систем умного дома. В общем, все что можно подключить к ПК — он должен уметь делать. Ясно, что он должен быстро понять, почему не работает камера или микрофон и устранить проблему. Ведь большинство компьютерных проблем имеет программную почву.
10. Берегите свой ПК или ноут от пролитых напитков
Если уже поздно и это случилось, не паникуйте! Вы еще можете спасти данные от «капута», а вашу материнскую плату от сгорания. Быстро и уверенно выдерните кабель питания и выньте батарею. Не ждите, пока Windows выключится сам. Затем отключите все, что присоединено к ПК (сетевые кабели, USB-устройства) и вынимайте все «вынимаемые» компоненты, такие как оптический диск. Наклоните свой ПК так, чтобы жидкость вытекала туда же, откуда она и пришла. Но будьте осторожны: вы же не хотите «загнать» ее еще глубже. Если влага находится на поверхности компьютера, уберите ее полотенцем. На этой стадии у вас есть два варианта: 1) самостоятельно разобрать ПК и протереть электронику или 2) отдать его на осмотр «спецам». Выбор за вами.
8. Не забудьте о безопасности вашего ПК!
Любому новичку в работе с компьютером нужно сразу усвоить одно простое правило: любой компьютер, имеющий любые связи с "внешним" миром, подвержен угрозе заражения. Даже обычная флешка (при контакте с другими компьютерами) может таить неприятные неожиданности в виде вирусов и троянов. Что уж говорить о том, "как много нам открытий чудных" готовит Интернет. Особенно Всемирная Сеть коварна по отношению к неопытнм пользователям, наивно доверяющим яркой призывной рекламе и сайтам сомнительного содержания.
Наш совет - не проверяйте судьбу на прочность и одним решением избавьтесь сразу от многих потенциальных проблем. Просто установите антивирус. Благо, на рынке в наши дни достаточно качественных разработок, имеющих статус бесплатного ПО. А это значит, что за его использование платить не придется. Мы же рекомендуем бесплатно загрузить антивирус Avast! - один из лучших с своем роде.
Насколько глубоко мы погрузимся в тему?
Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.
Уровень операционной системы. ОС можно рассматривать как:
- Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
- Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
- Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).
Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.
Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.
Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.
Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.
Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.
Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.
Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.
Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.
Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.
Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.
Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.
5. Очистите жесткий диск прежде, чем избавиться от него
Поскольку ваш компьютер не сразу избавляется от удаляемых вами файлов, просто отформатировать жесткий диск перед продажей или заменой компьютера будет недостаточно. Почему? Да потому, что кто-то может использовать приложение для восстановления стертых файлов и восстановить ваши «тайные» данные. Вариантов окончательного «стирания» достаточно, мы же посоветуем испробовать приложение CCleaner. Простой интерфейс и понятный функционал помогут вам освоиться на раз.
Сетевое окружение
Должен уметь настроить любое бытовое сетевое устройство — от обычного Wi-Fi роутера до NAS и использования ПК в роли сервера. Он должен знать, как работает локальная сеть и разбираться с правами доступа к общим устройствам.
Сюда же и прибавим безопасность — ведь можно настроить ПК так, что к нему может получить доступ через интернет любой желающий. Продвинутый пользователь должен уметь настроить доступ к сети так, чтобы в результате его действий не был получен какой-либо вред и утечка информации.
12. Не работайте в админском аккаунте
Многие из нас привыкли делать свои дела на ПК в качестве администратора. Конечно, так гораздо удобнее при установках новых программ – не надо вылогиниваться и залогиниваться, работая под обычным аккаунтом. Однако работа в «админке» также делает систему более податливой вирусам и вредносному ПО. Так что избегайте такой практики.
Удобно добавить пользователя в группу "опытные пользователи" и использовать его для обычного времяпрепровождения в сети, переключаясь на администратора для серьезных настроек системы.
15. Регулируйте настройки энергопотребления
Тем, кто пользуется ноутбуком, всегда полезной будет информация об уровне заряда батареи. Откройте настройки Электропитания в Панели управления и выберите подходящие вам настройки. Там же можено выбрать свой собственный план электропитания, который больше всего удовлетворит ваши «компьютерные нужды».
Можно настроить ноутбук на максимальную производительность при доступном подключении к электросети и заставить его же автоматически переключаться в режим энергосбережения при чтении книги на диване либо в кафе.
Пользователи, которые застали первые версии Windows, по умолчанию считались продвинутыми — ведь, порой, чтобы добавить новое устройство к компьютеру, нужно было целый вечер «танцевать с бубном». Как компьютер, так и операционные системы в те годы были далеки от совершенства, а иной раз можно было за вечер успеть пару раз переустановить Windows, которая просто зависла и не захотела загрузиться после перезагрузки.
Но с развитием смартфонов люди все меньше и меньше пользуются компьютером или ноутбуком — это видно по статистике посещений моего сайта и блога, подавляющее большинство заходит с помощью смартфона. И продвинутых пользователей осталось совсем мало, а судя по моему опыту, не все даже знают знаменитое сочетание клавиш Ctrl + Alt + Del и у многих может возникнуть затруднение при добавлении нового USB устройства.
Давайте разберемся, что же должен уметь продвинутый юзер?
Владеть и разбираться в большинстве программ
Логично, что он должен владеть всем офисным пакетом, уверенно пользоваться графическим редактором, а также понимать принцип работы любой программы, чтобы быстро в ней разобраться.
Фраза «Я не знаю куда здесь нажимать» или «Я что-то нажал и оно пропало» — точно не для продвинутого пользователя. Он должен быть за компьютером, почти «как программист» и даже уметь также писать простые скрипты для автоматизации каких-либо действий, благо операционная система это позволяет.
13. Держите Панель управления в виде «иконок»
Категории и разделы Панели управления могут оказаться очень полезными в любой момент. Выберите Классический вид (в Vista) или большие иконки в меню Вида (в Windows 7), и получите быстрый доступ ко всем возможностям панели.
Упорядочьте хаос вашей системной строки, поставив все иконки парами.
Читайте также: