Разработка программного доверенного загрузчика операционной системы
Аппаратная платформа – совокупность системной логики, включающей в себя контроллеры памяти, периферийных устройств и центрального процессора. Характеристика основных требований, предъявляемых к программному доверенному загрузчику операционной системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 22.02.2019 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
{
count++; // Переход к следующему аккаунту
partition_code = PART_LOGIN_SIGN;
partition_write_permission = 1;
}
else
{
partition_code = PART_PASSWORD_SIGN;
partition_write_permission = 1;
}
}
}
return (partition_code == PART_PASSWORD) ? (count + 1) : -2;
}
// Получение %entryID% аккаунта
struct Entry*
get_entry(int entryID, char* romfile_data, int romfile_len)
{
struct Entry* entry = (struct Entry*)malloc_low(sizeof(struct Entry));
const int DATA_OFFSET = SIGN_BEGIN_LEN;
const int DATA_END_OFFSET = romfile_len - SIGN_END_LEN;
int partition_code = PART_LOGIN_SIGN;
int currentID = 0;
int partition_write_permission = 1;
int tempUserLen = 0;
int tempPasswordLen = 0;
char tempUser[MAX_USER_LEN];
char tempPassword[MAX_PASSWORD_LEN];
tempUser[MAX_USER_LEN - 1] = '\0';
tempPassword[MAX_PASSWORD_LEN - 1] = '\0';
// Обход всей информации
for(int i = DATA_OFFSET+1; i < DATA_END_OFFSET; i++)
{
if( (romfile_data[i] != '%') && partition_write_permission) // После сигнатуры имеем полезную информацию
{
partition_code++;
partition_write_permission = 0;
}
else if(romfile_data[i] == '%') // Встретилась новая сигнатура
{
if(partition_code == PART_PASSWORD)
{
currentID++; // Переход к следующему аккаунту
partition_code = PART_LOGIN_SIGN;
partition_write_permission = 1;
}
else
{
partition_code = PART_PASSWORD_SIGN;
partition_write_permission = 1;
}
}
// Копирование информации о конкретном аккаунте
if( entryID == currentID ){
if ( (partition_code == PART_LOGIN) && (tempUserLen < (MAX_USER_LEN - 2)) )
{
memcpy(&tempUser[tempUserLen], &romfile_data[i], sizeof(char));
tempUserLen++;
}
else if ( (partition_code == PART_PASSWORD) && (tempPasswordLen < (MAX_PASSWORD_LEN - 2)) )
{
memcpy(&tempPassword[tempPasswordLen], &romfile_data[i], sizeof(char));
tempPasswordLen++;
}
}
printf("%s|%s\n", tempUser, tempPassword);
}
printf("\nLENS. U: %d P: %d\n", tempUserLen, tempPasswordLen);
tempUser[tempUserLen] = '\0';
tempPassword[tempPasswordLen] = '\0';
tempUserLen++;
tempPasswordLen++;
// Формирование структуры аккаунта
entry->login = (char*)malloc_low(sizeof(char) * tempUserLen);
entry->password = (char*)malloc_low(sizeof(char) * tempPasswordLen);
memcpy(entry->login, &tempUser, tempUserLen);
memcpy(entry->password, &tempPassword, tempPasswordLen);
printf("Entry %d:\n", entryID);
printf("login: %s\npassword: %s\n", entry->login, entry->password);
printf("templ: %s\ntempp: %s\n", tempUser, tempPassword);
return entry;
}
Файл secure.h
#ifndef SECURE_H
#define SECURE_H
int secure_func(void);
struct Entry* login_screen();
void scan_string(char*, const int, int*);
char parse_scan_code(int);
struct Entry** get_entries(int*);
int authentification(struct Entry**, int, struct Entry*);
struct Entry* get_entry(int entryID, char* romfile, int romfile_len);
#endif
Файл mainboard.c
#include <types.h>
#include <string.h>
#include <device/device.h>
#include <southbridge/intel/lynxpoint/pch.h>
void mainboard_suspend_resume(void)
{
// Вызов сервиса SMM
outb(0xcb, 0xb2);
}
// Стартовая функция mainboard, получающая управление в romstage
static void mainboard_enable(device_t dev)
{
dev->ops->acpi_inject_dsdt_generator = chromeos_dsdt_generator;
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_EDP, GMA_INT15_PANEL_FIT_CENTERING, GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
}
// Глобальная структура
struct chip_operations mainboard_ops = {
.enable_dev = mainboard_enable,
};
Файл devicetree.cb
chip northbridge/intel/haswell
device cpu_cluster 0 on
chip cpu/intel/haswell
device lapic 0 on end
# ID устройства Local APIC
device lapic 0xACAC off end
end
end
device domain 0 on
device pci 00.0 on end # host bridge
device pci 02.0 on end # vga controller
chip southbridge/intel/lynxpoint # Intel Series 8 Lynx Point PCH
#Intel ME Begin
device pci 16.0 on end
device pci 16.1 off end
device pci 16.2 off end
device pci 16.3 off end
#Intel ME End
device pci 19.0 off end # Intel Gigabit Ethernet
device pci 1a.0 on end # USB2 EHCI #2
device pci 1b.0 on end # High Definition Audio
device pci 1c.0 on end # PCIe Port #1
device pci 1c.1 off end # PCIe Port #2
device pci 1c.2 on end # PCIe Port #3 (Debug)
device pci 1c.3 on end # PCIe Port #4 (LAN)
device pci 1c.4 off end # PCIe Port #5
device pci 1c.5 off end # PCIe Port #6
device pci 1c.6 off end # PCIe Port #7
device pci 1c.7 off end # PCIe Port #8
device pci 1d.0 on end # USB2 EHCI #1
device pci 1e.0 off end # PCI bridge
device pci 1f.0 on end # LPC bridge
device pci 1f.2 on end # SATA Controller 1
device pci 1f.3 on end # SMBus
device pci 1f.5 off end # SATA Controller 2
device pci 1f.6 on end # Thermal
end
end
end
Файл lpc.c
#include <console/console.h>
#include <arch/io.h>
#include <device/device.h>
#include <device/pci_def.h>
#include "pch.h"
#include "chip.h"
static void pch_enable_bars(void)
{
pci_write_config32(PCH_LPC_DEV, RCBA, (uintptr_t)DEFAULT_RCBA | 1);
pci_write_config32(PCH_LPC_DEV, PMBASE, DEFAULT_PMBASE | 1);
// Инициализация базового регистра ACPI
pci_write_config8(PCH_LPC_DEV, ACPI_CNTL, 0x80);
}
void pch_enable_lpc(void)
{
const struct device *dev = dev_find_slot(0, PCI_DEVFN(0x1f, 0));
const struct southbridge_intel_lynxpoint_config *config = NULL;
// Инициализация COM-порта
pci_write_config16(PCH_LPC_DEV, LPC_IO_DEC, 0x0010);
u16 lpc_config = CNF1_LPC_EN | CNF2_LPC_EN | GAMEL_LPC_EN |
COMA_LPC_EN | KBC_LPC_EN | MC_LPC_EN;
pci_write_config16(PCH_LPC_DEV, LPC_EN, lpc_config);
pci_write_config32(PCH_LPC_DEV, LPC_GEN1_DEC, config->gen1_dec);
pci_write_config32(PCH_LPC_DEV, LPC_GEN2_DEC, config->gen2_dec);
pci_write_config32(PCH_LPC_DEV, LPC_GEN3_DEC, config->gen3_dec);
pci_write_config32(PCH_LPC_DEV, LPC_GEN4_DEC, config->gen4_dec);
}
Приложение В
Презентация
Рисунок 16
Рисунок 17
Рисунок 18
Рисунок 19
Рисунок 20
Рисунок 21
Рисунок 22
Рисунок 23
Рисунок 24
Рисунок 25
Рисунок 26
Размещено на Allbest.ru
...Подобные документы
Разграничение прав пользователя в операционной системе. Предварительная настройка операционной системы с последующей установкой драйверов для периферийных устройств и системных комплектующих. Классификация операционных систем и периферийных устройств.
реферат [2,1 M], добавлен 26.10.2022Подготовка к сборке компьютера. Установка процессора, оперативной памяти, материнской платы и винчестера. Подключение питания и периферийных устройств. Решение проблем при включении. Установка программного обеспечения, операционной системы, конфигурация.
курсовая работа [40,9 K], добавлен 26.04.2014Обзор особенностей операционной платформы для мобильных телефонов, смартфонов и коммуникаторов. История обновлений и модифицированные версии. Прошивка устройств. Приборы на платформе Android. Изучение основных достоинств операционной системы Android 4.2.
реферат [885,8 K], добавлен 19.10.2015Исследование оборудования компьютера с помощью настроек BIOS, теста видеокарты, тестирующих программ POST и Everest, операционной системы Windows XP. Технические характеристики процессора, материнской платы, жесткого диска, памяти, периферийных устройств.
практическая работа [10,8 M], добавлен 28.05.2012Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015Изучение процесса создания новой версии Windows Vista. Исследование особенностей установки и интерфейса операционной системы. Характеристика требований к аппаратному обеспечению компьютера. Анализ основных средств навигации и работы в Windows Vista.
реферат [33,6 K], добавлен 25.11.2014Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.
курсовая работа [2,6 M], добавлен 15.06.2013Исследование аппаратно-программных средств Макинтош: история появления, формирование её достоинств и недостатков. Характеристика развития модельного ряда платформы Macintosh. Особенности операционной системы ОС MacOS. Программное и аппаратное обеспечение.
курсовая работа [47,6 K], добавлен 01.06.2015Конфигурация серверной машины на примере Hyperion RS230 G4. Выбор серверной операционной системы. Аппаратная составляющая сервера. Правило замены блоков. Сборка и установка в стойку. Оптимизация работы оборудования. Обновление операционной системы Unix.
курсовая работа [3,7 M], добавлен 11.09.2014Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Общая характеристика требований, предъявляемых к операционным системам. Структура сетевой операционной системы (ОС). Одноранговые сетевые ОС и с выделенными серверами. Сетевые продукты Microsoft. ОС для рабочих групп и ОС для сетей масштаба предприятия.
дипломная работа [83,7 K], добавлен 27.09.2012Основные характеристики блока питания, системной платы, процессора. Выбор, обоснование тестов работоспособности компонентов системы. Методика проведения нагрузочного тестирования. Установка операционной системы. Подключение и настройка доступа в Интернет.
курсовая работа [251,2 K], добавлен 23.12.2016Создание программного продукта, предназначенного для небольшой сети с оптимизацией ее работы на платформе операционной системы Linux; администрирование. Разработка модуля протоколов управления; методика тестирования подсистемы; системотехнический анализ.
дипломная работа [5,4 M], добавлен 27.06.2012Изучение общих понятий операционной системы Android, разработанной для коммуникаторов, планшетных компьютеров, основанной на ядре Linux. Разработка программного обеспечения Android. Преимущества и недостатки мобильной операционной системы Windows Mobile.
реферат [60,6 K], добавлен 16.04.2012Общая характеристика, история разработки и возможности Windows Vista - операционной системы, одной из ведущих продуктов на мировом рынке. Описание аппаратных требований и процесса установки. Отличительные черты, преимущества и недостатки Windows Vista.
презентация [4,7 M], добавлен 24.05.2010Что такое операционная система, ее главные функции и классификация. Характеристика операционной системы MS-DOS4, организация данных. Особенности основных операций и команд системы, отработка практических навыков использования команд для работы на ПК.
контрольная работа [13,0 K], добавлен 04.03.2011Анализ деятельности группы компаний "Инрэко ЛАН". Общая характеристика, основы проектирования и разработка операционной системы Android. Этапы разработки программного игрового приложения с использованием физики. Скриншоты, отображающие игровой процесс.
отчет по практике [2,7 M], добавлен 19.07.2012Описание области применения операционной системы (ОС) Windows 7, ее основные характеристики и причины для сбоев в работе. Выбор программного обеспечения и алгоритма для диагностики и восстановления ОС. Расчет экономических затрат на реализацию проекта.
дипломная работа [2,3 M], добавлен 10.04.2017Встроенные средства устранения неполадок Windows. Диагностика неисправностей операционной системы. Запуск и проверка памяти. Правила работы в помещениях оснащенных персональными электронными вычислительными машинами и другим электронным оборудованием.
курсовая работа [38,6 K], добавлен 29.04.2014Важность операционной системы для мобильных устройств. Популярность операционных систем. Доля LINUX на рынке операционных систем. История OS Symbian, BlackBerry OS, Palm OS. Отличия смартфона от обычного мобильного телефона. Учет ограничений по памяти.
презентация [477,3 K], добавлен 01.12.2015