Сторінки

вівторок, 21 жовтня 2014 р.

Системи числення

Вісімкова система числення
Ось якби природа розпорядилась по іншому так, що в людей було б не по п'ять а по чотири пальці на кожній руці? Тоді мабуть цифр було б вісім. І ми зараз, мабуть, використовували б вісімкову систему числення! І така система дійсно існує. І як вона виглядає, запитаєте ви? Ну, по-перше вона має лише вісім цифр.
Для зручності користування використовують перші вісім знаків десяткової системи: 0, 1, 2, 3, 4, 5, 6 і 7. Спробуєм уявити, як потрібно записувати числа й вісімковій системі, за умови, що правила складання числа з окремих цифр будуть такими ж, як і в десятковій системі числення.
Числа від нуля до семи будемо записувати як і в десятковій системі, будем записувати за допомогою одної цифри. В даному випадку числа, записані в дксіткрвій і вісімковій системах, не будуть відрізнятись. Далі в десяткові системі йде число вісім. Цифра 8 у вісімкові системі відсутня!
Далі ми вчинимо у відповідності до описаних вище правил. Ми спробуємо додати новий розряд, який буде рівний в нас одиниці. Молодший розряд буде рівний нулю. При цьому число 8 у вісімковій системі числення буде виглядати 10. Для, того щоб не плутатись, при записах чисел у різних системах числення в математиці прийнято помічати кожне число спеціальною міткою, яка показує в якій системі числення записано число.
Ось декілька прикладів запису числа в різних системах числення:
9 в 10=11 в 8, 10 в 10=12 в 8, 11 в 10=13 в 8 і так далі.
Далі розряди додається за аналогією.
Кількість цифр, використовуваних в системі числення, називають її основою. Десяткова система числення має основу 10, а вісімкова - основу 8. Ну тепер, мабуть, легко можна уявити системи з іншими основами.
Реально на практиці найшли застосування, крім десяткової і вісімкової системи, ще дві системи: шіснадцяткову та двійкову. Причому остання (двійкова система) і є тією системою чисел, яку інженери з легкістю змогли виразити за допомогою електронних схем. Вісімкова і шістнадцяткова системи числення зручні для запису комп'ютерних даних на папері і на екрані комп'ютера.

Шістнадцяткова система числення
У шістнадцяткові система числення, як ви вже здогадались, використовується шістнадцять цифр. Звичайно для позначення перших десяти цифр використовують ті ж самі символи, що і для десяткової системи. А ще шість невистачаючих замінююьб буквами латинсткого алфівіту. Ось повний набір: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E та F.
Одним розрядом у шістнадцятковій системі числення можна записати число від нуля до п'ятнадцяти. Число 16 в десятковій записується, як 10 в шістнадцятковій. Використання букв може заплутати. Тому перед шістнадцятковим числом що починається з букви прийнято ставити ні нащо невпливаючий 0.

пʼятницю, 17 жовтня 2014 р.

Мова програмування С

Мова програмування С, в якій поєднується потужність і гнучкість універсальних мов програмування з високою ефективністю виконавчого коду та можливістю безпосереднього доступу до апаратних ресурсів комп'ютера, є однією з фундаментальних і найбільш уживаних мов проблемно-орієнтовного ти системного програмування. Тому глибоке знання і практичне володіння інструментальним засобом мови С обов'язкове для фахівців з програмного забезпечення комп'ютерів, комп'ютерних інформаційних технологій, систем автоматизованого керування й проектування, комп'ютерної інженерії, а також для всіх, хто пов'язує свою діяльність з комп'ютером і бажає опанувати науку програмування.

Створення та розвиток мови С. Мову С розробив на початку 70-х років минулого століття Деніс Рітчі (Dennis M. Rirchie), співробітник фірми Bell Telephone Laboratories (США). Спочатку мова створювалась як ефективний  і зручний професійний інструментарій, призначений для програмування операційної системи UNIX. Попередницями С були мови BCPL та B. Довший час фактичним стандартом мови C слугувала її реалізація в 7-й версії UNIX, описана Б. Керніганом (Brian W. Kernigkhan) та Д. Рітчі в першому виданні відомої усі програмістам книги "The C Programming language" (1978р). Цю версію мови прийнято позначати K&R.
Властивості мови С настільки захопили програмістів, що незабаром її стали широко використовувати для створення програм у різних практичних сферах. З'явилося багато версій і діалектів мови , часто несумісних між собою. Тому в 1983р. був сформований комітет із розроблення стандарту мови С. Шість років створювався стандарт С, який у 1989р. затвердив Американський національний інститут стандартизації (ANSI-American National Standarts Institute), а в наступному році - Міжнародна організація стандартизації (ISO - International Standarts Organization). Цей стандарт називають ANSI/ISO C, його повністю підтримую переважна більшість сучасних компіляторів мови С.
З 80-х років мовою С розробляють програми практично для всіх типів комп'ютерів: великих універсальних ЕОМ (мейнфреймів), міні-ЕОМ та персональних комп'ютерів, включаючи IBM-сумісні та комп'ютери Macintosh, а також для різних операційних середовищ: MS DOS, UNIX, Windows, Linux, Mac OS, OS/2 та інших. Створюються системи програмування С, до складу яких входять бібліотеки з широким набором різнотипних функцій та інтегровані середовища розробки (IDE - Integrated Development Enviroment). IDE призначені для швидкого та наочного запису й редагування текстів програм, їх компіляція та налагодження , а також для компонування великих програмних проектів. Одним з найбільш популярних IDE визнано Borland C/C++ фірми Borland International (тепер Inspire), розроблене для створення програмних продуктів мовами C та C++ в операційних середовищах MS DOS та Windows.
У 1999р. затверджено новий стандарт С, який не змінив базових концепцій та структури мови, а лише частково доповнив їх і розширив стандартні бібліотеки з урахуванням нових апаратних і системних можливостей комп'ютерів. На жаль, компілятори С-99 та відповідні середовища програмування ще не набули належного поширення .
Мова С стала основою створення і розвитку низки мов об'єктно-орієнтованого програмування, зокрема: C++, Java, C#. Першою назвою С++ була "C з класами", чим підкреслюють, що С становить фундамент нової мови, а саму мову С навіть оголовили підмножиною С++, проте згодом їх визнали двома самостійними мовами. Насправді, мова С++ є розширенням мови С, оскільки компілятори С++ підтримують усі синтаксичні конструкції та властивості мови С. Додатково С++ включає спеціальні засоби та бібліотеки, які реалізують принципи об'єктно-орієнтованого програмування.

Загальна характеристика мови С. Сучасна універсальна мова програмування С призначенна для створення прикладних (ужиткових) програмних продуктів і системних компонентів програмного забезпечення комп'ютерів. Підкреслимо основні риси мови С.
Потужність і гнучкість - ці терміни вживають найчастіше, характеризуючи С. Мовою С написано більшу частину програм універсальної і потужної операційної системи UNIX, створено ряд компіляторів та інтерпретаторів з різних мов програмування (зокрема Pascal, APL, LISP, Basic тощо), розроблено велику кількість інтерфейсів, різноманітних інструментальних засобів, в т. ч. текстових і графічних редакторів, систем і спеціалізованих програм для наукових досліджень, комп'ютерних ігор та багато іншого.
Ефективність. Програми мовою С достатньо швидкодійні й економічні за обсягами оперативної пам'яті, оскільки вони базуються на реальних можливостях комп'ютера. Це пов'язане з тим?, що С, хоча і є універсалною мовою програмування, але вона належить до мов високого рівня, як наприклад, Pascal, Ada, Modula-2, чи Basic. C - мова середнього рівня, яка може оперувати безпосередньо з даними та їх елементами: байтами, бітами, словами, адресами. Цим С-програми подібні до програм, написаних мовою асамблера, їх можна налаштовувати або на максимальну швидкодію, або на оптимальне використання оперативної пам'яті.
Структурованість. С належить до мов, які реалізують принципи структурованого підходу, зокрема проектування програми "зверху в низ", модульність, локалізацію області дії імен, автономність підпрограм, відокремленого коду програми від даних та інші. Структурованість С-програм близька до структурованості програм, написаних мовами Pascal чи Modula-2. Натомість С використовує єдиний вид підпрограм - функції. Мова С підтримує практично всі керуючі конструкції, а також типи і структури даних, які визнані сучасною теорією та практикою програмуваня як найбільш ефективні.
Орієнтація на професіоналізм програміста. Одна з базових концепцій С - високий рівень довіри програміста, Стваренна для потреб програмістів-професіоналів, мова С надає користувачеві широку свободу вибору форм даних і засобів програмування. Водночас потрібно пам'ятати, що відсутність контролю може призвести до небезпечних помилок у роботі програми, тому на програміста лягає значно вища, ніж в інших мовах, відповідальність за правильність результатів виконання програми.
Лаконізм. Ще однією рисою С, яка приваблює програмістів, є лаконізм запису конструктивних компонентів програм, пов'язаний перед усім з не великою кількістю ключових слів і потужним набором операцій. Програми мовою С можуть бути гранично компактними і короткими. Проте інколи надмірне прагнення до лаконізму робить програмний код малозрозумілим і сприятливим для помилок, які важко уявити. Недарма для С-програм традиційно проводять конкурс на найбільш заплутану програму.
Мобільність. Важливою рисою сучасних мов програмування є їх мобільність, яка дає змогу переносити програму, написану в одній системі програмування (тобто на певній операційній платформі) в інше операційне середовище. Мова С належить до мов, які характеризуються доброю мобільністю: перенесення програми вимагає мінімальних змін або доповнень. Безумовно, ті програми чи програмні компоненти, що використовують не стандартні засоби мови, а орієнтуються на конкретне апаратне забезпечення (наприклад, на певний вид відеосистеми або особливості механізму звертання файлів), залишаються немобільними.
Підсумовуючи сказане, можна зробити загальний висновок: С - універсальна мова програмування середнього рівня, яка підтримує більшість сучасних концепцій програмування, характеризується достатньою потужністю, доброю структурованістю, високою ефективністю, можливістю безпосереднього доступу до даних, компактністю та мобільністю програм. Основним недоліком мови є низька надійність через широку  свободу і неконтрольованість дій програміста.

Слово до читача. Щоб навчитись програмувати, недостатньо ознайомитись з мовою чи переглянути певну кількість програм. Необхідно самостійно
складати та реалізовувати програми, перевіряючи їх працездатність за різних умов виконання, шукати оптимальні програмні рішеня й експерементувати, вдосконалювати зміст і стиль запису програм.
Потужна за своїми можливостями і водночас не надто складна, лаконічна й елегантна мова С, яка відповідає більшості сучасних вимог до мов практичного програмування, дає змогу всебічно оволодіти майстерністю створення програм. "..чим більше працюєш із мовою C, тим зручнішою вона стає," -зазначали у передмові до своєї книги Б. Керніган і Д. Рітчі. Цю тезу можуть підтвердити тисячі прогрпмістів по всьому світі.

середу, 23 липня 2014 р.

Що таке мікропроцесор

Мікропроцесор нолічує досить довгу історію. До того, як винайшли мікропроцесор (процесор на одніймікросхемі), існували цілі процесорні блоки ц великих комп'ютерах. Тепер інтеграція пішла ді фантастичних меж. Одна мікросхема вміщує не тільки сам процесор, але ще й супутні йому елементи. Цілий комп'ютер в одній мікросхемі. Така мікросхема називається мікроконтролером. Що ж це за супутні елементи? Це дуже важливі складові частини мікропроцесорної системи. Без них не може обійтися ні один мікропроцесор.Отож складові типової мікропроцесорної системи: Процесор, модуль пам'яті, порти вводу-виводу (imput-output). Тепер детальніше.

Пам'ять. Це спеціалізований електронний пристрій, який представляє собою набір кластерів, в кожному з яких може зберігатися одне число, приймаюче значення від 0 до 255. Детальніше про це далі.

Порти вводу-виводу. Це спеціальні мікросхеми, за допомогою яких мікропроцесорна система може спілкуватися з зовнішнім
світом. Через порти вводу комп'ютерна система отримує інформацію ззовні, і відповідно навпаки з портами виводу вони
видають результати своєї роботи і керують зовнішніми пристроями.

Процесор - це найголовніша частина, серце системи. Він призначений для того, щоб виконувати різні операції з числами.
Послідовність цих операцій називається програмою. Кожна операція кодується у вигляді числа та записується у пам'ять. Ті
числа, з якими процесор виконує операції, називаються даними. Дані таож записані в пам'ять. По суті діла, процесор - це
цифровий автомат, здатний виконувати вибраний набір операції з числами. Але головною його особливістю являється
можливість запрограмувати будь-яку послідовність його дій.

Всі три частини обчислювальної системи зв'язані між собою так званими шинами даних. По цих шинах передаються цифрові
сигнали від процесора до модуля пам'яті, від процесора - до портів вводу-виводу. І також навпаки. Які операції може
виконувати процесор? Всі прості операції, які можна провести над числом. Він може зчитати число з будь-якого кластера
пам'яті, складати, вираховувати, іноді множити і ділити зчитані числа. Результат завантажує назад в па'мять. Крім арифметичних дій, процесор може виконувати логічні операції з числами (Булеві функції). Набір операцій, які процесор спроможний виконати за участі портів вводу-виводу, набагато менше, чим операцій з кластерами пам'яті. В них також можливо записувати і зчитувати інформаці. Проте зберігання чисел - це не головне призначення портів.
Через порти вводу-виводу проходять відповідні електронні сигнали призначені для керування мікропроцесорним пристроєм, або виводу готового результату.
Ці сигнали використовуються для керування. Керувати можна будь-якими пристроями, який допускає електронне керування, це: індикатори; дисплеї; електромагнітні реле; електромотори; електропневмоклапани; електричні нагрівники і т. д.

Необхідно тільки підсилити керуючі сигнали до потрібної потужності. Крім перелічених вище команд в будь-який мікропроцесор закладений набір спеціальних команд, специфічних для задач керування процессом обчислень.

Виробники мікропроцесорів турбуються про те, щоб закласти в мікропроцесор достатній набір команд для рішення будь-яких  можливих задач. Використовуючи ці команди, розробник конкретної мікропроцесорної системи може створити свою власну програму, яка буде змушувати мікропроцесор виконувати саме ті дії, які йому необхідні. Розроблена програма записується у відповідну область пам'яті і зберігається там постійно.

понеділок, 21 липня 2014 р.

Linux – це просто як Borsch

У цьому посібнику розглянуті методи роботи з ОС Linux на базі інсталяційної збірки
Borsch. Збірка створена на основі Debian GNU/Linux. Відбір програм здійснювавася з
метою використання цієї збірки у шкільному курсі інформатики на ПЕОМ з процесором
Intel Celeron 466 і 128 Мб оперативної пам'яті. Розгянуті методи роботи з графічними
оболонками XFCE, Gnome і KDE. Подана інформація про офісні пакети
OpenOffice.org1.1.0 і GNOME Office. Розглянуті методи роботи з комп'ютерними
словниками, педагогічними програмними продуктами а також виконання MS Window-
програм за допомогою системи Wine. Викладено основи адміністрування ОС Linux.
Для вчителів і викладачів інформатики.


Відомості про авторів:
Степан Апуневич, науковий співробітник астрономічної обсерваторії Львівського
національного університету імені Івана Франка, кандидат фізико-математичних наук. Автор
розділів 1.1, 1.5, 1.6.1 – 1.6.8, 2.3.3;
Василь Бойко, студент другого курсу факультету електроніки Львівського
національного університету імені Івана Франка. Автор розділу 1.6.9;
Григорій Злобін, доцент кафедри радіофізики Львівського національного університету
імені Івана Франка, кандидат технічних наук. Автор розділів 1.2 – 1.4, 2.1 – 2.4 (за винятком
2.3.3.), 2.5.7, 2.5.8 , 2.7.3;
Сергій Кудрик ,інженер. Автор українізації офісних пакетів OpenOfficeorg 1.1,
OpenOfficeorg 2.0;
Валерій Семенюк, вчитель інформатики Львівської СШ№80, методист Львівського
обласного інституту освіти. Автор розділу 2.6.

неділю, 6 липня 2014 р.

Linux команди конвертування різної інформації

  Конвертування тексту

#dos2unix filedos.txt fileunix.txt              #Конвертувати файл текстового формату з MS DOS в UNIX (різниця в символах повернення кaретки)
#unix2dos fileunix.txt filedos.txt              #Конвертувати файл текстового формату з UNIX в MSDOS
#iconv -l                                       #Виводить список всіх доступних кодувань
#icov -f cp1251 -t UTF-8 file.txt -o file2.txt  #Зміна кодування. Був файл file.txt з кодуванням cp1251, а став файл file2.txt з кодуванням utf-8
#recode ..HTML < page.txt > page.html           #Конвертувати вміст текстового файлу page.txt в html-файл page.html

Конвертування PDF в JPEG

#convert name.pdf name-%03d.jpg                 #Конвертується name.pdf в посторінкові JPEG зображення (в деяких дистрибютивах необхідно встановити пакет imegemagick)
#convert *.jpeg name.pdf                        #Очевидно що це зворотній процес

Конвертування аудіо

Для конвертування аудіо необхідні додаткові 
#cdparanoia -B                                  #Копіювання треків з AudioCD в дану теку wav-файлами
#lame -b 256 in.wav out.mp3                     #Конвертування wav-файлів в mp3 з якістю 256kb/s
#oggenc in.wav -b 256 out.ogg                   #Конвертування wav-файлів в Ogg Vorbis з якістю 256kb/s

Linux команди для моніторингу роботи ОС

  Команди необхідні для моніторингу роботи операційної системи. Всі показники виводяться на екран в режимі реального
часу. Число, після команди означає інтервал часу виводу інформації. Команди дійсно корисні при налаштуванні вашого ПК.
#top         #  Інформфцфя в реальному часі про завантажені процеси, використання ОЗУ. За замовчуванням вона видає задачі які найбільше завантажують процессор, і оновлює список кожні 5 секунд. Найбільш часто використовувані гарячі клавіші:
  * t  Ввім/вим видачі сумарних даних
  * m Ввім/вим видачі інформації про використання пам'яті
  * A  Сортування рядків по максимальному використанню різноманітних ресурсів
  * f  Вхід в меню інтерактивного керування даними
  * o  Дозволяє вам інтерактивно задавати порядок рядків
  * r  Зміна пріорітета процесів за допомогою команди renice
  * k  Видалення процеса за допомогою команди kill
  * z  Перемикання між кольоровим і монохромним варіантом видачі зображення 
#htop        #  Більш розширена онлайн статистика
#dmesg       #  Показує log-файли завантаження ОС і пошук нових пристроїв
#mpstat 1    #  Показує розширену статистику використання ресурсів системи у відсотках
#vmstat 2    #  Розширена статистика використовування віртуальної пам'яті
#iostat 2    #  Розширена статистика переривів пристроїв
#w username      #  Виявляє інформацію про те, які користувачі знаходяться в системі і які процеси працюють від їх імені
#ps           #  Короткий список дійсних процесів
#free         #  Команда показує загальну кількість вільної і використовуваної пам'яті і пам'яті свопінгу, розмір буферів
#sar          #  Збір інформації про системну активність
#netstat      #  Мережевна активність
Здається все що необхідно. 
#iptraf       #Мережева статистика в режимф реального часу.
Команда iptraf завантажує кольоровий інтерактивний монітор, який слідкує за мережевим ip. Цей монітор видає в зручному для читання вигляді наступні дані
  * Статистику мережевого трафіку по TCP підключеням
  * Статистику IP трафіку по мережевих інтерфейсах
  * Статистику мережевого трафіку по протоколах
  * Статистику мережевого трафіку по портах TCP/UPD і по розмірах пакетів
  * Статистику мережевого трафіку по адресам протоколів другого рівня

#ss           #Вивід інформації про сокети і мережеві підключення TCP/UPD
#pmap          #Команда виводить дані про розподілення пам'яті між процесами. Для того, щоб отримати інформацію про використання пам'яті з процесом pid # 47394, введіть:
# pmap -d 47394
#mpstat        #Виводить дані про активність кожного в наявності процессора, процессор 0 буде першим.


 

неділю, 4 травня 2014 р.

Огляд дистрибютивів Linux їх історія та походження

У 1983 році Річард Столман заснував проект GNU з метою створення повноцінної Unix-подібної операційної системи (ОС) і наповнення її повністю відкритим програмним забезпеченням (Open Source). На самому початку 1990-х проект зібрав майже усі необхідні компоненти цієї системи: бібліотеки, компілятори, текстові редактори, командну оболонку , за винятком основного компоненту — ядра. У 1990 році проект почав розробку ядра GNU Hurd на основі мікроядра Mach, однак робота розпочалася із серйозними перешкодами і просувалася досить повільно.
Тим часом, у 1991 фінський студент Університету Гельсінкі, Лінус Торвільдс як своє хобі розпочав розробку іншого ядра. Спершу Торвальдс використовував на своєму комп'ютері Minix спрощену Unix-подібну операційну систему, розроблену Ендрю Тененбаумом з метою використання у навчальних цілях. Однак, Таненбаум не дозволив іншим розширювати його операційну систему, що спонукало Торвальдса створити заміну для Minix.
Спершу Торвальдс назвав своє ядро «Freax», що є схрещенням слів «free» та «freek», плюс додання літери «Х», котра часто використовується у іменах Unix-подібних операційних систем. Назву «Linux» придумав Арі Лемке, котрий на той час адміністрував FTP-сервер мережі фінських університетів, віддав назву «Linux» мережі, з якої проект Торвальдса був уперше доступний для завантаження.
На початку для налаштування та встановлення Лінукс був потрібен комп'ютер під керівництвом Minix. Перші версії Лінукса також вимагали наявності на твердому диску іншої операційної системи для здійснення завантаження, але пізніше з'явилися незалежні завантажувачі на кшталт LILO. Лінукс швидко перевершив Minix у функціональності; Торвальдс та інші ранні розробники ядра адаптували свою роботу для компонентів GNU та користувацького програмного забезпечення задля створення завершеної, повнофункціональної, вільної операційної системи.
Сьогодні Торвальдс продовжує координувати процес розробки ядра, у той час, як інші підсистеми, як то компоненти GNU продовжують розвиватися окремо (розвиток ядра Лінукс не є частиною проекту GNU). Інші спільноти і компанії комбінують і поширюють усі ці компоненти із додатковим прикладним програмним забезпеченням у вигляді дистртбютивів Лінукс.

Ось, так воно колись було, а тепер детальний перелік дистрибютивів можна знайти тут.
 Як бачимо існує три основні (не рахуючи маленькі) гілки дистрибютивів:
Debian, Slackware, Red Hat. Розписувати про кожен не буду цю інфу ви можете знайти на вікі. Кожен дистрибютив займає своє почесне місце та несе свою філософію, наприклад: Slackware - старий та консервативний дистрибютив який вважається корінним Linux, тобто з роками в ньому мало що змінюється, а філософія Ubuntu така що кожен користувач може користуватися системою не залежно віж вмінь чи досвіду.
Ось така незначна інформація більше запитуйте в коментарах.