Building an Operating System for the Raspberry Pi

Boot loader care interationeaza direct cu hardware si incarca kernel e scris in assembler, apoi se incarca runtime C si restul e scris in C, codul e compilat cu GCC cu optiune sa compileze pentru procesoare RISC ARM CORTEX, OS este rulat pe un virtual machine care emuleaza un Rasperry Pi.

Mi se par interesante noile smartphone de la HUAWEI cu suport pentru inteligenta artificiala.

1 Like

Nu stiu care ar fi scopul unei astfel de distributii, sunt deja destule… M-as bucura daca eforturile s-ar duce catre imbunatatirea distributiilor actuale care oscileaza la fiecare lansare intre features si regresii :confused:

1 Like

@geosoft1 desigur ca are scop didactic, sa ai o intelegere/viziune holistica in computer science, putin hardware, putin sisteme de operare, am avut ocazia sa am profesori/colegi persoane care au lucrat pe vremuri in centrele de calcul sau la primele calculatoare romanesti de exemplu pe vremea aia nu foloseai servere de baze de date ci iti implementai data storage-ul, era un profesor la cursul de compilatoare care a implementat un compilator, te ajuta sa dezlegi misterele din computer science.

Cred ca viitor-ul consta in crearea de hardware/software custom stiu ca suna similar cu viziunea lui Steve Jobs la Apple, dar nu cred ca a fost singurul sunt sigur ca au mai fost/sunt si altii.

1 Like

Majoritatea distribuţiilor sunt foarte bloated. Cel mai enervant este timpul de boot, groaznic de lung la o distribuţie standard. Eu am reuşit să fac o distribuţie custom care să booteze în fix 2 (două) secunde pe un PC Engines ALIX (are CPU la doar 500 MHz). Mai mult durează iniţializarea HDD-ului extern :slight_smile:

[    0.000000] Linux version 4.13.16 ([email protected]) (gcc version 6.4.0 (Buildroot 2017.11.1)) #16 Sat Jan 13 20:02:11 EET 2018
[    0.000000] x86/fpu: x87 FPU will use FSAVE
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000000fffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] reserved
[    0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[    0.000000] DMI not present or invalid.
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x10000 max_arch_pfn = 0x100000
[    0.000000] MTRR: Disabled
[    0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[    0.000000] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WB  WT  UC- UC
[    0.000000] initial memory mapped: [mem 0x00000000-0x017fffff]
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI BIOS Error (bug): A valid RSDP was not found (20170531/tbxfroot-244)
[    0.000000] 256MB LOWMEM available.
[    0.000000]   mapped low ram: 0 - 10000000
[    0.000000]   low ram: 0 - 10000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   Normal   [mem 0x0000000001000000-0x000000000fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009ffff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000000fffffff]
[    0.000000] On node 0 totalpages: 65439
[    0.000000] free_area_init_node: node 0, pgdat c13c6540, node_mem_map cfe00020
[    0.000000]   DMA zone: 32 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3999 pages, LIFO batch:0
[    0.000000]   Normal zone: 480 pages used for memmap
[    0.000000]   Normal zone: 61440 pages, LIFO batch:15
[    0.000000] e820: [mem 0x10000000-0xffefffff] available for PCI devices
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64927
[    0.000000] Kernel command line: BOOT_IMAGE=/bzImage ro root=/dev/sda2 console=tty0 console=ttyS0,115200n8 net.ifnames=0
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Initializing CPU#0
[    0.000000] Memory: 254896K/261756K available (2881K kernel code, 205K rwdata, 788K rodata, 264K init, 256K bss, 6860K reserved, 0K cma-reserved)
[    0.000000] virtual kernel memory layout:
[    0.000000]     fixmap  : 0xfffe3000 - 0xfffff000   ( 112 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xfffe1000   ( 759 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]       .init : 0xc13d6000 - 0xc1418000   ( 264 kB)
[    0.000000]       .data : 0xc12d04ff - 0xc13cb580   (1004 kB)
[    0.000000]       .text : 0xc1000000 - 0xc12d04ff   (2881 kB)
[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] CPU 0 irqstacks, hard=cf80c000 soft=cf80e000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] console [ttyS0] enabled
[    0.004000] tsc: Fast TSC calibration using PIT
[    0.008000] tsc: Detected 498.051 MHz processor
[    0.012000] Calibrating delay loop (skipped), value calculated using timer frequency.. 996.10 BogoMIPS (lpj=1992204)
[    0.016012] pid_max: default: 32768 minimum: 301
[    0.020149] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.024017] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.028644] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[    0.032015] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[    0.036008] CPU: Geode(TM) Integrated Processor by AMD PCS (family: 0x5, model: 0xa, stepping: 0x2)
[    0.040671] Performance Events: no PMU driver, software events only.
[    0.044853] devtmpfs: initialized
[    0.048929] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.052023] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.060173] random: get_random_u32 called from bucket_table_alloc+0x80/0x163 with crng_init=0
[    0.064143] NET: Registered protocol family 16
[    0.072372] cpuidle: using governor ladder
[    0.076197] clocksource: pit: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1601818034827 ns
[    0.081534] PCI: PCI BIOS revision 2.10 entry at 0xfcf35, last bus=0
[    0.084011] PCI: Using configuration type 1 for base access
[    0.097639] ACPI: Interpreter disabled.
[    0.100231] vgaarb: loaded
[    0.104354] SCSI subsystem initialized
[    0.108176] libata version 3.00 loaded.
[    0.108276] usbcore: registered new interface driver usbfs
[    0.112064] usbcore: registered new interface driver hub
[    0.116060] usbcore: registered new device driver usb
[    0.120046] dmi: Firmware registration failed.
[    0.124011] PCI: Probing PCI hardware
[    0.128012] PCI: root bus 00: using default resources
[    0.128019] PCI: Probing PCI hardware (bus 00)
[    0.128163] PCI host bridge to bus 0000:00
[    0.132024] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.136022] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
[    0.140019] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.144058] pci 0000:00:01.0: [1022:2080] type 00 class 0x060000
[    0.144108] pci 0000:00:01.0: [Firmware Bug]: reg 0x10: invalid BAR (can't size)
[    0.148334] pci 0000:00:01.2: [1022:2082] type 00 class 0x101000
[    0.148399] pci 0000:00:01.2: reg 0x10: [mem 0xefff4000-0xefff7fff]
[    0.148769] pci 0000:00:09.0: [1106:3053] type 00 class 0x020000
[    0.148807] pci 0000:00:09.0: reg 0x10: [io  0x1000-0x10ff]
[    0.148830] pci 0000:00:09.0: reg 0x14: [mem 0xe0000000-0xe00000ff]
[    0.148914] pci 0000:00:09.0: supports D1 D2
[    0.148929] pci 0000:00:09.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.149134] pci 0000:00:0a.0: [1106:3053] type 00 class 0x020000
[    0.149170] pci 0000:00:0a.0: reg 0x10: [io  0x1400-0x14ff]
[    0.149193] pci 0000:00:0a.0: reg 0x14: [mem 0xe0040000-0xe00400ff]
[    0.149276] pci 0000:00:0a.0: supports D1 D2
[    0.149289] pci 0000:00:0a.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.149493] pci 0000:00:0b.0: [1106:3053] type 00 class 0x020000
[    0.149529] pci 0000:00:0b.0: reg 0x10: [io  0x1800-0x18ff]
[    0.149553] pci 0000:00:0b.0: reg 0x14: [mem 0xe0080000-0xe00800ff]
[    0.149635] pci 0000:00:0b.0: supports D1 D2
[    0.149648] pci 0000:00:0b.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.152204] pci 0000:00:0f.0: [1022:2090] type 00 class 0x060100
[    0.152358] pci 0000:00:0f.0: reg 0x10: [io  0x6000-0x6007]
[    0.152455] pci 0000:00:0f.0: reg 0x14: [io  0x6100-0x61ff]
[    0.152553] pci 0000:00:0f.0: reg 0x18: [io  0x6200-0x623f]
[    0.152701] pci 0000:00:0f.0: reg 0x20: [io  0x9d00-0x9d7f]
[    0.152799] pci 0000:00:0f.0: reg 0x24: [io  0x9c00-0x9c3f]
[    0.153102] pci 0000:00:0f.2: [1022:209a] type 00 class 0x010180
[    0.153342] pci 0000:00:0f.2: reg 0x20: [io  0xff00-0xff0f]
[    0.153441] pci 0000:00:0f.2: legacy IDE quirk: reg 0x10: [io  0x01f0-0x01f7]
[    0.156021] pci 0000:00:0f.2: legacy IDE quirk: reg 0x14: [io  0x03f6]
[    0.160021] pci 0000:00:0f.2: legacy IDE quirk: reg 0x18: [io  0x0170-0x0177]
[    0.164019] pci 0000:00:0f.2: legacy IDE quirk: reg 0x1c: [io  0x0376]
[    0.168254] pci 0000:00:0f.4: [1022:2094] type 00 class 0x0c0310
[    0.168355] pci 0000:00:0f.4: reg 0x10: [mem 0xefffe000-0xefffefff]
[    0.168633] pci 0000:00:0f.4: PME# supported from D0 D3hot D3cold
[    0.168871] pci 0000:00:0f.5: [1022:2095] type 00 class 0x0c0320
[    0.168974] pci 0000:00:0f.5: reg 0x10: [mem 0xefffd000-0xefffdfff]
[    0.169260] pci 0000:00:0f.5: PME# supported from D0 D3hot D3cold
[    0.169489] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.169748] PCI: pci_cache_line_size set to 32 bytes
[    0.170509] clocksource: Switched to clocksource pit
[    0.170509] pnp: PnP ACPI: disabled
[    0.182516] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    0.182533] pci_bus 0000:00: resource 5 [mem 0x00000000-0xffffffff]
[    0.182678] NET: Registered protocol family 2
[    0.187939] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.191031] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[    0.193504] TCP: Hash tables configured (established 2048 bind 2048)
[    0.199995] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.201932] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.208435] NET: Registered protocol family 1
[    0.209139] PCI: CLS 32 bytes, default 32
[    0.209472] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.214635] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[    0.232760] random: fast init done
[    0.240157] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    0.243662] io scheduler noop registered (default)
[    0.314517] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.317224] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 921600) is a NS16550A
[    0.321524] serial8250: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 921600) is a NS16550A
[    0.326404] AMD Geode RNG detected
[    0.336000] loop: module loaded
[    0.341135] scsi host0: pata_cs5536
[    0.345151] scsi host1: pata_cs5536
[    0.348996] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xff00 irq 14
[    0.356041] ata2: DUMMY
[    0.358689] via_rhine: v1.10-LK1.5.1 2010-10-09 Written by Donald Becker
[    0.367457] via-rhine 0000:00:09.0 eth0: VIA Rhine III (Management Adapter) at 0xd0806000, 00:0d:b9:3b:5f:d0, IRQ 10
[    0.370911] via-rhine 0000:00:09.0 eth0: MII PHY found at address 1, status 0x7869 advertising 05e1 Link 51e1
[    0.378892] via-rhine 0000:00:0a.0 eth1: VIA Rhine III (Management Adapter) at 0xd0808000, 00:0d:b9:3b:5f:d1, IRQ 11
[    0.382335] via-rhine 0000:00:0a.0 eth1: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
[    0.390324] via-rhine 0000:00:0b.0 eth2: VIA Rhine III (Management Adapter) at 0xd080a000, 00:0d:b9:3b:5f:d2, IRQ 15
[    0.393771] via-rhine 0000:00:0b.0 eth2: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
[    0.399902] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.402513] ehci-pci: EHCI PCI platform driver
[    0.407165] ehci-pci 0000:00:0f.5: EHCI Host Controller
[    0.412510] ehci-pci 0000:00:0f.5: new USB bus registered, assigned bus number 1
[    0.416149] ehci-pci 0000:00:0f.5: irq 12, io mem 0xefffd000
[    0.432594] ehci-pci 0000:00:0f.5: USB 2.0 started, EHCI 1.00
[    0.438610] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.441492] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.444819] usb usb1: Product: EHCI Host Controller
[    0.449786] usb usb1: Manufacturer: Linux 4.13.16 ehci_hcd
[    0.455359] usb usb1: SerialNumber: 0000:00:0f.5
[    0.460815] hub 1-0:1.0: USB hub found
[    0.464687] hub 1-0:1.0: 4 ports detected
[    0.469661] usbcore: registered new interface driver uas
[    0.475186] usbcore: registered new interface driver usb-storage
[    0.477631] NET: Registered protocol family 17
[    0.482341] sched_clock: Marking stable (482144028, 0)->(657990764, -175846736)
[    0.584925] ata1.00: CFA: CF 2GB, 20110221, max UDMA/100
[    0.590331] ata1.00: 3931200 sectors, multi 0: LBA
[    0.604821] ata1.00: configured for UDMA/100
[    0.609501] scsi 0:0:0:0: Direct-Access     ATA      CF 2GB           0221 PQ: 0 ANSI: 5
[    0.619161] sd 0:0:0:0: [sda] 3931200 512-byte logical blocks: (2.01 GB/1.87 GiB)
[    0.626845] sd 0:0:0:0: [sda] Write Protect is off
[    0.631722] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    0.631824] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    0.642488]  sda: sda1 sda2 sda3
[    0.647190] sd 0:0:0:0: [sda] Attached SCSI disk
[    0.652492] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[    0.660713] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[    0.670046] EXT4-fs (sda2): INFO: recovery required on readonly filesystem
[    0.677008] EXT4-fs (sda2): write access will be enabled during recovery
[    0.799126] EXT4-fs (sda2): recovery complete
[    0.806340] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[    0.814131] VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
[    0.821301] devtmpfs: mounted
[    0.825126] Freeing unused kernel memory: 264K
[    0.830044] Write protecting the kernel text: 2884k
[    0.835099] Write protecting the kernel read-only data: 796k
[    0.898383] EXT4-fs (sda2): re-mounted. Opts: data=ordered
[    0.927424] EXT4-fs (sda3): recovery complete
[    0.931890] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
[    1.021305] udevd[62]: starting version 3.2.4
[    1.052773] udevd[63]: starting eudev-3.2.4
[    1.288667] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0xe5bb4c6276, max_idle_ns: 881590478428 ns
[    1.298756] clocksource: Switched to clocksource tsc
[    1.397262] usb 1-2: new high-speed USB device number 2 using ehci-pci
[    1.573016] usb 1-2: New USB device found, idVendor=1058, idProduct=1230
[    1.579841] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[    1.587044] usb 1-2: Product: My Book 1230
[    1.591214] usb 1-2: Manufacturer: Western Digital
[    1.596079] usb 1-2: SerialNumber: 574343344D48585346565339
[    1.749493] usb-storage 1-2:1.0: USB Mass Storage device detected
[    1.819732] scsi host2: usb-storage 1-2:1.0
[    2.837911] scsi 2:0:0:0: Direct-Access     WD       My Book 1230     1065 PQ: 0 ANSI: 6
[    2.854481] sd 2:0:0:0: [sdb] Spinning up disk...
[    2.859465] scsi 2:0:0:1: Enclosure         WD       SES Device       1065 PQ: 0 ANSI: 6
[    3.900737] .
[    4.924794] .
[    5.948855] .
[    6.972926] .
[    7.996993] .
[    9.021029] .
[    9.240551] ready
[    9.244570] sd 2:0:0:0: [sdb] 3906963456 512-byte logical blocks: (2.00 TB/1.82 TiB)
[    9.253925] sd 2:0:0:0: [sdb] Write Protect is off
[    9.258798] sd 2:0:0:0: [sdb] Mode Sense: 53 00 10 08
[    9.260047] sd 2:0:0:0: [sdb] No Caching mode page found
[    9.265431] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[    9.369431]  sdb: sdb1 sdb2
[    9.380583] sd 2:0:0:0: [sdb] Attached SCSI disk

2 Likes

Nu intentia tehnica ma ingrijoreaza in cazul acestor distributii ci faptul ca marea majoritate nu au un viitor din start, nu rezista. Sunt de acord ca distributiile majore sunt bloated si uneori nu atat de performante pe cat ne-am dori dar ele ofera totusi garantia unei supravietuiri pe termen lung, mizezi pe ele, poti dezvolta la randul tau bazandu-te pe ele. Multele distributii realizate in general de entuziasti chiar daca ofera un plus de performanta undeva nu ofera un viitor pentru ca autorii de regula nu au forta personala cat si financiara sa sustina un astfel de proiect pe termen lung.
Pe de alta parte realizarea efectiva a unui sistem de operare e parte cea mai usoara fata de ce vine pe langa, adica portarea aplicatiilor. Aici se implica alta munca si alt suport pe termen lung. Am vazut si cunoscut oameni care din pacate si-au canalizat ani de zile energiile in astfel de proiecte care au sucombat…
De aceea, eu personal, nu vad de ce te-ai apuca de un astfel de megaproiect excluzand cateva situatii in care faci anumite chestii custom, targetate, bine delimitate si chiar platite, sau vrei sa inveti cum se face un astfel de sistem.

Păi când faci o distribuţie, o faci în primul rând pentru tine. Nu te încălzeşte cu nimic dacă ai zero sau un milion de alţi utilizatori, fiind un proiect din care nu scoţi bani. Motivele pentru care o faci contează mai puţin. Poate o faci din distracţie, ca să înveţi sau poate pur şi simplu chiar crezi ca o faci mai bine decât ce există deja.

1 Like

Thread similar cu:

http://www.jbox.dk/sanos/index.htm

Sanos is a minimalistic 32-bit x86 operating system kernel for network server appliances running on standard PC hardware. The kernel implements basic operating system services like booting, memory management, thread scheduling, local and remote file systems, TCP/IP networking and DLL loading and linking. You can use Sanos as a small kernel for embedded server applications written in C or as a JeOS (Just enough Operating System). Sanos has a fairly standard POSIX based API and an ANSI Standard C library.

The kernel was developed as part of an experiment on investigating the feasibility of running java server applications without a traditional operating system only using a simple kernel. A win32 layer allowed the Windows version of a standard HotSpot JVM to run under Sanos, essentially providing a JavaOS platform for server applications.

While Sanos is self-contained in the sense that it can build itself, it can be cross-compiled under either Windows using Microsoft Visual C, or under Linux using GCC. Sanos applications can either be built under Windows using MSVC or under Sanos itself using the Sanos SDK.

Sanos is open source under a BSD style license. Please see the COPYING file for details.

If you want to take a quick look at Sanos you can download a QEMU emulator pre-configured with Sanos. Unzip this file to a directory and double-click on the runsanos.cmd file. This starts an instance of QEMU running Sanos.

Mai e timpul de boot ceva care conteaza în zilele noastre? De obicei, daca vezi ceva neoptimizat (și dacă ai încredere în echipa tehnica din spatele unui produs), e mai degrabă că nu conteaza acel ceva atât de mult.

1 Like

Nu ştiu pentru alţii, dar pentru mine contează. De ce să aştept un device să pornească în 2-3 minute, când poate să pornească în 2 secunde?

2 Likes

Presupun că nu te-ar deranja prea tare dacă ai putea porni mașina după minimum 30 secunde de la sucit cheia în contact. Nu?

Pe mine mă exasperează imprimanta care are nevoie de ~1 minut de la power on până la ready to print.

In facultate se fac cursuri de sisteme de operare care incerca sa te faca sa intelegi arhitectura unui sistem de operare:

http://andrei.clubcisco.ro/cursuri/anul-3/semestrul-2/sisteme-de-operare.html

Proiectarea sistemelor de operare e un domeniu fascinant acestea isi doresc sa fie o interfara intre hardware si aplicatiile care vin peste.

Exista niste zvonuri ca Google pregateste un nou sistem de operare ca sa inlocuiasca Android:

Uni cred ca sistemele de operare moderne ar trebui implementate in limbaje de programare moderne ca si Rust.

1 Like

Nu știu dacă ai citit Fundația, dar era acolo o situația tare interesantă: planeta Trantor era atât de tehnologizată încât nu mai erau oameni capabili să înțeleagă cum funcționează lucrurile de fapt. Puteau doar să aibă grijă să nu se strice prea multe :slight_smile:

Eh, treaba asta seamănă foarte mult cu situația curentă în IT în general și în programare în special. Ne ascundem în spatele limbajelor și abstractizăm lucrurile atât de mult încât pur și simplu nu mai știm cum funcționează lucrurile de fapt. Câți dintre programatorii seniori crezi că ar putea să-ți explice în detaliu cum se face un request http, de exemplu? Eu cu siguranță nu știu!

Chiar dacă genul ăsta de proiecte au șanse destul de mici să fie măcar vag utile pentru cineva, sunt exerciții bune, mai ales pentru cei ce sunt la început de drum care vor să înțeleagă chestii.

15 Likes

Ma gândesc ca sistemele astea de operare custom ar merge pe Internet Of Things.

Felicitări, ai cîștigat premiul pentru cele mai mult topicuri renăscute!

Îmi place ultimul comentariu a lui @iamntz :earth_asia:

2 Likes

Ce se discuta aici merge pe ce mentinonam in alta parte, cand ai nevoie de exemplu de ceva minimal, in cazul ala, ceva ce sa ruleze pe noduri diskless la un cluster. In acel caz am folosit o distributie proprie bazata pe https://en.wikipedia.org/wiki/Scientific_Linux

Pentru IoT pe device-uri mai slabe ai asa ceva: https://en.wikipedia.org/wiki/Real-time_operating_system
Un exemplu: https://github.com/FreeRTOS/FreeRTOS
Cu variante… Texas Instruments are de exemplu TI-RTOS peste care sunt adaugate tot felul de stack-uri. Exemplu: https://www.ti.com/tool/Z-STACK pentru Zigbee https://en.wikipedia.org/wiki/Zigbee

1 Like

Poti sa pui raspunsuri la bookmark-uri.

Si le vezi aici
image

2 Likes

Booting embedded Linux in 0.37 seconds on an ARMv7-A CPU at 528 MHz

The embedded Linux based system enters user space 0.33 seconds after power on. The EXT4 filesystem is ready in 0.37 seconds and networking in 2.2 seconds . Very impressive for an i.MX6UL SoC with a 528 MHz ARMv7-A CPU, 1 GB DDR3 RAM and 4 GB eMMC! A reboot is even faster, only 0.26 seconds from issuing the reboot to entering user space.

Measurement point Elapsed time Delta
Hardware 1 ms 0 ms
ROM code 185 ms 184 ms
Bootloader 271 ms 86 ms
Linux user space 333 ms 62 ms
EXT4 filesystem 373 ms 40 ms
TCP/IP networking 2.2 s 1.8 s
1 Like

Ce se mai aude de fuchsia os?