Wednesday, September 15, 2021

Linux versus Unix briefly

 Поскольку Linux - это просто ядро, стоит обсудить основные различия между ядром Linux и ядром  Unix. Существует три типа ядра: монолитное, микро и гибридное (сочетание монолитного и микро), как показано на изображении ниже.






В монолитной архитектуре ядра вся ОС работает в пространстве одного ядра. Оно единолично определяет высокоуровневый виртуальный интерфейс поверх компьютерного оборудования.Хотя ядро ​​Linux заимствует большинство своих характеристик от Unix / Unix-подобных ядер, однако между ними есть некоторые существенные различия. В архитектуре микроядра основные службы ОС работают в одном процессе, а другие службы - в разных процессах. В ядре µ почти минимальное количество механизмов включено в режим ядра. Эти механизмы включают базовый IPC (межпроцессное взаимодействие), планирование и низкоуровневое управление адресным пространством.С точки зрения размера исходного кода, как правило, микроядро меньше монолитного ядра.











Добавление / удаление функций ядра Предоставляет отличную функцию, с помощью которой компоненты ядра, такие как диски устройств, могут быть динамически добавлены и удалены как модули. Эта функция называется загружаемыми модулями ядра (LDM). Это избавляет от необходимости заново компилировать все ядро. Эта функция, в свою очередь, дает Linux большую гибкость.

Традиционное ядро систем Unix требует статической компоновки добавляемых новых систем. В Linux нет подсистемы потокового ввода-вывода. В большинство ядер Unix включена подсистема потокового ввода-вывода, которая оказывается желаемым интерфейсом для написания драйверов устройств, драйверов терминалов и т. д.

Превентивный подход или подход без вытеснения Обычно ядро ​​Linux не является вытесняющим. Однако в последнее время ОС реального времени Linux начала использовать вытесняющие ядра. Некоторые системы Unix полностью вытесняют.Например, Solaris 2.x. и т.п.

Поток ядра Linux использует поток ядра только для периодического запуска некоторого кода ядра. Многие Unix-подобные операционные системы используют поток ядра для переключения контекста процесса. Способы обработки многопоточной среды Благодаря многопоточности создается несколько независимых потоков выполнения, которые называются облегченными процессами (LWP). В Linux LWP создается путем вызова функции clone (). Эти процессы в Linux могут совместно использовать физическую память, открытые файлы, адресное пространство и т. д. В Unix LWP основан на потоках ядра.

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

Способы обработки многопоточной среды - 
Благодаря многопоточности создается несколько независимых потоков выполнения, которые называются облегченными процессами (LWP). В Linux LWP создается путем вызова функции clone (). Эти процессы в Linux могут совместно использовать физическую память, открытые файлы, адресное пространство и т. д. В Unix LWP основан на потоках ядра.

Примеры

До сих пор в этой лекции мы видели общие основные различия между Linux и Unix. 
Эти различия могут быть более конкретными, если мы сравним их точные версии. Давайте посмотрим на это на нескольких примерах.

Солярис против Linux
Solaris, которая теперь называется Oracle Solaris, - это операционная система семейства Unix. Давайте сравним Linux с Solaris.
Linux поддерживает больше системных архитектур, чем Solaris. Следовательно, Linux более портативен.
Говоря о стабильности и интеграции оборудования, Solaris, похоже, здесь лучше. Linux также быстрее развивается по сравнению с Solaris.
Между ними есть несколько других технических различий, но здесь мы ограничиваем наше сравнение только производительностью.

MacOS против Linux
MacOS - это сертифицированная ОС Unix. У него есть собственное ядро ​​под названием XNU. 
Он используется в компьютерах Apple, которые считаются самыми надежными.MacOS относительно легко настроить. С другой стороны, Linux дешевле и предлагает много программного обеспечения с открытым исходным кодом по сравнению с проприетарными решениями Apple. Кроме того, Linux более гибок, поскольку его можно запускать практически на любом оборудовании, тогда как MacOS может работать только на оборудовании Apple. Например, айфоны.MacOS использует HFS + в качестве файловой системы по умолчанию, тогда как Linux использует ext4.

Ссылки

https://www.softwaretestinghelp.com/unix-vs-linux/




Tuesday, September 14, 2021

Solving one problem from YandexQ as 14/09/2021

 















[boris@fedora34server ~]$ cat  yandexPlot.py

import matplotlib.pyplot as plt

from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,

                               AutoMinorLocator)

import numpy as np

x = np.linspace(0, 30, 30)

y1 = np.cos(np.cos(np.cos(np.cos(x))))

y2 = np.sin(np.sin(np.sin(np.sin(x))))

fig, ax = plt.subplots(figsize=(8, 6))

ax.set_title("Графики зависимостей: y1, y2", fontsize=16)

ax.set_xlabel("x", fontsize=14)        

ax.set_ylabel("y1, y2", fontsize=14)

ax.grid(which="major", linewidth=1.2)

ax.grid(which="minor", linestyle="--", color="gray", linewidth=0.5)

ax.scatter(x, y1, c="red", label="y1")

ax.plot(x, y2, label="y2")

ax.legend()

ax.xaxis.set_minor_locator(AutoMinorLocator())

ax.yaxis.set_minor_locator(AutoMinorLocator())

ax.tick_params(which='major', length=10, width=2)

ax.tick_params(which='minor', length=5, width=1)


plt.show()

[boris@fedora34server ~]$ python  yandexPlot.py


















Next iteration

[boris@fedora34server ~]$ cat  yandexPlot5.py

import numpy as np # import numpy package

import matplotlib.pyplot as plt # import matplotlib.pyplot package

x = np.arange(0,9 * np.pi, 0.1) # create x array of angels from range 0 to 9*3.14

y = np.cos(np.cos(np.cos(np.cos(x)))) -   np.sin(np.sin(np.sin(np.sin(x)))) 

plt.plot(x, y) # plot grah 

plt.title(" Graphical Representation of sine function")

plt.xlabel("x axis ")

plt.ylabel("y axis ")

plt.show() # show plotted graph






























Thursday, September 2, 2021

HTML CONVERSION

Условие Расшифровать пример на умножение, если буквой Ч зашифрованы чётные числа, а буквой Н – нечётные.
Решение Запишем пример в виде

(строчные буквы соответствуют чётным цифрам, а прописные – нечётным).
A < 5,так как Abc·d – трёхзначное число. Но A > 1, так как Abc·d – четырёхзначное число.Следовательно,A=3,d=2,j = 6. Abc·6 = 3·Abc·2 = 3·jKl < 2000 < fGhj, поэтому e = 8, f = 2.
Из нечётности K следует, что c > 5. Так как j = 6, то b < 6, но b ≠ 0 (иначе цифра K была бы чётной). Таким образом, для Abc имеется четыре варианта: 326, 328, 346, 348. Умножая на 28, находим единственное решение: 348·28 = 9744.
Ответ 348·28 = 9744.