Комп’ютер – це складний пристрій, що представляє собою синтез програмного і апаратного забезпечення. Це машина, вирішальна завдання через виконання команд, таких як: додати два числа, перевірити чи відрізняється число від нуля, скопіювати дані з однієї комірки пам’яті в іншу і т. д.
Прості команди складають мову, званий машинним, на якому людина може пояснити комп’ютера, що потрібно зробити. Кожен комп’ютер, в залежності від свого призначення, забезпечується певним набором команд. Вони створюються примітивними, щоб спростити виробництво комп’ютерів.
Однак машинний мова створює великі проблеми для людини, тому що писати на ньому утомливо і вкрай складно. Тому інженери винайшли кілька рівнів абстракцій, кожен з яких заснований на більш низькому, аж до машинної мови та комп’ютерної логіки, а на верхньому рівні розташовується взаємодія з користувачем. Цей принцип називається багаторівневим будовою комп’ютера, і йому підпорядковуються і апаратне і програмне забезпечення комп’ютерних систем.
Багаторівневе будова комп’ютерів
Як вже було раніше сказано, програмне та апаратне забезпечення вибудовується за принципом рівнів абстракцій, кожен з яких базується на попередньому. Простіше кажучи, щоб людині було легше писати програми, на базі машинної мови створюється (а точніше надбудовується) новий мову, яка є більш зрозумілою для людини, але абсолютно нездійсненним комп’ютером. Тоді як же комп’ютер виконує програми на новому мовою?
Існує два основних підходи – трансляція і інтерпретація. У першому випадку кожній команді нової мови відповідає набір команд машинної мови, таким чином, програма на новому мовою повністю перетворюється в програму на машинній мові. У другому випадку на машинній мові створюється програма, яка в якості вхідних даних приймає команди на новому мовою, розпізнає їх, переводить в машинну мову і виконує.
Комп’ютерне апаратне і програмне забезпечення може містити безліч рівнів від самого першого, або базового, до того, який буде зрозумілий людині. Для ілюстрації цього процесу відмінно підходить поняття віртуальної машини. Можна вважати, коли комп’ютер виконує програму на якій-небудь мові (С++, наприклад), то в ньому працює віртуальна машина, яка виконує команди цієї мови. Нижче віртуальної машини З++ розташовується інша, з більш примітивною мовою. Наприклад, нехай це буде “Асемблер”. На цьому рівні працює віртуальна машина “Асемблера”. А між ними відбувається або трансляція, або інтерпретація програмного коду. Таким чином, безліч рівнів складаються в єдиний ланцюжок до самого першого – машинного. Віртуальна машина – це просто концепція, яка дозволяє зручніше представити процес багаторівневості.
Відповімо на напрошується питання – чому б не зробити комп’ютер, який працює безпосередньо з тією ж мовою С++?
Справа в тому, що створення такої технології вимагатиме колосальних вкладень у апаратні засоби і програмне забезпечення такого комп’ютера. Це, швидше за все, можливо, але буде так дорого, що перестане бути доцільним.
Сучасні комп’ютери
На сьогоднішній день комп’ютери у своїй більшості складаються з 2-6 рівнів. Нульовий рівень – базовий, тобто машинний або апаратний, на ньому працює тільки машинний код, який виконується електросхемами комп’ютера. І на основі їх будується мову першого рівня і т. д. Також слід уточнити, що нульовим рівнем все не закінчується. Нижче нього існує технічний рівень – самих транзисторів і резисторів, тобто фізика твердих тіл, він називається фізичною. Таким чином, нульовий рівень називається базою, тому що саме тут зустрічаються один з одним апаратні засоби і програмне забезпечення.
Нарешті, перерахуємо ієрархічну ланцюжок рівнів, які містяться в середньостатистичному комп’ютері, починаючи з нульового:
- Ур. 0 – цифровий логічний, або апаратний – тут працюють вентилі та регістри, які здатні зберігати значення 0 або 1, а також виконувати прості функції “і”, “або” та ін.
- Ур. 1 – мікроархітектури – на цьому рівні працює арифметико-логічний пристрій комп’ютера. Тут дані, апаратне забезпечення і програмне забезпечення починають спільно працювати.
- Ур. 2 – архітектури набору команд.
- Ур. 3 – гібридний,або операційної системи – цей рівень відрізняється більшою гнучкістю, хоча дуже схожий на рівень 2. Наприклад, тут програми можуть виконуватися паралельно.
- Ур. 4 – асемблера – рівень, на якому машинні цифрові мови починають поступатися місцем людським.
- Ур. 5 – мов високого рівня (C++, Pascal, PHP тощо)
Отже, кожен рівень являє собою надбудову над попереднім і пов’язаний з ним методами трансляції або інтерпретації, має свої абстрактні об’єкти і операції. Для роботи на окремо взятому рівні можна, в принципі, не знати, що відбувається на попередніх. Саме завдяки такому підходу розуміти комп’ютерну техніку стало простіше.
Адже кожна марка комп’ютерів має свою архітектуру. При цьому під архітектурою розуміються типи даних, операції та характеристики кожного рівня. Наприклад, технологія, по якій створені осередки пам’яті комп’ютера, не входить у поняття архітектури.
Розвиток комп’ютерів
З розвитком технологій з’являлися нові рівні, якісь йшли. У перших комп’ютерів у 40-х роках було всього два рівня: цифро-логічний, де програма виконувалася, і архітектурно-командний, на якому писався код. Тому межа між апаратною і програмною частинами була очевидною, але зі збільшенням кількості рівнів вона стала пропадати.
На сьогоднішній день інформаційне апаратне і програмне забезпечення можна вважати тотожними поняттями. Тому що будь-яка операція, модельована програмно, може бути виконана безпосередньо на апаратному рівні, і навпаки. Немає залізних правил, які свідчили б, чому одна операція повинна бути виконана апаратно, а інша – програмно. Поділ відбувається на підставі таких факторів, як ціна виробництва, швидкість, надійність і т. п. Сьогоднішнє може завтра увійти до складу апаратної частини або, навпаки, щось з апаратної частини – стати програмою.
Покоління комп’ютерів
Механічні комп’ютери представляють нульове покоління. Паскаль в 1640-х роках створив лічильну машину з ручним приводом, яка вміла додавати і віднімати. У 1670-х Лейбніц створив машину, яка вміла також множити і ділити. Беббідж в 1830-х, витративши всі заощадження, створив аналітичну машину, яка була схожа на сучасний комп’ютер і складалася з пристрою введення, пам’яті, обчислювального апарату і способу виведення. Машина була настільки досконалою, що могла запам’ятовувати до 1000 слів за 50 десяткових розрядів і виконувати різні алгоритми одночасно. Аналітична машина програмувалася на Асемблері”, тому Беббідж найняв Аду Лавлейс для створення перших програм. Проте йому не вистачило як коштів, так і технологій, щоб налагодити роботу свого дітища.
Трохи пізніше в Америці була створена найпотужніша машина Атанасова, яка працювала на двійковій арифметиці і мала оновлювану пам’ять на основі конденсаторів (ОЗП), яка і донині працює також. Атанасов, як і Беббідж не зміг налагодити роботу свого творіння. Нарешті, в 1944 році Айкеном був створений перший комп’ютер загального призначення Mark I, який міг запам’ятовувати 72 слова по 23 десяткових розряду кожне. На момент конструювання Mark II релейні комп’ютери вже йшли в минуле, а на зміну їм прийшли електронні.
Перший у світі комп’ютер
Друга світова війна стимулювала роботи по створенню обчислювальних машин, що спричинило за собою розвиток першого покоління (1945-1955) комп’ютерів. Першим комп’ютером на електронних лампах була машина Тюрінга COLOSSUS, призначенням якої був злом шифрів ENIGMA. І хоча комп’ютер запізнився, та війна закінчилася, а з-за секретності не чинив впливу на світ комп’ютерів, тим не менш він був першим.
Потім у армії США вчений Моушли почав розробки ENIAC. Перший такий комп’ютер важив три десятки тонн, складався з 18000 ламп і 1500 реле, программировался він за рахунок 6000 перемикачів і споживав величезна кількість енергії. Налаштування програмного і апаратного забезпечення такого монстра була вкрай складною.
Тому, як і COLOSSUS, машина ENIAC не була налагоджена до терміну і перестала бути потрібною армії. Однак Моушли було дозволено створити школу і на базі роботи над ENIAC пустити знання в маси, що породило створення багатьох різних комп’ютерів (EDSAC, ILLIAC, WEIZAC, EDVAC тощо).
Серед всього ряду комп’ютерів виділився IAS, або фон-неймановская обчислювальна машина, яка і донині справляє вплив на комп’ютери. Вона складалася з пам’яті, пристрої керування і модуля вводу-виводу, могла зберігати 4096 слів за довжиною 40 біт.
І хоча IAS так і не став лідером на ринку, але чинив найпотужніший вплив на розвиток комп’ютерів. Наприклад, на його базі був створений Whirlwind I – комп’ютер для серйозних наукових обчислень. В кінцевому підсумку всі пошуки призвели до того, що дрібна компанія, виробник перфокарт IBM, в 1953 році випускає комп’ютер 701 і починає зміщувати з лідерських позицій ринку Моушли і його UNIVAC.
Транзистори і перша комп’ютерна гра
Співробітники лабораторії Белла отримали Нобелівську премію 1956 року за винайдення транзисторів, які миттєво змінили всю комп’ютерну техніку і дали початок другого покоління (1955-1965) комп’ютерів. Перший комп’ютер на транзисторах був TX-0 (TX-2). Він не мав особливої ваги, але один з творців, Ольсен, заснував компанію DEC, яка випустила на ринок комп’ютер PDP-1 в 1961.
І хоча він значно поступався за параметрами моделей IBM, але був дешевше. Комплекс апаратного і програмного забезпечення PDP-1 коштував $120 000, а не мільйони, як IBM 7090.
PDP-1 був комерційно успішним продуктом. Вважається, що він поклав початок комп’ютерної промисловості. Також на ньому була створена перша комп’ютерна гра “космічна війна”. Пізніше вийде PDP-8 з проривною технологією єдиної шини даних Omnibus. У 1964 році компанія CDC і вчений Крэй випускає машину 6600, яка на порядок швидше за рахунок використання паралельних обчислень всередині ЦП.
Перші кроки IBM
Винахід кремнієвої інтегральної схеми, яка дозволила розміщувати на одному кристалі десятки транзисторів, поклало початок третього покоління (1965-1980) комп’ютерів. Вони були менші за розміром і працювали швидше. Тут потрібно відзначити компанію IBM, яка перша задалася питанням сумісності різних комп’ютерів і почала виробляти цілу серію під назвою 360. Програмне та апаратне забезпечення моделей серії 360 розрізнялися за параметрами, але забезпечувалися схожим набором команд, завдяки чому вони були сумісні. Також машини 360 були здатні емулювати роботу інших комп’ютерів, що було великим проривом, оскільки дозволяла запускати програми, написані під інші машини. Тим часом DEC залишалися лідерами ринку дрібних комп’ютерів.
Епоха створення ПК
Четверте покоління (1980 – наші дні) – НВІС або надвеликі інтегральні схеми. Стався різкий стрибок в ІС, і з’явилися технології, що дозволяють на кремнієвих кристалах розміщувати не десятки, а тисячі транзисторів. Настали часи персональних комп’ютерів.
Перші операційні системи CP/M; поява на ринку компанії Apple; створення компанією Intel батьків лінійки Pentium – процесора 386.
І тут знову IBM здійснює прорив на ринку, починаючи створювати персональні комп’ютери з комплектуючих різних фірм, замість того щоб робити все самостійно. Так з’являється IBM PC, самий продаваний комп’ютер в історії.
Новий підхід IBM PC одночасно породив епоху створення персональних комп’ютерів, але в той же час нашкодив комп’ютерної промисловості в цілому. Так, наприклад, Intel вирвався в одноосібні лідери по виробництву ЦП, і ніхто не міг з ними змагатися. Вижити змогли лише вузьконаправлені компанії. З’являється Apple Lisa – перший комп’ютер, що використовує графічну операційну систему. Compaq створює перші портативні комп’ютери, займає нішу на ринку і викуповує колишніх лідерів цього сегменту DEC.
Якщо Intel наніс перший удар по IBM, то другим став удар від дрібної компанії Microsoft, яка займалася виробництвом ОС для IBM. Першою ОС був MS-DOS, пізніше Microsoft створив для IBM систему OS/2, а під шумок була створена Windows. OS/2 на ринку провалилася.
Таким чином, Intel і Microsoft скинули IBM. Останні намагаються вижити і генерують чергову революційну ідею, створюючи процесор з двома ядрами. Відбувається вдосконалення апаратного та програмного забезпечення ПК за рахунок різноманітних оптимізацій.
П’яте покоління
Але розвиток не стоїть на місці. Відбувається зміна парадигми, з’являються передумови 5-го покоління комп’ютерів. Все почалося з японського уряду, який в 1980-х виділив колосальні кошти національним компаніям і наказало їм винайти наступне покоління комп’ютерів. Зрозуміло, ідея провалилася.
Але вплив цієї події було великим. Японські технології стали розповзатися по світу. Ця техніка зайняла лідируючі позиції у багатьох областях відповідного ринку: фотоапарати, аудіообладнання і т. д. Захід не збирався просто так здаватися і теж включився у боротьбу за 5-е покоління.
Компанія Grid Systems випустила перший планшетний комп’ютер Apple створила кишеньковий Newton. Так з’явилися PDA, або електронні помічники, або кишенькові комп’ютери.
І тут фахівці IBM роблять черговий прорив і підносять нову ідею – вони об’єднують набирають популярність мобільні телефони з як користувачами PDA. Таким чином, в 1993 на світ з’являється перший смартфон під назвою Simon.
Частково 5-м поколінням можна вважати зменшення програмного і апаратного забезпечення в розмірах. А також той факт, що сьогодні міні-комп’ютери вбудовуються в будь-яку техніку: від смартфонів і електрочайників до автомобілів і рейок поїздів – і розширюють її функціональність. Варто також відзначити шпигунські розробки з апаратним захистом програмного забезпечення. Більш непомітні, покликані виконувати свої унікальні функції.
Типи комп’ютерів
Не обмежуються тільки апаратним і програмним забезпеченням ПК. На сьогоднішній день їх існує безліч:
- одноразові комп’ютери: поздравляющие листівки, RFID;
- мікроконтролери: годинники, іграшки, мед. обладнання та інші прилади;
- мобільні телефони та ноутбуки;
- персональні комп’ютери;
- сервери;
- кластери (кілька серверів, об’єднаних в одне ціле)
- мейнфрейми – комп’ютери для пакетної обробки великих обсягів даних;
- “хмарні технології” – мейнфрейми другого порядку;
- суперкомп’ютери (хоча цей клас заміщається кластерами, які здатні також виконувати серйозні розрахунки).
Враховуючи дану інформацію, апаратне і програмне забезпечення може бути підлаштовано під різні потреби.
Сімейства комп’ютерів
Апаратно-програмне забезпечення персонального комп’ютера (і не тільки його) розрізняється за домами. Найбільш популярними сімействами є X86, ARM і AVR. Під сім’єю розуміється архітектура набору команд. До першого сімейства – X86 – відносяться майже всі персональні комп’ютери та сервери (як на ОС Windows, так і Linux і навіть Mac).
До другого – ARM – мобільні системи. Нарешті, до третього – AVR – відноситься більшість мікроконтролерів, тих самих непомітних комп’ютерів, які вбудовуються всюди: в машини, електроприлади, телевізори тощо
X86 розробляється Intel. Їх процесори, починаючи від моделі 8080 (1974 р.) і до Pentium 4 (2000 р.), мають зворотної сумісності, тобто новий процесор здатний виконувати програми, написані для старого.
Спадковість апаратного і програмного забезпечення – робота крізь цілі покоління процесорів, що зробило Intel такими універсальними.
Компанія Acorn Computer стояла біля витоків створення проекту ARM, який пізніше відокремився і став самостійним. Архітектура ARM довгий час користується успіхом в сегменті ринку, де потрібно знижене енергоспоживання.
Компанія Atmel найняла двох студентів, у яких була цікава ідея. Вони, продовживши розробку, створили процесор AVR, який відрізняється тим, що відмінно підходить для систем, яким не потрібна висока продуктивність. Процесори AVR укладаються в суворі умови, коли стоять жорсткі обмеження на розмір, енергоспоживання і потужність.