小编Ert*_*ohl的帖子

如何在旧台式计算机上构建小型操作系统?

这可能是徒劳的,因为我知道编写一个操作系统是无法忍受的复杂(尤其是自己).

  • 我不希望构建下一个linux或Windows.

  • 我知道这将是可怕的,而且越野车,并且不会起作用,但那很好.

我想在Assembly,C和(某些)C++中自己编写所有内容.

这是一个未来的项目,因为我现在忙于其他一些事情并且没有立即的时间,但我想我现在会问它,所以也许我可以得到很多答案,它可以构建并成为这种方法的有用资源(我所见过的其他一切都涉及构建minix,使用现有的引导程序,在虚拟引导程序中构建它等).

我想用显示器,键盘和鼠标设置一个旧的桌面,然后开始使用空白硬盘.

我想学习如何编写我自己的bootloader(我已经找到了很多有关这方面的资源,但为了完整性,请仍然添加一些好的),我自己的USB驱动程序(如果有必要),CD驱动程序(如果有必要的话) )等等,从头开始.

  • 如何将代码放入计算机?用软盘做它最好吗?大多数计算机可以通过USB记忆棒完成吗?

  • 我需要哪些司机,你能建议任何建议吗?

  • 启动序列之后 - 然后是什么?我如何进入保护模式等

  • 如何在没有操作系统帮助的情况下管理内存?我只是使用我想要的任何地址吗?无需初始化?

  • 毫无疑问,我会遇到什么会让我困惑?

  • 我怎样才能使命令行O/S和图形命令行?

  • 什么是图形操作系统?比如,我怎么做一些命令行,一个字体,一个顶部的图片?

  • 我在哪里可以阅读有关设置多任务环境的信息?(即,有两个并行运行的图形命令行).

  • 我该如何设置一种窗口系统?设置简单的多任务处理后,如何在屏幕上显示图形?

相信我,我知道这是一个非常复杂的项目,我可能永远无法完成它或在任何用途上写任何东西.

还有很多其他的部分我还没有提到过,如果你想到的话,也可以自由添加.

请为每个答案添加一个"主题" - 例如,USB驱动程序,然后可能是资源列表,需要注意的事项等.

此外,请不要建议建立另一个操作系统或预先存在的代码.我知道我将阅读许多预先存在的代码(例如Linux内核,或示例资源,现有驱动程序等),但最终我想自己完成所有的写作.我知道我应该建立其他的东西,而且还有很多其他的问题,如果我改变主意并走那条路,我就可以读到这些问题.但这一切都是关于从头开始做整件事.

关于如何获得图形的任何建议?不同的视频模式以及如何使用它们等?

c assembly bootstrapping operating-system osdev

110
推荐指数
13
解决办法
5万
查看次数

Java"?" 检查null的运算符 - 它是什么?(不是三元!)

我正在阅读一篇关于斜线故事的文章,并发现了这个小小的问题:

采用最新版本的Java,它试图通过为无限指针测试提供简写语法来简化空指针检查.只需在每个方法调用中添加一个问号,就会自动包含对空指针的测试,替换大鼠的if-then语句嵌套,例如:

    public String getPostcode(Person person) {
      String ans= null;
      if (person != null) {
        Name nm= person.getName();
        if (nm!= null) {
          ans= nm.getPostcode();
        }
      }
      return ans
    } 

public String getFirstName(Person person) {
      return person?.getName()?.getGivenName();
    } 

我已经浏览了互联网(好吧,我花了至少15分钟在谷歌问号上搜索变种)并没有得到任何结果.所以,我的问题是:有关于此的官方文件吗?我发现C#有一个类似的运算符("??"运算符),但是我想得到我正在使用的语言的文档.或者,这只是我使用的三元运算符从未见过.

谢谢!

编辑:链接到文章:http://infoworld.com/d/developer-world/12-programming-mistakes-avoid-292

java syntax null

69
推荐指数
7
解决办法
10万
查看次数

Dockerfile:将RUN指令输出到变量中

我正在编写一个dockerfile,并希望将"ls"命令的输出放入变量中,如下所示:

$file = ls /tmp/dir
Run Code Online (Sandbox Code Playgroud)

这里,"dir"里面只有一个文件.

dockerfile中的以下RUN指令不起作用

RUN $file = ls /tmp/dir
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

29
推荐指数
3
解决办法
4万
查看次数

为什么是"||" 或符号?

我知道这||代表逻辑操作"或",但我很好奇是否有人知道选择该符号的历史.是不是因为它碰巧是键盘上未使用的符号?

syntax history operators bitwise-or logical-or

18
推荐指数
1
解决办法
5万
查看次数

方案:三个虚线元素的列表奇怪地返回(像中缀运算符?)

我是一名新的Scheme/Racket学生,所以请原谅任何明显的语法错误.

今天课堂上出现的方案列表'(a, b, c)应该是无效的,但是当我们运行它时,它返回:

>'(a . b . c)  
(b a c)
Run Code Online (Sandbox Code Playgroud)

这毫无意义.Afaik,翻译应该创建一个带有'a和cdr'b'的cons单元格,'c应该是无效的.也就是说,翻译在这里做了一些非常奇怪的事情.这适用于#lang方案,#lang racket等.我们使用DrRacket作为翻译.

有趣的是,

>'(a . b . c . d)
Run Code Online (Sandbox Code Playgroud)

抛出异常并死亡.

我非常好奇,很想能够理解这一点,因为我不熟悉这门语言.谷歌非常无益(可能因为搜索条件有点含糊不清)谢谢!

编辑:可能是因为'(a . b . c)用b解释为中缀运算符.例如:>(4 . + . 6)返回10.也许解释器使用b像运算符?即,(b a c)(+ 4 6)中缀一样.

实验说:

>(define b +)  
>(define a 4)  
>(define c 6)  
>(a . b . c)  
10
Run Code Online (Sandbox Code Playgroud)

所以我认为这解决了这个问题,但我仍然不完全理解"."的使用.在这种情况下运算符.我想我们已经解决了这个问题,但我们将非常感谢您的见解!

syntax scheme list infix-notation racket

6
推荐指数
1
解决办法
451
查看次数

Tableau Tickets - POST以获取返回登录表单的票证,而不是票证ID

我发现StackOverflow上没有很多Tableau专家,但也许有人之前有过这个问题,并且知道解决方案.我是Tableau的总菜鸟,所以请原谅我,如果这个问题是无聊的.提前致谢!

系统

我们设置Tableau的方式是在与Web服务器分开的服务器上.应用程序是用PHP编写的,使用CakePHP 2.2.0稳定版.

10.0.0.10 - webserver
10.0.0.11 - tableau
Run Code Online (Sandbox Code Playgroud)

为了让客户端查看Tableau生成的报告,我们使用受信任的身份验证票证系统,在该系统中,客户端将获得具有特定票证的URL.然后,客户端使用此票证直接向tableau服务器询问报告.

一个例子:

  1. 客户端GETS http://example.com/reports/view/3 - 内部为10.0.0.10.
  2. 服务器POSTS到10.0.0.11,并要求客户端查看报告3的票证
  3. Tableau Server使用数字响应帖子,例如987654321.
  4. 服务器使用页面(包括票证)响应客户端的GET.
  5. 客户GETS http://tableau.example.com/trusted/987654321/view3
  6. Tableau Server根据故障单验证客户端IP,并使用报告的HTML进行响应.

问题

问题是:当代码请求表格票号(上面的步骤2和3)时,Tableau服务器将使用身份验证页面而不是票证ID进行响应.如果我在$ postdata数组中注释掉"target_site"参数,则tableau不会使用登录页面进行响应,而只是简单地说"-1".

用于生成可信URL的PHP​​代码:

<?php
public function get_trusted_url($view = 'book2sheet1') {
    $email = $this->Auth->user();
    $email = $email['Email']; //This email is registered as a Tableau user!

    $postdata = http_build_query(
        array(
            'username' => $email,
            'target_site' => 'oursite', //If I comment this line out, Tableau no longer returns an auth page and instead simply returns "-1"
            'client_ip' => $_SERVER['REMOTE_ADDR'] …
Run Code Online (Sandbox Code Playgroud)

php cakephp tableau-api

5
推荐指数
1
解决办法
5398
查看次数

在docker中使node_modules保持最新

我正在与一个使用Docker和Node构建的repo的团队合作.当其他人安装节点包时,我将git pull这些更改为package.jsonpackage-lock.json.

不过,我不能只运行docker-compose build然后docker-compose up安装这些新的节点包.我必须先docker-compose down -v.这是因为我们使用卷来存储节点模块.我们并不依赖于此,坦率地说,只是将模块存储在docker图像层中.但是,当我们绑定应用程序卷(- .:/appin docker-compose.yml)时,node_modules图像中的文件夹将被遮蔽.

感觉我们对此采取了错误的方法,但这似乎是普遍接受的做法.我们的设置基于" 在Docker中构建节点应用程序的经验教训 "

我们Dockerfile:

FROM node:8.4.0
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install --loglevel=error --progess=false
COPY . /app/
Run Code Online (Sandbox Code Playgroud)

我们docker-compose.yml:

---
version: '2.1'

services:
  main:
    build:
      context: .
    volumes:
      - .:/app
      - /app/node_modules
    container_name: main
    command: ['node', 'index.js']
Run Code Online (Sandbox Code Playgroud)

我对该问题的理解是,在该docker-compose.yml文件中,该卷- /app/node_modules创建了一个卷,它将节点模块从图像层内部复制到一个卷中,这意味着当我们使用不同的内容再次构建应用程序时package.json,图像会更新但不会更新体积.down …

node.js node-modules docker dockerfile docker-compose

5
推荐指数
1
解决办法
936
查看次数

使用node.js从json文件读取值

我是 Node.js 的新手,有点被困在这里。我有一个类似于此的 json 文件 keyValue.json

[ {
    "key": "key1",
    "value": "value1"
  },   
  {
    "key": "key2",
    "value": "value2"
  } 
]
Run Code Online (Sandbox Code Playgroud)

对于特定的键,我需要获取其值。

function filterValue() {
  const category = {};
  category.filter = "key1" //this is not static value. This changes dynamically
  category.value = //Need to read the keyValue.json file and pick the value for key1 - which is value1
  return category;
}
Run Code Online (Sandbox Code Playgroud)

在node.js 中如何实现这一点?感谢您的帮助。

javascript node.js

4
推荐指数
1
解决办法
9638
查看次数

为什么HTML正文背景颜色不遵守边距?

根据w3,元素的边距是透明的:

箱型图

我建立了一个非常基本的HTML页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <style>
        body {
            background-color: red;
        }
    </style>
</head>
<body></body>
</html> 
Run Code Online (Sandbox Code Playgroud)

在Chrome中,检查员报告“正文”的边距为8px:

Chrome检查器图片显示8px的边距

但是在页面上,页边距充满了背景色!(请注意,我的书签栏和红色背景之间没有空格-我保证我没有滚动。

图片完全没有裕度

那是怎么回事?

html css margin document-body

3
推荐指数
1
解决办法
783
查看次数

使用 *ngFor 缺少数组中的 Angular 2 第一项

使用 angular 快速入门应用程序 ( https://github.com/angular/quickstart/blob/master/README.md )。使用角度 2.1.1

使用 *ngFor,列表的第一项不会出现在页面上。我在控制台中没有收到任何错误,但是在 ngOnInit 中看到以下控制台日志输出teacher.component.ts

Erty
Dave
Sarah
Walter
undefined
Run Code Online (Sandbox Code Playgroud)

最后一个“未定义”意味着数组的第一个元素正在被重新定义,但我不知道为什么。

这是输出的屏幕截图——代码贴在下面。

使用 *ngFor 显示缺少的第一个元素的屏幕截图

请注意,重复块中缺少第一个老师,但不在 json 数组中。

代码:

老师.component.ts:

import { Component, Input } from "@angular/core";

@Component({
    selector: 'teacher',
    template: `
        <p>Teacher {{index}}: {{teacherName}}</p>
    `
})
export class TeacherComponent {
    @Input() teacherName: string;
    @Input() index: number;

    ngOnInit() {
        console.log(this.teacherName);
    }
}
Run Code Online (Sandbox Code Playgroud)

app.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent }  from './app.component';
import { TeacherComponent } …
Run Code Online (Sandbox Code Playgroud)

ngfor angular

3
推荐指数
1
解决办法
1759
查看次数