понедельник, 15 октября 2012 г.

Перевод чисел из одной системы счисления в другую

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

Перевод чисел из одной системы счисления в другую

 Привожу примеры перевода из одной системы счисления в другую.
1)Перевод из 16 с.с. в 10 с.с.

9E16 =9*161+14*160=144+14=158;  
2)Перевод из 10 с.с в 8 с.с.
Здесь мы должны делить наше число на основание системы в которую хотим перевести число (то есть в данном случае на 8)! Собираем полученные при делении цифры, снизу вверх.
6210= 768
3)Перевод из 10 с.с в 16 с.с.

В 16 с.с. мы используем кроме цифр буквы: A,B,C,D,E,F. Поэтому при переводе из десятичной с.с. в 16 с.с., если вам встречаются числа: 10,11,12,13,14,15, то не забывайте их заменять буквами A,B,C,D,E,F!

9210= 5C16

Надо еще помнить, что  пинг адреса 172.16.1.70 и к примеру 172.016.001.070 это разные адреса - последний будет пытаться слать английский алфавит ;) на адрес 172.14.1.56 .
То есть пинг - вполне себе  калькулятор перевода из восьмеричной или шестнадцатеричной  сс в 10сс.

понедельник, 3 сентября 2012 г.

Этапы загрузки системы c Linux

При включения компьютера, первоначально происходит запуск BIOS (basic input/output system — «базовая система ввода-вывода»), которая  производит инициализацию и  проверку аппаратных средств машины (POST - power-on-self-test). Сама BIOS представляет из себя микросхему с неизменным набором микропрограмм (ПЗУ), пользовательские настройки к которым находятся в динамической энергозависимой памяти CMOS. По завершению тестирования, BIOS ищет на доступных носителях информации запись MBR - данные необходимые для дальнейшей загрузки операционной системы расположенную в первых секторах носителей, загружает его в оперативную память и передает ей управление.

В MBR находится программа-загрузчик (скорее всего GRUB(GRand Unified Bootloader), так как LILO(LInux LOader) уже практически не используется). Основная задача загрузчика состоит в переносе ядра ОС в оперативную память и передача ему управления дальнейшим функционированием компьютера.

Ядро при загрузке производит опрос присутствующих устройств с целью определения "что есть в системе". Если драйвер вкомпилирован в ядро, то устройство инициализируется, а если нет, то оно должно подключиться в виде модуля, а модуль лежит в виде файла на файловой системе, причем на неизвестно каком носителе. То есть для загрузки модулей ядра порождения процесса init (отвечающего за создание процессов описанных в /etc/inittab) необходимо получить доступ к файловой системе. Но файловая система не является частью ядра - значит её модуль тоже надо загрузить из файла который лежит где? Правильно, где то на диске.
Для решения этой проблемы была реализована технология initrd, а в настоящий момент initramfs.

initramfs - виртуальная файловая система, образ которой хранится рядом с образом ядра. при этом минимальный набор драйверов включается в ядро, а остальные подгружаются в виде модулей из виртуальной системы.
Цитата:
 Все сказанное выше относительно процедур загрузки и использования файла initrd справедливо для ядер версии 2.4.xx и более ранних. В ядрах версии 2.6 (а точнее, начиная с экспериментального ядра версии 2.5.46) разработчики решили реализовать иной механизм. Причиной послужили несколько недостатков ранее использовавшегося варианта реализации временной корневой файловой системы.
Во-первых, виртуальный диск, как и все блочные устройства, требует драйвер файловой системы для интерпретации данных во время выполнения. Этот драйвер приходилось включать в ядро.
Во-вторых, неэфективно используется оперативная память, так как размер виртуального диска фиксирован и не может изменяться во время работы без его переформатирования (даже если диск не заполнен, невозможно отдать эту память под другие нужды).
В третьих, в Linux осуществляется кэширование всех файлов и записей каталогов, прочитанных или записанных на блочное устройство. Виртуальный диск тоже кешируется, как и обычные диски, то есть часть данных будет храниться не только на RAM диске, но и в страничном кэше "page cache" (для файловых данных) и в кэше для записей каталогов "dentry cache", что еще больше снижает эффективность использования памяти.
Для устраненеия этих недостатков Линус Торвальдс предложил монтировать кэш ядра Линукс как особую файловую систему, работающую полностью в кэше ядра. При этом нет лишнего дублирования информации между блочным устройством и кэшем, так как блочного устройства попросту нет. Файловая система, реализующая эти идеи, была разработана и получила название initramfs. Ее использование имеет следующие преимущества:
  • Система, использующая initramfs в качестве корневой файловой системы, более не нуждается в соответствующем драйвере файловой системы, встроенном в ядро, так как нет блочных устройств для интерпретации файловых систем.
  • Размер этой файловой системы автоматически изменяется в соответствии с обьёмом данных, которые она содержит. При добавлении новых файлов (как и при расширении существующих) автоматически выделяется память, при удалении или уменьшении файла происходит высвобождение памяти.
  • Достоинством initramfs является также то, что это не новый код, а новое применение уже существующего кода кэширования ядра Линукс, что практически не влечёт увеличение размера ядра, выполнение будет очень простым и основано на чрезвычайно хорошо протестированной инфраструктуре.
  • Исчезают некоторые проблемы загрузки с SATA-дисков.
  • Initramfs загружается немного быстрее, чем initrd.
Формат initramfs используется по умолчанию для всех ядер, начиная с версии 2.6.15.

После загрузки модулей происходит монтирование корневой системы в режиме "только чтение"
и запуск процесса init, который является родоначальником всех других процессов в LINUX.
init отвечает за продолжение загрузки системы и перевод её от состояния "после загрузки ядра"  к рабочему состоянию обработки запросов многих пользователей. init так же выполняет много различных операций необходимых для дальнейшей работы операционной системы, таких как проверка и монтирование файловых систем, запуск различных служб и демонов, запуск процедур логирования, загрузка оболочек пользователя...


Для подробной информации стоит воспользоваться следующими ресурсами на основе которых была написана эта статья:
  1. Исследуем процесс загрузки Linux  ,
  2. Новая модель инициализации initramfs
  3. Процесс загрузки Linux

вторник, 22 мая 2012 г.

Установка Ubuntu по сети и настройка кэширующего сервера обновлений

Описание здесь
sudo apt-get install apt-cacher.
Создаем и назначаем права на папку, которая будет хранить пакеты.
Настройки apt-cacher хранятся в /etc/apt-cacher/apt-cacher.conf.
Настройка Apache:
Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl Options ExecCGI, AddHandler cgi-script .pl.
Запускаем демона
sudo /etc/init.d/apt-cacher start.
По умолчанию сервер будет работать на 9999 порту. На клиентских машинах редактируем файл: /etc/apt/sources.list, раскоментируем настройки и добавляем:
deb updateserver:9999/ubuntu intrepid multiverse restricted main universe
, где updateserver – это имя компьютера на котором мы только что подняли apt-cacher.

четверг, 1 марта 2012 г.

Samba с асторизацией через AD

За основу и рыбу была взята замечательная статья:
Samba c доменной авторизацией и правкой пермишенов через галочки автора lissyara/

# yum install samba-winbind krb5-workstation samba

Указываем использовать winbind в /etc/nsswitch.conf

passwd: files winbind
shadow: files
group: files winbind
hosts: files dns

Правим конфиг самбы:
[global]
workgroup = BITZA
realm = BITZA.LAN
server string = Samba Server Version %v
interfaces = lo, eth0
security = ADS
password server = fs.bitza.lan dc.bitza.lan
log file = /var/log/samba/log.%m
max log size = 50
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
admin users = "@BITZA\Domain Admins", BITZA\admin
hosts allow = 172.16.1., 127.
cups options = raw

[SVN_conf]
comment = SVN configuration
path = /var/svn/conf
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

[TRAC_conf]
comment = SVN configuration
path = /var/trac-projects
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

Ну и на всякий случай как ввести машину в домен:

# more /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = BITZA.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
BITZA.LAN = {
kdc = fs.bitza.lan
admin_server = fs.bitza.lan
}

[domain_realm]
.example.com = BITZA.LAN
example.com = BITZA.LAN

Получаем тикет:
# kinit -p admin
Password for admin@BITZA.LAN: # Вводим пароль администратора домена
Вводим машину в домен:
net ads join -U admin

пятница, 3 февраля 2012 г.

Нужные команды в консоли и горячие клавиши, которые я пытался забыть.

GENTOO:
elogv - оболочка для парсинга вывода результата emerge



CONSOLE:
CTRL-A - переход к началу строки (+CISCO CLI)
CTRL-E - переход к концу строки (+CISCO CLI)