Разработка программного доверенного загрузчика операционной системы

Аппаратная платформа – совокупность системной логики, включающей в себя контроллеры памяти, периферийных устройств и центрального процессора. Характеристика основных требований, предъявляемых к программному доверенному загрузчику операционной системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.