includeos 創建 輸出一個hello world的過程
shm@ubuntu:~$ cd IncludeOS
shm@ubuntu:~/IncludeOS$ cp -r seed/service ~/my_service
shm@ubuntu:~/IncludeOS$ cd ~/my_service
shm@ubuntu:~/my_service$ ls
cmake_build.sh CMakeLists.txt docker_run.sh service.cpp
shm@ubuntu:~/my_service$ gedit service.cpp
shm@ubuntu:~/my_service$ gedit CMakeLists.txt
shm@ubuntu:~/my_service$ mkdir build && cd build
shm@ubuntu:~/my_service/build$ cmake ..
-- The C compiler identification is Clang 3.8.0
-- The CXX compiler identification is Clang 3.8.0
-- Check for working C compiler: /usr/bin/clang-3.8
-- Check for working C compiler: /usr/bin/clang-3.8 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++-3.8
-- Check for working CXX compiler: /usr/bin/clang++-3.8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The ASM_NASM compiler identification is unknown
-- Found assembler: /usr/bin/nasm
-- Configuring done
-- Generating done
-- Build files have been written to: /home/shm/my_service/build
shm@ubuntu:~/my_service/build$ make
Scanning dependencies of target service
[ 33%] Building CXX object CMakeFiles/service.dir/service.cpp.o
[ 66%] Building CXX object CMakeFiles/service.dir/home/shm/includeos/includeos/src/service_name.cpp.o
[100%] Linking CXX executable my_service
[100%] Built target service
Scanning dependencies of target pruned_elf_symbols
/usr/bin/objcopy: stHaWMm6: section .bss lma 0x1e2000 adjusted to 0x2188f6
/usr/bin/strip: stV8RXJl: section .bss lma 0x1e2000 adjusted to 0x2188f6
[100%] Built target pruned_elf_symbols
Scanning dependencies of target prepend_bootloader
[100%] Built target prepend_bootloader
shm@ubuntu:~/my_service/build$ boot my_service
[ WARNING ] Running with sudo
[sudo] password for shm:
================================================================================
#include<os> // Literally
================================================================================
[ Kernel ] Stack: 0x9fc94
[ Kernel ] Boot args: 0x2badb002 (multiboot magic), 0x9500 (bootinfo addr)
[ Kernel ] Max mem (from linker): 128 MiB
[ Kernel ] Booted with multiboot
* magic value: 0x2badb002 Multiboot info at 0x9500
* Valid memory (130559 Kib):
0x00000000 - 0x0009fbff (639 Kib)
0x00100000 - 0x07fdffff (129920 Kib)
* Booted with parameters @ 0x3000: my_service
* Multiboot provided memory map (6 entries @ 0x9000)
0x00000000 - 0x0009fbff FREE (639 Kb.)
0x0009fc00 - 0x0009ffff RESERVED (1 Kb.)
0x000f0000 - 0x000fffff RESERVED (64 Kb.)
0x00100000 - 0x07fdffff FREE (129920 Kb.)
0x07fe0000 - 0x07ffffff RESERVED (128 Kb.)
0xfffc0000 - 0xffffffff RESERVED (256 Kb.)
[ Kernel ] Assigning fixed memory ranges (Memory map)
[ Kernel ] Assigning heap
[ Kernel ] Printing memory map
* Statman 4000 - 5fff (Statistics, 8192 / 8192 bytes used)
* Kernel / service main stack a000 - 9fbff (N/A, 613376 / 613376 bytes used)
* Reserved 9fc00 - 9ffff (Multiboot / BIOS, 1024 / 1024 bytes used)
* Reserved f0000 - fffff (Multiboot / BIOS, 65536 / 65536 bytes used)
* ELF 100000 - 1e8920 (Your service binary including OS, 952609 / 952609 bytes used)
* Pre-heap 1e8921 - 1e897f (Heap randomization area (not for use)), 95 / 95 bytes used)
* Heap 1e8980 - 7fdffff (Dynamic memory, 231040 / 132085376 bytes used)
* Reserved 7fe0000 - 7ffffff (Multiboot / BIOS, 131072 / 131072 bytes used)
* Reserved fffc0000 - ffffffff (Multiboot / BIOS, 262144 / 262144 bytes used)
[ INTR ] Creating exception handlers
+ Default interrupt gates set for irq >= 32
[ ACPI ] Reading headers
OEM: BOCHS Rev. 0
[ ACPI ] Reading APIC information
LAPIC base: 0xfee00000 (flags: 0x1)
-> CPU 0 ID 0 (flags=0x1)
I/O APIC 0 ADDR 0xfec00000 INTR 0x0
IRQ redirect for bus 0 from IRQ 0 to VEC 2
IRQ redirect for bus 0 from IRQ 5 to VEC 5
IRQ redirect for bus 0 from IRQ 9 to VEC 9
IRQ redirect for bus 0 from IRQ 10 to VEC 10
IRQ redirect for bus 0 from IRQ 11 to VEC 11
LAPIC id: 0 ver: 50014
[ APIC ] Enabling BSP LAPIC
APIC_BASE MSR is now 0xfee00900
[ IOAPIC ] Initializing
Base addr: 0xfec00000 Redirection entries: 24
[ IOAPIC ] Done
[ BSP ] Enabling interrupts
Enabled redirected IRQ 0 -> 2 on lapic 0
[ PCI Manager ] Probing PCI bus
|
+--+ Host Bridge (0x0)
|
+--+ ISA Bridge (0x1)
|
+--+ Mass Storage Controller
| +--+ Driver: Not found
|
+--+ Other Bridge (0x80)
|
+--+ Display Controller
|
+--+ Ethernet Network Controller (0x0)
| +--+ Driver: Not found
|
o
[ Devices ] Listing registered devices
|
o
[ Kernel ] Estimating CPU-frequency
|
+--(2 samples, 0.000100 sec. interval)
|
+--> 2499.553281 MHz
[ APIC ] Measuring APIC timer...
Enabled redirected IRQ 0 -> 2 on lapic 0
[ CMOS ] RTC is 24 hour format, BCD mode
[ RTC ] Enabling regular clock sync with CMOS
[ Kernel ] Initializing plugins
[ Kernel ] Starting IncludeOS my_service
================================================================================
this is a test about unikernels
**********Hello world - OS included!*****************
Args = my_service
================================================================================
IncludeOS v0.10.0
+--> Running [ IncludeOS my_service ]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hello world
^A^C
[ WARNING ] Process interrupted - stopping vms
[ ABORT ] Process terminated by user
shm@ubuntu:~/my_service/build$
shm@ubuntu:~/IncludeOS$ cp -r seed/service ~/my_service
shm@ubuntu:~/IncludeOS$ cd ~/my_service
shm@ubuntu:~/my_service$ ls
cmake_build.sh CMakeLists.txt docker_run.sh service.cpp
shm@ubuntu:~/my_service$ gedit service.cpp
shm@ubuntu:~/my_service$ gedit CMakeLists.txt
shm@ubuntu:~/my_service$ mkdir build && cd build
shm@ubuntu:~/my_service/build$ cmake ..
-- The C compiler identification is Clang 3.8.0
-- The CXX compiler identification is Clang 3.8.0
-- Check for working C compiler: /usr/bin/clang-3.8
-- Check for working C compiler: /usr/bin/clang-3.8 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++-3.8
-- Check for working CXX compiler: /usr/bin/clang++-3.8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The ASM_NASM compiler identification is unknown
-- Found assembler: /usr/bin/nasm
-- Configuring done
-- Generating done
-- Build files have been written to: /home/shm/my_service/build
shm@ubuntu:~/my_service/build$ make
Scanning dependencies of target service
[ 33%] Building CXX object CMakeFiles/service.dir/service.cpp.o
[ 66%] Building CXX object CMakeFiles/service.dir/home/shm/includeos/includeos/src/service_name.cpp.o
[100%] Linking CXX executable my_service
[100%] Built target service
Scanning dependencies of target pruned_elf_symbols
/usr/bin/objcopy: stHaWMm6: section .bss lma 0x1e2000 adjusted to 0x2188f6
/usr/bin/strip: stV8RXJl: section .bss lma 0x1e2000 adjusted to 0x2188f6
[100%] Built target pruned_elf_symbols
Scanning dependencies of target prepend_bootloader
[100%] Built target prepend_bootloader
shm@ubuntu:~/my_service/build$ boot my_service
[ WARNING ] Running with sudo
[sudo] password for shm:
================================================================================
#include<os> // Literally
================================================================================
[ Kernel ] Stack: 0x9fc94
[ Kernel ] Boot args: 0x2badb002 (multiboot magic), 0x9500 (bootinfo addr)
[ Kernel ] Max mem (from linker): 128 MiB
[ Kernel ] Booted with multiboot
* magic value: 0x2badb002 Multiboot info at 0x9500
* Valid memory (130559 Kib):
0x00000000 - 0x0009fbff (639 Kib)
0x00100000 - 0x07fdffff (129920 Kib)
* Booted with parameters @ 0x3000: my_service
* Multiboot provided memory map (6 entries @ 0x9000)
0x00000000 - 0x0009fbff FREE (639 Kb.)
0x0009fc00 - 0x0009ffff RESERVED (1 Kb.)
0x000f0000 - 0x000fffff RESERVED (64 Kb.)
0x00100000 - 0x07fdffff FREE (129920 Kb.)
0x07fe0000 - 0x07ffffff RESERVED (128 Kb.)
0xfffc0000 - 0xffffffff RESERVED (256 Kb.)
[ Kernel ] Assigning fixed memory ranges (Memory map)
[ Kernel ] Assigning heap
[ Kernel ] Printing memory map
* Statman 4000 - 5fff (Statistics, 8192 / 8192 bytes used)
* Kernel / service main stack a000 - 9fbff (N/A, 613376 / 613376 bytes used)
* Reserved 9fc00 - 9ffff (Multiboot / BIOS, 1024 / 1024 bytes used)
* Reserved f0000 - fffff (Multiboot / BIOS, 65536 / 65536 bytes used)
* ELF 100000 - 1e8920 (Your service binary including OS, 952609 / 952609 bytes used)
* Pre-heap 1e8921 - 1e897f (Heap randomization area (not for use)), 95 / 95 bytes used)
* Heap 1e8980 - 7fdffff (Dynamic memory, 231040 / 132085376 bytes used)
* Reserved 7fe0000 - 7ffffff (Multiboot / BIOS, 131072 / 131072 bytes used)
* Reserved fffc0000 - ffffffff (Multiboot / BIOS, 262144 / 262144 bytes used)
[ INTR ] Creating exception handlers
+ Default interrupt gates set for irq >= 32
[ ACPI ] Reading headers
OEM: BOCHS Rev. 0
[ ACPI ] Reading APIC information
LAPIC base: 0xfee00000 (flags: 0x1)
-> CPU 0 ID 0 (flags=0x1)
I/O APIC 0 ADDR 0xfec00000 INTR 0x0
IRQ redirect for bus 0 from IRQ 0 to VEC 2
IRQ redirect for bus 0 from IRQ 5 to VEC 5
IRQ redirect for bus 0 from IRQ 9 to VEC 9
IRQ redirect for bus 0 from IRQ 10 to VEC 10
IRQ redirect for bus 0 from IRQ 11 to VEC 11
LAPIC id: 0 ver: 50014
[ APIC ] Enabling BSP LAPIC
APIC_BASE MSR is now 0xfee00900
[ IOAPIC ] Initializing
Base addr: 0xfec00000 Redirection entries: 24
[ IOAPIC ] Done
[ BSP ] Enabling interrupts
Enabled redirected IRQ 0 -> 2 on lapic 0
[ PCI Manager ] Probing PCI bus
|
+--+ Host Bridge (0x0)
|
+--+ ISA Bridge (0x1)
|
+--+ Mass Storage Controller
| +--+ Driver: Not found
|
+--+ Other Bridge (0x80)
|
+--+ Display Controller
|
+--+ Ethernet Network Controller (0x0)
| +--+ Driver: Not found
|
o
[ Devices ] Listing registered devices
|
o
[ Kernel ] Estimating CPU-frequency
|
+--(2 samples, 0.000100 sec. interval)
|
+--> 2499.553281 MHz
[ APIC ] Measuring APIC timer...
Enabled redirected IRQ 0 -> 2 on lapic 0
[ CMOS ] RTC is 24 hour format, BCD mode
[ RTC ] Enabling regular clock sync with CMOS
[ Kernel ] Initializing plugins
[ Kernel ] Starting IncludeOS my_service
================================================================================
this is a test about unikernels
**********Hello world - OS included!*****************
Args = my_service
================================================================================
IncludeOS v0.10.0
+--> Running [ IncludeOS my_service ]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hello world
^A^C
[ WARNING ] Process interrupted - stopping vms
[ ABORT ] Process terminated by user
shm@ubuntu:~/my_service/build$
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.