Безопасность и оптимизация Linux


Техника оптимизации под линуха

Качество оптимизирующих компиляторов обычно оценивают по результатом комплексных тестов (мультимедийных, "общесистемных" или математических). Что именно оптимизируется и как — остается неясным. Основной "интеллект" оптимизаторов сосредоточен в высокоуровневом препроцессоре — своеобразном "ликвидаторе" наиболее очевидных программистских ошибок. Чем качественнее исходный код, тем хуже он поддается оптимизации. Только ведь… над качественным кодом _работать_ надо! Много знать и ожесточенно думать, ломая карандаши или вгрызаясь в клавиатуру. Кому-то это в радость, а кто-то предпочитает писать кое-как. Все равно, мол, компилятор, соптимизирует!
Желание перебросить часть работы на транслятор — вполне естественно и нормально (для творчества больше времени останется), но нужно заранее знать, что именно он оптимизирует, а что только пытается. Но как это можно узнать? На фоне полнейшей терминологической неразберихи, когда одни и те же приемы оптимизации в каждом случае называются по-разному, прячась за ничего не говорящими штаммами типа "copy propagation" (размножение копий) или "redundancy elimination" (устранение избыточности), требуется очень качественная документация на компилятор, но она — увы — обычно ограничивается тупым перечислением оптимизирующих ключей с краткой пометкой за что каждый из них отвечает. Какие копии размножает компилятор и с какой целью? Какую избыточность он устраняет и зачем? Не является ли размножение внесением избыточности, которую самому же оптимизатору и приходится удалять?!

Общие соображения по оптимизации
Обзор алгоритмов MOLAP

Оценочная оптимизация для магии алгебра и реализация
Обзор методов оптимизации запросов в реляционных системах

Безопасность и оптимизация Linux.Редакция для Red Hat

Linux это операционная система, которая изначально была создана как хобби молодого студента Линуса Торвальдса из Хельсинского университета в Финляндии. Линус интересовался Minix, небольшим вариантом UNIX, и решил разработать систему превосходящую Minix стандарт. Он начал свои работы в 1991 году, выпустив версию 0.02, и постоянно работал над ней до 1994 года, когда вышла версия 1.0 ядра Linux. Текущей версией ядра является 2.2 (выпущено 25 января 1999 года).
Linux распространяется под GNU General Public License и его исходные коды свободно доступны для всех желающих. Linux может использоваться как сетевая платформа, платформа для разработчиков и платформа для конечных пользователей. Linux часто считается как прекрасная и недорогая альтернатива других более дорогих операционных систем.



Введение
Рекомендации связанные с инсталляцией
Инсталляция вашего Linux сервера
Безопасность и оптимизация
Файл “/etc/profile”

Пакеты
Рекомендации связанные с сетью
Linux IPCHAINS
Маскарадинг и форвардинг в Linux
Функциональные возможности компилятора

Linux sXid
Конфигурации
Linux Tripwire 2.2.1
Linux GnuPG
Linux DNS и BIND сервер
Linux Sendmail сервер

Linux OPENSSL сервер
Linux OpenLDAP сервер
Прокси сервер Squid
Linux MM – библиотека совместно используемой памяти
Опциональные компоненты устанавливаемые с веб-сервером Apache - Webalizer

Linux Samba сервер
Резервное копирование и восстановление в Linux
Советы, рекомендации и задачи администрирования

Операционная система UNIX

Проект операционной системы Multics: неудача с положительными последствиями С 1965 по 1969 год компания Bell Labs совместно с компанией General Electric и группой исследователей из Масачусетского технологического института участвовала в проекте ОС Multics. Целью проекта было создание многопользовательской интерактивной операционной системы, обеспечивающей большое число пользователей удобными и мощными средствами доступа к вычислительным ресурсам. В этом курсе мы не ставим задачу познакомить слушателей с ОС Multics. Это могло бы быть темой отдельного большого курса. Однако отметим хотя бы некоторые идеи, которые содержались в проекте MAC (так назывался проект ОС Multics).

Исследовательский UNIX
Базовые библиотеки

Delphi 3. Библиотека программиста

Программисты (особенно начинающие) любят задавать вопросы типа: «Скажи, на чем ты пишешь?..» Когда-то этот вопрос выглядел вполне логично. Компиляторы, отладчики, серверы, системы управления базами данных и все остальное только-только выходило из каменного века. Программные инструменты разительно отличались друг от друга по качеству и возможностям. Стоило сделать ставку на неудачный инструментарий, и работа становилась излишне тяжкой, а качество результата - низким.
Сегодня стал актуальным другой вопрос: «А чего стоишь ты сам?» Благодаря непрерывной конкуренции современные средства разработчика стали невероятно мощными и качественными, так что среднему программисту вряд ли удастся выжать из них все возможное. Скорее всего, вы спасуете намного раньше, чем ваш инструментарий - если только не узнаете о нем абсолютно все и не доведете свое мастерство программиста до подлинного совершенства.
Книги этой серии предназначены для углубленного изучения программных инструментов. В них рассматриваются нетривиальные возможности, которые невозможно описать в простейшем учебнике. Полноценные проекты заставляют читателя мыслить на уровне эксперта - напрягать серое вещество, лежащее в основе всего, что мы называем «мастерством».
Конечно, это не единственный путь - например, можно добросовестно набивать шишки обо все острые углы новых технологий и наобум пробовать все подряд, пока что-нибудь не заработает. А можно воспользоваться опытом наших авторов, которые уже прошли стадию обучения и попутно сделали кое-какие заметки на память. Мы тщательно отобрали темы, авторов и методику изложения, чтобы читатель не путался в ненужных вступлениях или редких технологиях, которые ему все равно не понадобятся.

32 разрядные консольные приложения
Вопросы безопасности
Применение иерархических данных в запросах

DirectX Графика в проектах Delphi

Ключевым понятием операционной системы Windows, позволяющим понять любую технологию, использующуюся в ней, является понятие библиотеки динамической компоновки (DLL, Dynamic Link Library). Любое полноценное приложение этой операционной системы (32-разрядное приложение, имеющее собственное окно) использует DLL-файлы. По мере необходимости приложение обращается к библиотекам, вызывая из них нужные функции. Например, выполнимый модуль приложения не содержит кода по отображению окна, вывода в окно и реакции на большинство событий. Перечисленные действия реализуются в системных DLL. В частности, использованием такой технологии удается экономить драгоценные ресурсы, один и тот же код не дублируется многократно, а размещается в памяти единожды. К одной библиотеке, как правило, может обращаться одновременно несколько приложений. Библиотеку в такой схеме называют сервером, а обслуживаемое им приложение - клиентом. Сервером и клиентом в общем случае могут являться и библиотека, и приложение. В частности, это означает, что некоторая библиотека, в свою очередь, может "подгружать" функции из другой библиотеки.

Библиотеки динамической компоновки
Полноэкранный режим

Справочное руководство по Delphi

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна.
Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.
Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ.

Структура среды программирования
Создание таблиц с помощью компонента TTable

Отладка программы в Delphi

Delphi может включить в исполняемую программу инструкции контроля диапазона значений переменных. Чтобы инструкции контроля были добавлены в программу, нужно во вкладке Compiler диалогового окна Project Options (Рисунок 12.3) установить флажок Overflow checking (Контроль переполнения), который находится в группе Runtime errors (Ошибки времени выполнения).

Понятие рекурсии
Наблюдение значений переменных
Использование редактора Microsoft Word
Представление данных
Удаление компонента
Создание псевдонима
Программа InstallShield Express

Раздел - Управленческий учет

Вообще этот раздел продолжает разговоры про бухгалтерию. Бухгалтерия - это прежде всего ответ на вопрос - где деньги? Управленческий учет - в принципе-то та же бухгалтерия, но только на языке понятном широкому кругу общественности. Глядя на бухгалтерский баланс не посвященный в таинство хрен чего поймет. Для таких и придумали учет на разговорном языке.

Анализ
Бухгалтерия
Корпоративный
Политика
Решения
Система
Технологии
Учет
Документы

Понятно о Visual Basic NET

Определим шутливо сплайн, как «ломаную, которая хочет стать кривой». Задается сплайн, как и ломаная, массивом точек. Метод DrawCurve рисует сплайн, то есть соединяет соседние точки массива плавной кривой. Степень «желания» стать кривой, определяет третий параметр метода, так называемое напряжение (tension). Если он равен нулю, то и «желание нулевое», а значит сплайн остается ломаной, как вы и видите на самой левой фигуре из Рис. 17.5. При увеличении численного значения этого параметра сплайн становится все более и более «кривым», что вы можете видеть на остальных фигурах. Если параметр не указывать, он считается равным 0,5.

Сложные фигуры
Инкапсуляция – «Объект в футляре»
Из чего состоят пространства имен
Работаем с ListView в коде
Свойства и методы класса String

Справочник по Javascript

Синтаксис и команды JavaScript можно разделить на несколько категорий в зависимости от их назначения и использования. Объекты представляют собой блоки, из которых строится JavaScript. Они применяются для возвращения значений и изменения состояния форм, страниц, броузера и определенных программистом переменных. Объекты можно сопоставить с существительными. Кошка, автомобиль, дом, компьютер, форма - все это существительные, они могут быть представлены как объекты (см. раздел «Объекты»). Мы используем свойства для того, чтобы различать объекты одного класса - например, всех объектов типа кошка. Свойства сравнимы с прилагательными и ссылаются на уникальные для каждого экземпляра объекта особенности.

Abs

Язык WordBasic - практический подход

WordBasic – это встроенный язык для программирования макрокоманд в текстовом процессоре Word for Windows 6.0 (далее WinWord или просто Word). Несмотря на обилие возможностей этого текстового процессора, при выполнении конкретного вида работ у вас (у ваших знакомых, клиентов и т.п.) часто возникает необходимость в создании новых команд, сокращающих количество выполняемых при редактировании действий. WordBasic можно использовать для модификации любых имеющихся в Word команд и для создания новых. Написанную вами макрокоманду можно ввести в интерфейс Word как дополнительный пункт меню, значок (пиктограмму) панели инструментов или вызывать нажатием сочетания клавиш – таким образом она будет выглядеть как “родная” команда этого редактора. В отличие от обычных Бейсиков, в WordBasic очень много новых операторов, связанных со спецификой текстообработки, поэтому на первый взгляд он кажется громоздким и необозримым. К тому же русская версия этого пакета поставляется без описания языка, а имеющийся Help не переведен с английского. В популярном интегрированном пакете Microsoft Excel реализован язык Visual Basic. В СУБД Access используется сходный с WordBasic язык Access Basic.

Элементы языка
Операторы OutlineCollapse и OutlineExpand
Интерпретаторы